메뉴 건너뛰기

SAP 한국 커뮤니티



>안녕하세요.



>alv에서 필드명은 가운데정렬하고  밑에 나오는 데이터는 오른쪽정렬로 하려면 어떻게 해야하나요/?? ㅠㅠ



>따로따로 정렬하려면.. 어떻게 해야하는지 모르겠네요..



>도움 부탁드립니다. 





 


테스트 프로그램 소스입니다.


TYPE-POOLS CNDP.


************************************************************************
* DATA Def.
************************************************************************
DATA GCL_GRID  TYPE REF TO CL_GUI_ALV_GRID.
DATA GCL_EVENT TYPE REF TO ZSDCL_EVENT_RECEIVER.
DATA GS_LAYO   TYPE LVC_S_LAYO.
DATA DREF      TYPE REF TO DATA.
DATA G_OKCODE  TYPE SYUCOMM.
DATA GT_FCAT   TYPE LVC_T_FCAT.
DATA GT_SORT   TYPE LVC_T_SORT.
DATA G_NO_DATA .              "" 'X' 데이터 없음
DATA : BEGIN OF GS_DATA,
         FIELD TYPE C LENGTH 10,
         FLD_2 TYPE C LENGTH 10,
         GGGG  LIKE FAGLFLEXT-HSL01,
         COLOR TYPE LVC_T_SCOL,
         STYLE TYPE LVC_T_STYL,
       END   OF GS_DATA,
       GT_DATA LIKE TABLE OF GS_DATA.


FIELD-SYMBOLS : <FS_DATA>  TYPE ANY TABLE.


************************************************************************
* AT SELECTION-SCREEN
************************************************************************
AT SELECTION-SCREEN.


INITIALIZATION.


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


  DO 15 TIMES.
    CLEAR GS_DATA.
    GS_DATA-FLD_2 = 'AAA'.
    GS_DATA-GGGG = '8300'.
*    PERFORM SET_COLOR USING SY-INDEX CHANGING GS_DATA-COLOR.
    PERFORM SET_STYLE USING SY-INDEX CHANGING GS_DATA-STYLE.
    GS_DATA-FIELD = SY-INDEX.
    APPEND GS_DATA TO GT_DATA.
  ENDDO.


  CALL SCREEN 100.


************************************************************************
************************************************************************
* SUBROUTINE POOLS
************************************************************************
************************************************************************
*&---------------------------------------------------------------------*
*&      Form  CHECK_TABLE_DATA
*&---------------------------------------------------------------------*
*&      테이블에 데이터가 있는지 확인
*&---------------------------------------------------------------------*
FORM CHECK_TABLE_DATA USING US_TABNM.


  DATA LDREF TYPE REF TO DATA.
  FIELD-SYMBOLS <LFS_STRUC>.


  CLEAR G_NO_DATA.


  CHECK US_TABNM IS NOT INITIAL.


  CREATE DATA LDREF TYPE (US_TABNM).
  ASSIGN LDREF->* TO <LFS_STRUC>.


  CHECK <LFS_STRUC> IS ASSIGNED.


  SELECT SINGLE * INTO <LFS_STRUC>
                  FROM (US_TABNM).
  IF SY-SUBRC IS NOT INITIAL.
    G_NO_DATA = 'X'.
    MESSAGE S398(00) WITH 'No data : Table - ' US_TABNM.
  ENDIF.


ENDFORM.                    " CHECK_TABLE_DATA
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
  SET PF-STATUS 'M100'.
  SET TITLEBAR  'T100'.
ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  EXIT  INPUT
*&---------------------------------------------------------------------*
MODULE EXIT INPUT.
  LEAVE TO SCREEN 0.
ENDMODULE.                 " EXIT  INPUT
*&---------------------------------------------------------------------*
*&      Module  SET_ALV  OUTPUT
*&---------------------------------------------------------------------*
MODULE SET_ALV OUTPUT.


  IF GCL_GRID IS NOT BOUND.


*   Create alv
    CREATE OBJECT GCL_GRID
      EXPORTING
        I_PARENT      = CL_GUI_CONTAINER=>DEFAULT_SCREEN
        I_APPL_EVENTS = 'X'.


    GS_LAYO-BOX_FNAME  = 'A'.
    GS_LAYO-CTAB_FNAME = 'COLOR'.
    GS_LAYO-STYLEFNAME = 'STYLE'.


*   Event-set
    CREATE OBJECT GCL_EVENT
      EXPORTING
        I_PROGRAM = SY-CPROG.


    SET HANDLER GCL_EVENT->Z_HALV_DATA_CHANGED FOR GCL_GRID.


    CALL METHOD GCL_GRID->REGISTER_EDIT_EVENT
      EXPORTING
        I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_MODIFIED.


    DATA LS_FCAT TYPE LVC_S_FCAT.


    LS_FCAT-FIELDNAME = 'FLD_2'.
    LS_FCAT-INTTYPE   = 'C'.
    LS_FCAT-INTLEN    = 10.
    APPEND LS_FCAT TO GT_FCAT.


    LS_FCAT-FIELDNAME = 'FIELD'.
    LS_FCAT-INTTYPE   = 'I'.
    APPEND LS_FCAT TO GT_FCAT.


    LS_FCAT-FIELDNAME = 'GGGG'.
    LS_FCAT-REF_FIELD = 'HSL01'.
    LS_FCAT-EDIT      = 'X'.
    LS_FCAT-REF_TABLE = 'FAGLFLEXT'.
    LS_FCAT-DO_SUM    = 'X'.
    APPEND LS_FCAT TO GT_FCAT.


*   Display-ALV
    CALL METHOD GCL_GRID->SET_TABLE_FOR_FIRST_DISPLAY
      EXPORTING
        IS_LAYOUT       = GS_LAYO
      CHANGING
        IT_OUTTAB       = GT_DATA
        IT_FIELDCATALOG = GT_FCAT
        IT_SORT         = GT_SORT.


  ELSE.
    CALL METHOD GCL_GRID->REFRESH_TABLE_DISPLAY.
  ENDIF.


ENDMODULE.                 " SET_ALV  OUTPUT
*&---------------------------------------------------------------------*
*&      Form  CHECK_VALID_TABLE
*&---------------------------------------------------------------------*
FORM CHECK_VALID_TABLE  USING    US_TABNM TYPE ANY.


  DATA LS_DD02L TYPE DD02L.


  SELECT SINGLE * INTO LS_DD02L
           FROM DD02L
          WHERE TABNAME = US_TABNM
            AND AS4LOCAL = 'A'.  "" 활성상태의 테이블
  IF SY-SUBRC IS NOT INITIAL.
    MESSAGE S398(00) WITH '활성테이블'
                          US_TABNM
                          '이 없습니다'.
    STOP.
  ENDIF.


ENDFORM.                    " CHECK_VALID_TABLE
*&---------------------------------------------------------------------*
*&      Form  Z_HALV_DATA_CHANGED
*&---------------------------------------------------------------------*
FORM Z_HALV_DATA_CHANGED CHANGING SENDER          TYPE REF TO CL_GUI_ALV_GRID
                                  ER_DATA_CHANGED TYPE REF TO CL_ALV_CHANGED_DATA_PROTOCOL
                                  E_ONF4
                                  E_ONF4_BEFORE
                                  E_ONF4_AFTER
                                  E_UCOMM.
  DATA LV_TMP  TYPE STRING.
  DATA LV_TYPE .


  FIELD-SYMBOLS : <LFS_CELLS> TYPE LVC_S_MODI,
                  <LFS_DATA>  TYPE ANY,
                  <LFS_FIELD> TYPE ANY.


  LOOP AT ER_DATA_CHANGED->MT_MOD_CELLS ASSIGNING <LFS_CELLS>.
    READ TABLE GT_DATA ASSIGNING <LFS_DATA> INDEX <LFS_CELLS>-ROW_ID.
    CHECK SY-SUBRC IS INITIAL.
    ASSIGN COMPONENT <LFS_CELLS>-FIELDNAME OF STRUCTURE <LFS_DATA> TO <LFS_FIELD>.
    CHECK SY-SUBRC IS INITIAL.
    LV_TMP = <LFS_CELLS>-VALUE.
    DESCRIBE FIELD <LFS_FIELD> TYPE LV_TYPE.
    CASE LV_TYPE.
      WHEN 'N' OR 'I' OR 'P' OR 'F'.
        TRANSLATE LV_TMP USING ', '.
        CONDENSE LV_TMP NO-GAPS.
      WHEN OTHERS.
    ENDCASE.
    <LFS_FIELD> = LV_TMP.
  ENDLOOP.


ENDFORM.                    "Z_HALV_DATA_CHANGED
*&---------------------------------------------------------------------*
*&      Form  SET_COLOR
*&---------------------------------------------------------------------*
FORM SET_COLOR  USING    US_INDEX TYPE ANY
                CHANGING CT_COLOR TYPE LVC_T_SCOL.


  DATA LS_COLOR TYPE LVC_S_SCOL.
  DATA LV_COL   TYPE I.


  LV_COL = US_INDEX MOD 7.


  CHECK LV_COL = 6.


  LS_COLOR-FNAME     = 'FLD_2'.
  LS_COLOR-COLOR-COL = LV_COL.
  LS_COLOR-COLOR-INT = 0.
  LS_COLOR-COLOR-INV = 0.


  INSERT LS_COLOR INTO TABLE CT_COLOR.


ENDFORM.                    " SET_COLOR
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND  INPUT
*&---------------------------------------------------------------------*
MODULE USER_COMMAND INPUT.


  FIELD-SYMBOLS : <LFS_DATA>  TYPE TABLE,
                  <LFS_STRUC> TYPE ANY,
                  <LFS_FIELD> TYPE ANY.


  CASE G_OKCODE.
    WHEN OTHERS.


  ENDCASE.


  CLEAR G_OKCODE.


ENDMODULE.                 " USER_COMMAND  INPUT
*&---------------------------------------------------------------------*
*&      Form  SET_STYLE
*&---------------------------------------------------------------------*
FORM SET_STYLE  USING    VALUE(US_INDEX) TYPE ANY
                CHANGING CT_STYLE TYPE LVC_T_STYL.


  DATA LS_STYLE TYPE LVC_S_STYL.
  DATA LV_MOD   TYPE I.


  US_INDEX = US_INDEX - 1.


  LV_MOD = US_INDEX MOD 3.


  LS_STYLE-FIELDNAME = 'FLD_2'.


  CASE LV_MOD.
    WHEN 0.
    WHEN 1.
      LS_STYLE-STYLE     = 4096.
    WHEN 2.
      LS_STYLE-STYLE     = 6144.
  ENDCASE.


  INSERT LS_STYLE INTO TABLE CT_STYLE.


ENDFORM.                    " SET_STYLE


 

번호 제목 글쓴이 날짜 조회 수
5152 <img src=1.gif>action box 알고 계시면 자료 부탁드립니다.. 무한루프 2010.08.11 1522
5151 <img src=3.gif>table control 오류 질문입니다. [3] 스키메 2010.08.11 1216
5150 <img src=2.gif>alv에서 필드명은 가운데정렬하고 아래의 데이터는 오른쪽정렬로 하려면 어떻게해야하나요. [4] 마늘맛쿨피스 2010.08.11 5300
» [re] <img src=2.gif>alv에서 필드명은 가운데정렬하고 아래의 데이터는 오른쪽정렬로 하려면 어떻게해야하나요. file 맑은하늘 2010.08.12 2158
5148 <img src=2.gif>[데이터 작업시] modify / delete 시 문의.. [5] 맹꽁이 2010.08.10 1163
5147 <img src=2.gif>enter시 PAI 타는 방법을 알고 싶습니다. [1] 초짜!! 2010.08.10 1682
5146 <img src=2.gif>excel 다운로드시 가로의 컬럼들이 다 안나오고 잘려서 나오는데... [2] 글쎄다 2010.08.10 1243
5145 <img src=3.gif>class alv 에서 top_of_page 구현 방법을 알고 싶어요 [3] 쌔끈남 2010.08.10 1748
5144 <img src=3.gif>모듈풀 프로그램에서 subscreen 사용했을경우 subscreen에 f4 적용하는 방법.. [2] 태사성 2010.08.10 2311
5143 <img src=2.gif>모듈(SD, MM, FI, CO) 별 마감 확인 방법 건 [4] JG 2010.08.10 2010
5142 <img src=2.gif>MB_DOCUMENT_BADI 에서 ROLLBACK 및 COMMIT? [1] 아밥 2010.08.10 1743
5141 <img src=3.gif>Excel을 업로드하여 alv로 출력하는것에 관하여 질문입니다. [4] GuyLiAN 2010.08.10 1941
5140 <img src=1.gif>.[도와주세욤]수불부 조회시 수불기간 별 제외 자재 리스트에서 빼려고 합니다. SAP너이늠 2010.08.10 2397
5139 <img src=3.gif>EXCEL파일을 업로드하여 CHECKBOX에 체크된 것만 저장하는 기능 [7] 그저조아 2010.08.10 2045
5138 <img src=2.gif>abap 프로그램 종류중 enhancement,add-on 이 먼가요? [2] 초짜 2010.08.09 1935
5137 <img src=3.gif>클래스를 이용하는 방법 말고 alv툴바를 보이게 하는 방법을 알고싶습니다. [2] 쌔끈남 2010.08.09 1486
5136 <img src=3.gif>프로그램 조회에 대해 질문이 들어와서 이렇게 글을 올립니다~! 도와주세요~ [6] 래피드 2010.08.09 1514
5135 <img src=2.gif>대용량 데이타에서 동적으로 distinct 할 수 있는 방법문의 [1] 뽀그리 2010.08.08 1644
5134 <img src=2.gif>ALV 프린트 기능 USER_COMMAND 로 구현하는 방법 문의 합니다. [4] 은근 2010.08.07 2262
5133 <img src=3.gif><img src=1.gif>ftp 펑션을 통해 파일서버에 첨부파일을 넘기는중 bsp 화면에서 펑션을 받아 사용하려하면 beginer 2010.08.07 1757