Bonjour à tous,
J'ai une question concernant les classes JMP. J'utilise des classes personnalisées pour créer des instances comme interface pour les requêtes personnalisées (sql). Ces classes contiennent entre autres un espace de noms, une fenêtre et un bouton. Cela fonctionne plutôt bien - mais j'ai des classes générales/globales que je souhaite également exécuter dans ces instances.
Échantillon factice pour une classe globale :
New Namespace("BASICS",
{
BASIC_FUNCTION = Function({A, B},
C = A * B;
Print(C);
Return(C);
);
}
);
Et c'est ma fonction de handle pour le bouton de soumission. THIS_WN est la classe contenant la fenêtre et le bouton.
N.-É. est l'espace de noms au sein de cette classe.
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);
);Je peux exécuter la commande et obtenir le résultat sql/datatable. J'ai également le contrôle sur la fenêtre dans la section locale ici. Cependant, après avoir évalué la commande, je ne peux vraiment rien faire d'autre. À partir de "//CASES", tous les exemples ne fonctionnent pas, indiquant qu'il n'y a pas de variable définie dans cette classe.
Existe-t-il un moyen de « revenir en classe » après une section « local ici » ?
Merci d'avance !
@D_G désolé qu'il n'y ait pas eu de réponse à votre question. Les classes personnalisées sont relativement nouvelles et peu de personnes connaissent leur utilisation. Je n'ai pas travaillé avec des classes (dans JSL), mais cela figurait sur ma liste de sujets JSL pour en savoir plus. Je vais jeter un œil à ce que vous essayez de faire et voir si je peux vous obtenir plus d'informations.