여러분, 안녕하세요,
JMP 클래스에 관해 질문이 있습니다. 저는 사용자 정의 클래스를 사용하여 사용자 정의(SQL) 요청을 위한 인터페이스로 인스턴스를 생성하고 있습니다. 이러한 클래스에는 네임스페이스, 창 및 버튼이 포함되어 있습니다. 꽤 잘 작동합니다. 하지만 이러한 인스턴스 내에서 실행하고 싶은 일반/전역 클래스도 있습니다.
글로벌 클래스의 더미 샘플:
New Namespace("BASICS",
{
BASIC_FUNCTION = Function({A, B},
C = A * B;
Print(C);
Return(C);
);
}
);
그리고 이것은 제출 버튼에 대한 핸들 기능입니다. THIS_WN 창과 버튼을 포함하는 클래스입니다.
NS 이 클래스 내의 네임스페이스입니다.
HANDLE_SUBMIT = Function({THIS_WN},
THIS_WN:GET_WINDOW << Show Window(0);
THIS_WN:NS:A = 2;
THIS_WN:NS:B = 3;
THIS_WN:NS:CMD = JSL Quote(
Local Here(
Include(Get Path Variable("ADDIN_HOME(~ my AddIn ~)") || "LIB\BASICS.jsl");
Namespace("$NS$"):RESULT = BASICS:BASIC_FUNCTION(Namespace("$NS$"):A, Namespace("$NS$"):B);
Print(Namespace("$NS$"):RESULT);
Namespace("$NS$"):RESULT = Namespace("$NS$"):RESULT + 1;
Print(Namespace("$NS$"):RESULT);
Window("$WN$") << Show Window(1);
);
);
THIS_WN:NS:CMD = Substitute(THIS_WN:NS:CMD, "$NS$", THIS_WN:NS << Get Name);
THIS_WN:NS:CMD = Substitute(THIS_WN:NS:CMD, "$WN$", THIS_WN:GET_WINDOW << Get Window Title);
Eval(Parse(THIS_WN:NS:CMD));
Print("HERE");
//CASES
//X = 1;
//Print(THIS_WN:NS:CMD);
);명령을 실행하고 sql/datatable 결과를 얻을 수 있습니다. 또한 로컬 여기 섹션 내의 창을 제어할 수도 있습니다. 그러나 명령을 평가한 후에는 실제로 다른 작업을 수행할 수 없습니다. "//CASES"부터 시작하면 이 클래스 내에 정의된 변수가 없다고 모든 예제가 작동하지 않습니다.
"여기 로컬" 섹션이 끝난 후 "수업으로 다시 돌아올" 수 있는 방법이 있나요?
미리 감사드립니다!
@D_G 귀하의 질문에 대한 답변이 없어서 죄송합니다. 사용자 정의 클래스는 상대적으로 새롭고 그 사용법에 익숙한 사람이 거의 없습니다. 저는 (JSL 내부에서) 수업을 다루지는 않았지만, 더 자세히 알아볼 수 있는 JSL 주제 목록에 포함되어 있습니다. 귀하가 무엇을 하려고 하는지 살펴보고 더 많은 정보를 얻을 수 있는지 알아보겠습니다.