我使用了一个BROWSE小部件来显示搜索结果。搜索基于TEMP-TABLE中的几个可用字段之一。
我想要做的是将匹配字段的格式动态设置为“x(16)”而不是“x(11)”。匹配的字段名称存储在变量中。
以下示例是静态浏览,其中搜索基于“desc1”,我想使其动态化,以便无论匹配字段如何都可以使用它来显示结果。
DEFINE BROWSE brResults
QUERY qResults
DISPLAY
ttRowsmaj.desc1 FORMAT "x(16)" COLUMN-LABEL "Desc 1"
ttRowsmaj.desc2 FORMAT "x(11)" COLUMN-LABEL "Desc 2"
ttRowsmaj.desc3 FORMAT "x(11)" COLUMN-LABEL "Desc 3"
ttRowsmaj.desc4 FORMAT "x(11)" COLUMN-LABEL "Desc 4"
ttRowsmaj.desc5 FORMAT "x(11)" COLUMN-LABEL "Desc 5"
WITH 11 DOWN MULTIPLE NO-BOX.
任何人都可以帮我这么做吗?
答案 0 :(得分:2)
您可以设置缓冲区字段的格式,如下所示:
ttRowsmaj.desc3:FORMAT IN BROWSE brResults = "x(16)".
但它只会更改DISPLAY格式,而不会更改列的宽度。要设置宽度:
ttRowsmaj.desc3:WIDTH IN BROWSE brResults = 20.
或更具活力的方法:
DEFINE VARIABLE iCol AS INTEGER NO-UNDO.
DEFINE VARIABLE cSearchField AS CHARACTER NO-UNDO.
/* Assuming search-field was "desc4" */
ASSIGN
cSearchField = "desc4".
/* Go through all columns */
DO iCol = 1 TO BROWSE brResults:NUM-COLUMNS.
/* If column name matches serch*/
IF BROWSE brResults:GET-BROWSE-COLUMN(iCol):NAME = cSearchField THEN DO:
/* Set format & width */
BROWSE brResults:GET-BROWSE-COLUMN(iCol):FORMAT = "X(16)".
BROWSE brResults:GET-BROWSE-COLUMN(iCol):WIDTH = 25.
END.
END.