2011년 4월 5일 화요일

Field symbol

field-symbol <FS> type any table.

assign gt_standard [] to <FS>.

<FS> 를 사용.

2011년 3월 23일 수요일

아웃풋 값의 자리수만큼 0으로 채우기


  DATA lv_zone1 LIKE tzone-zone1.

  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
          EXPORTING
            input  = ls_mod_cells-value
          IMPORTING
            output = lv_zone1.


lv_zone1 이라는 변수의 설정된 자리수에 따라 숫자 앞을 0으로 채워준다.

ex) 자리수가 5자리인데 1을 입력하면 00001 로 만들어줌

반대는,
'CONVERSION_EXIT_ALPHA_OUTPUT' 을 사용하면 된다.
          

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' 가 안먹히는 경우

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' 함수는

만들어진 인터널 테이블 속성을 그대로 가져와서 필드카탈로그를 만드는 함수인데

만약 인터널 테이블이 types 로 만들어지면 작동되지 않는다.

DATA ... OCCURS 0 으로 만들어진 인터널 테이블만 적용이 된다.

그렇기 때문에 따로 필드 카탈로그를 설정해 줘야 한다.

  PERFORM field_settingv_call USING :
                 'S' 'ICON'       ' '   ,
                 ' ' 'SCRTEXT_S'  TEXT-T01   ,
                 ' ' 'COLDDICTXT' 'S'   ,
                 ' ' 'JUST'       'C'   ,
                 'E' 'KEY'        ' '   ,

                 'S' 'LIFNR'      ' '   ,
                 ' ' 'SCRTEXT_S'  TEXT-T02   ,
                 ' ' 'COLDDICTXT' 'S'   ,
                 'E' 'KEY'        'X'   .

2011년 3월 21일 월요일

ALV 그리드 화면 동기화 함수

그리드 껍데기를 인터널 테이블과 동기화

form check_changed using p_grid type ref to cl_gui_alv_grid.
data : l_valid, l_refresh.

call method p_grid->check_changed_data
  importing
    e_valid   = l_valid
  changing
    c_refresh = l_refresh.
endform.



인터널 테이블 내용을 그리드 껍데기와 동기화

form refresh_grid  using p_grid type ref to cl_gui_alv_grid.
  data:  ls_stable        type lvc_s_stbl.

  ls_stable-row  =  'X'.
  ls_stable-col  =  'X'.

  call method p_grid->refresh_table_display
    exporting
      i_soft_refresh = 'X'
      is_stable      = ls_stable.
endform.

2011년 3월 18일 금요일

인터널 테이블, 워크 에어리어 선언방법

* 구조를 먼저 선언하고 TYPE STANDARD TABLE OF 로 선언하는 방법
   워크 에어리어는 생성된 인터널 테이블로부터 LIKE LINE OF 로 선언

TYPES : BEGIN OF g_ty_process,           "화면에 출력할 정보를 담을 ITAB
          MCODE LIKE ZTCM0140-MCODE,     "모듈 코드
          MNAME LIKE ZTSD0004-TEXT2,     "모듈 이름
          PCODE LIKE ZTCM0141-PCODE,     "프로세스 코드
          PNAME LIKE ZTCM0141-PNAME,     "프로세스 이름 
        END OF g_ty_process.

DATA : gt_process TYPE STANDARD TABLE OF g_ty_process.  "인터널 테이블
DATA : gs_process LIKE LINE OF gt_process.              "workarea


* OCCURS 0 을 이용해서 바로 선언하는 방법(헤더라인 포함)
  인터널 테이블에 헤더라인이 존재해서 인터널 테이블이자 워크에어리어 같이 사용됨
  Loop 문으로 인터널 테이블에서 하나씩 값을 꺼내면 그 값이 헤더라인에 저장

  DATA : BEGIN OF gt_lang OCCURS 0,
          MCODE LIKE ZTCM0140-MCODE,      "모듈 코드
          MNAME LIKE ZTSD0004-TEXT2,      "모듈 이름
          PCODE LIKE ZTCM0140-PCODE,      "프로세스 코드
          PNAME LIKE ZTCM0141-PNAME,      "프로세스 이름
       END OF gt_lang.

유용한 단축키

Ctrl + O
이동하고자 하는 라인번호를 넣고 OK 버튼이나 ENTER 를 누르면 한번에 이동.