如何透過使用者介面(對話方塊視窗)取代 JSL 中的文本你好,
我一直在 JSL 中使用 SQL,並聲明了 4 個變數並設定了所需的值。(請參閱下面的腳本)
我想要的是建立一個新視窗作為使用者介面。運行此 JSL 時,首先彈出視窗以允許使用者為變數輸入不同的值。
例如:
第一次執行JSL,使用者輸入:x,y,z,n 4個變量,達到以下效果:
設定@spec = 'x'
設定@opn = 'y'
設定@Loss = 'z'
設定@day = n
第二次執行JSL,使用者輸入:a,b,c,m 4個變量,達到以下效果:
設定@spec = 'a'
設定@opn = 'b'
設定@Loss = 'c'
設定@day = m
===========================================
腳本:
名稱預設為此處( 1 );
ODBC = 建立資料庫連線( "___" );
SQL = =
聲明@spec varchar(50)
聲明 @opn varchar(50)
聲明 @Loss varchar(50)
聲明@day int
設定@spec = 'xxx'
設定@opn = 'yyy'
設定@Loss = 'zzz'
設定@day = n
從 dt 中選擇 *
」
自從我查了一下社區後,我覺得這對我來說很困難,沒有發現任何關於這方面的線索。
所以我正在進行新的討論以尋求幫助。
任何幫助將不勝感激。
期待您的幫忙。
謝謝。
回覆:如何透過使用者介面(對話方塊視窗)取代 JSL 中的文字不知道主題名是否可以重新命名。
僅供記錄:主題應該是 - 如何透過使用者介面將 JSL 變數傳遞給 SQL 變數。
回覆:如何透過使用者介面(對話方塊視窗)取代 JSL 中的文字嗨特克斯尼爾森,
非常感謝您提供完整腳本的指導。
我學習了帶有組合框設定的新窗口,以創建具有定義變數的使用者介面。
棘手的是如何使用JSL變數來替換SQL變數。
我在下面的連結中學到了類似的東西:如何將文字編輯框的內容放入「變數」中?
謝謝@pmroz 。
我讓我的腳本按預期工作。
這是我最後的資訊手稿。
==================================
Names Default To Here( 1 );
specVal = "";
NW = New Window( "Input Spec",
<<MODAL></MODAL>
回覆:如何透過使用者介面(對話方塊視窗)取代 JSL 中的文字有無限的方法來完成你想要的事情。下面是一個使用偽代碼的簡單介面。您確實需要閱讀腳本指南中有關使用顯示物件的部分
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;
)
);