此代碼的目的是獲取用戶輸入以生成報告。用戶將選擇月份和類型。該代碼部分按所示方式工作,但是一旦我嘗試將其轉換為駐留在另一個JSL文件(稱為“ include”)的函數,它就會失敗。 我無法返回兩個變量,並且總是收到“名稱未解析”錯誤。我知道Month返回為列表,類型返回為字符串(?)。 我所缺少的東西以及如何獲取該函數返回的月份和類型。
謝謝!
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>如果我理解正確..
如果要創建函數,則必須在函數執行後返回要使用的值(除非要使用全局變量)。
在這種情況下,您可以像這樣返回它們(關聯數組可能會更好):
return(selectMo, rcb);
在包含該腳本的腳本中,您可以訪問它們:
Names Default To Here(1);
Include("MonthTypeFunc.jsl");
retVal = MonthTypeWindow();
show(retVal[1],retVal[2]);隨附示例腳本。 放置在同一文件夾中並運行Main.jsl。