SAP搜索帮助.docx

上传人:b****7 文档编号:10407863 上传时间:2023-02-11 格式:DOCX 页数:11 大小:111.31KB
下载 相关 举报
SAP搜索帮助.docx_第1页
第1页 / 共11页
SAP搜索帮助.docx_第2页
第2页 / 共11页
SAP搜索帮助.docx_第3页
第3页 / 共11页
SAP搜索帮助.docx_第4页
第4页 / 共11页
SAP搜索帮助.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

SAP搜索帮助.docx

《SAP搜索帮助.docx》由会员分享,可在线阅读,更多相关《SAP搜索帮助.docx(11页珍藏版)》请在冰豆网上搜索。

SAP搜索帮助.docx

SAP搜索帮助

搜索帮助增强

增加各公司代码中的银行科目

先找到集中搜索帮助SAKO

F-02

/H

在里面添加个基本搜索帮助ZR000SH_FI016

注意:

对话类型要设置成C

注意:

参数要匹配

点param.assignment

把BUKRS去掉只留最终输出的SAKNR

有两张方法:

方法一\用视图创建

这种方法做不需要取数,视图就是数据源

只需在DISP里面就OK了

最终的数据放在表record_tab

DATA:

BEGIN OF t_tab  OCCURS 0,

           bukrs      LIKE t001-bukrs,

           saknr      LIKE ska1-saknr,

           txt50      LIKE skat-txt50,

       END OF t_tab.

  DATA:

 t_itab LIKE t_tab OCCURS 0 WITH HEADER LINE.

  DATA:

BEGIN OF t_table  OCCURS 0,

           bukrs      LIKE t001-bukrs,

           saknr      LIKE skb1-saknr,

           hktid      LIKE t012k-hktid,  "标识

           text1      LIKE t012t-text1,  "描述

*           refzl      LIKE t012k-refzl, "专户

*           banka      LIKE bnka-banka,  "银行名称

*           bankl      LIKE bnka-bankl,  "银行号码

       END OF t_table.

  DATA:

t_table1 LIKE t_table OCCURS 0 WITH HEADER LINE.

  DATA:

 BEGIN OF t_temp OCCURS 10 .

          INCLUDE STRUCTURE seahlpres.

  DATA:

 END OF t_temp.

  DATA:

 wa_shlp LIKE LINE OF shlp-selopt.

  DATA:

 g_string(14),

*        g_string(50),

        g_t TYPE i.

  RANGES:

s_bukrs FOR t001-bukrs,

         s_saknr FOR skat-saknr.

  FIELD-SYMBOLS:

       LIKE LINE OF t_tab.

* EXIT immediately, if you do not want to handle this step

  IF callcontrol-step <> 'SELONE' AND

     callcontrol-step <> 'SELECT' AND

     " AND SO ON

     callcontrol-step <> 'DISP'.

    EXIT.

  ENDIF.

  IF callcontrol-step = 'SELONE'.

*   PERFORM SELONE .........

    EXIT.

  ENDIF.

  IF callcontrol-step = 'SELECT'.

  ENDIF.

  IF callcontrol-step = 'DISP'.

*    CLEAR wa_shlp.

*    LOOP AT shlp-selopt INTO wa_shlp.

*      IF wa_shlp-shlpname = 'ZR000SH_FI016' AND wa_shlp-shlpfield = 'BUKRS'.

*        s_bukrs-sign = 'I'.

*        s_bukrs-option = 'EQ'.

*        s_bukrs-low = wa_shlp-low.

*        s_bukrs-high = wa_shlp-high.

*        APPEND s_bukrs.

*      ELSEIF wa_shlp-shlpname = 'ZR000SH_FI016' AND wa_shlp-shlpfield = 'SAKNR'.

*        s_saknr-sign = 'I'.

*        s_saknr-option = 'EQ'.

*        s_saknr-low = wa_shlp-low.

*        s_saknr-high = wa_shlp-high.

*        APPEND s_bukrs.

*      ENDIF.

*

*      CLEAR wa_shlp.

*    ENDLOOP.

*

*    SELECT t001~bukrs ska1~saknr skat~txt50 INTO CORRESPONDING FIELDS OF TABLE t_tab

*      FROM ska1

*      INNER JOIN skat ON ska1~mandt = skat~mandt AND ska1~ktopl = skat~ktopl AND ska1~saknr = skat~saknr AND skat~spras = sy-langu

*      INNER JOIN skb1 ON ska1~mandt = skb1~mandt AND ska1~saknr = skb1~saknr

*      INNER JOIN t001 ON t001~ktopl = ska1~ktopl AND t001~mandt = skb1~mandt AND t001~bukrs = skb1~bukrs

*      WHERE t001~bukrs IN s_bukrs

*        AND skat~saknr IN s_saknr.

    CALL FUNCTION 'F4UT_PARAMETER_VALUE_GET'

      EXPORTING

        parameter   = 'BUKRS'

        fieldname   = 'BUKRS'                                      " Reference to search help parameter

      TABLES

        shlp_tab    = shlp_tab                                      " Reference to field of Seatinfo

        record_tab  = record_tab

        results_tab = t_itab

      CHANGING

        shlp        = shlp

        callcontrol = callcontrol.

    CALL FUNCTION 'F4UT_PARAMETER_VALUE_GET'

      EXPORTING

        parameter   = 'SAKNR'

        fieldname   = 'SAKNR'                                    " Reference to search help parameter

      TABLES

        shlp_tab    = shlp_tab                                    " Reference to field of Seatinfo

        record_tab  = record_tab

        results_tab = t_itab

      CHANGING

        shlp        = shlp

        callcontrol = callcontrol.

    CALL FUNCTION 'F4UT_PARAMETER_VALUE_GET'

      EXPORTING

        parameter   = 'TXT50'

        fieldname   = 'TXT50'                                    " Reference to search help parameter

      TABLES

        shlp_tab    = shlp_tab                                    " Reference to field of Seatinfo

        record_tab  = record_tab

        results_tab = t_itab

      CHANGING

        shlp        = shlp

        callcontrol = callcontrol.

    CLEAR t_itab.

    SELECT skb1~bukrs skb1~saknr t012k~hktid t012t~text1 "bnka~banka bnka~bankl

      INTO CORRESPONDING FIELDS OF TABLE t_table1

      FROM skb1

      INNER JOIN t012 ON t012~bukrs = skb1~bukrs AND t012~hbkid = skb1~hbkid

      INNER JOIN t012k ON t012k~bukrs = t012~bukrs AND t012k~hbkid = t012~hbkid "AND t012k~hktid = t012~hktid

      INNER JOIN t012t ON t012t~bukrs = t012k~bukrs AND t012t~hbkid = t012k~hbkid AND t012t~hktid = t012k~hktid

*      INNER JOIN bnka ON bnka~banks = t012~bukrs AND bnka~bankl = t012~bankl

      FOR ALL entries IN t_itab

      WHERE skb1~bukrs = t_itab-bukrs

        AND skb1~saknr = t_itab-saknr.

    LOOP AT t_itab.

      READ TABLE t_table1 WITH KEY bukrs = t_itab-bukrs saknr = t_itab-saknr.

      IF sy-subrc = 0.

        t_table1-text1 = t_table1-text1+0(45).

        CLEAR t_itab-txt50.

        CONCATENATE t_table1-text1 t_table1-hktid INTO t_itab-txt50.

        MODIFY t_itab.

      ENDIF.

    ENDLOOP.

*    CLEAR record_tab.

*    LOOP AT record_tab INTO t_temp.

*      COLLECT t_temp.

*    ENDLOOP.

*

*    g_t = 0.

*    LOOP AT t_temp.

*      g_t = g_t + 1.

*      read table t_itab index g_t.

*      CLEAR t_temp-string.

*      CONCATENATE t_itab-bukrs t_itab-saknr INTO g_string.

*      t_temp-string+29(14) = g_string.

*      t_temp-string+53(50) = t_itab-txt50.

*      MODIFY t_temp.

*    ENDLOOP.

*    REFRESH record_tab.

*    record_tab[] = t_temp[].

      CLEAR record_tab.

      REFRESH record_tab.

      CALL FUNCTION 'F4UT_RESULTS_MAP'

*       EXPORTING

*         SOURCE_STRUCTURE         = 'ZFUTEST1'

*         APPLY_RESTRICTIONS       = ' '

        TABLES

          shlp_tab    = shlp_tab

          record_tab  = record_tab

          source_tab  = t_itab[]

        CHANGING

          shlp        = shlp

          callcontrol = callcontrol.

*    ENDIF.

  ENDIF.

ENDFUNCTION.

第二种方法、

建立数据库表

FUNCTION ZTEST_EXIT.

*"----------------------------------------------------------------------

*"*"Local interface:

*"  TABLES

*"      SHLP_TAB TYPE  SHLP_DESCT

*"      RECORD_TAB STRUCTURE  SEAHLPRES

*"  CHANGING

*"     VALUE(SHLP) TYPE  SHLP_DESCR

*"     VALUE(CALLCONTROL) LIKE  DDSHF4CTRL STRUCTURE  DDSHF4CTRL

*"----------------------------------------------------------------------

*  BREAK GAOWW.

* Local fields

  DATA:

        BEGIN OF TEXT_TAB  OCCURS 0,

          BUKRS      LIKE T001-BUKRS,

          SAKNR      LIKE SKAT-SAKNR,

          TXT50      LIKE SKAT-TXT50,

      END OF TEXT_TAB.

  DATA:

 T_ITAB LIKE TEXT_TAB OCCURS 0 WITH HEADER LINE.

  DATA:

 WA_SHLP LIKE LINE OF SHLP-SELOPT.

  RANGES:

S_BUKRS FOR T001-BUKRS,

         S_SAKNR FOR SKAT-SAKNR.

  FIELD-SYMBOLS:

       LIKE LINE OF TEXT_TAB.

* EXIT immediately, if you do not want to handle this step

  IF CALLCONTROL-STEP <> 'SELONE' AND

     CALLCONTROL-STEP <> 'SELECT' AND

     " AND SO ON

     CALLCONTROL-STEP <> 'DISP'.

    EXIT.

  ENDIF.

  IF CALLCONTROL-STEP = 'SELONE'.

*   PERFORM SELONE .........

    EXIT.

  ENDIF.

  CLEAR WA_SHLP.

  LOOP AT SHLP-SELOPT INTO WA_SHLP.

    IF WA_SHLP-SHLPNAME = 'ZSAKO' AND WA_SHLP-SHLPFIELD = 'BUKRS'.

      S_BUKRS-SIGN = 'I'.

      S_BUKRS-OPTION = 'EQ'.

      S_BUKRS-LOW = WA_SHLP-LOW.

      S_BUKRS-HIGH = WA_SHLP-HIGH.

      APPEND S_BUKRS.

    ELSEIF WA_SHLP-SHLPNAME = 'ZSAKO' AND WA_SHLP-SHLPFIELD = 'SAKNR'.

      S_SAKNR-SIGN = 'I'.

      S_SAKNR-OPTION = 'EQ'.

      S_SAKNR-LOW = WA_SHLP-LOW.

      S_SAKNR-HIGH = WA_SHLP-HIGH.

      APPEND S_BUKRS.

    ENDIF.

    CLEAR WA_SHLP.

  ENDLOOP.

  IF CALLCONTROL-STEP = 'SELECT'.

  ENDIF.

  IF CALLCONTROL-STEP = 'DISP'.

    SELECT T001~BUKRS SKAT~SAKNR SKAT~TXT50 INTO CORRESPONDING FIELDS OF TABLE  TEXT_TAB

      FROM SKAT

      INNER JOIN T001 ON T001~KTOPL = SKAT~KTOPL

      WHERE T001~BUKRS IN S_BUKRS

        AND SKAT~SAKNR IN S_SAKNR

        AND SKAT~SPRAS = SY-LANGU.

    IF TEXT_TAB[] IS NOT INITIAL.

      T_ITAB[] = TEXT_TAB[].

      CLEAR RECORD_TAB.

      REFRESH RECORD_TAB.

      CALL FUNCTION 'F4UT_RESULTS_MAP'

*       EXPORTING

*         SOURCE_STRUCTURE         = 'ZFUTEST1'

*     APPLY_RESTRICTIONS       = ' '

        TABLES

          SHLP_TAB    = SHLP_TAB

          RECORD_TAB  = RECORD_TAB

          SOURCE_TAB  = TEXT_TAB[]

        CHANGING

          SHLP        = SHLP

          CALLCONTROL = CALLCONTROL.

    ENDIF.

*    EXIT.

  ENDIF.

*  callcontrol-step = 'DISP'.

ENDFUNCTION.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1