我是一个进步的新手,下面是我当前的代码,其中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