簡體   English   中英

在表表達式中組合條件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM