Fonction à référencerJ'insère deux boîtes dans une boîte de liste H. Le premier est un rapport d'une table. Cette table peut avoir un nombre variable de lignes en fonction de ce qui s'est passé précédemment dans le script, mais a toujours le même nombre de colonnes. La deuxième boîte que j'insère est une V List Box. Pour chaque ligne du tableau, je veux qu'une boîte à boutons soit ajoutée à la liste V, et qu'elle puisse référencer les données des lignes respectives. c'est à dire. La boîte de boutons 1 fait référence à la valeur de la ligne 1, colonne 3, dans le tableau de la zone de liste H. Mon problème est que je n'arrive pas à faire référence à cette valeur, lorsque j'utilise une "boucle for" pour créer le nombre de boîtes Button égal au nombre de lignes dans le tableau.Je sais qu'il essaie de référencer la cellule avec la ligne = i à la fin de la boucle for, je ne sais tout simplement pas comment l'obtenir pour "enregistrer la valeur de i" pour chaque boîte à boutons. Mon code actuel est affiché ci-dessous :
OutputTable = Current Data Table();
HList = H List Box( OutputTable << Get as Report() );
//Show(Column(OutputTable, 3)[1]);
SavingVlb = V List Box( Text Box( "Save to External Table" ) );
For( i = 1, i < N Rows( OutputTable ) + 1, i++,
BB = Button Box( "Save",
<<SETFUNCTION></SETFUNCTION>

Toute aide serait grandement appréciée.
Automatisation et scriptRe : Fonction à référencerNotez que lorsque le script/fonction attaché au ButtonBox s'exécute, il n'a aucune vue sur la portée pour laquelle il a été créé.Cela diffère des autres langages de programmation (comme Python) qui conservent la portée du moment où les fonctions ont été créées.
En JSL, utilisez le Eval( Eval Expr( ... Expr( var ) ... ) ) construire pour pré-évaluer certaines parties du code.Voici un exemple.
De plus, j'utiliserais la fonction ColBox() pour ajouter les boutons car elle alignera automatiquement toutes les cellules :
OutputTable = Current Data Table();
HList = H List Box( OutputTable << Get as Report() );
//Show(Column(OutputTable, 3)[1]);
SavingVlb = V List Box( Text Box( "Save to External Table" ) );
col box = Col Box( "" );
hlist[Table Box( 1 )] << Append( col box );
For( i = 1, i < N Rows( OutputTable ) + 1, i++,
Eval( Eval Expr(
BB = Button Box( "Save",
<<SETFUNCTION></SETFUNCTION>