此代码的目的是获取用户输入以生成报告。用户将选择月份和类型。该代码部分按所示方式工作,但是一旦我尝试将其转换为驻留在另一个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。