如何从相同的多条记录中获取一条记录?
How can I get one record from same multiple records?
您好,我写了一个需要在下拉框中显示数据的查询。让我分享我写的查询
DEFINE TEMP-TABLE tt_seq_report.
FIELD tt_seq_report.neutral_part_obj AS DECIMAL
FIELD tt_seq_report.patt_id AS CHARACTER
FIELD tt_seq_report.npai_info2 AS CHARACTER.
EMPTY TEMP-TABLE tt_seq_report.
FOR EACH gdmf_neutral_part NO-LOCK :
FIND FIRST gdcf_part_type WHERE gdcf_part_type.part_type_obj EQ gdmf_neutral_part.part_type_obj NO-LOCK NO-ERROR.
CREATE tt_seq_report.
ASSIGN
tt_seq_report.neutral_part_obj = gdmf_neutral_part.neutral_part_obj
tt_seq_report.patt_id = gdcf_part_type.patt_id WHEN AVAILABLE gdcf_part_type
tt_seq_report.npai_info2 = gdmf_neutral_part.npai_info2.
END.
/* Written in window main block */
FOR EACH tt_seq_report NO-LOCK :
coCombo-2:ADD-LAST(tt_seq_report.patt_id).
END.
FOR EACH tt_seq_report NO-LOCK :
coCombo-3:ADD-LAST(tt_seq_report.npai_info2).
END.
/*
If you see tt_seq_report.patt_id and tt_seq_report.npai_info2 data is
i.e tt_seq_report.patt_id -BFA
tt_seq_report.npai_info2 -23
tt_seq_report.patt_id -BFA (same id)
tt_seq_report.npai_info2 -24
tt_seq_report.patt_id -SS
tt_seq_report.npai_info2 -23
tt_seq_report.patt_id -SS (same id)
tt_seq_report.npai_info2 -24
tt_seq_report.patt_id -ABS
tt_seq_report.npai_info2 -23
tt_seq_report.patt_id -ABS (same id)
tt_seq_report.npai_info2 -24
and so on.
*/
所以这里 tt_seq_report.patt_id 对于一组记录是相同的,但是 tt_seq_report.npai_info2 对于每条记录都不会相同。如果 tt_seq_report.patt_id 是 BFA、SS、ABS 但它有很多,我可以使用 where 条件。
如果我 运行 这个 window 那么我可以在下拉框中得到多个相同的 tt_seq_report.patt_id。
即一旦我们select下拉框显示如下记录
CustID(保管箱的标签名称)值(保管箱的标签名称)
博鳌亚洲论坛 23
博鳌亚洲论坛24
SS 23
春夏 24
ABS 23
ABS 24
但我的预期输出应该是
CustID(保管箱的标签名称)值(保管箱的标签名称)
博鳌亚洲论坛 23
24
春夏 23
24
ABS 23
24
请帮忙解决这个问题。谢谢。
试试这个
FOR EACH tt_seq_report NO-LOCK :
If lookup(tt_seq_report.patt_id, ccombo2:list-items) = 0 then
coCombo-2:ADD-LAST(tt_seq_report.patt_id).
END.
我不知道你的范围,我是在移动设备上做的,所以你可能需要将它更改为 list-items in frame {&frame-name) 或你的真实框架名称,如果它不是 {&frame -姓名}.
编辑:由于您要求替代方案,您也可以这样做:
FOR EACH tt_seq_report NO-LOCK
BREAK BY tt_seq_report.patt_id:
If first-of(tt_Seq_report.patt_id) then
coCombo-2:ADD-LAST(tt_seq_report.patt_id).
END.
您好,我写了一个需要在下拉框中显示数据的查询。让我分享我写的查询
DEFINE TEMP-TABLE tt_seq_report.
FIELD tt_seq_report.neutral_part_obj AS DECIMAL
FIELD tt_seq_report.patt_id AS CHARACTER
FIELD tt_seq_report.npai_info2 AS CHARACTER.
EMPTY TEMP-TABLE tt_seq_report.
FOR EACH gdmf_neutral_part NO-LOCK :
FIND FIRST gdcf_part_type WHERE gdcf_part_type.part_type_obj EQ gdmf_neutral_part.part_type_obj NO-LOCK NO-ERROR.
CREATE tt_seq_report.
ASSIGN
tt_seq_report.neutral_part_obj = gdmf_neutral_part.neutral_part_obj
tt_seq_report.patt_id = gdcf_part_type.patt_id WHEN AVAILABLE gdcf_part_type
tt_seq_report.npai_info2 = gdmf_neutral_part.npai_info2.
END.
/* Written in window main block */
FOR EACH tt_seq_report NO-LOCK :
coCombo-2:ADD-LAST(tt_seq_report.patt_id).
END.
FOR EACH tt_seq_report NO-LOCK :
coCombo-3:ADD-LAST(tt_seq_report.npai_info2).
END.
/*
If you see tt_seq_report.patt_id and tt_seq_report.npai_info2 data is
i.e tt_seq_report.patt_id -BFA
tt_seq_report.npai_info2 -23
tt_seq_report.patt_id -BFA (same id)
tt_seq_report.npai_info2 -24
tt_seq_report.patt_id -SS
tt_seq_report.npai_info2 -23
tt_seq_report.patt_id -SS (same id)
tt_seq_report.npai_info2 -24
tt_seq_report.patt_id -ABS
tt_seq_report.npai_info2 -23
tt_seq_report.patt_id -ABS (same id)
tt_seq_report.npai_info2 -24
and so on.
*/
所以这里 tt_seq_report.patt_id 对于一组记录是相同的,但是 tt_seq_report.npai_info2 对于每条记录都不会相同。如果 tt_seq_report.patt_id 是 BFA、SS、ABS 但它有很多,我可以使用 where 条件。
如果我 运行 这个 window 那么我可以在下拉框中得到多个相同的 tt_seq_report.patt_id。
即一旦我们select下拉框显示如下记录 CustID(保管箱的标签名称)值(保管箱的标签名称)
博鳌亚洲论坛 23 博鳌亚洲论坛24 SS 23 春夏 24 ABS 23 ABS 24
但我的预期输出应该是
CustID(保管箱的标签名称)值(保管箱的标签名称)
博鳌亚洲论坛 23 24
春夏 23 24
ABS 23 24
请帮忙解决这个问题。谢谢。
试试这个
FOR EACH tt_seq_report NO-LOCK :
If lookup(tt_seq_report.patt_id, ccombo2:list-items) = 0 then
coCombo-2:ADD-LAST(tt_seq_report.patt_id).
END.
我不知道你的范围,我是在移动设备上做的,所以你可能需要将它更改为 list-items in frame {&frame-name) 或你的真实框架名称,如果它不是 {&frame -姓名}.
编辑:由于您要求替代方案,您也可以这样做:
FOR EACH tt_seq_report NO-LOCK
BREAK BY tt_seq_report.patt_id:
If first-of(tt_Seq_report.patt_id) then
coCombo-2:ADD-LAST(tt_seq_report.patt_id).
END.