Der Zweck dieses Codes besteht darin, Benutzereingaben zum Generieren eines Berichts zu erhalten.Der Benutzer wählt den Monat und den Typ aus.Der Code funktioniert teilweise wie gezeigt, aber sobald ich versuche, ihn in eine Funktion zu konvertieren, die sich in einer anderen JSL-Datei befindet (mit einem "Include" aufgerufen), schlägt er fehl. Ich kann die beiden Variablen nicht zurückgeben und erhalte immer den Fehler "Name ungelöst".Ich weiß, dass Month als Liste und der Typ als Zeichenfolge (?) Zurückgibt. Was mir fehlt und wie kann ich den Monat und den von der Funktion zurückgegebenen Typ erhalten?
Vielen Dank!
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>Wenn ich richtig verstehe..
Wenn Sie eine Funktion erstellen, müssen Sie Werte zurückgeben, die Sie nach Ausführung der Funktion verwenden möchten (es sei denn, Sie möchten globale Variablen verwenden).
In diesem Fall könnten Sie sie beispielsweise so zurückgeben (assoziatives Array wäre vielleicht besser):
return(selectMo, rcb);
Und in einem Skript, das dieses Skript enthält, können Sie darauf zugreifen:
Names Default To Here(1);
Include("MonthTypeFunc.jsl");
retVal = MonthTypeWindow();
show(retVal[1],retVal[2]);Angehängte Beispielskripte. In denselben Ordner legen und Main.jsl ausführen.
Vielen Dank jthi!Ich habe nie daran gedacht, ein assoziatives Array zu verwenden.