PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Table et Zone répétée
Table et Zone répétée
Débuté par f.demilly, 09 jan. 2006 13:21 - 4 réponses
Posté le 09 janvier 2006 - 13:21
Bonjour,
Pour mes tests de la version 10, j'ai créé dans une fenêtre toute neuve une zone répétée contenant 2 champs de saisies et une table. Le but est de lister des champs utilisateur, et pour chaque champs d'afficher la liste des valeurs possibles.
Dans le code d'initialisation de la fenêtre, j'ai mis le code suivant:
NumChamp est un entier
sValChpUts est une chaîne

SI PAS SQLExec("select cu_i_num,cu_c_libelle,tr_c_code from torpedo.chp_uts","requts") ALORS
SQLInfoGene("requts")
Erreur(SQL.MesErreur)
FIN
TANTQUE SQLAvance("requts") = 0
ZoneRépétéeAjoute(ZR_ZoneRépétée1)
numchamp = SQLLitCol("requts",1)
ZR_ZoneRépétée1 = ZoneRépétéeOccurrence(ZR_ZoneRépétée1)
ZR_ZoneRépétée1.SAI_Saisie1 = numchamp
ZR_ZoneRépétée1.SAI_Saisie2 = SQLLitCol("requts",2)
SQLExec("select vpcu_c_valeur from torpedo.val_pos_chp_uts where cu_i_num = " + numchamp,"reqval")
TANTQUE SQLAvance("reqval") = 0
sValChpUts = SQLLitCol("reqval",1)
Trace(NumChamp,sValChpUts)
TableAjoute(ZR_ZoneRépétée1.TABLE_Table1,sValChpUts)
FIN
SQLFerme("reqval")
FIN
SQLFerme("requts")

Pour les champs de saisie, pas de problème. Par contre, toutes les occurrences de la table contiennent les même lignes. Il semble en fait que l'ajout d'une ligne dans une table pour une "ligne" de la zone répétée ajoute ladite ligne dans toutes les occurrences de la table ( pas facile à formuler ;) ).

Bien entendu, j'ai vérifié le résultat de mes requêtes, et pas de soucis de ce côté.

Est-ce que quelqu'un à une idée, avant que j'envoie un message au ST ?

Frédéric.
Posté le 09 janvier 2006 - 13:52
j'aurais plutot ecrit :

TableAjoute(ZR_ZoneRépétée1.TABLE_Table1[NumLigneZoneRepetee],sValChpUts)

Frédéric DEMILLY avait soumis l'idée :
Bonjour,
Pour mes tests de la version 10, j'ai créé dans une fenêtre toute neuve une
zone répétée contenant 2 champs de saisies et une table. Le but est de lister
des champs utilisateur, et pour chaque champs d'afficher la liste des valeurs
possibles. Dans le code d'initialisation de la fenêtre, j'ai mis le code
suivant: NumChamp est un entier sValChpUts est une chaîne

SI PAS SQLExec("select cu_i_num,cu_c_libelle,tr_c_code from
torpedo.chp_uts","requts") ALORS SQLInfoGene("requts")
Erreur(SQL.MesErreur)
FIN
TANTQUE SQLAvance("requts") = 0
ZoneRépétéeAjoute(ZR_ZoneRépétée1)
numchamp = SQLLitCol("requts",1)
ZR_ZoneRépétée1 = ZoneRépétéeOccurrence(ZR_ZoneRépétée1)
ZR_ZoneRépétée1.SAI_Saisie1 = numchamp
ZR_ZoneRépétée1.SAI_Saisie2 = SQLLitCol("requts",2)
SQLExec("select vpcu_c_valeur from torpedo.val_pos_chp_uts where cu_i_num =
" + numchamp,"reqval") TANTQUE SQLAvance("reqval") = 0
sValChpUts = SQLLitCol("reqval",1)
Trace(NumChamp,sValChpUts)
TableAjoute(ZR_ZoneRépétée1.TABLE_Table1,sValChpUts)
FIN
SQLFerme("reqval")
FIN
SQLFerme("requts")

Pour les champs de saisie, pas de problème. Par contre, toutes les
occurrences de la table contiennent les même lignes. Il semble en fait que
l'ajout d'une ligne dans une table pour une "ligne" de la zone répétée ajoute
ladite ligne dans toutes les occurrences de la table ( pas facile à formuler
;) ).

Bien entendu, j'ai vérifié le résultat de mes requêtes, et pas de soucis de
ce côté.

Est-ce que quelqu'un à une idée, avant que j'envoie un message au ST ?

Frédéric.



--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Posté le 09 janvier 2006 - 14:12
Héhé, j'y ai bien pensé, mais ça ne marche pas. Il considère dans ce cas que NumLigneZoneRepetee est un indice de la table, et non de la zone répétée.
J'ai aussi testé TableAjoute(ZR_ZoneRépétée1[NumLigneZoneRepetee].TABLE_Table1,sValChpUts), mais ça ne marche pas mieux.

Frédéric.
Posté le 09 janvier 2006 - 14:43
effectivement pour ce que tu demandes ca fonctionne pas.

Frédéric DEMILLY avait écrit le 09/01/2006 :
Héhé, j'y ai bien pensé, mais ça ne marche pas. Il considère dans ce cas que
NumLigneZoneRepetee est un indice de la table, et non de la zone répétée.
J'ai aussi testé
TableAjoute(ZR_ZoneRépétée1[NumLigneZoneRepetee].TABLE_Table1,sValChpUts),
mais ça ne marche pas mieux.

Frédéric.



--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Posté le 09 janvier 2006 - 17:57
Malheureusement, impossible

Les ZR ne gèrent aucune liste (liste, combo, table)

Confirmé par PCSoft