Hallo zusammen,
Ich habe eine Frage zu JMP-Klassen. Ich verwende benutzerdefinierte Klassen, um Instanzen als Schnittstelle für benutzerdefinierte (SQL-)Anfragen zu erstellen. Diese Klassen enthalten unter anderem einen Namensraum, ein Fenster und einen Button. Es funktioniert ziemlich gut – ich habe jedoch 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. DIES_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 im lokalen Hier-Bereich. Nach der Auswertung des Befehls kann ich jedoch wirklich nichts anderes mehr tun. Ab „//CASES“ funktionieren alle Beispiele nicht, was bedeutet, dass es innerhalb dieser Klasse keine definierte Variable gibt.
Gibt es eine Möglichkeit, nach einem Abschnitt „Hier vor Ort“ „zur Klasse zurückzukehren“?
Vielen Dank im Voraus !
@D_G Es tut mir leid, dass auf Ihre Frage keine Antwort erfolgt ist. 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 stand auf meiner Liste der JSL-Themen, über die ich mehr erfahren wollte. Ich werde mir ansehen, was Sie tun möchten, und sehen, ob ich Ihnen weitere Informationen geben kann.