Hallo zusammen,
Ich habe eine Frage zu JMP-Klassen. Ich verwende benutzerdefinierte Klassen, um Instanzen als Schnittstelle für benutzerdefinierte (SQL-)Anforderungen zu erstellen. Diese Klassen enthalten unter anderem einen Namensraum, ein Fenster und eine Schaltfläche. Es funktioniert ziemlich gut - aber ich habe einige allgemeine/globale Klassen, die ich auch in diesen Instanzen ausführen möchte.
Dummy-Beispiel für eine globale Klasse:
New Namespace("BASICS",
{
BASIC_FUNCTION = Function({A, B},
C = A * B;
Print(C);
Return(C);
);
}
);
Und das ist meine Handle-Funktion für den Submit-Button. THIS_WN ist die Klasse, die das Fenster und die Schaltfläche enthält.
NS ist der Namespace innerhalb dieser Klasse.
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);
);Ich kann den Befehl ausführen und das sql/datatable-Ergebnis erhalten. Ich habe auch die Kontrolle über das Fenster innerhalb des lokalen Bereichs hier. Aber nach der Auswertung des Befehls kann ich wirklich nichts anderes tun. Ab "//CASES" funktionieren alle Beispiele nicht und sagen, dass es in dieser Klasse keine definierte Variable gibt.
Gibt es eine Möglichkeit, nach einem „hier lokal“-Abschnitt „zur Klasse zurückzukehren“?
Danke im Voraus !
@D_G tut mir leid, dass auf deine Frage keine Antwort kam. Benutzerdefinierte Klassen sind relativ neu und nur wenige Leute sind mit ihrer Verwendung vertraut. Ich habe nicht mit Klassen (innerhalb von JSL) gearbeitet, aber es war auf meiner Liste von JSL-Themen, über die ich mehr erfahren möchte. Ich schaue mir an, was Sie zu tun versuchen, und schaue, ob ich Ihnen weitere Informationen geben kann.