PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WEBDEV 26 → Probleme d'affichage d'une table remplie par programmation. Contenu non visible
Probleme d'affichage d'une table remplie par programmation. Contenu non visible
Started by AGLouf, Jul., 11 2016 10:13 PM - 7 replies
Registered member
24 messages
Posted on July, 11 2016 - 10:13 PM
Bonjour

J'ai un petit soucis très génant avec une table remplie par programmation. En effet apres le remplissage de celle-ci, meme si la table contient bien les (par exemple) 4 lignes ajoutées avec la fonction TableAjouteLigne, on ne voit pas ces lignes a l'affichage.

La table est remplie comme ceci
SI HExécuteRequêteSQL(sdRequeteListeCategoriesLot,hRequêteDéfaut,sStatementListeCategoriesLot) ALORS
// On s'assure que la table des catégories sélectionnées est vide
SI HNbEnr(sdRequeteListeCategoriesLot) >=1 ALORS
TableSupprimeTout(TABLE_CategorieSelectionnee_Pr_DemandePrix)
POUR TOUT sdRequeteListeCategoriesLot
resultatAjouteLigne = TableAjouteLigne(TABLE_CategorieSelectionnee_Pr_DemandePrix,Vrai,sdRequeteListeCategoriesLot.IDCategorie,sdRequeteListeCategoriesLot.IDDemande_Prix,sdRequeteListeCategoriesLot.Description,Vrai)
FIN
FIN
FIN


Pour info, la requete utilisée est la suivante

sStatementListeCategoriesLot est une chaîne = [
select DEMANDE_PRIX_CATEGORIE.IDCATEGORIE,
DEMANDE_PRIX_CATEGORIE.IDDEMANDE_PRIX,
CATEGORIE.description
from DEMANDE_PRIX_CATEGORIE,
categorie
where DEMANDE_PRIX_CATEGORIE.IDCATEGORIE = categorie.IDCATEGORIE
and categorie.ActifFlg = 1
and DEMANDE_PRIX_CATEGORIE.IDDEMANDE_PRIX = %1
]
sdRequeteListeCategoriesLot est une Source de Données


A l'issue de ce bloc de code, l'affichage de la table = Vide, nada, rien, juste l'entete des colonnes
Un trace m'affiche bien le contenu.

Le plus "marrant" c'est que si j'ajoute (temporairement) un bouton pour faire le meme TableAjouteLigne(...) la l'affichage de la table devient ok, je vois donc les 4 lignes ajoutées par le script ci-dessus PLUS la nouvelle ligne ajoutée via le bouton

Quelqu'un aurait il une bonne piste a suivre pour solutionner ce problème.
Merci d'avance pour votre aide
Alex
Registered member
474 messages
Popularité : +1 (1 vote)
Posted on July, 12 2016 - 9:05 AM
Bonjour,

Il ne manque pas un "tableaffiche" ?

--
Jean-Michel
Registered member
24 messages
Posted on July, 12 2016 - 9:23 AM
Bonjour
Il y a bien un tableAffiche (mais effectivement pas dans la copie du code ..oups)
Avant cette table etait allimenté directement par le fichier correspondant.
Je l'ai passé en "remplissage par programmation" et c'est depuis ce moment la que j'ai le probleme

J'ai egalement tente d'effacer completement cette table et d'en créer une autre directement 'remplie par programmation'. Rien ne change...sniff

Je ne sais pas du tout comment solutionner le probleme. C'est tres génant. Cela ne doit qd meme pas etre sorcier d'ajouter une ou plusieurs lignes a une table. Je le fais deja pour plusieurs tables sans aucun probleme
Posted on July, 12 2016 - 2:05 PM
Bonjour Alex

ou est ton code ?
es tu en mode ajax ?


Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

Plus d'information sur http://fabriceharari.com
Registered member
24 messages
Posted on July, 12 2016 - 4:28 PM
Dans la page, j'ai une table principale (liste de lots) et sur le cote un onglet avec 2 volets ( details et liste de catégories)

Sur une selection dans la table principale, si l'onglet actif est "categorie", je souhaite lire toutes les catégories qui sont liées au lot (selectionné
dans la table principale)

Voici le code (Ajax active et cote serveur) du cote de la sélection dans la table principale
nIdxCatSrc est un entier = -1
nIdxCatSelectionne est un entier = -1
sListeCategorieSelectionnee est une chaîne =""

sDemandeDePrixCouranteInternalID est une chaîne
sMessageErreur est une chaîne = "Impossible d'obtenir les détails de la demande de prix n° %1 (Tech. Id : %2). Contacter le support."

bResultatInit est un booléen = Faux
voletActifInfo est un entier

sLibelleVolet est une chaîne


// On memorise la numero de la demande de prix sur laquelle on est positionne
gnDemandePrixCourante = TABLE_REQ_DemandeDePrix_Soumission.COL_IDDEMANDE_PRIX
sDemandeDePrixCouranteInternalID = TABLE_REQ_DemandeDePrix_Soumission.COL_IDInterne


// Selon le volet actif de l'onglet de details de la demande de prix, on rafraichi la partie correspondante uniquement
voletActifInfo = ONG_DétailsDemandePrix..Valeur
sLibelleVolet = ONG_DétailsDemandePrix[ONG_DétailsDemandePrix]..Libellé

SELON voletActifInfo
CAS 1 // Details
rafraichir_demandePrix(gnDemandePrixCourante,sDemandeDePrixCouranteInternalID)
CAS 2 // Catégorie
rafraichir_categorie_demandePrix(gnDemandePrixCourante,sDemandeDePrixCouranteInternalID)
CAS 3 // Audit
FIN

SI gnDemandePrixCourante >= 1 ALORS
REQ_Consultaion_pour_une_demandedeprix.ParamIDDEMANDE_PRIX = gnDemandePrixCourante
TableAffiche(TABLE_CONSULTATIONS)

SAI_Sélectionnées = TABLE_CategorieSelectionnee_Pr_DemandePrix..Occurrence

FIN

// Afficher la liste des consultations liées au LOT actuellement sélectionné
charge_liste_consultations_lot(gnDemandePrixCourante,gnIdSoumissionCourante)


La fonction rafraichir_categorie_demandePrix(gnDemandePrixCourante,sDemandeDePrixCouranteInternalID) est definie comme ceci

Procedure rafraichir_categorie_demandePrix(gnDemandePrixCourante,sDemandeDePrixCouranteInternalID)


nIdxCatInSource est un entier = 1
nIdxCatInUsage est un entier = 1
nFakeRow est un entier
nNbrCatAssociees est un entier = 0


sStatementListeCategoriesLot est une chaîne = [
select DEMANDE_PRIX_CATEGORIE.IDCATEGORIE,
DEMANDE_PRIX_CATEGORIE.IDDEMANDE_PRIX,
CATEGORIE.description
from DEMANDE_PRIX_CATEGORIE,
categorie
where DEMANDE_PRIX_CATEGORIE.IDCATEGORIE = categorie.IDCATEGORIE
and categorie.ActifFlg = 1
and DEMANDE_PRIX_CATEGORIE.IDDEMANDE_PRIX = %1
]
sdRequeteListeCategoriesLot est une Source de Données
resultatAjouteLigne est un entier = 0

SI gnDemandePrixCourante >= 1 ALORS
// On s'assure que la table des catégories sélectionnées est vide
TableSupprimeTout(TABLE_CategorieSelectionnee_Pr_DemandePrix)

// On s'assure que la liste de reference est bien visible et rien n'est sélectionné dedans
nIdxCatInSource = 1
TANTQUE nIdxCatInSource <= TABLE_CATEGORIE_SRC..Occurrence
TABLE_CATEGORIE_SRC[nIdxCatInSource].COL_DejaSelectionnee = Faux
TABLE_CATEGORIE_SRC[nIdxCatInSource]..Visible = Vrai
nIdxCatInSource ++
FIN

// On va rechercher la liste des categories actuellement sélectionnées pour le lot passé en parametre
sStatementListeCategoriesLot = ChaîneConstruit(sStatementListeCategoriesLot,gnDemandePrixCourante)

SI HExécuteRequêteSQL(sdRequeteListeCategoriesLot,hRequêteDéfaut,sStatementListeCategoriesLot) ALORS
nNbrCatAssociees = HNbEnr(sdRequeteListeCategoriesLot)

POUR TOUT sdRequeteListeCategoriesLot

resultatAjouteLigne = TableAjouteLigne(TABLE_CategorieSelectionnee_Pr_DemandePrix,Vrai,sdRequeteListeCategoriesLot.IDCategorie,sdRequeteListeCategoriesLot.IDDemande_Prix,sdRequeteListeCategoriesLot.Description,Vrai)

SI resultatAjouteLigne >= 1 ALORS
nIdxCatInSource = TableCherche(TABLE_CATEGORIE_SRC.COL_IDCATEGORIE,sdRequeteListeCategoriesLot.IDCategorie,rechercheIdentique)
SI nIdxCatInSource <> -1 ALORS
TABLE_CATEGORIE_SRC[nIdxCatInSource].COL_DejaSelectionnee = Vrai
TABLE_CATEGORIE_SRC[nIdxCatInSource]..Visible = Faux
FIN
FIN
FIN

FIN

TableAffiche(TABLE_CategorieSelectionnee_Pr_DemandePrix)



// On s'assure que la table contenant la liste source soit bien filtree
TableActiveFiltre(TABLE_CATEGORIE_SRC.COL_DejaSelectionnee,filtreDifférent,Vrai)

FIN


Mon soucis est que le TableAjouteLigne fonctionne bien dans le sens ou les lignes sont bien ajoutées dans la table mais elles ne sont pas
visible.
(Pour info, pour chaque catégorie trouvée et ajoutée ds la table TABLE_CategorieSelectionnee_Pr_DemandePrix, cette catégorie est "retirée" de la liste des categories sources TABLE_CATEGORIE_SRC en "jouant" sur le visible et un colonne indicateur et un filtre sur cette colonne

Un ajout manuel, TableAjoutLigne avec des données bidons depuis un bouton fait en sorte que les infos sont visible alors dans la table ( les valeurs réelles et la valeur bidon).
Cette ligne bidon est ajoutee comme suit
nFakeRow est un entier

nFakeRow = TableAjouteLigne(TABLE_CategorieSelectionnee_Pr_DemandePrix,Vrai,1,13,"",Vrai)
SI nFakeRow >= 1 ALORS
TableSupprime(TABLE_CategorieSelectionnee_Pr_DemandePrix,nFakeRow)

FIN


J'avoue que je suis un peu perdu...
Si il y a une solution 'meme miraculeuse' je suis preneur

Merci d'avance
Alex
Posted on September, 01 2016 - 4:38 PM
Bonjour,

J'ai le même problème, est-ce que vous avez trouvé une solution ?

Meilleures salutations.
Posted on September, 14 2021 - 8:41 PM
Essai d'exporter la table, tu verra que les lignes cachés. Donc essai de revoir la hauteur de tes lignes sur la fenetre
Registered member
1,427 messages
Popularité : +3 (3 votes)
Posted on September, 16 2021 - 6:09 PM
"Posté le 01 septembre 2016 - 16:38" ??? J'ose esperer que 5 ans apres il a trouvé le probleme ..