尝试编写连接到排序浏览器的查询
Trying to write query connected to sort browser
我是 Progress 和编程的初学者,如果能得到一些帮助,我将不胜感激。
正在尝试编写连接到浏览器的查询。在我的 window 中还有一个收音机(它对浏览器进行排序,例如按姓名或年龄排序)
和一个填充物(如果那里写了任何东西并且 "ok" 被推送那么只有帖子
在浏览器中显示姓氏开头的任何内容。
radioset 有一个默认值,在值更改时浏览器会再次打开。
我试过像下面这样编写我的查询,并且按 radioset 排序有效,但不是填充(显示它不理解查询的错误消息):
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.
在 fiSurname 周围添加 QUOTER() 并在引号
中的 BEGINS 之后和 BY 之前添加额外的 SPACE
您需要在字符串位前后 space,将姓氏用引号引起来,并将屏幕值用于 rsSort 位。只是为了帮助您理解第一部分,消息查询字符串。你会看到这样的东西:
对于 member.surname beginsEllenby member.chosenfield
的每个成员无锁
应该什么时候
对于每个 member.surname 从 "Ellen" 开始 member.chosenfield
的成员无锁
为了确保安全,我会告知 rsSort 的值
所以我建议你改成
ASSIGN cQuery = 'FOR EACH member NO-LOCK WHERE member.surname BEGINS '
+ Quoter(fiSurname) + ' BY member.' + rsSort:screen-value.
就像我说的,把整个事情都发消息,复制它并尝试直接在进度中写它window,我发现以这种方式调试这些动态查询对我有很大帮助。
我是 Progress 和编程的初学者,如果能得到一些帮助,我将不胜感激。
正在尝试编写连接到浏览器的查询。在我的 window 中还有一个收音机(它对浏览器进行排序,例如按姓名或年龄排序) 和一个填充物(如果那里写了任何东西并且 "ok" 被推送那么只有帖子 在浏览器中显示姓氏开头的任何内容。
radioset 有一个默认值,在值更改时浏览器会再次打开。
我试过像下面这样编写我的查询,并且按 radioset 排序有效,但不是填充(显示它不理解查询的错误消息):
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.
在 fiSurname 周围添加 QUOTER() 并在引号
中的 BEGINS 之后和 BY 之前添加额外的 SPACE您需要在字符串位前后 space,将姓氏用引号引起来,并将屏幕值用于 rsSort 位。只是为了帮助您理解第一部分,消息查询字符串。你会看到这样的东西: 对于 member.surname beginsEllenby member.chosenfield
的每个成员无锁应该什么时候 对于每个 member.surname 从 "Ellen" 开始 member.chosenfield
的成员无锁为了确保安全,我会告知 rsSort 的值 所以我建议你改成
ASSIGN cQuery = 'FOR EACH member NO-LOCK WHERE member.surname BEGINS '
+ Quoter(fiSurname) + ' BY member.' + rsSort:screen-value.
就像我说的,把整个事情都发消息,复制它并尝试直接在进度中写它window,我发现以这种方式调试这些动态查询对我有很大帮助。