[英]Combine conditions in table expression?
我正在使用line_index
函數,並想搜索兩個值,不僅是carrid
,還包括connid
。 可能嗎? 如果真是這樣,那么是以哪種方式?
因為現在,這有效:
lv_index = line_index( lt[ carrid = 'LH' ] ).
但是在像這樣添加代碼[ connid = '2407' ]
之后:
lv_index = line_index( lt[ carrid = 'LH' ][ connid = '2407' ] ).
我收到語法錯誤:
LT[ ] 不是內部表
所有字段(條件)在一個括號內一個接一個:
lv_index = line_index( lt[ carrid = 'LH'
connid = '2407' ] ).
我想評論一下Table Expressions的鏈接。
因此,對應於 OP 示例的答案是,必須使用單個表表達式( itab[...]
)和所需的盡可能多的組件,而不是像以前那樣使用表表達式鏈( itab[...][...]
)。
lt[ carrid = 'LH' ][ connid = '2407' ]
永遠不會有效(因為connid = '2407'
意味着LT
的每一行本身就是一個內部表,但carrid = 'LH'
是矛盾的,因為它意味着LT
的每一行都是一個結構)。
但是鏈表表達式的其他語法可能是有效的,例如 eg(假設內部表定義充分)
itab[ 1 ][ comp1 = 'A' ]
itab[ comp1 = 'A' ][ 1 ]
itab[ comp1 = 'A' ]-itabx[ compx = 42 ]
這是一個你可以玩的例子:
TYPES: BEGIN OF ty_structure,
connid TYPE c LENGTH 4,
END OF ty_structure,
ty_table TYPE STANDARD TABLE OF ty_structure WITH EMPTY KEY,
BEGIN OF ty_structure_2,
carrid TYPE c LENGTH 2,
table TYPE ty_table,
END OF ty_structure_2,
ty_table_2 TYPE STANDARD TABLE OF ty_structure_2 WITH EMPTY KEY,
ty_table_3 TYPE STANDARD TABLE OF ty_table_2 WITH EMPTY KEY.
DATA(lt) = VALUE ty_table_3( ( VALUE #( ( carrid = 'LH' table = VALUE #( ( connid = '2407' ) ) ) ) ) ).
DATA(structure) = lt[ 1 ][ carrid = 'LH' ]-table[ connid = '2407' ].
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.