ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 读取指定任意表的三个字段RFC

读取指定任意表的三个字段RFC

Linux操作系统 作者:DicksonJYL560101 时间:2015-04-24 12:42:53 0 删除 编辑
SAP有个标准读任意表任何字段的BADI,不过好像只能最多读64个字段。
 
 
FUNCTION zf_read_element1.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(S_TAB) TYPE  CHAR10
*"     VALUE(S_FIELD1) TYPE  CHAR10
*"     VALUE(S_FIELD2) TYPE  CHAR10
*"     VALUE(S_FIELD3) TYPE  CHAR10 OPTIONAL
*"  TABLES
*"      ITAB STRUCTURE  ZFIELD1
*"----------------------------------------------------------------------
*&DESCRIPTION  READ ELEMENT FROM  TABLE
*&CREATE BY    GOUCAIYUN
*&CREATE ON    2005.08.23
*  TABLES:t002.
  DATA: tableall(200) TYPE c.
  DATA:field(70) TYPE c.
  CONCATENATE s_field1 s_field2 s_field3 INTO field SEPARATED BY space.
  CONCATENATE 'M_PRCTN' 'T024D' 'T024F' 'T001L' 'T001W' 'T001'
  INTO tableall SEPARATED BY space.
  IF s_tab  = 'TSKDT'.
    SELECT DISTINCT (field)
    INTO (itab-field1,itab-field2)
    FROM (s_tab)
      WHERE spras = '1' AND
          tatyp = 'MWST'.
      APPEND itab.
      CLEAR itab.
    ENDSELECT.
  ELSEIF s_tab = 'T002T'.
    SELECT laiso sptxt
    INTO (itab-field1,itab-field2)
    FROM t002t
         JOIN t002
         ON t002t~sprsl = t002~spras
         WHERE t002t~spras = '1'.
      APPEND itab.
      CLEAR itab.
    ENDSELECT.
  ELSEIF s_tab = 'T024'.
    SELECT DISTINCT (field)
    INTO (itab-field1,itab-field2)
    FROM t024 WHERE ektel <> 'D' .
*    WHERE werks = '1000'.
      APPEND itab.
      CLEAR itab.
    ENDSELECT.
  ELSEIF s_tab = 'KNA1'.
    SELECT DISTINCT (field)
    INTO (itab-field1,itab-field2)
    FROM kna1 WHERE ktokd = 'TZ04'.
      APPEND itab.
      CLEAR itab.
    ENDSELECT.
  ELSEIF s_tab = 'TCURT'.
    SELECT DISTINCT (field)
    INTO (itab-field1,itab-field2)
    FROM tcurt
    WHERE waers NE 'CNY' AND spras = '1'.
      APPEND itab.
      CLEAR itab.
    ENDSELECT.
  ELSEIF s_tab = 'TZONT'.
    SELECT DISTINCT (field)
    INTO (itab-field1,itab-field2,itab-field3)
    FROM tzont
    WHERE spras = '1'.
      APPEND itab.
      CLEAR itab.
    ENDSELECT.
  ELSEIF  tableall CS s_tab.
    SELECT DISTINCT (field)
    INTO (itab-field1,itab-field2)
    FROM (s_tab).
      APPEND itab.
      CLEAR itab.
    ENDSELECT.
  ELSE.
    SELECT DISTINCT (field)
    INTO (itab-field1,itab-field2)
    FROM (s_tab)
    WHERE spras = '1'.
      APPEND itab.
      CLEAR itab.
    ENDSELECT.
  ENDIF.
ENDFUNCTION.
 
 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29829936/viewspace-1595583/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
行万里路,读万卷书,阅无数人。 吃货一枚,爱吃湘菜,粤菜与杭帮菜,尝遍天下美食。 摄影爱好者,游遍名川大山,江河胡海,赏遍人间春色。 爱看电影,尤其是国产大片,好莱坞大片。英文名:Dickson Jin, 网名:风一样的BOY。精通SAP供应链咨询。2017年开始研习人工智能。

注册时间:2014-08-27

  • 博文量
    2598
  • 访问量
    4671680