Comment remplacer le texte dans JSL via l'interface utilisateur (une boîte de dialogue)Salut,
J'ai utilisé SQL dans mon JSL, j'ai déclaré 4 variables et défini la valeur requise (voir le script ci-dessous)
Ce que je veux, c'est créer une nouvelle fenêtre comme interface utilisateur. lors de l'exécution de ce JSL, ouvrez d'abord la fenêtre pour permettre à l'utilisateur de saisir différentes valeurs pour les variables.
Par exemple:
1ère exécution JSL, entrée utilisateur: x, y, z, n pour les 4 variables, pour obtenir l'effet comme ci-dessous:
définir @spec = 'x'
définir @opn = 'y'
set @Loss = 'z'
définir @day = n
2ème exécution JSL, entrée utilisateur: a, b, c, m pour les 4 variables, pour obtenir l'effet comme ci-dessous:
set @spec = 'a'
définir @opn = 'b'
set @Loss = 'c'
définir @day = m
==========================================
Scénario:
Noms par défaut ici (1);
ODBC = Créer une connexion à la base de données ("___");
SQL = "
déclarer @spec varchar (50)
déclarer @opn varchar (50)
déclarer @Loss varchar (50)
declare @day int
définir @spec = 'xxx'
set @opn = 'yyy'
set @Loss = 'zzz'
définir @day = n
sélectionnez * dans dt
''
Je le sens difficile pour moi depuis que j'ai recherché la communauté, je n'ai trouvé aucun indice à ce sujet.
Je fais donc une nouvelle discussion pour demander de l'aide.
Toute aide serait appréciée.
Dans l'attente de votre aide.
Merci.
Re: Comment remplacer le texte dans JSL via l'interface utilisateur (une fenêtre de dialogue)Il existe un nombre illimité de façons d'accomplir ce que vous voulez. Voici une interface simple, utilisant votre pseudo-code. Vous devez vraiment lire les sections du Guide de script sur l'utilisation des objets d'affichage
Names Default To Here( 1 );
nw = New Window( "Set Values",
Lineup Box( N Col( 2 ),
Text Box( "Set Spec" ),
specCB = Combo Box( {"x", "y", "z", "n"}, specVal = specCB << get Selected() ),
Text Box( "Set opn" ),
opnCB = Combo Box( {"x", "y", "z", "n"}, opnVal = opnCB << get Selected() ),
Text Box( "Set Loss" ),
lossCB = Combo Box( {"x", "y", "z", "n"}, lossVal = lossCB << get Selected() ),
Text Box( "Set day" ),
dayCB = Combo Box( {"x", "y", "z", "n"}, dayVal = dayCB << get Selected() )
),
theOK = Button Box( "OK",
// Build the statements to be executed
theExpr = "ODBC = Create Database Connection( \!"___\!" );
SQL =\!"
declare " || specVal || " varchar(50)
declare " || opnVal || " varchar(50)
declare " || lossVal || " varchar(50)
declare " || dayVal || " int
set " || specVal || " = 'xxx'
set " || opnVal || " = 'yyy'
set " || lossVal || " = 'zzz'
set " || dayVal || " = n
select * from dt
";
show(theExpr);
// run the expression (uncomment when code is real)
//Eval( Parse( theExpr ) );
nw << close window;
)
);
Re: Comment remplacer le texte dans JSL via l'interface utilisateur (une fenêtre de dialogue)Je ne sais pas si le nom du sujet peut être renommé.
Pour mémoire: le sujet devrait être - comment passer la variable JSL à la variable SQL via l'interface utilisateur.
Re: Comment remplacer le texte dans JSL via l'interface utilisateur (une fenêtre de dialogue)Salut txnelson,
Merci beaucoup pour les conseils avec le script complet.
J'ai appris la nouvelle fenêtre avec le paramètre de zone de liste déroulante pour créer l'interface utilisateur avec une variable définie.
La chose délicate est de savoir comment utiliser la variable JSL pour remplacer la variable SQL.
J'ai appris une chose similaire dans le lien ci-dessous: Comment obtenir le contenu de la zone d'édition de texte en "variable"?
Grâce à @pmroz .
et je fais fonctionner mon script comme prévu.
Voici mon dernier script pour information.
==============================
Names Default To Here( 1 );
specVal = "";
NW = New Window( "Input Spec",
<<MODAL></MODAL>