ABAP开发案例3.docx

上传人:b****6 文档编号:6578315 上传时间:2023-01-08 格式:DOCX 页数:30 大小:129.56KB
下载 相关 举报
ABAP开发案例3.docx_第1页
第1页 / 共30页
ABAP开发案例3.docx_第2页
第2页 / 共30页
ABAP开发案例3.docx_第3页
第3页 / 共30页
ABAP开发案例3.docx_第4页
第4页 / 共30页
ABAP开发案例3.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

ABAP开发案例3.docx

《ABAP开发案例3.docx》由会员分享,可在线阅读,更多相关《ABAP开发案例3.docx(30页珍藏版)》请在冰豆网上搜索。

ABAP开发案例3.docx

ABAP开发案例3

*&---------------------------------------------------------------------*

*& Report  ZSD_KHZSJ

*&

*&---------------------------------------------------------------------*

*&

*&

*&---------------------------------------------------------------------*

REPORT  ZSD_KHZSJ.

TABLES:

KNA1,TSKDT,KNB1,KNVK,KNVV,knkk,s067,TVkbt,t691t.

DATA:

BEGIN OF GT_SDFT OCCURS 0,

  KUNNR LIKE KNA1-KUNNR,KTOKD LIKE  KNA1-KTOKD,

  VKORG LIKE  KNVV-VKORG,VTWEG LIKE KNVV-VTWEG,

  SPART LIKE KNVV-SPART,NAME1 LIKE  KNA1-NAME1,

  KNURL LIKE  KNA1-KNURL,SORTL LIKE KNA1-SORTL,

  LAND1 LIKE KNA1-LAND1,REGIO LIKE KNA1-REGIO,

  ORT01 LIKE KNA1-ORT01,STRAS LIKE  KNA1-STRAS,

  ADRNR  like kna1-adrnr,

  EMAIL like adr6-addrnumber,NAME2 LIKE KNVK-NAME1,

  TELF1 LIKE  KNA1-TELF1,TELF2 LIKE KNA1-TELF2,

  TELFX LIKE KNA1-TELFX,STCD5 LIKE KNA1-STCD5,

  VTEXT LIKE TSKDT-VTEXT,WAERS LIKE KNVV-WAERS,

  BUKRS LIKE KNB1-BUKRS,FDGRV LIKE KNB1-FDGRV,

  AKONT LIKE KNB1-AKONT,VKBUR LIKE KNVV-VKBUR,

  BEZEI LIKE TVKBT-BEZEI,

  NAME3 LIKE KNVK-NAME1,KALKS LIKE KNVV-KALKS,

  ZTERM LIKE KNVV-ZTERM,INCO1 LIKE KNVV-INCO1,

  INCO2 LIKE KNVV-INCO2,KTGRD LIKE KNVV-KTGRD,

  klimk LIKE KNKK-KLIMK,SKFOR LIKE KNKK-SKFOR,

  SAUFT TYPE I,OBLIG TYPE I,KLPRZ TYPE I,

  CTLPC like knkk-CTLPC, rtext like t691t-rtext,

  aufsd like kna1-aufsd,zuawa like knb1-zuawa,

  SLBOX TYPE CHAR1,

  END OF GT_SDFT.

DATA LT_TVkbt LIKE TVkbt OCCURS 0 WITH HEADER LINE.

DATA:

lt_knvk1 LIKE KNVK OCCURS 0 WITH HEADER LINE.

DATA:

lt_ADR61 LIKE ADR6  OCCURS 0 WITH HEADER LINE.

*data:

so0671 like s067 OCCURS 0 WITH HEADER LINE.

DATA:

BEGIN OF GT_TSKDT OCCURS 0,

        KUNNR LIKE KNVI-KUNNR,

       VTEXT LIKE TSKDT-VTEXT,

  END OF GT_TSKDT.

  data:

begin of lt_knkk1 OCCURS 0,

    kunnr like knkk-kunnr,

    olikw like s067-olikw,

    ofakw like s067-ofakw,

    skfor like knkk-skfor,

    sauft like s067-olikw,

    oblig like s067-olikw,

    end of lt_knkk1.

    DATA WK_ALV LIKE LINE OF GT_SDFT.

data gt_t691t like t691t OCCURS 0 WITH HEADER LINE.

SELECTION-SCREEN BEGIN OF BLOCK yy WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS:

S1 FOR LIKP-LFART,"交货单类型 

               S2 FOR LIKP-VKORG,"销售组织

               S3 FOR LIPS-VTWEG,"销售渠道

               S4 FOR LIPS-SPART,"产品组

               S5 FOR LIKP-VKBUR,"销售区域

               S6 FOR LIPS-VGBEL,"销售订单号

               S7 FOR RF02D-KUNNR,"客户编号

NO-EXTENSION   NO INTERVALS ."

公司代码

SELECTION-SCREEN END OF BLOCK yy.

START-OF-SELECTION.

  PERFORM ZSD_KHB.

  PERFORM FRM_ALV_GRID.

END-OF-SELECTION.

*&---------------------------------------------------------------------*

*&      Form  ZSD_KHB

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM ZSD_KHB .

  SELECT KNA1~KUNNR KNA1~KTOKD KNVV~VKORG KNVV~VTWEG KNVV~SPART

    KNA1~NAME1 KNA1~KNURL KNA1~SORTL KNA1~LAND1 KNA1~REGIO KNA1~ORT01

    KNA1~STRAS KNA1~ADRNR   KNA1~TELF1 KNA1~TELF2 KNA1~TELFX KNA1~STCD5 KNVI~TATYP

    KNVI~TAXKD KNVV~WAERS KNB1~BUKRS KNB1~FDGRV KNB1~AKONT KNVV~BZIRK

    KNVV~KALKS KNVV~ZTERM KNVV~INCO1 KNVV~INCO2 KNVV~KTGRD KNKK~KLIMK

    KNKK~SKFOR knvv~vkbur knkk~CTLPC  kna1~aufsd  knb1~zuawa

    INTO CORRESPONDING FIELDS OF TABLE GT_SDFT

    FROM KNA1 INNER JOIN KNVV ON KNVV~KUNNR = KNA1~KUNNR

              INNER JOIN KNVI ON KNVI~KUNNR = KNA1~KUNNR

              INNER JOIN KNB1 ON KNB1~KUNNR = KNA1~KUNNR

              LEFT JOIN KNKK ON KNKK~KUNNR = KNA1~KUNNR

    WHERE KNA1~KUNNR IN S_KUNNR AND  KNVV~VKORG IN S_VKORG

        AND KNA1~NAME1 IN S_NAME1 AND KNA1~SORTL IN S_SORTL

        AND KNA1~LAND1 IN S_LAND1 AND KNA1~REGIO IN S_REGIO

        AND KNA1~ORT01 IN S_ORT01 AND KNB1~BUKRS IN S_BUKRS.

  SELECT *  INTO TABLE lt_knvk1 FROM KNVK.

  SELECT * INTO TABLE lt_ADR61 FROM ADR6.

    SELECT * INTO TABLE LT_TVKBT FROM TVKBT.

  SELECT KNVI~KUNNR  TSKDT~VTEXT

  INTO TABLE GT_TSKDT FROM KNA1 INNER JOIN KNVI ON KNVI~KUNNR = KNA1~KUNNR

           INNER JOIN TSKDT ON KNVI~TATYP = TSKDT~TATYP AND

                                KNVI~TAXKD = TSKDT~TAXKD.

    select knkk~kunnr s067~olikw s067~ofakw

      knkk~skfor into

      table lt_knkk1 from knkk inner join s067 on knkk~knkli = s067~knkli.

      select *  into table gt_t691t from t691t .

 loop at lt_knkk1.

   lt_knkk1-sauft = lt_knkk1-olikw + lt_knkk1-ofakw.

   lt_knkk1-oblig = lt_knkk1-skfor + lt_knkk1-olikw + lt_knkk1-ofakw.

   modify lt_knkk1 TRANSPORTING sauft oblig.

   endloop.

  LOOP AT GT_SDFT.

    READ TABLE lt_knvk1 WITH KEY KUNNR = GT_SDFT-KUNNR  ABTNR = '0001' .

    if sy-subrc = 0.

    MOVE lt_knvk1-NAME1 TO GT_SDFT-NAME2.

    endif.

    READ TABLE lt_knvk1 WITH KEY KUNNR = GT_SDFT-KUNNR  ABTNR = '0004'.

    if sy-subrc = 0.

    MOVE lt_knvk1-NAME1 TO GT_SDFT-NAME3.

    endif.

*    MODIFY GT_SDFT TRANSPORTING NAME2 NAME3.

    READ TABLE lt_ADR61 WITH KEY ADDRNUMBER = GT_SDFT-ADRNR.

    if sy-subrc = 0.

    MOVE lt_ADR61-SMTP_ADDR  TO GT_SDFT-EMAIL.

    endif.

*    MODIFY GT_SDFT TRANSPORTING EMAIL.

 read  TABLE gt_t691t with key ctlpc = gt_sdft-ctlpc."读取风险类别

 if sy-subrc = 0.

   move gt_t691t-rtext  to gt_sdft-rtext.

   endif.

if gt_sdft-aufsd is not INITIAL.

     GT_SDFT-aufsd = '是'.

else.

       gt_sdft-aufsd = '否'.

    endif.

    READ TABLE GT_TSKDT WITH KEY KUNNR = GT_SDFT.

    if sy-subrc = 0.

    MOVE GT_TSKDT-VTEXT TO GT_SDFT-VTEXT.

    endif.

*    MODIFY GT_SDFT  TRANSPORTING VTEXT.

   read table lt_knkk1 with key kunnr = gt_sdft-kunnr.

   IF SY-SUBRC = 0.

   move lt_knkk1-sauft to gt_sdft-sauft.

   move lt_knkk1-oblig to gt_sdft-oblig.

  ENDIF.

*   modify gt_sdft TRANSPORTING sauft  oblig.

IF GT_SDFT-KLIMK = 0.

  GT_SDFT-KLPRZ = 0.

  ELSE .

   gt_sdft-klprz = gt_sdft-oblig / gt_sdft-klimk * 100.

    ENDIF.

*   modify gt_sdft TRANSPORTING klprz.

    READ TABLE LT_TVKBT WITH KEY VKBUR = GT_SDFT-VKBUR  SPRAS = 1.

    IF SY-SUBRC = 0.

      MOVE LT_TVKBT-BEZEI TO GT_SDFT-BEZEI.

    ENDIF.

*    MODIFY GT_SDFT TRANSPORTING bezei.

    modify   gt_sdft.

clear gt_sdft.

  ENDLOOP.

ENDFORM.                    " ZSD_KHB

*&---------------------------------------------------------------------*

*&      Form  FRM_ALV_GRID

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM FRM_ALV_GRID .

  DATA:

WA_LAYOUT  TYPE  SLIS_LAYOUT_ALV.

  DATA:

 L_I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

  DATA:

 WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

  WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

  WA_LAYOUT-ZEBRA = 'X'.

  WA_LAYOUT-BOX_FIELDNAME      = 'SLBOX'.

*设置ALV   FIELD

  DEFINE FIELDCAT.

    CLEAR WA_FIELDCAT.

    WA_FIELDCAT-FIELDNAME = &1.

    WA_FIELDCAT-SELTEXT_L = &2.

    WA_FIELDCAT-KEY = &3.

    WA_FIELDCAT-REF_TABNAME = &4.

    WA_FIELDCAT-DECIMALS_OUT = &5.

*    WA_FIELDCAT-EMPHASIZE = &5.

    APPEND WA_FIELDCAT TO L_I_FIELDCAT.

  END-OF-DEFINITION.

  FIELDCAT   'KUNNR'    '客户编号'   '' 'KNA1' '0'.

  FIELDCAT   'KTOKD'    '科目组'   '' '' '0'.

  FIELDCAT   'VKORG'    '销售组织'   '' ''  '0'.

  FIELDCAT   'VTWEG'    '分销渠道'   '' '' '0'.

  FIELDCAT   'SPART'   '产品组'   '' '' '0'.

  FIELDCAT   'NAME1'   '客户名称'   '' '' '0'.

    FIELDCAT   'ZUAWA'   '排序码'   '' '' '0'.

  FIELDCAT   'KNURL'    '网址'   '' '' '0'.

  FIELDCAT   'SORTL'    '搜索项'   '' '' '0'.

  FIELDCAT   'LAND1'    '国家'   '' '' '0'.

  FIELDCAT   'REGIO'    '省'   '' '' '0'.

  FIELDCAT   'ORT01'    '市'   '' '' '0'.

  FIELDCAT   'STRAS'    '街道'   '' '' '0'.

  FIELDCAT   'EMAIL'    '邮箱'   '' '' '0'.

  FIELDCAT   'NAME2'    '联系人'     ''  '' '0'.

  FIELDCAT   'TELF1'    '电话'     ''  '' '0'.

  FIELDCAT   'TELF2'    '手机'   '' '' '0'.

  FIELDCAT   'TELFX'    '传真'   '' '' '0'.

  FIELDCAT   'STCD5'  '纳税人登记号' ''  '' '0'.

  FIELDCAT   'VTEXT'    '税分类'   '' '' '0'.

  FIELDCAT   'WAERS'    '结算货币'   '' ''   '0'.

  FIELDCAT   'BUKRS'    '公司代码'   '' '' '0'.

   FIELDCAT   'FDGRV'    '现金管理组'   '' '' '0'.

  FIELDCAT   'AKONT'    '统驭科目'   '' '' '0'.

  FIELDCAT   'BEZEI'    '销售区域'     ''  '' '0'.

  FIELDCAT   'NAME3'    '销售员'     ''  '' '0'.

  FIELDCAT   'KALKS'    '客户定价过程'   '' '' '0'.

  FIELDCAT   'ZTERM'    '付款条件'   '' '' '0'.

  FIELDCAT   'INCO1'  '国际贸易条款' ''  '' '0'.

  FIELDCAT   'INCO2'    '国际贸易条款描述'   '' '' '0'.

  FIELDCAT   'KTGRD'    '账户分配组'   '' '' '0'.

  FIELDCAT   'KLIMK'    '信贷限额'   '' '' '3'.

  FIELDCAT   'SKFOR'    '应收总额'   '' '' '3'.

  FIELDCAT   'SAUFT'    '销售值'   '' '' '3'.

   FIELDCAT   'AUFSD'    '是否冻结'   '' '' '3'.

   FIELDCAT   'RTEXT'    '风险类别'   '' '' '3'.

  FIELDCAT   'OBLIG'  '信贷风险总额' ''  '' '3'.

  FIELDCAT   'KLPRZ'    '已使用的信贷限额'   '' '' '2'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

    EXPORTING

      I_CALLBACK_PROGRAM          = SY-REPID

*     I_CALLBACK_HTML_TOP_OF_PAGE = 'ALV_TOP_OF_PAGE'"ALV输出表头设置

      IT_FIELDCAT                 = L_I_FIELDCAT[]

      IS_LAYOUT                   = WA_LAYOUT

      i_save                      = 'A'

*     I_CALLBACK_PF_STATUS_SET    = 'FRM_SET_STATUS'

     I_CALLBACK_USER_COMMAND     = 'FRM_USER_COMMAND'

    TABLES

      T_OUTTAB                    = GT_SDFT

    EXCEPTIONS

      PROGRAM_ERROR               = 1

      OTHERS                      = 2.

ENDFORM.                    " FRM_ALV_GRID

FORM FRM_USER_COMMAND USING RF_UCOMM LIKE SY-UCOMM

                            RS_SELFIELD TYPE SLIS_SELFIELD. "#EC

  DATA L_KUNNR TYPE KUNNR.

  DATA G_GRID TYPE REF TO CL_GUI_ALV_GRID.

  CASE RF_UCOMM.

    WHEN '&IC1'.                                          "双击事件或是F2事件

      IF RS_SELFIELD-FIELDNAME EQ 'KUNNR'.

        CLEAR L_KUNNR.

        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

          EXPORTING

            INPUT  = RS_SELFIELD-VALUE

          IMPORTING

       

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

当前位置:首页 > 幼儿教育

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

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