简体   繁体   English

如何获取参数值并将其插入查询 SAP ABAP

[英]How to get Parameter value and insert it into query SAP ABAP

I have one problem, i make Report with Parameters, and than i have to take value from one parameter and isert it into Select query, but my Value is always null, wenn i make default value befor report start all functionert.我有一个问题,我使用参数创建报告,然后我必须从一个参数中获取值并将其插入到 Select 查询中,但是我的值始终为空,因此我在报告启动所有功能之前设置默认值。

when i tried this all is okay当我尝试这一切时,一切都很好

PARAMETERS p_name TYPE char30.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_name.

p_name = 'ARNOLD'.

SELECT * FROM zyy_pat_final_db INTO TABLE tb_pt WHERE NAME = p_name.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
*     DDIC_STRUCTURE  = ' '
      retfield        = 'name'
*     PVALKEY         = ' '
      dynpprog        = sy-repid
      dynpnr          = sy-dynnr
      dynprofield     = 'p_name'
*     STEPL           = 0
*     WINDOW_TITLE    =
*     VALUE           = ' '
      value_org       = 'S'
*     MULTIPLE_CHOICE = ' '
*     DISPLAY         = ' '
*     CALLBACK_PROGRAM       = ' '
*     CALLBACK_FORM   = ' '
*     CALLBACK_METHOD =
*     MARK_TAB        =
* IMPORTING
*     USER_RESET      =
    TABLES
      value_tab       = tb_pt
*     FIELD_TAB       =
*     RETURN_TAB      =
*     DYNPFLD_MAPPING =
* EXCEPTIONS
*      parameter_error = 1
*      no_values_found = 2
*      OTHERS          = 3.
*  IF sy-subrc <> 0.
* Implement suitable error handling here.
*  ENDIF.

I do not know, why do I get no results without my input, what I've written in code我不知道,为什么没有我的输入,我在代码中编写的内容,我没有得到任何结果

PARAMETERS p_name TYPE char30.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_name.

********p_name = 'ARNOLD'.

SELECT * FROM zyy_pat_final_db INTO TABLE tb_pt WHERE NAME = p_name.

Actually the requirement is not that clear first: and if the selection parameter needs the value for select query then the function module used will not help... try with this code given实际上需求首先不是那么清楚:如果选择参数需要选择查询的值,那么使用的功能模块将无济于事......尝试使用给出的这段代码

 BEGIN OF ty_mat,
    sign(1)   TYPE c,
    option(2) TYPE c,
    XXXXX(low)    TYPE ANY,
    YYYYY(high)   TYPE ANY,
  END OF ty_mat.

  DATA:  it_mat             TYPE TABLE OF      ty_mat,
         wa_mat             TYPE               ty_mat.

  LOOP AT it_TABLE INTO wa_TABLE.          "added
  wa_sam1-sign = 'I'.
  wa_sam1-option  = 'EQ' .
  wa_sam1-low = "aNY VALUE".
  APPEND wa_MAT TO it_mat.
  ENDLOOP.


and now pass it_mat to your select query with IN parameter...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM