点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,专家们,我尝试在ABAP中使用FOR循环的VALUE语句来构建新表。 FILTER语句不适合我,因为声明内部表的表键使我很费劲。 所以说那不是一个选择。
我尝试了使用FOR循环创建内部表的各种变体,以查看发生了什么。 每当条件不适合时,带有ELSE条件的最后一条语句都会添加一个空行。
那么如何防止添加空行? 我以为要添加CONTINUE关键字,但是语法检查不允许。
我的问题:是否可以有条件地退出此FOR IN循环?
SPAN { 字体家族:" Courier New"; 字体大小:10pt; 颜色:#000000; 背景:#FFFFFF; } .L0S31 { 字体样式:斜体; 颜色:#808080; } .L0S33 { 颜色:#4DA619; } .L0S52 { 颜色:#0000FF; } .L0S55 { 颜色:#800080; } .L0S70 { 颜色:#808080; } 类型:开始于ly_table, 标记TYPE boole_d, category_id TYPE zdb_psets-category_id, 文字TYPE字符串, ly_table的结尾。 数据lv_category类型zdb_psets-category_id值'19210000'。 ly_table的数据lt_table类型表。 ly_table的数据lt_table_filtered类型表。 数据empty_line类似于lt_table的行。 "创建表: lt_table = VALUE#((flag = abap_true category_id = '19 *'text ='blabla')(flag = abap_true category_id ='1922'text ='hello world')))。 如果lt_table是INITIAL。 返回。 万一。 *"过滤器表 lt_table_filtered = VALUE#(在lt_table中输入wa(标志EQ abap_true)(wa))。 * BREAK-POINT。 * "如果条件不合适,这会增加一个空行。还不错,但不是很好 lt_table_filtered = VALUE#(在lt_table WHERE中输入(标志EQ abap_true)(cond#(当lv_category CP wa-category_id然后wa else empty_line)))。 * BREAK-POINT。 "没有其他条件 lt_table_filtered = VALUE#(在lt_table中输入wa(标志EQ abap_true)(cond#(当lv_category CP wa-category_id然后wa)))。 BREAK-POINT。
感谢 Sandra Rossi
设置Brekets Right需要一些时间。 但是现在它可以在不添加空行的情况下工作了。
我不知道LINES OF COND语句。
Sandra Rossi 无法奖励您,因为您的回答是评论。 :-(
这是有效的编码:
我并没有确切地看您的问题,但是如果您想在每个循环中添加一行或零行,一种解决方法是使用LINES OF(每行1的itab) 或0行)。 哑巴示例,仅使用SEATSOCC
一周热门 更多>