• ABAP显示修改数据(tables CDHDR and CDPOS)


    REPORT z_alv_cdhdr_cdpos.
    TYPE-POOLS slis. 
    DATA : cdhdr TYPE cdhdr.        
    SELECT-OPTIONS :
      s_objcls FOR cdhdr-objectclas OBLIGATORY,
      s_objtid FOR cdhdr-objectid,
      s_chngnr FOR cdhdr-changenr,
      s_usrnam FOR cdhdr-username DEFAULT sy-uname,
      s_udate  FOR cdhdr-udate    DEFAULT sy-datum,
      s_time   FOR cdhdr-utime,
      s_tcode  FOR cdhdr-tcode,
      s_plncnr FOR cdhdr-planchngnr,
      s_chngno FOR cdhdr-act_chngno,
      s_wsplnd FOR cdhdr-was_plannd,
      s_chngid FOR cdhdr-change_ind.

    SELECTION-SCREEN SKIP.
    PARAMETERS p_max TYPE numc3 OBLIGATORY DEFAULT '200'.

    *---------------------------------------------------------------------*
    TYPES :
      BEGIN OF ty_s_cdhdr.
            INCLUDE STRUCTURE cdhdr.
    TYPES : checkbox,
      END OF ty_s_cdhdr,

      BEGIN OF ty_s_cdpos.
            INCLUDE STRUCTURE cdpos.
    TYPES : checkbox,
      END OF ty_s_cdpos.

    *---------------------------------------------------------------------*
    DATA :
    * Layout for ALV
      gs_layout TYPE slis_layout_alv,
    * Change document header
      t_cdhdr TYPE TABLE OF ty_s_cdhdr.

    *---------------------------------------------------------------------*
    START-OF-SELECTION.

    * Read Change document header
      SELECT * INTO TABLE t_cdhdr
                 UP TO p_max ROWS
               FROM cdhdr
              WHERE objectclas IN s_objcls
                and objectid   in s_objtid
                and changenr   in s_chngnr
                AND username   IN s_usrnam
                AND udate      IN s_udate
                AND utime      IN s_time
                AND tcode      IN s_tcode
                AND planchngnr IN s_plncnr
                AND act_chngno IN s_chngno
                AND was_plannd IN s_wsplnd
                AND change_ind IN s_chngid.

      gs_layout-zebra = 'X'.
      gs_layout-colwidth_optimize = 'X'.
      gs_layout-box_fieldname = 'CHECKBOX'.

    * Display ALV
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                i_callback_program      = sy-cprog
                i_callback_user_command = 'USER_COMMAND'
                i_structure_name        = 'CDHDR'
                is_layout               = gs_layout
           TABLES
                t_outtab                = t_cdhdr.

    *---------------------------------------------------------------------*
    *       FORM USER_COMMAND                                             *
    *---------------------------------------------------------------------*
    FORM user_command USING u_ucomm     TYPE syucomm
                            us_selfield TYPE slis_selfield.     "#EC CALLED

    * Macro definition
      DEFINE m_sort.
        add 1 to ls_sort-spos.
        ls_sort-fieldname = &1.
        ls_sort-up = 'X'.
        append ls_sort to lt_sort.
      END-OF-DEFINITION.

      DATA :
        ls_cdhdr TYPE ty_s_cdhdr,
        ls_sort  TYPE slis_sortinfo_alv,
        lt_sort  TYPE slis_t_sortinfo_alv,
    *   Change document items
        lt_cdpos TYPE TABLE OF ty_s_cdpos.

      CASE u_ucomm.
        WHEN '&IC1'.
          PERFORM check_marked USING us_selfield.

    *     Read Change document items
          LOOP AT t_cdhdr INTO ls_cdhdr WHERE checkbox = 'X'.
            SELECT * APPENDING TABLE lt_cdpos
                     FROM cdpos
                    WHERE objectclas = ls_cdhdr-objectclas
                      AND objectid   = ls_cdhdr-objectid
                      AND changenr   = ls_cdhdr-changenr.
          ENDLOOP.

          m_sort 'CHANGENR'.

    *     Display ALV
          CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
               EXPORTING
                    i_structure_name = 'CDPOS'
                    is_layout        = gs_layout
                    it_sort          = lt_sort
               TABLES
                    t_outtab         = lt_cdpos.

      ENDCASE.

    ENDFORM.                               " USER_COMMAND
    *---------------------------------------------------------------------*
    *       Form  CHECK_MARKED
    *---------------------------------------------------------------------*
    *       What has been marked in t_cdhdr
    *---------------------------------------------------------------------*
    FORM check_marked USING us_selfield TYPE slis_selfield.

      FIELD-SYMBOLS :
        <cdhdr> TYPE ty_s_cdhdr.

      READ TABLE t_cdhdr TRANSPORTING NO FIELDS WITH KEY checkbox = 'X'.
      IF NOT sy-subrc IS INITIAL AND
         NOT us_selfield-tabindex IS INITIAL.
        READ TABLE t_cdhdr INDEX us_selfield-tabindex ASSIGNING <cdhdr>.
        <cdhdr>-checkbox = 'X'.
      ENDIF.

    ENDFORM.                               " CHECK_MARKED
     参考连接:http://blog.csdn.net/compassbutton/archive/2006/08/25/1119340.aspx
    sap标准:RSSCD100,RSSCD200

  • 相关阅读:
    [CSP校内集训]hotel
    DP小技巧——悬线法
    [SDOI2015]寻宝游戏/异象石(LCA)
    [HAOI2006]旅行
    [SDOI2013]泉(搜索+hash+容斥)
    [NOIP校内集训]home
    [AHOI2014/JSOI2014]骑士游戏(SPFA的本质)
    欧拉函数模板
    开学考试题8:神奇的集合(multiset) 动态开点线段树
    开学考试题5:2017黑龙江省选
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157478.html
Copyright © 2020-2023  润新知