메뉴 건너뛰기

SAP 한국 커뮤니티



REPORT z_alv_cdhdr_cdpos

노름마치 2007.11.05 12:41 조회 수 : 4802

REPORT z_alv_cdhdr_cdpos.
*---------------------------------------------------------------------*
* This ALV report displays change document tables CDHDR and CDPOS     *
*---------------------------------------------------------------------*
* Author : Michel PIOUD                                               *
* Email : mpioud@yahoo.fr  HomePage : http://www.geocities.com/mpioud *
*---------------------------------------------------------------------*
TYPE-POOLS slis.                 " Global ALV types


DATA : cdhdr TYPE cdhdr.         " Change document header


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
***************** END OF PROGRAM Z_ALV_CDHDR_CDPOS ********************


 

번호 제목 글쓴이 날짜 조회 수
27 4.6c 에서 Xml 파일을 읽어오는 로직 예제 입니다. [2] woong 2009.05.11 14810
26 Data Browser (SE11에서 Contents 버튼 클릭시 화면) [8] ASY 2009.05.19 9047
25 Mass Download [5] file 소주와 막걸리 2009.11.13 17368
24 Syntax Checker [4] file 소주와 막걸리 2009.11.13 13765
23 Transport Trace [4] file 소주와 막걸리 2009.11.13 12143
22 Text(Description) 빠르게 반영하기,,, 속도개선을 위주로 [5] file 노름마치 2010.12.07 13909
21 Archiving Source [10] file 원니컴 2011.03.22 6961
20 [onepaper] 참고자료 Archiving 세팅에 필요한 파일소스입니다. [7] file 원니컴 2011.03.22 13802
19 Dynamic Select 소스 [5] 떡밥 2011.06.03 17775
18 통화단위, krw, usd 일반 필드에 변환시 로직(소수점, 자리수) [4] sapjoy 2011.07.19 15570
17 스크린에서 버튼을 tree 처럼 만들기. [32] file Jenny 2011.08.11 17659
16 Search For Program/Function/Table Desc&Name [8] file 초짜 2011.09.30 9832
15 인터널 테이블을 사용한 구구단 출력 두가지 입니다 - WRITE, ALV 이용 [1] kofnhuge 2012.10.10 14031
14 nugg 프로그램을 sap 에 생성하기.. [3] file MadMax 2012.10.11 10836
13 멀 어떻게 해야 하는건질 몰라 질문 드립니다 [5] 쏠라맨 2012.10.12 11668
12 COMAPY CODE에 할당된 Fiscal variant에 대한 calendar date 변환 paran 2013.02.28 10466
11 [Module pool] Container에 webpage 넣기. [2] 냥냥 2013.03.19 11200
10 10이하의 홀수 마방진 은미짱 2013.10.18 6791
9 소수점 뒷자리 0 제거 로직 file 양키(이경환) 2014.01.19 9449
8 Split 의 사용 [1] 양키(이경환) 2014.02.05 10771