Le but de ce code est d'obtenir l'entrée de l'utilisateur pour générer un rapport.L'utilisateur sélectionnera le mois et le type.Le code fonctionne partiellement comme indiqué mais dès que j'essaye de le convertir en une fonction qui réside sur un autre fichier JSL (appelé avec un "include"), il échoue. Je ne parviens pas à obtenir les deux variables renvoyées et j'obtiens toujours une erreur "Nom non résolu".Je sais que Month revient sous forme de liste et que le type renvoie sous forme de chaîne (?). Ce qu'il me manque et comment puis-je obtenir le mois et le type renvoyés par la fonction.
Merci!
Names Default To Here( 1 );
monthLst = {"may", "June", "July"};
nw = New Window( "Select Month",
<<MODAL>","Accounting", "Financial"},
),
Spacer Box( size( 10, 10 ) ),
H List Box(
Align( left ),
Spacer Box(),
Button Box( "Cancel", bbCancelled = 1 ),
Button Box( "OK",
bbCancelled = 0;
selectMo = tb2 << Get Selected;
rcb = cb << Get Selected;
)
)
),
Spacer Box( size( 50, 10 ) )
),
Spacer Box( size( 25, 30 ) )
);
If( bbCancelled == 1,
Stop(),
If( selectMo == {},
//error modal
::dialogModalNoEdit( "Please select a Month." );
//recursively call modal window function
SelExpModal( monthLst );
,
//if values were selected return results
//Return(selectMo[1] ),
)
);
Print(selectMo);
Print(rcb);</MODAL>Si je comprends bien..
Si vous créez une fonction, vous devrez renvoyer les valeurs que vous souhaitez utiliser après l'exécution de la fonction (sauf si vous souhaitez utiliser des variables globales).
Dans ce cas, vous pouvez les renvoyer par exemple comme ceci (un tableau associatif serait peut-être mieux):
return(selectMo, rcb);
Et dans le script qui inclut ce script, vous pouvez y accéder:
Names Default To Here(1);
Include("MonthTypeFunc.jsl");
retVal = MonthTypeWindow();
show(retVal[1],retVal[2]);Exemples de scripts joints. Placez-le dans le même dossier et exécutez Main.jsl.
Merci beaucoup jthi!Jamais pensé à utiliser un tableau associatif.