ABAP 動態where 使用

2022-03-12 14:47:50 字數 1262 閱讀 7667

report  ztest001_xch.

tables: makt.

data where_tab(

80) occurs 10

with header line.

data : wa_itab like makt occurs

10with header line.

parameters: s_trx like makt-matnr obligatory,

lan like makt-spras obligatory.

initialization.

move 'en

'to lan.

start-of-selection.

call function

'conversion_exit_alpha_output

'exporting

input =s_trx

importing

output =s_trx.

concatenate

'matnr like ''%

' s_trx '

%'''

into where_tab.

concatenate

'and spras =

''' lan ''''

into where_tab.

clear where_tab.

select *from makt into table wa_itab where (where_tab).

end-of-selection.

loop at wa_itab.

write:/ wa_itab-matnr,wa_itab-spras.

endloop.

一些教訓:單引號是特殊字元,如果要用到單引號,必須得轉義,'',即兩個單引號。sql語句查詢條件為字元時,需要加單引號。concatenate ' and spras = ''' lan '''' into where_tab. 實際上是三個字串連線成乙個字串存放到內錶中,and spras = '變數',前面是乙個字串,and spras = '',中間是乙個變數 lan,後面是乙個單引號'' ,所以合起來就是 concatenate ' and spras = ''' lan '''' into where_tab.

關於字串的連線和單引號的使用,需要去體會和實踐一下。這是關於在sap中如何多條件語句的使用示例。

注意:where (where_tab) 。括號必須緊跟著這個內錶,不能有空格。

ABAP動態內錶

定義的動態內錶,對應內錶一行的工作區 field symbols type standard table type any.form create dynamic table data lt fcat type slis t fieldcat alv,ls fcat like line of lt ...

ABAP動態取得資料

abap 動態查詢的實現 可以完全實現動態查詢,每個欄位都可以動態。1 利用巨集 2 利用abap指標 3 利用 field symbol 具體實現 1.結構的動態查詢 define select data to wa.select 1 from 2 into corresponding field...

ABAP 動態內錶排序

動態內錶要排序時,因為不知道內錶中的欄位名字,所以不能直接用sort table by field1 field2.可以使用下面的方法來實現 sort table by sorttable 表型別 abap sortorder tab 結構型別 abap sortorder 示例 data w it...