|
| Remplissage dynamiquement d'une table par programmation |
| Iniciado por BGael, 20,nov. 2019 09:42 - 8 respuestas |
| |
| | | |
|
| |
Miembro registrado 1 mensaje |
|
| Publicado el 20,noviembre 2019 - 09:42 |
Bonjour tout le monde.
J'aimerai savoir s'il n'est pas possible d'utiliser une fonction plus adaptée que TableAjouteLigne pour le cas d'une table à plusieurs colonnes (dont on connait pas les noms et le nombre colonnes au préalable). Quelque chose du genre
TANTQUE PAS HEnDehors(Source) table.COL1=Source.champ1 table.COL2=Source.champ2 ... TableAjouteLigne(table) HLitSuivant(Source) FIN
-- BKGMensaje modificado, 20,noviembre 2019 - 09:42 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 20,noviembre 2019 - 09:52 |
sRow = Product.Reference + TAB + Product.ProdCap + TAB + Product.Price TableAdd(TABLE_Products, sRow) |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 3 mensajes |
|
| Publicado el 20,noviembre 2019 - 09:59 |
Bonjour,
Je pense que le mieux c'est d'utiliser TableAjouteLigne mais d'une autre façon, si par exemple vous ne connaissez pas vos colonnes à l'avance vous pouvez jouer sur l'indirection pour régler ce problème
nIndice est un entier nIndiceColonne est un entier UneColonne est un Champ
TANTQUE PAS HEnDehors(Source) nIndiceColonne = 0 nIndice = TableAjouteLigne(TABLE) SI nIndice <> -1 ALORS POUR nColonne = 1 _A_ TableOccurrence(TABLE,toColonne) nIndiceColonne++ UneColonne <- TableEnumèreColonne(TABLE, nColonne) {TABLE..Nom + "[" + nIndice + "]" + "." + UneColonne..Nom,indChamp} = {Source..Nom + "." + "champ" + nIndiceColonne,indRubrique} FIN FIN HLitSuivant(Source) FIN
-- Cordialement, Corentin Domanski.Mensaje modificado, 20,noviembre 2019 - 10:02 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.361 mensajes |
|
| Publicado el 20,noviembre 2019 - 10:14 |
Bonjour, TableAjoute fait aussi très bien le boulot dans ce cas
sContenuLigne est chaîne
sContenuLigne=ContenuCol1+TAB+ContenuCol2+TAB+...
TableAjoute(TABLE_TableARemplir,sContenuLigne)
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 352 mensajes |
|
| Publicado el 20,noviembre 2019 - 11:03 |
Bonjour. Le soucis de la fonction TaleAjoute, c'est lorsqu'une donnée contient déjà le caractère de tabulation, qui provoque un décalage dans les colonnes (déjà vécu). Une autre façon de procéder serait en faisant un binding sur une variable globale, de type tableau d'objets d'une classe à définir au niveau du projet. L'avantage en procédant ainsi, plus besoin de se soucier dans l'ordre des colonnes, le wlangage sait le gérer. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 3 mensajes |
|
| Publicado el 20,noviembre 2019 - 12:03 |
ROMULUS001 a écrit :
Bonjour. Le soucis de la fonction TaleAjoute, c'est lorsqu'une donnée contient déjà le caractère de tabulation, qui provoque un décalage dans les colonnes (déjà vécu). Une autre façon de procéder serait en faisant un binding sur une variable globale, de type tableau d'objets d'une classe à définir au niveau du projet. L'avantage en procédant ainsi, plus besoin de se soucier dans l'ordre des colonnes, le wlangage sait le gérer.
Le TableAjoute() a aussi le défaut d'être moins lisible en terme de lecture de code et moins maintenable si les colonnes évoluent avec le temps. En revanche c'est beaucoup plus court à écrire que mon exemple c'est indéniable.
-- Cordialement, Corentin Domanski. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 352 mensajes |
|
| Publicado el 20,noviembre 2019 - 14:10 |
Il y a une variante dans l'utilisation de TableAjoute / TableAjouteLigne qui peut être utilisée, personnellement, je n'aime pas m'en servir mais elle marche très bien :
TableAjoute(TABLE_MaTable) TableAjoute .COL_Col1[TableAjoute ..Occurrence]="valeur 1" TableAjoute .COL_Col2[TableAjoute ..Occurrence]="valeur 2" ... |
| |
| |
| | | |
|
| | |
| |
| Publicado el 20,noviembre 2019 - 14:38 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 3 mensajes |
|
| Publicado el 20,noviembre 2019 - 14:51 |
ROMULUS001 a écrit :
Il y a une variante dans l'utilisation de TableAjoute / TableAjouteLigne qui peut être utilisée, personnellement, je n'aime pas m'en servir mais elle marche très bien : TableAjoute(TABLE_MaTable) // ou TableAjouteLigne(TABLE_MaTable) TableAjoute .COL_Col1[TableAjoute ..Occurrence]="valeur 1" TableAjoute .COL_Col2[TableAjoute ..Occurrence]="valeur 2" ...
Je ne connaissais pas cette syntaxe là ! Le plus souvent je passe par un entier qui contient l'indice de ma ligne ajoutée, concrètement c'est exactement pareil.
-- Cordialement, Corentin Domanski. |
| |
| |
| | | |
|
| | | | |
| | |
|