2017-06-29 25 views
0

我試圖動態地創建一組按鈕,使用此代碼:正在進行填充一個臨時表與小部件手柄ABL

DEFINE VAR temp-hand AS WIDGET-HANDLE. 
DEFINE INPUT PARAMETER ipc AS CHARACTER NO-UNDO. 
    &global-define X VALUE(v + ipc) 

    CREATE BUTTON temp-hand 
    ASSIGN 
     FRAME = FRAME btn-frame:HANDLE 
     ROW = vdeInicio 
     COLUMN = 10 
     WIDTH = 19 
     LABEL = ipc 
     SENSITIVE = TRUE 
     VISIBLE = TRUE 
    TRIGGERS: 
     ON CHOOSE PERSISTENT RUN btn-mess IN THIS-PROCEDURE. 
    END TRIGGERS. 
    temp-hand:LOAD-IMAGE("imagenes/Entradas"). 
    vdeInicio = vdeInicio + 3.57. 

這工作,當我解決一個按鈕控件,也如果編寫一個循環並調用一個包含此代碼的過程,它會創建多個按鈕,但指向一個句柄,一些人告訴我創建臨時表並在那裏保存小部件句柄可能會起作用,但我不知道如何填充你可以幫我這個,

回答

2

類似這樣的:

define temp-table tt_buttonList no-undo 
    field buttonId as integer 
    field buttonHandle as widget-handle 
. 

define variable i as integer no-undo. 

do i = i to 5: 

    create tt_buttonList. 

    tt_buttonList.buttonId = i. 

    CREATE BUTTON tt_buttonList.buttonHandle 
    ASSIGN FRAME = FRAME btn-frame:HANDLE /* this is undefined in your example -- I have no idea where it came from */ 
    ROW = i * 4 
    COLUMN = 10 
    WIDTH = 19 
    LABEL = string(i) 
    SENSITIVE = TRUE 
    VISIBLE = TRUE 
    . 

end. 

我不知道你爲什麼要從觸發器程序運行這樣的代碼。雖然它可能「有效」,但將UI混合到db訪問代碼中確實會造成嚴重的麻煩。

+0

對不起,我發送的只是psrt的代碼幀定義在別的地方。 –

+0

我需要這個來創建一個選項的列表,這些選項會改變某些表的內容,所以我需要讀取表(未知數的記錄),並創建兒子許多按鈕作爲選項。所有這些都是因爲UI將在觸摸屏上運行。 –

+0

這並沒有解釋或證明在觸發器中運行它 –