Hola a todos,
Tengo una pregunta sobre las clases JMP. Estoy usando clases personalizadas para crear instancias como interfaz para solicitudes personalizadas (sql). Estas clases contienen, entre otras cosas, un espacio de nombres, una ventana y un botón. Funciona bastante bien; sin embargo, tengo algunas clases generales/globales que también quiero ejecutar en estas instancias.
Muestra ficticia para una clase global:
New Namespace("BASICS",
{
BASIC_FUNCTION = Function({A, B},
C = A * B;
Print(C);
Return(C);
);
}
);
Y esta es mi función de manejo para el botón de enviar. ESTE_WN es la clase que contiene la ventana y el botón.
NS es el espacio de nombres dentro de esta clase.
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);
);Puedo ejecutar el comando y obtener el resultado de sql/datatable. También tengo control sobre la ventana dentro de la sección local aquí. Sin embargo, después de evaluar el comando, realmente no puedo hacer nada más. A partir de "//CASES", todos los ejemplos no funcionan, lo que indica que no hay una variable definida dentro de esta clase.
¿Hay alguna manera de "volver a la clase" después de una sección "local aquí"?
Gracias de antemano !
@D_G Lamento que no haya habido respuesta a tu pregunta. Las clases personalizadas son relativamente nuevas y pocas personas están familiarizadas con su uso. No he trabajado con clases (dentro de JSL), pero ha estado en mi lista de temas de JSL sobre los que aprender más. Echaré un vistazo a lo que estás intentando hacer y veré si puedo conseguirte más información.