我是一個進步的新手,下面是我當前的代碼,其中tableNames和fieldnames更改爲保護無辜者。我想循環訪問數據庫中的記錄,並在該循環內包含一個按鈕,以便在每個記錄逐一循環時,如果有人想要改變他們可以做的事情。我有下面的代碼循環通過記錄罰款(沒有下面的按鈕元素),我有按鈕元素在單獨的緩衝區中工作正常,但是當我把按鈕放入循環循環運行正常,但停止後的第一個按鈕。當我嘗試繼續運行按鈕代碼時。我想包含一個按鈕,但它只在單擊時運行該過程。如果我刪除'WAIT-FOR WINDOW-CLOSE OF CURRENT-WINDOW'行。循環繼續,因爲我想和按鈕出現,但該按鈕呈現不可點擊。任何幫助apprecaited。循環中的按鈕
define variable cInsertCompany as character format "x(50)" label "Enter the company name:" no-undo.
define variable cCompanyName as character format "x(50)".
prompt-for cInsertCompany.
assign cCompanyName = input cInsertCompany.
for each tableName where client = 'tgl',
each otherTableName where tableName.ref = otherTableName.ref and TableName.name matches '*' + cCompanyName + '*':
display
tablename.nrname
tablename.otherfield.
DEFINE BUTTON bUpdate LABEL "Update".
DEFINE FRAME btn-frame WITH SIZE 10 BY 2.
ENABLE bUpdate WITH FRAME btn-frame.
ON CHOOSE OF bUpdate DO:
RUN btn-mess.
END.
VIEW FRAME btn-frame.
WAIT-FOR WINDOW-CLOSE OF CURRENT-WINDOW.
PROCEDURE btn-mess.
MESSAGE "Hello" SKIP "You have selected the new button"
VIEW-AS ALERT-BOX INFO BUTTONS OK.
END PROCEDURE.
end.
你如何期待按鍵反應?您顯示該按鈕並將其顯示出來,但隨後會繼續循環,除非您單擊該按鈕。您的循環中沒有任何內容可以停止每條記錄,並等待按鈕被按下或不按。你是否期望用戶以某種方式承認他們已經完成了當前的記錄?如果沒有等待,你在程序中沒有意義處理事件。我認爲你需要預先選擇而不是每個,然後根據其他事件(按鍵向上/向下)手動推進bufffer。 – Screwtape
我認爲你正在嘗試爲此使用錯誤的技術。查詢查詢和瀏覽 - 它們使您能夠放置用戶可以滾動瀏覽的瀏覽窗口,然後可以使用按鈕指示用戶何時想要更改記錄。 –
您將啓動.p'異步',並在返回之前使.p進程成爲循環的一部分,然後您可以檢查按鈕是否已單擊,但「異步」可能非常複雜。這絕對是你想要完成你正在談論的內容。 – Bill