So ersetzen Sie den Text in JSL über die Benutzeroberfläche (ein Dialogfenster)Hallo,
Ich habe SQL in meiner JSL verwendet, 4 Variablen deklariert und den erforderlichen Wert festgelegt (siehe Skript unten).
Ich möchte ein neues Fenster als Benutzeroberfläche erstellen. Wenn Sie diese JSL ausführen, öffnen Sie zuerst das Fenster, damit der Benutzer verschiedene Werte für die Variablen eingeben kann.
Zum Beispiel:
Führen Sie zunächst JSL aus, Benutzereingabe: x,y,z,n für die 4 Variablen, um den folgenden Effekt zu erzielen:
setze @spec = 'x'
setze @opn = 'y'
setze @Loss = 'z'
setze @day = n
2. JSL ausführen, Benutzereingabe: a,b,c,m für die 4 Variablen, um den folgenden Effekt zu erzielen:
setze @spec = 'a'
setze @opn = 'b'
setze @Loss = 'c'
setze @day = m
=======================================
Skript:
Namen standardmäßig hier( 1 );
ODBC = Datenbankverbindung erstellen( "___" );
SQL="
deklariere @spec varchar(50)
deklariere @opn varchar(50)
deklariere @Loss varchar(50)
deklariere @day int
setze @spec = 'xxx'
setze @opn = 'yyy'
setze @Loss = 'zzz'
setze @day = n
Wählen Sie * aus dt
''
Es fällt mir schwer, da ich in der Community nachgeschaut habe und keinen Hinweis darauf gefunden habe.
Deshalb beginne ich eine neue Diskussion, um um Hilfe zu bitten.
Jede Hilfe wird geschätzt.
Ich freue mich auf Ihre Hilfe.
Danke.
Betreff: So ersetzen Sie den Text in JSL über die Benutzeroberfläche (ein Dialogfenster)Ich weiß nicht, ob der Betreffname umbenannt werden kann.
Nur zur Erinnerung: Der Betreff sollte lauten: Wie übergibt man die JSL-Variable über die Benutzeroberfläche an eine SQL-Variable?
Betreff: So ersetzen Sie den Text in JSL über die Benutzeroberfläche (ein Dialogfenster)Hallo Txnelson,
Vielen Dank für die Anleitung mit vollständigem Skript.
Ich habe das neue Fenster mit der Kombinationsfeldeinstellung gelernt, um die Benutzeroberfläche mit definierten Variablen zu erstellen.
Das Schwierige daran ist, wie man die JSL-Variable verwendet, um die SQL-Variable zu ersetzen.
Ähnliches habe ich im folgenden Link gelernt: Wie bekomme ich den Inhalt des Textbearbeitungsfelds in eine „Variable“?
Dank an @pmroz .
und ich sorge dafür, dass mein Skript wie erwartet funktioniert.
Hier ist mein letztes Informationsskript.
==============================
Names Default To Here( 1 );
specVal = "";
NW = New Window( "Input Spec",
<<MODAL></MODAL>
Betreff: So ersetzen Sie den Text in JSL über die Benutzeroberfläche (ein Dialogfenster)Es gibt unbegrenzte Möglichkeiten, das zu erreichen, was Sie wollen.Unten finden Sie eine einfache Schnittstelle, die Ihren Pseudocode verwendet.Sie müssen unbedingt die Abschnitte des Scripting Guide zur Verwendung von Anzeigeobjekten lesen
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;
)
);