Le but de ce code est d'obtenir la saisie 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'essaie de le convertir en une fonction qui réside sur un autre fichier JSL (appelé avec un "include"), il échoue. Je ne parviens pas à récupérer les deux variables et j'obtiens toujours une erreur "Nom non résolu". Je sais que Month renvoie sous forme de liste et que le type renvoie sous forme de chaîne (?). Ce qui 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> ","Comptabilité", "Financial"}, ), Spacer Box( size( 10, 10 ) ), H List Box( Align( left ), Spacer Box(), Button Box( "Cancel", bbCancelled = 1 ), Boîte de boutons( "OK", bbCancelled = 0; selectMo = tb2 << Get Selected; rcb = cb << Get Selected; ) ) ), Spacer Box( taille( 50, 10 ) ) ), Spacer Box( taille( 25, 30 ) ) ); If( bbCancelled == 1, Stop(), If( selectMo == {}, //erreur modale ::dialogModalNoEdit( "Veuillez sélectionner un mois." ); //appel récursif de la fonction de fenêtre modale SelExpModal( MonthLst ); , //si les valeurs ont été sélectionnées, renvoient les résultats //Return(selectMo[1] ), ) ); Print(selectMo); Print(rcb);</MODAL>Merci beaucoup jti !Jamais pensé à utiliser un tableau associatif.
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.