【发布时间】:2019-03-17 08:00:52
【问题描述】:
我是 Progress 和编程的初学者,希望能得到一些帮助。
尝试编写连接到浏览器的查询。在我的窗口中还有一个无线电集(对浏览器进行排序,例如按名称或年龄) 和一个填写(如果那里写了任何东西并且“确定”被推送,那么只有帖子 姓氏以所写内容开头的地方将显示在浏览器中。
radiset 有一个默认值,在更改值时,浏览器会再次打开。
我尝试编写如下查询,并且通过无线电集进行排序有效,但不是填充(显示它不理解查询的错误消息):
DEFINE INPUT PARAMETER pfiSurname AS CHARACTER NO-UNDO.
DEFINE VARIABLE cQuery AS CHARACTER NO-UNDO.
DEFINE VARIABLE hQueryHandle AS HANDLE NO-UNDO.
&SCOPED-DEFINE BROWSER brMembers
DO WITH FRAME {&FRAME-NAME}:
ASSIGN rsSort.
IF fiSurname = '' THEN
ASSIGN cQuery = 'FOR EACH Member NO-LOCK by member.' + rsSort.
ELSE
ASSIGN cQuery = 'FOR EACH member NO-LOCK WHERE member.surname BEGINS'
+ fiSurname + 'BY member.' + rsSort.
hQueryHandle = {&BROWSER}:QUERY.
hQueryHandle:QUERY-PREPARE(cQuery).
hQueryHandle:QUERY-OPEN().
END.
END PROCEDURE.
【问题讨论】:
-
显示错误消息的实际文本可能会有所帮助。我最好的猜测是 rsSort 没有价值,因此,cQuery 会导致无效的 QUERY-PREPARE()。可能是因为“ASSIGN rsSort”。应该是“分配输入 rsSort”。如果此代码是用户界面触发器的主体。但很难说,因为这只是真实代码的一小部分,实际错误未知。
标签: openedge progress-4gl