ABAP开发笔记-往来供应商对帐明细表

*&---------------------------------------------------------------------*
*& Report ZMMR102
*&---------------------------------------------------------------------*
*& Author              :  NathanSun
*& Create Date         :  2019-05-23
*& Program Type        :  Report
*& Description         :  往来供应商对帐明细表
*&---------------------------------------------------------------------*
REPORT ZMMR102.

*&---------------------------------------------------------------------*
*& 包含               YN_TEST02_TOP
*&---------------------------------------------------------------------*
TABLES:TVKO,MARC,EKKO,VBAP,MATDOC.

TYPE-POOLS:SLIS.

"定义ALV输出所需变量
DATAS_LAYOUT    TYPE SLIS_LAYOUT_ALV,
      GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

TYPESBEGIN OF GTS_DATA,

         VLFAG   TYPE  C,                      "标记字段
         SMBLN   TYPE  MATDOC-SMBLN,           "物料凭证编号
         SMBLP   TYPE  MATDOC-SMBLP,           "物料凭证中的项目
         BUDAT   TYPE  MATDOC-BUDAT,           "入库日期
         WERKS   TYPE  MATDOC-WERKS,           "工厂
         BWART   TYPE  MATDOC-BWART,           "移动类型
         NAME1   TYPE  T001W-NAME1,            "工厂名称
         EKGRP   TYPE  EKKO-EKGRP,             "采购组
         DISPO   TYPE  MARC-DISPO,             "MRP控制员
         EBELN   TYPE  MATDOC-EBELN,           "采购订单
         EBELP   TYPE  MATDOC-EBELP,           "项目号
         BSART   TYPE  EKKO-BSART,             "采购订单类型编码
         BATXT   TYPE  T161T-BATXT,            "采购订单类型
         LIFNR   TYPE  MATDOC-LIFNR,           "供应商编码
         NAME1_L TYPE  LFA1-NAME1,             "供应商名称1
         NAME2_L TYPE  LFA1-NAME2,             "供应商名称2
         NAME_L  TYPE  LFA1-NAME2,             "供应商名称
         MATNR   TYPE  MATDOC-MATNR,           "物料编码
         MAKTX   TYPE  MAKT-MAKTX,             "物料描述
         BSTMG   TYPE  MATDOC-BSTMG,           "数量
         BSTME   TYPE  MATDOC-BSTME,           "单位
         ZDDJE   TYPE  ZDDJE,                  "订单单价
         ZWSJE   TYPE  EKPO-NETPR,             "未税金额
         NETPR   TYPE  EKPO-NETPR,             "采购凭证中的净价(以凭证货币计)
         PEINH   TYPE  EKPO-PEINH,             "价格单位
         MWSKZ   TYPE  EKPO-MWSKZ,             "销售税/采购税代码
         LAND1   TYPE  T001W-LAND1,            "国家/地区代码
         KBETR   TYPE  KBETR,                  "条件金额或百分比
         SHUIL   TYPE  CHAR10,                 "税率
         SHUIJ   TYPE  EKPO-NETPR,             "税金
         ZONGJ   TYPE  EKPO-NETPR,             "总金额
         WAERS   TYPE  EKKO-WAERS,             "币别
         ZTERM   TYPE  EKKO-ZTERM,             "付款条件
         TTEXT   TYPE  TTEXT,                  "付款方式

       END OF GTS_DATA.

DATAGT_DATA   TYPE TABLE OF GTS_DATA WITH HEADER LINE.
DATAGT_DATA_A TYPE TABLE OF GTS_DATA WITH HEADER LINE.
DATAGV_TOP    TYPE SDYDO_TEXT_ELEMENT.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
SELECT-OPTIONSS_LIFNR  FOR  MATDOC-LIFNR  MODIF ID C1,                        "供应商
                S_EKGRP  FOR  EKKO-EKGRP    MODIF ID C1,                        "采购组
                S_DISPO  FOR  MARC-DISPO    MODIF ID C1,                        "MRP 控制员
                S_WERKS  FOR  MATDOC-WERKS  MODIF ID C1,                        "工厂
                S_MATNR  FOR  MATDOC-MATNR  MODIF ID C1,                        "物料编码
                S_BUDAT  FOR  MATDOC-BUDAT  MODIF ID C1 OBLIGATORY.             "入库日期
SELECTION-SCREEN END OF BLOCK B1.
*&---------------------------------------------------------------------*
*& 包含               YN_TEST02_FOM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& 包含               ZFIR092_FOM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Form  FRM_EXCLUDE_OPTION
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_EXCLUDE_OPTION .

** Define the object to be passed to the RESTRICTION parameter
*DATA RESTRICT TYPE SSCR_RESTRICT.
*
** Auxiliary objects for filling RESTRICT
*DATA : OPTLIST TYPE SSCR_OPT_LIST,
*           ASS TYPE SSCR_ASS.
*
** 限制MATNR参数只能使用‘EQ’ ‘BT’.
*  OPTLIST-NAME = 'OBJECTKEY1'.
*  OPTLIST-OPTIONS-EQ = 'X'.
*  OPTLIST-OPTIONS-BT = 'X'.
*  APPEND OPTLIST TO RESTRICT-OPT_LIST_TAB.
*
*  ASS-KIND = 'S'.
*  ASS-NAME = 'S_MONAT'.
*  ASS-SG_MAIN = 'I'.
*  ASS-SG_ADDY = SPACE.
*  ASS-OP_MAIN = 'OBJECTKEY1'.
*  APPEND ASS TO RESTRICT-ASS_TAB.
*
*  CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
*   EXPORTING
*    RESTRICTION                  = RESTRICT
*   EXCEPTIONS
*     TOO_LATE                     = 1
*     REPEATED                     = 2
*     SELOPT_WITHOUT_OPTIONS       = 3
*     SELOPT_WITHOUT_SIGNS         = 4
*     INVALID_SIGN                 = 5
*     EMPTY_OPTION_LIST            = 6
*     INVALID_KIND                 = 7
*     REPEATED_KIND_A              = 8
*     OTHERS                       = 9
*            .
*
*  IF SY-SUBRC <> 0.
*    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form SCREEN_OUTPUT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM SCREEN_OUTPUT .
  LOOP AT SCREEN.
    CASE SCREEN-GROUP1.
      WHEN 'M1'.
        SCREEN-INPUT '0'.
    ENDCASE.
    MODIFY SCREEN.
  ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SCREEN_SETTING
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM SCREEN_SETTING .
* AUTHORITY-CHECK OBJECT 'M_MATE_WRK'
*  ID 'WERKS' FIELD P_WERKS.
*  IF SY-SUBRC <> 0.
*    MESSAGE '您没有工厂:'&& P_WERKS && '  的权限!' TYPE 'E' .
*  ENDIF.
  DATAGT_T001W TYPE TABLE OF T001W WITH HEADER LINE.
  DATA  LV_FLAG TYPE C.
  CLEAR LV_FLAG .
  CLEAR GT_T001W[].
  SELECT WERKS INTO CORRESPONDING FIELDS OF TABLE GT_T001W[] FROM T001W
    
WHERE WERKS IN S_WERKS .
  LOOP AT GT_T001W.
    AUTHORITY-CHECK OBJECT 'M_MSEG_WMB'
     ID 'WERKS' FIELD GT_T001W-WERKS.
    IF SY-SUBRC <> 0.
      LV_FLAG 'X' .
      EXIT .
    ENDIF.
    CLEAR GT_T001W .
  ENDLOOP.
  IF LV_FLAG IS NOT INITIAL.
    MESSAGE '您没有工厂:'&& GT_T001W-WERKS && 的权限!TYPE 'E' .
  ENDIF.
*入库日期
  IF S_BUDAT-HIGH IS INITIAL.
    MESSAGE '请选择入库日期的上限!TYPE 'E' .
  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FOM_GETDATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FOM_GETDATA .
  CLEAR GV_TOP .
  GV_TOP '对账日期: ' &&  S_BUDAT-LOW(4&& '&& S_BUDAT-LOW+4(2&& '&& S_BUDAT-LOW+6(2&& ''
   && '     ' &&  S_BUDAT-HIGH(4&& '&& S_BUDAT-HIGH+4(2&& '&& S_BUDAT-HIGH+6(2&& '.

  CLEAR:GT_DATA[].
  SELECT
    MATDOC~SMBLN
    MATDOC
~SMBLP
    MATDOC
~BWART
    MATDOC
~BUDAT
    MATDOC
~WERKS
    MATDOC
~EBELN
    MATDOC
~EBELP
    MATDOC
~LIFNR
    MATDOC
~MATNR
    MATDOC
~BSTMG
    MATDOC
~BSTME
    EKKO
~EKGRP
    EKKO
~BSART
    EKKO
~WAERS
    EKKO
~ZTERM
    EKPO
~NETPR
    EKPO
~PEINH
    EKPO
~MWSKZ
    MARC
~DISPO
  
INTO CORRESPONDING FIELDS OF TABLE GT_DATA[]
    
FROM MATDOC
    INNER 
JOIN EKPO ON MATDOC~EBELN EKPO~EBELN AND MATDOC~EBELP EKPO~EBELP
    INNER 
JOIN EKKO ON MATDOC~EBELN EKKO~EBELN
    INNER 
JOIN MARC ON MATDOC~MATNR MARC~MATNR AND MATDOC~WERKS MARC~WERKS
    
WHERE MATDOC~BWART IN '101','102','122','161','162' )
      AND MATDOC~EBELN <>  ''
      AND MATDOC~LIFNR IN S_LIFNR
      
AND MATDOC~WERKS IN S_WERKS
      
AND MATDOC~MATNR IN S_MATNR
      
AND MATDOC~BUDAT IN S_BUDAT
      
AND EKKO~EKGRP   IN S_EKGRP
      
AND MARC~DISPO   IN S_DISPO
      
.

  IF GT_DATA[] IS NOT INITIAL .
    LOOP AT GT_DATA.

      SELECT SINGLE NAME1 LAND1 INTO GT_DATA-NAME1 GT_DATA-LAND1 FROM T001W
        
WHERE WERKS GT_DATA-WERKS
        
.
      SELECT SINGLE BATXT INTO GT_DATA-BATXT FROM T161T
        
WHERE BSART GT_DATA-BSART
          
AND SPRAS 1
        .
      SELECT SINGLE NAME1 NAME2 INTO GT_DATA-NAME1_L GT_DATA-NAME2_L FROM LFA1
        
WHERE LIFNR GT_DATA-LIFNR
          
AND SPRAS 1
        .
      GT_DATA-NAME_L GT_DATA-NAME1_L && GT_DATA-NAME2_L .

      SELECT SINGLE MAKTX INTO GT_DATA-MAKTX FROM MAKT
        
WHERE MATNR GT_DATA-MATNR
          
AND SPRAS 1
        .

      MODIFY GT_DATA .
      CLEAR  GT_DATA .
    ENDLOOP.
  ENDIF.

  SORT GT_DATA[] BY EBELN EBELP .
  GT_DATA_A[] GT_DATA[] .
  DELETE ADJACENT DUPLICATES FROM GT_DATA[] COMPARING EBELN EBELP.

  LOOP AT GT_DATA.
    CLEAR GT_DATA-BSTMG.
    LOOP AT GT_DATA_A WHERE EBELN GT_DATA-EBELN AND EBELP GT_DATA-EBELP.
      CASE GT_DATA_A-BWART.
        WHEN '101'.
          GT_DATA-BSTMG GT_DATA-BSTMG + GT_DATA_A-BSTMG .
        WHEN '102'.
          GT_DATA-BSTMG GT_DATA-BSTMG GT_DATA_A-BSTMG .
        WHEN '122'.
          GT_DATA-BSTMG GT_DATA-BSTMG GT_DATA_A-BSTMG .
        WHEN '161'.
          GT_DATA-BSTMG GT_DATA-BSTMG + GT_DATA_A-BSTMG .
        WHEN '162'.
          GT_DATA-BSTMG GT_DATA-BSTMG GT_DATA_A-BSTMG .
        WHEN OTHERS.
      ENDCASE.
      CLEAR GT_DATA_A .
    ENDLOOP.
    MODIFY GT_DATA.
    CLEAR  GT_DATA.
  ENDLOOP.

  DATA T_FTAXP TYPE TABLE OF FTAXP WITH HEADER LINE .
  DATA T_ZTEXT TYPE TABLE OF TTEXT WITH HEADER LINE .
  DATA GV_T052 TYPE  T052  .
  LOOP AT GT_DATA.

    GT_DATA-ZDDJE GT_DATA-NETPR / GT_DATA-PEINH .

    GT_DATA-ZWSJE GT_DATA-ZDDJE * GT_DATA-BSTMG .

    CLEAR T_FTAXP[] .
    CALL FUNCTION 'GET_TAX_PERCENTAGE'
      EXPORTING
        ALAND   GT_DATA-LAND1
        DATAB   
GT_DATA-BUDAT
        MWSKZ   
GT_DATA-MWSKZ
        TXJCD   
''
*       EXPORT  = ' '
      TABLES
        T_FTAXP T_FTAXP[].

    CLEAR T_FTAXP .
    READ TABLE T_FTAXP INDEX 1.
    GT_DATA-KBETR T_FTAXP-KBETR / 10.
    IF T_FTAXP-KBETR IS NOT INITIAL.
      GT_DATA-SHUIL GT_DATA-KBETR && '%'.
      GT_DATA-SHUIJ GT_DATA-KBETR * GT_DATA-ZWSJE .
    ELSE.
      GT_DATA-SHUIL .
    ENDIF.
    GT_DATA-ZONGJ GT_DATA-ZWSJE + GT_DATA-SHUIJ .

    CLEAR GV_T052 .
    SELECT SINGLE INTO GV_T052 FROM T052
      
WHERE ZTERM GT_DATA-ZTERM
*        AND ZTAGG = GT_DATA-ZTAGG
        .

    CLEAR T_ZTEXT[] .
    CALL FUNCTION 'FI_TEXT_ZTERM'
      EXPORTING
        I_T052  GV_T052
      
TABLES
        T_ZTEXT T_ZTEXT[].
    CLEAR T_ZTEXT .


    READ TABLE T_ZTEXT INDEX 1.
    GT_DATA-TTEXT T_ZTEXT-TEXT1 .

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
      EXPORTING
        INPUT  GT_DATA-LIFNR
      
IMPORTING
        OUTPUT GT_DATA-LIFNR.

    MODIFY GT_DATA.
    CLEAR  GT_DATA.
  ENDLOOP.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_DISPLAY
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_DISPLAY .
  CLEAR S_LAYOUT.
  S_LAYOUT-ZEBRA 'X'.
  S_LAYOUT-COLWIDTH_OPTIMIZE 'X'.
*  s_layout-box_fieldname    = 'BOX'.
  PERFORM FRM_FILL_FIELD .

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      IS_LAYOUT                   S_LAYOUT
      IT_FIELDCAT                 
GT_FIELDCAT
      I_CALLBACK_PROGRAM          
SY-REPID
*     I_CALLBACK_PF_STATUS_SET    = 'PF_STATUS_SET'
*     i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
      I_CALLBACK_USER_COMMAND     'USER_COMMAND'
      I_CALLBACK_HTML_TOP_OF_PAGE 'F_HTML_TOP_OF_PAGE'
      I_HTML_HEIGHT_TOP           12                             "指定ALV表头宽度
    TABLES
      T_OUTTAB                    GT_DATA[].
ENDFORM.

FORM FRM_FILL_FIELD .
  DATA:  WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
  DEFINE FILL_FIELD.
    wa_fieldcat-fieldname &1.
    wa_fieldcat-seltext_l &2.
*    IF wa_fieldcat-fieldname =  'MSLJH' or wa_fieldcat-fieldname =  'WCBJH'.
*      wa_fieldcat-EMPHASIZE = 'C600'. "设置字段的颜色
*    ENDIF.
*
*    IF wa_fieldcat-fieldname =  'MSLMB' or wa_fieldcat-fieldname =  'WCBMB'.
*      wa_fieldcat-EMPHASIZE = 'C710'. "设置字段的颜
*    ENDIF.

    IF wa_fieldcat-fieldname 'PLNBEZ' OR wa_fieldcat-fieldname 'MATNR' .
      wa_fieldcat-ref_tabname 'MARA'.
      wa_fieldcat-ref_fieldname 'MATNR'.
    ENDIF.

    IF wa_fieldcat-fieldname 'ARKTX' OR wa_fieldcat-fieldname 'WAKTX' .
      wa_fieldcat-ref_tabname 'VBAP'.
      wa_fieldcat-ref_fieldname 'ARKTX'.
    ENDIF.

    IF wa_fieldcat-fieldname 'AUFNR' .
      wa_fieldcat-ref_tabname 'AUFK'.
      wa_fieldcat-ref_fieldname 'AUFNR'.
    ENDIF.

    APPEND wa_fieldcat TO gt_fieldcat.
    CLEAR wa_fieldcat.
  END-OF-DEFINITION.
  FILL_FIELD :
        'BUDAT'    '入库日期',
        'WERKS'    '工厂',
*        'SMBLN'    '物料凭证编号',
*        'SMBLP'    '物料凭证中的项目',
*        'BWART'    '移动类型',
        'NAME1'    '工厂名称',
        'EKGRP'    '采购组',
        'DISPO'    'MRP控制员',
        'EBELN'    '采购订单',
        'EBELP'    '项目号',
        'BSART'    '采购订单类型编码',
        'BATXT'    '采购订单类型',
        'LIFNR'    '供应商编码',
        'NAME_L'   '供应商名称',
        'MATNR'    '物料编码',
        'MAKTX'    '物料描述',
        'BSTMG'    '数量',
        'BSTME'    '单位',
        'ZDDJE'    '订单单价',
        'ZWSJE'    '未税金额',
        'SHUIL'    '税率',
        'SHUIJ'    '税金',
        'ZONGJ'    '总金额',
        'WAERS'    '币别',
        'ZTERM'    '付款条件',
        'TTEXT'    '付款方式'.

ENDFORM.

FORM PF_STATUS_SET USING RT_EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'STANDARD_FULLSCREEN'.
ENDFORM.

FORM USER_COMMAND USING I_UCOMM LIKE SY-UCOMM
                    IS_SELFIELD 
TYPE SLIS_SELFIELD.
  DATAREF TYPE REF TO CL_GUI_ALV_GRID.
  DATA LV_STABLE TYPE LVC_S_STBL.   "刷新稳定性
  RANGESL_WERKS FOR T001W-WERKS.
  RANGESL_MATNR FOR MARA-MATNR.
  DATA:L_BUKRS TYPE T001K-BUKRS.

  LV_STABLE-ROW '1'.
  LV_STABLE-COL '1'.

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      E_GRID REF.
  CALL METHOD REF->CHECK_CHANGED_DATA.

  CASE I_UCOMM.
    WHEN '&IC1'."表示双击
      IF IS_SELFIELD-FIELDNAME =  'EBELN' .
        CHECK IS_SELFIELD-TABINDEX > 0.
        CLEAR GT_DATA .
        READ TABLE GT_DATA INDEX IS_SELFIELD-TABINDEX.

        CALL FUNCTION 'ME_DISPLAY_PURCHASE_DOCUMENT'
          EXPORTING
            I_EBELN              GT_DATA-EBELN
          
EXCEPTIONS
            NOT_FOUND            =
                                   1
            NO_AUTHORITY         2
            INVALID_CALL         3
            PREVIEW_NOT_POSSIBLE 4
            OTHERS               5.

        IF SY-SUBRC
        <> 
0.

          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER
          SY-MSGNO

          
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

        ENDIF.

        IF SY-SUBRC <> 0.
*         Implement suitable error handling here
        ENDIF.

      ELSE .
        MESSAGE '请选择有效字段!'TYPE 'S' DISPLAY LIKE 'W'.
      ENDIF .
    WHEN 'POST_T'.
  ENDCASE.

  CALL METHOD REF->REFRESH_TABLE_DISPLAY
    
EXPORTING
      IS_STABLE LV_STABLE.

ENDFORM.

FORM F_HTML_TOP_OF_PAGE USING PR_DOCUMENT TYPE REF TO CL_DD_DOCUMENT.

  CALL METHOD PR_DOCUMENT->ADD_TEXT(
      TEXT      '往来供应商对帐明细表序开发功能说明书'
      SAP_STYLE CL_DD_DOCUMENT=>HEADING ).

  CALL METHOD PR_DOCUMENT->NEW_LINE( ).

  CALL METHOD PR_DOCUMENT->ADD_TEXT(
      TEXT      GV_TOP
      SAP_STYLE 
CL_DD_DOCUMENT=>HEADING ).

*  CALL METHOD PR_DOCUMENT->ADD_GAP( WIDTH = 2 ).

*  CALL METHOD PR_DOCUMENT->ADD_LINK(
*      NAME = '163'
*      URL  = 'www.163.com'
*      TEXT = 'netease' ).

ENDFORM.                    "f_html_top_of_page

INITIALIZATION .
  PERFORM FRM_EXCLUDE_OPTION.

AT SELECTION-SCREEN OUTPUT.
  PERFORM SCREEN_OUTPUT.

AT SELECTION-SCREEN.
  PERFORM SCREEN_SETTING.

START-OF-SELECTION.
  PERFORM FOM_GETDATA .
  PERFORM FRM_DISPLAY.

ABAP是一种用于SAP系统开发的编程语言,其中pp模块是SAP系统中的生产计划模块,主要用于生产计划、生产过程控制和生产数据记录等。 ABAP开发在pp模块中的要点如下: 1. 熟悉pp模块的基础知识:了解pp模块的功能和流程,包括物料需求计划、生产订单、工作中心、生产版本等。这些知识对于正确理解和开发与pp模块相关的程序非常重要。 2. 掌握ABAP语言特性:ABAP作为SAP系统的开发语言,开发人员需要掌握其语法和特性,例如数据类型、变量声明、循环语句、条件语句等。这些知识将帮助开发人员编写高效且可靠的pp模块程序。 3. 理解生产计划数据结构:pp模块涉及的数据结构较为复杂,包括物料清单、工艺路线、生产订单等。开发人员需要了解这些数据结构的组成和关系,以便能够正确地读取和处理这些数据。 4. 开发报表和界面程序:PP模块通常需要输出各种类型的报表,如生产订单报表、工序报表等。开发人员需要根据用户需求设计和开发这些报表,并保证它们的准确性和易用性。 5. 数据验证和错误处理:在pp模块开发中,数据的准确性和可靠性非常重要。开发人员需要编写适当的代码来验证用户输入的数据,并能够处理各种可能的错误情况,以保证系统的稳定性和可靠性。 总之,ABAP开发在pp模块中需要掌握相关的知识和技术,包括pp模块的基础知识、ABAP语言特性、数据结构、报表和界面开发以及数据验证和错误处理等方面。只有掌握这些要点,才能够开发出高质量和高效率的pp模块程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值