이 코드의 목적은 사용자 입력을 받아 보고서를 생성하는 것입니다.사용자는 월과 유형을 선택합니다.코드는 부분적으로 표시된대로 작동하지만 다른 JSL 파일 ( "include"로 호출 됨)에있는 함수로 변환하려고하면 실패합니다. 두 변수를 반환 할 수없고 항상 "이름 미해결"오류가 발생합니다.월이 목록으로 반환되고 유형이 문자열 (?)로 반환된다는 것을 알고 있습니다. 내가 놓친 것은 무엇이며 어떻게 월과 함수가 반환하는 유형을 얻을 수 있습니까?
감사!
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을 실행합니다.
jthi 대단히 감사합니다!연관 배열 사용을 생각한 적이 없습니다.