Files
ABAP-Indexing/wiki/programs/ZFIR0100.md
T

74 KiB

type, title, description, resource, tags, generated, status, x-package, x-changed-on, x-tables-read, x-tables-write, x-calls, x-code-hash, x-unit-count, x-chunk-count, x-declaration-count
type title description resource tags generated status x-package x-changed-on x-tables-read x-tables-write x-calls x-code-hash x-unit-count x-chunk-count x-declaration-count
abap-program ZFIR0100 — [FI] 전자세금계산서 매입전표 생성 전자세금계산서 수신 데이터(ZDTV3T_AP_EXT 헤더/ZDTV3T_AP_EXT_D 상세)를 읽어 매입 전표를 생성하는 화면이다. 편집 가능한 ALV 그리드에서 수신 세금계산서를 검토·수정하고, 전기 대상을 확정해 저장·전기한다. 실제 전표 입력 화면은 ZFIR0110_DOC 을 호출해 처리하며, 셀 단위 입력 제어(CELLTAB)와 변형(Variant) 관리를 갖춘다. abap://ZFIR0100
전자세금계산서
세금계산서
매입
부가세
전표
채무관리
FI
행선택
선택검증
저장전검증
ALV선택
전표번호
저장
사용여부
발행일
사업장
계산서순번
상태아이콘
사용자 명령
전기
by at
abap-indexing/z-ai/glm-5.2:free 2026-09-20T15:36:21+00:00
stable
ZDTV3T_AP_EXT
ZDTV3T_AP_EXT_D
GT_MAIN
ZDTV3T_AP_EXT
ZDTV3T_AP_EXT_D
FB03
LAST_DAY_OF_MONTHS
POPUP_TO_CONFIRM
POPUP_TO_CONFIRM_STEP
REUSE_ALV_VARIANT_DEFAULT_GET
SAPGUI_PROGRESS_INDICATOR
ZFIR0110_DOC
009c573d7068cede209822b699c51af6a3cf09665a4077f9c8cdf6ee202d53e5 64 25 84

업무 목적

전자세금계산서 수신 데이터(ZDTV3T_AP_EXT 헤더/ZDTV3T_AP_EXT_D 상세)를 읽어 매입 전표를 생성하는 화면이다. 편집 가능한 ALV 그리드에서 수신 세금계산서를 검토·수정하고, 전기 대상을 확정해 저장·전기한다. 실제 전표 입력 화면은 ZFIR0110_DOC 을 호출해 처리하며, 셀 단위 입력 제어(CELLTAB)와 변형(Variant) 관리를 갖춘다.

주 흐름

  1. 초기 변형(Variant)을 불러오고 선택화면을 준비한다 (SET_INIT → GET_INIT_VARIANT → GET_VARIANT)
  2. 대상 기간의 전자세금계산서 수신 내역을 읽어 그리드 데이터를 만든다 (SET_DATA)
  3. 셀 입력 가능 여부와 행 스타일을 설정한다 (SET_ITAB_STYLE → SET_CELLTAB)
  4. 필드카탈로그·레이아웃·툴바를 구성해 편집 가능한 ALV 를 화면 0100 에 띄운다 (SET_FIELD01 → RUN_DISPLAY_ALV)
  5. 사용자 변경을 반영하고 날짜·텍스트를 보정한다 (SET_CHANGE → DATE_PROCESS → TEXT_PROCESS)
  6. 확인 팝업 후 저장·전기한다 (POPUP_TO_CONFIRM → SET_SAVE → SET_POST)
  7. 전표 입력 상세는 ZFIR0110_DOC 을 호출해 처리한다

핵심 내부테이블

  • GT_MAIN — 전자세금계산서 수신 내역 편집 그리드 (채움: SET_DATA / 소비: RUN_DISPLAY_ALV, SET_SAVE, SET_POST)

테이블 / 외부 호출

  • read: ZDTV3T_AP_EXT, ZDTV3T_AP_EXT_D
  • write: GT_MAIN, ZDTV3T_AP_EXT, ZDTV3T_AP_EXT_D
  • 외부 호출: FB03, LAST_DAY_OF_MONTHS, POPUP_TO_CONFIRM, POPUP_TO_CONFIRM_STEP, REUSE_ALV_VARIANT_DEFAULT_GET, SAPGUI_PROGRESS_INDICATOR, ZFIR0110_DOC

로직 조각 (25건 / unit 18개)

LLM 이 코드에서 골라낸 업무 로직 단위다. 조각마다 소스 원문과 자연어 설명을 함께 싣는다 — 설명이 코드와 맞는지 바로 대조할 수 있어야 하기 때문이다. 테이블·호출은 LLM 이 쓴 값이 아니라 파서가 조각 범위에서 다시 뽑은 사실이다. 순서는 실행 순서다.

FORM GET_INIT_VARIANT — ZFIR0100F01 L55-L74 (20줄)

변형 키를 초기화하고 REUSE_ALV_VARIANT_DEFAULT_GET 으로 사용자 기본 ALV 변형(Variant)을 조회하는 FORM 이다.

이 unit 의 조각 1개가 12/20줄(60%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[fm_call] REUSE_ALV_VARIANT_DEFAULT_GET(I_SAVE='A') 으로 리포트·사용자·핸들에 해당하는 기본 ALV 변형을 GX_VARIANT 에 읽는다(결과 반영은 주석 처리).

    61|   GX_VARIANT = GS_VARIANT.
    62| 
    63|   CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
    64|     EXPORTING
    65|       I_SAVE     = 'A'
    66|     CHANGING
    67|       CS_VARIANT = GX_VARIANT
    68|     EXCEPTIONS
    69|       NOT_FOUND  = 2.
    70|   IF SY-SUBRC = 0.
    71| ****    PA_LAYOU = GX_VARIANT-VARIANT.
    72|   ENDIF.
  • EN: Retrieves the user's default ALV layout variant via REUSE_ALV_VARIANT_DEFAULT_GET.
  • 호출(파서): REUSE_ALV_VARIANT_DEFAULT_GET
  • SAP 객체: REUSE_ALV_VARIANT_DEFAULT_GET
  • 업무 키워드: 기본 변형, ALV 레이아웃, 변형 조회
  • English: Default Variant, ALV Layout
  • 정의부(복사 시 함께 필요): GX_VARIANT, GS_VARIANT
  • 위치: abap://ZFIR0100/ZFIR0100F01#L61-L72 · confidence 0.8 · ZFIR0100#ZFIR0100F01#FORM#GET_INIT_VARIANT#C1

FORM SET_DATA — ZFIR0100F01 L92-L166 (75줄)

조회 월의 기간을 만든 뒤 전자세금계산서 헤더(ZDTV3T_AP_HEAD)·확장(ZDTV3T_AP_EXT)·상세(ZDTV3T_AP_EXT_D)를 조인해 전표처리 상태 조건으로 수신 내역을 IT_ZDTV3T_AP_HEAD 에 읽는 FORM 이다.

이 unit 의 조각 2개가 37/75줄(49%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[control_flow] 라디오버튼(P_R1 미처리/P_R2 처리완료/P_R3 전체)에 따라 전표처리 여부(USE_DOC) 필터값 L_DOC1/L_DOC2 를 결정한다.

   125|   IF  P_R1 = 'X'.
   126|     L_DOC1 = SPACE.
   127|     L_DOC2 = SPACE.
   128|   ELSEIF P_R2 = 'X'.
   129|     L_DOC1 = 'X'.
   130|     L_DOC2 = 'X'.
   131|   ELSEIF  P_R3 = 'X'.
   132|     L_DOC1 = 'X'.
   133|     L_DOC2 = SPACE.
   134|   ENDIF.
  • EN: Derives the USE_DOC filter values from the selection radio buttons (unposted, posted, or all).
  • 업무 키워드: 조회 조건, 전표처리 여부, 라디오버튼
  • English: Selection Criteria, Document Status Filter
  • 정의부(복사 시 함께 필요): P_R1, L_DOC1, L_DOC2, P_R2, P_R3
  • 위치: abap://ZFIR0100/ZFIR0100F01#L125-L134 · confidence 0.8 · ZFIR0100#ZFIR0100F01#FORM#SET_DATA#C1

[sql_select] ZDTV3T_AP_HEAD 를 ZDTV3T_AP_EXT·ZDTV3T_AP_EXT_D 와 회사코드·작성일자·사업장·일련번호로 INNER JOIN 하여 회사코드·작성일 기간·공급자 사업자번호·이메일·미취소(INV_SIGN 공백)·전표처리 여부 조건으로 수신 전자세금계산서를 IT_ZDTV3T_AP_HEAD 에 적재한다.

   138|   SELECT  *
   139|      INTO CORRESPONDING FIELDS OF IT_ZDTV3T_AP_HEAD
   140|      FROM ( (  ZDTV3T_AP_HEAD AS A INNER JOIN ZDTV3T_AP_EXT   AS  B
   141|        ON A~BUKRS      = B~BUKRS
   142|       AND A~ISSUE_DATE = B~ISSUE_DATE
   143|       AND A~BUPLA      = B~BUPLA
   144|       AND A~INV_SEQ    = B~INV_SEQ )
   145| 
   146|       INNER JOIN ZDTV3T_AP_EXT_D   AS  C
   147| 
   148|        ON B~BUKRS      = C~BUKRS
   149|       AND B~ISSUE_DATE = C~ISSUE_DATE
   150|       AND B~BUPLA      = C~BUPLA
   151|       AND B~INV_SEQ    = C~INV_SEQ )
   152| 
   153|     WHERE A~BUKRS     =  P_BUKRS
   154|      AND  A~ISSUE_DATE  IN   S_BUDAT
   155|      AND  A~SU_ID       IN   S_SU_ID
   156|      AND  A~IP_EMAIL1   IN   S_EMAIL
   157|      AND  A~INV_SIGN    =    ''
   158|      AND  ( B~USE_DOC   =    L_DOC1  OR
   159|             B~USE_DOC   =    L_DOC2 ).
   160| 
   161|     APPEND   IT_ZDTV3T_AP_HEAD.
   162|     CLEAR    IT_ZDTV3T_AP_HEAD.
   163| 
   164|   ENDSELECT.
  • EN: Selects received e-tax invoices by joining ZDTV3T_AP_HEAD with ZDTV3T_AP_EXT and ZDTV3T_AP_EXT_D on company code, issue date, business place and sequence, filtered by period, supplier ID, email, non-cancelled and USE_DOC status.
  • 테이블(파서): read ZDTV3T_AP_EXT, ZDTV3T_AP_EXT_D / write -
  • SAP 객체: ZDTV3T_AP_HEAD, ZDTV3T_AP_EXT, ZDTV3T_AP_EXT_D
  • 업무 키워드: 전자세금계산서 수신, 매입 세금계산서, 조회, 조인, 전표처리 여부
  • English: E-Tax Invoice, AP Invoice, Business Place, Inner Join
  • 정의부(복사 시 함께 필요): ZDTV3T_AP_HEAD, IT_ZDTV3T_AP_HEAD, ZDTV3T_AP_EXT, ZDTV3T_AP_EXT_D, P_BUKRS, S_BUDAT, S_SU_ID, S_EMAIL, L_DOC1, L_DOC2
  • 위치: abap://ZFIR0100/ZFIR0100F01#L138-L164 · confidence 0.9 · ZFIR0100#ZFIR0100F01#FORM#SET_DATA#C2

FORM DATE_PROCESS — ZFIR0100F01 L311-L330 (20줄)

조회 연월(P_SPMON)로 월초~월말 날짜 범위 S_BUDAT 를 LAST_DAY_OF_MONTHS 로 구성하는 FORM 이다.

이 unit 의 조각 1개가 16/20줄(80%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[calculation] 연월 P_SPMON 의 1일을 시작일로 하고 LAST_DAY_OF_MONTHS 로 월말일을 구해 작성일자 조회 범위 S_BUDAT(BT) 를 만든다.

   313|   CLEAR: S_BUDAT[],  S_BUDAT.
   314|   S_BUDAT-SIGN       = 'I'.
   315|   S_BUDAT-OPTION     = 'BT'.
   316|   S_BUDAT-LOW+0(6)   =  P_SPMON.
   317|   S_BUDAT-LOW+6(2)   =  '01'.
   318| 
   319|   CALL FUNCTION 'LAST_DAY_OF_MONTHS'
   320|     EXPORTING
   321|       DAY_IN            = S_BUDAT-LOW
   322|     IMPORTING
   323|       LAST_DAY_OF_MONTH = S_BUDAT-HIGH
   324|     EXCEPTIONS
   325|       DAY_IN_NO_DATE    = 1
   326|       OTHERS            = 2.
   327| 
   328|   APPEND  S_BUDAT.
  • EN: Builds the issue-date range S_BUDAT from the first day of the selected month to its last day via LAST_DAY_OF_MONTHS.
  • 호출(파서): LAST_DAY_OF_MONTHS
  • SAP 객체: LAST_DAY_OF_MONTHS
  • 업무 키워드: 조회 기간, 월초, 월말, 날짜 범위
  • English: Period Range, Last Day Of Month, Select-Option
  • 정의부(복사 시 함께 필요): S_BUDAT, P_SPMON
  • 위치: abap://ZFIR0100/ZFIR0100F01#L313-L328 · confidence 0.95 · ZFIR0100#ZFIR0100F01#FORM#DATE_PROCESS#C1

FORM MODIFY_PROCESS — ZFIR0100F01 L240-L261 (22줄)

조회된 IT_ZDTV3T_AP_HEAD 를 GT_MAIN 그리드 테이블로 옮기며 전표번호 유무에 따라 처리 상태 아이콘(ZICON)을 설정하는 FORM 이다.

이 unit 의 조각 1개가 15/22줄(68%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[other] 수신 전자세금계산서 각 건을 GT_MAIN 으로 복사하고 전표번호(BELNR)가 없으면 미처리 아이콘(@09@), 있으면 처리완료 아이콘(@08@)을 ZICON 에 넣어 그리드 상태 표시를 만든다.

   244|   LOOP AT  IT_ZDTV3T_AP_HEAD.
   245| 
   246|     MOVE-CORRESPONDING IT_ZDTV3T_AP_HEAD  TO GT_MAIN.
   247| 
   248|     IF  GT_MAIN-BELNR IS INITIAL.
   249|       GT_MAIN-ZICON = '@09@'.
   250|     ELSE.
   251|       GT_MAIN-ZICON = '@08@'.
   252|     ENDIF.
   253| 
   254| 
   255|     APPEND  GT_MAIN.
   256|     CLEAR   GT_MAIN.
   257| 
   258|   ENDLOOP.
  • EN: Copies each e-tax invoice row into GT_MAIN and sets the status icon based on whether an FI document number (BELNR) already exists.
  • SAP 객체: GT_MAIN, IT_ZDTV3T_AP_HEAD
  • 업무 키워드: 상태 아이콘, 전표처리 여부, 그리드 데이터 구성
  • English: Status Icon, Document Number, Grid Data
  • 정의부(복사 시 함께 필요): ZDTV3T_AP_HEAD, IT_ZDTV3T_AP_HEAD, GT_MAIN
  • 위치: abap://ZFIR0100/ZFIR0100F01#L244-L258 · confidence 0.85 · ZFIR0100#ZFIR0100F01#FORM#MODIFY_PROCESS#C1

FORM DATA_CHANGED — ZFIR0100F02 L962-L1040 (79줄)

편집 ALV 의 DATA_CHANGED 이벤트에서 변경된 셀 값을 GT_MAIN 에 반영하고 변경 플래그를 세우며 오류 시 프로토콜에 기록한 뒤 그리드를 새로고침하는 FORM 이다.

이 unit 의 조각 2개가 58/79줄(73%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[validation] 행 삽입(MT_INSERTED_ROWS)이 있으면 셀 변경 처리를 하지 않고 종료한다.

   977|   DESCRIBE TABLE P_CHANGED->MT_INSERTED_ROWS LINES LV_LINE.
   978|   IF LV_LINE <> 0.
   979|     EXIT.
   980|   ENDIF.
  • EN: Exits without processing when the change protocol contains inserted rows.
  • 호출(파서): P_CHANGED->MT_INSERTED_ROWS
  • SAP 객체: CL_ALV_CHANGED_DATA_PROTOCOL
  • 업무 키워드: 행 삽입 제외, 변경 검사
  • English: Inserted Rows, Data Changed
  • 정의부(복사 시 함께 필요): LV_LINE
  • 위치: abap://ZFIR0100/ZFIR0100F02#L977-L980 · confidence 0.8 · ZFIR0100#ZFIR0100F02#FORM#DATA_CHANGED#C1

[other] 변경된 셀(MT_GOOD_CELLS)마다 GET_CELL_VALUE 로 값을 읽어 GT_MAIN 의 해당 필드에 MODIFY 하고 회사코드를 채우며 변경 플래그(GV_CHK)를 세운 뒤, 오류면 ADD_PROTOCAL_ENTRY 로 기록하고 정상이면 MODIFY_CELL 로 셀 값을 확정한다(ZDTV3T_AP_EXT USE_DOC 갱신은 주석 처리).

   982|   LOOP AT P_CHANGED->MT_GOOD_CELLS INTO LS_MOD_CELLS.
   983|     CLEAR: GV_ERR, GS_MSG.
   984| 
   985|     ASSIGN COMPONENT LS_MOD_CELLS-FIELDNAME
   986|                   OF STRUCTURE GT_MAIN TO <FS_FIELD>.
   987| 
   988| * 입력된 셀의 값 얻기
   989| 
   990|     CALL METHOD P_CHANGED->GET_CELL_VALUE
   991|       EXPORTING
   992|         I_ROW_ID    = LS_MOD_CELLS-ROW_ID
   993|         I_FIELDNAME = LS_MOD_CELLS-FIELDNAME
   994|         I_TABIX     = LS_MOD_CELLS-TABIX
   995|       IMPORTING
   996|         E_VALUE     = <FS_FIELD>.
   997| 
   998|     GV_CHK = 'X'.     " 변경 CHECK
   999| 
  1000|     GT_MAIN-BUKRS = P_BUKRS.
  1001| 
  1002|     MODIFY GT_MAIN INDEX        LS_MOD_CELLS-ROW_ID
  1003|                    TRANSPORTING (LS_MOD_CELLS-FIELDNAME).
  1004| 
  1005| 
  1006|     IF GV_ERR IS NOT INITIAL.
  1007|       PERFORM ADD_PROTOCAL_ENTRY  USING P_CHANGED
  1008|                                         LS_MOD_CELLS
  1009|                                         GS_MSG.
  1010|     ELSE.
  1011| 
  1012| * UPDATE VALUE
  1013| 
  1014|       CALL METHOD P_CHANGED->MODIFY_CELL
  1015|         EXPORTING
  1016|           I_ROW_ID    = LS_MOD_CELLS-ROW_ID
  1017|           I_FIELDNAME = LS_MOD_CELLS-FIELDNAME
  1018|           I_VALUE     = LS_MOD_CELLS-VALUE.
  1019| 
  1020| 
  1021| *      IF  LS_MOD_CELLS-FIELDNAME = 'BELNR'.
  1022| *        IF  LS_MOD_CELLS-VALUE  IS INITIAL.
  1023| *          L_USE_DOC = ''.
  1024| *        ELSE.
  1025| *          L_USE_DOC = 'X'.
  1026| *        ENDIF.
  1027| *        UPDATE   ZDTV3T_AP_EXT     SET:  USE_DOC =  L_USE_DOC
  1028| *                                   WHERE BUKRS      =  GT_MAIN-BUKRS
  1029| *                                     AND ISSUE_DATE =  GT_MAIN-ISSUE_DATE
  1030| *                                     AND BUPLA      =  GT_MAIN-BUPLA
  1031| *                                     AND INV_SEQ    =  GT_MAIN-INV_SEQ.
  1032| *      ENDIF.
  1033|     ENDIF.
  1034| 
  1035|   ENDLOOP.
  • EN: For each changed cell, reads the new value with GET_CELL_VALUE, updates the GT_MAIN field and change flag, and either logs an error via ADD_PROTOCAL_ENTRY or confirms the value with MODIFY_CELL.
  • 테이블(파서): read - / write GT_MAIN
  • 호출(파서): P_CHANGED->MT_GOOD_CELLS, P_CHANGED->GET_CELL_VALUE, ADD_PROTOCAL_ENTRY, P_CHANGED->MODIFY_CELL
  • SAP 객체: CL_ALV_CHANGED_DATA_PROTOCOL, GET_CELL_VALUE, MODIFY_CELL, GT_MAIN
  • 업무 키워드: 셀 변경 반영, 변경 플래그, 오류 프로토콜, 전표번호 입력
  • English: Data Changed, Cell Value, Editable ALV
  • 정의부(복사 시 함께 필요): LS_MOD_CELLS, GV_ERR, GS_MSG, ZDTV3T_AP_HEAD, GT_MAIN, <FS_FIELD>, GV_CHK, P_BUKRS
  • 위치: abap://ZFIR0100/ZFIR0100F02#L982-L1035 · confidence 0.85 · ZFIR0100#ZFIR0100F02#FORM#DATA_CHANGED#C2

FORM ADD_PROTOCAL_ENTRY — ZFIR0100F02 L1064-L1084 (21줄)

편집 ALV 의 셀 검증 오류를 CL_ALV_CHANGED_DATA_PROTOCOL->ADD_PROTOCOL_ENTRY 로 오류 로그(메시지 00/E)에 추가하는 FORM 이다.

이 unit 의 조각 1개가 11/21줄(52%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[output] 검증 실패 셀(필드명·행)에 대해 FIMSG 메시지 내용을 ADD_PROTOCOL_ENTRY 로 등록해 ALV 오류 프로토콜에 표시한다.

  1072|   CALL METHOD RR_DATA_CHANGED->ADD_PROTOCOL_ENTRY
  1073|     EXPORTING
  1074|       I_MSGID     = '00'
  1075|       I_MSGTY     = 'E'
  1076|       I_MSGNO     = PS_MESSAGE-MSGNO
  1077|       I_MSGV1     = PS_MESSAGE-MSGV1
  1078|       I_MSGV2     = PS_MESSAGE-MSGV2
  1079|       I_MSGV3     = PS_MESSAGE-MSGV3
  1080|       I_MSGV4     = PS_MESSAGE-MSGV4
  1081|       I_FIELDNAME = RS_MOD_CELLS-FIELDNAME
  1082|       I_ROW_ID    = RS_MOD_CELLS-ROW_ID.
  • EN: Adds an error message for the failed cell to the ALV changed-data protocol via ADD_PROTOCOL_ENTRY.
  • 호출(파서): RR_DATA_CHANGED->ADD_PROTOCOL_ENTRY
  • SAP 객체: CL_ALV_CHANGED_DATA_PROTOCOL, ADD_PROTOCOL_ENTRY
  • 업무 키워드: 오류 프로토콜, 셀 검증 오류, 메시지
  • English: Error Protocol, Data Changed, ALV Grid
  • 위치: abap://ZFIR0100/ZFIR0100F02#L1072-L1082 · confidence 0.85 · ZFIR0100#ZFIR0100F02#FORM#ADD_PROTOCAL_ENTRY#C1

FORM USER_COMMAND — ZFIR0100F02 L874-L901 (28줄)

ALV 툴바 사용자 명령(REFRESH/SAVE/POST)을 받아 재조회·확인 후 저장·전표기표 FORM 으로 분기하는 디스패치 FORM 이다.

이 unit 의 조각 1개가 21/28줄(75%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[control_flow] REFRESH 는 SET_DATA·MODIFY_PROCESS·SET_REFRESH 로 재조회, SAVE 는 POPUP_TO_CONFIRM 후 SET_SAVE, POST 는 SET_POST 로 매입전표 기표를 실행한다.

   879|   CASE P_UCOMM.
   880| 
   881|     WHEN 'REFRESH'.
   882|       PERFORM SET_DATA.
   883|       PERFORM MODIFY_PROCESS.
   884|       PERFORM SET_REFRESH.
   885| 
   886|     WHEN 'SAVE'.
   887|       PERFORM  POPUP_TO_CONFIRM USING P_ANSWER  P_UCOMM.
   888|       CHECK P_ANSWER = 'J'.
   889|       PERFORM SET_SAVE.
   890|       PERFORM SET_REFRESH.
   891| 
   892|     WHEN 'POST'.
   893| *      PERFORM  POPUP_TO_CONFIRM USING P_ANSWER  P_UCOMM.
   894| *      CHECK P_ANSWER = 'J'.
   895|       PERFORM SET_POST.
   896|       PERFORM SET_REFRESH.
   897| 
   898| 
   899|   ENDCASE.
  • EN: Dispatches ALV user commands to refresh, confirm-and-save, or post routines for the e-tax invoice grid.
  • 호출(파서): SET_DATA, MODIFY_PROCESS, SET_REFRESH, POPUP_TO_CONFIRM, SET_SAVE, SET_REFRESH, SET_POST, SET_REFRESH
  • SAP 객체: POPUP_TO_CONFIRM
  • 업무 키워드: 사용자 명령, 재조회, 저장, 전표기표
  • English: User Command, Refresh, Save, Post
  • 정의부(복사 시 함께 필요): P_ANSWER
  • 위치: abap://ZFIR0100/ZFIR0100F02#L879-L899 · confidence 0.85 · ZFIR0100#ZFIR0100F02#FORM#USER_COMMAND#C1

FORM POPUP_TO_CONFIRM — ZFIR0100F01 L265-L296 (32줄)

저장/전표기표 명령에 맞는 문구로 POPUP_TO_CONFIRM_STEP 확인 팝업을 띄워 사용자 응답을 받는 FORM 이다.

이 unit 의 조각 1개가 22/32줄(69%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[fm_call] SAVE 는 '저장 하시겠습니까', POST 는 '전표기표 하시겠습니까' 문구를 준비해 POPUP_TO_CONFIRM_STEP 으로 확인 팝업을 띄우고 응답을 FP_ANSWER 에 받는다.

   272|   CASE SAVE_OK.
   273| 
   274|     WHEN 'SAVE'.
   275|       L_DEFAULTOPTION = 'Y'.
   276|       L_TEXTLINE2 = '저장 하시겠습니까 ?'.
   277| 
   278| 
   279|     WHEN 'POST'.
   280|       L_DEFAULTOPTION = 'Y'.
   281|       L_TEXTLINE2 = '전표기표 하시겠습니까 ?'.
   282| 
   283|   ENDCASE.
   284| 
   285|   CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
   286|     EXPORTING
   287|       DEFAULTOPTION  = L_DEFAULTOPTION
   288|       TEXTLINE1      = L_TEXTLINE1
   289|       TEXTLINE2      = L_TEXTLINE2
   290|       TITEL          = TEXT-101
   291|       CANCEL_DISPLAY = ''
   292|     IMPORTING
   293|       ANSWER         = FP_ANSWER.
  • EN: Prepares the question text by command (SAVE/POST) and calls POPUP_TO_CONFIRM_STEP to obtain the user's confirmation answer.
  • 호출(파서): POPUP_TO_CONFIRM_STEP
  • SAP 객체: POPUP_TO_CONFIRM_STEP
  • 업무 키워드: 확인 팝업, 저장 확인, 전표기표 확인
  • English: Confirmation Popup, Posting Confirmation
  • 정의부(복사 시 함께 필요): SAVE_OK, L_DEFAULTOPTION, L_TEXTLINE2, L_TEXTLINE1
  • 위치: abap://ZFIR0100/ZFIR0100F01#L272-L293 · confidence 0.95 · ZFIR0100#ZFIR0100F01#FORM#POPUP_TO_CONFIRM#C1

FORM SET_SAVE — ZFIR0100F01 L404-L492 (89줄)

ALV 에서 선택한 전자세금계산서 행의 전표번호를 수신 테이블에 저장하고 사용여부·상태 아이콘을 갱신한다.

이 unit 의 조각 2개가 57/89줄(64%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[validation] ALV 그리드에서 현재 선택된 행을 가져오고, 선택이 없으면 '저장 할 행을 선택하세요' 메시지를 내고 중단한다.

   426|   CLEAR  LT_ROWS[].
   427|   CALL METHOD GO_GRID->GET_SELECTED_ROWS
   428|     IMPORTING
   429|       ET_INDEX_ROWS = LT_ROWS.
   430| 
   431|   IF LT_ROWS[] IS INITIAL.
   432|     MESSAGE S001 WITH '저장 할 행을 선택하세요.'.
   433|     EXIT.
   434|   ENDIF.
  • EN: Fetches the selected ALV rows and aborts with a message when nothing is selected.
  • 호출(파서): GO_GRID->GET_SELECTED_ROWS
  • SAP 객체: CL_GUI_ALV_GRID, GET_SELECTED_ROWS
  • 업무 키워드: 행선택, 선택검증, 저장전검증, ALV선택
  • English: row selection, selection check, pre-save validation, ALV
  • 정의부(복사 시 함께 필요): LT_ROWS, GO_GRID
  • 위치: abap://ZFIR0100/ZFIR0100F01#L426-L434 · confidence 0.88 · ZFIR0100#ZFIR0100F01#FORM#SET_SAVE#C1

[db_write] 선택한 행마다 전자세금계산서 상세 테이블 ZDTV3T_AP_EXT_D 에 생성된 전표번호·회계연도·처리자를 회사코드·발행일·사업장·계산서순번 키로 UPDATE 하고, 전표번호 유무에 따라 헤더 테이블 ZDTV3T_AP_EXT 의 사용여부(USE_DOC)와 화면 상태 아이콘을 갱신한다.

   437|   LOOP AT LT_ROWS INTO LS_ROWS  WHERE ROWTYPE = SPACE.
   438|     CLEAR GT_MAIN.
   439| 
   440| 
   441|     READ TABLE GT_MAIN INDEX LS_ROWS-INDEX.
   442|     IF SY-SUBRC = 0.
   443| 
   444|       CLEAR: GT_MAIN-SCOL, LT_SCOL, LT_SCOL[].
   445| 
   446|       UPDATE   ZDTV3T_AP_EXT_D   SET:  BELNR = GT_MAIN-BELNR
   447| *                                       BUDAT = LT_BKPF-BUDAT
   448| *                                       BLDAT = LT_BKPF-BLDAT
   449| *                                       BLART = LT_BKPF-BLART
   450| *                                       MWSKZ = ZDTV3S_DOC_LIFNR-MWSKZ
   451| *                                       DMBTR = IS_INVOICE-GRANDTOTAL
   452|                                        UNAME = SY-UNAME
   453|                                        ZGJAH = GT_MAIN-ZGJAH
   454|                                  WHERE BUKRS      =  GT_MAIN-BUKRS
   455|                                    AND ISSUE_DATE =  GT_MAIN-ISSUE_DATE
   456|                                    AND BUPLA      =  GT_MAIN-BUPLA
   457|                                    AND INV_SEQ    =  GT_MAIN-INV_SEQ.
   458| 
   459|       IF  GT_MAIN-BELNR IS INITIAL.
   460|         L_USE_DOC = ''.
   461|         GT_MAIN-ZICON = '@09@'.
   462| 
   463|       ELSE.
   464|         L_USE_DOC = 'X'.
   465|         GT_MAIN-ZICON = '@08@'.
   466| 
   467|       ENDIF.
   468| 
   469| 
   470|       UPDATE   ZDTV3T_AP_EXT     SET:  USE_DOC =  L_USE_DOC
   471|                                  WHERE BUKRS      =  GT_MAIN-BUKRS
   472|                                    AND ISSUE_DATE =  GT_MAIN-ISSUE_DATE
   473|                                    AND BUPLA      =  GT_MAIN-BUPLA
   474|                                    AND INV_SEQ    =  GT_MAIN-INV_SEQ.
   475| 
   476|       IF SY-SUBRC = 0.
   477|         G_OK = 'X'.
   478| 
   479|         MODIFY  GT_MAIN  INDEX LS_ROWS-INDEX  TRANSPORTING  ZICON.
   480| 
   481|       ENDIF.
   482| 
   483|     ENDIF.
   484|   ENDLOOP.
  • EN: For each selected row, updates the e-tax-invoice detail table with the posted document number and the header table's USE_DOC flag, refreshing the status icon.
  • 테이블(파서): read - / write ZDTV3T_AP_EXT_D, ZDTV3T_AP_EXT, GT_MAIN
  • SAP 객체: ZDTV3T_AP_EXT_D, ZDTV3T_AP_EXT, BELNR, USE_DOC, ISSUE_DATE, INV_SEQ
  • 업무 키워드: 전자세금계산서, 전표번호, 저장, 사용여부, 발행일, 사업장, 계산서순번, 상태아이콘
  • English: electronic tax invoice, document number, save, use flag, issue date, business place, invoice sequence
  • 정의부(복사 시 함께 필요): LT_ROWS, LS_ROWS, ZDTV3T_AP_HEAD, GT_MAIN, LT_SCOL, ZDTV3T_AP_EXT_D, L_USE_DOC, ZDTV3T_AP_EXT, G_OK
  • 위치: abap://ZFIR0100/ZFIR0100F01#L437-L484 · confidence 0.85 · ZFIR0100#ZFIR0100F01#FORM#SET_SAVE#C2

FORM SET_POST — ZFIR0100F01 L335-L397 (63줄)

ALV 에서 선택된 미처리 전자세금계산서 행을 GT_TABLE 로 메모리에 EXPORT 한 뒤 전표 입력 화면 ZFIR0110_DOC 을 호출해 매입전표를 기표하는 FORM 이다.

이 unit 의 조각 2개가 36/63줄(57%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[validation] GO_GRID->GET_SELECTED_ROWS 로 선택 행을 읽고 선택 행이 없으면 '전표기표 할 행을 선택하세요' 메시지 후 종료한다.

   355|   CALL METHOD GO_GRID->GET_SELECTED_ROWS
   356|     IMPORTING
   357|       ET_INDEX_ROWS = LT_ROWS.
   358| 
   359|   IF LT_ROWS[] IS INITIAL.
   360|     MESSAGE S001 WITH '전표기표 할 행을 선택하세요.'.
   361|     EXIT.
   362|   ENDIF.
  • EN: Gets the selected ALV rows and exits with a message if none are selected for document posting.
  • 호출(파서): GO_GRID->GET_SELECTED_ROWS
  • SAP 객체: CL_GUI_ALV_GRID, GET_SELECTED_ROWS
  • 업무 키워드: 행 선택 검증, 전표기표
  • English: Selected Rows, Validation
  • 정의부(복사 시 함께 필요): GO_GRID, LT_ROWS
  • 위치: abap://ZFIR0100/ZFIR0100F01#L355-L362 · confidence 0.9 · ZFIR0100#ZFIR0100F01#FORM#SET_POST#C1

[interface] 선택된 각 행에 대해 이미 전표번호(BELNR)가 있으면 '이미 처리된 전표' 메시지로 건너뛰고, 아니면 해당 전자세금계산서 행을 GT_TABLE 에 담아 EXPORT TO MEMORY ID 'GT_TABLE' 후 CALL TRANSACTION 'ZFIR0110_DOC' 으로 매입전표 입력 화면을 호출한다.

   365|   LOOP AT LT_ROWS INTO LS_ROWS  WHERE ROWTYPE = SPACE.
   366|     CLEAR GT_MAIN.
   367| 
   368| 
   369|     READ TABLE GT_MAIN INDEX LS_ROWS-INDEX.
   370|     IF SY-SUBRC = 0.
   371| 
   372|       IF  NOT  GT_MAIN-BELNR IS INITIAL.
   373|          MESSAGE S001 WITH '이미 처리된 전표가 있습니다'.
   374|          CONTINUE.
   375|       ENDIF.
   376| 
   377|       CLEAR: GT_MAIN-SCOL, LT_SCOL, LT_SCOL[].
   378|       CLEAR: GT_TABLE[],     GT_TABLE.
   379| 
   380|       MOVE-CORRESPONDING GT_MAIN TO GT_TABLE.
   381|       APPEND  GT_TABLE.
   382|       CLEAR   GT_TABLE.
   383| 
   384| **
   385|       G_OK = 'X'.
   386|       EXPORT  GT_TABLE  TO  MEMORY ID 'GT_TABLE'.
   387|       CALL TRANSACTION 'ZFIR0110_DOC'.
   388|       FREE  GT_TABLE.
   389| **
   390| 
   391|     ENDIF.
   392|   ENDLOOP.
  • EN: For each selected unposted e-tax invoice row, exports it to ABAP memory (ID GT_TABLE) and calls transaction ZFIR0110_DOC to create the AP document; rows already having BELNR are skipped.
  • 호출(파서): ZFIR0110_DOC
  • SAP 객체: ZFIR0110_DOC, GT_TABLE, GT_MAIN
  • 업무 키워드: 매입전표 기표, 전자세금계산서, 메모리 전달, 중복 처리 방지
  • English: AP Document Posting, E-Tax Invoice, Call Transaction, ABAP Memory
  • 정의부(복사 시 함께 필요): LT_ROWS, LS_ROWS, ZDTV3T_AP_HEAD, GT_MAIN, LT_SCOL, GT_TABLE, G_OK
  • 위치: abap://ZFIR0100/ZFIR0100F01#L365-L392 · confidence 0.9 · ZFIR0100#ZFIR0100F01#FORM#SET_POST#C2

FORM HANDLE_DOUBLE_CLICK — ZFIR0100F02 L1096-L1113 (18줄)

ALV 전표번호(BELNR) 셀 더블클릭 시 회사코드·회계연도·전표번호를 파라미터로 세팅해 FB03 전표 조회 트랜잭션을 호출하는 FORM 이다.

이 unit 의 조각 1개가 12/18줄(67%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[interface] 더블클릭한 행이 BELNR 컬럼이고 전표번호가 있으면 SET PARAMETER ID BUK/GJR/BLN 으로 회사코드·회계연도·전표번호를 넘겨 FB03(전표 조회)을 SKIP FIRST SCREEN 으로 호출한다.

  1100|   READ TABLE GT_MAIN INDEX P_ROW-INDEX.
  1101|   IF SY-SUBRC EQ 0.
  1102|     IF  P_COLUMN-FIELDNAME = 'BELNR'.
  1103|       IF  NOT  GT_MAIN-BELNR IS INITIAL.
  1104|         SET PARAMETER ID 'BUK' FIELD P_BUKRS.              "회사코드
  1105|         SET PARAMETER ID 'GJR' FIELD GT_MAIN-ZGJAH.        "회계연도
  1106|         SET PARAMETER ID 'BLN' FIELD GT_MAIN-BELNR.        "전표
  1107|         CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
  1108|       ENDIF.
  1109|     ENDIF.
  1110| 
  1111|   ENDIF.
  • EN: On double-click of a filled BELNR cell, sets BUK/GJR/BLN parameters and calls transaction FB03 to display the FI document.
  • 호출(파서): FB03
  • SAP 객체: FB03, GT_MAIN
  • 업무 키워드: 전표 조회, 더블클릭, 전표번호, 회계연도
  • English: Display Document, FI Document, Hotspot Navigation
  • 정의부(복사 시 함께 필요): ZDTV3T_AP_HEAD, GT_MAIN, P_BUKRS
  • 위치: abap://ZFIR0100/ZFIR0100F02#L1100-L1111 · confidence 0.95 · ZFIR0100#ZFIR0100F02#FORM#HANDLE_DOUBLE_CLICK#C1

FORM SET_POP_MESSAGE — ZFIR0100F01 L194-L216 (23줄)

POPUP_TO_CONFIRM 으로 예/아니오 확인 팝업을 띄워 사용자 응답(P_ANSWER)을 돌려주는 FORM 이다.

이 unit 의 조각 1개가 18/23줄(78%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[fm_call] POPUP_TO_CONFIRM 을 호출해 전달받은 질문 텍스트로 예/아니오 팝업을 띄우고 응답을 P_ANSWER 로 반환하며 오류 시 시스템 메시지를 출력한다.

   197|   CALL FUNCTION 'POPUP_TO_CONFIRM'
   198|     EXPORTING
   199|       TEXT_QUESTION         = P_TEXT
   200|       TEXT_BUTTON_1         = '예(Yes)'
   201|       TEXT_BUTTON_2         = '아니오(No)'
   202|       DEFAULT_BUTTON        = '1'
   203|       DISPLAY_CANCEL_BUTTON = ''
   204|       START_COLUMN          = 25
   205|       START_ROW             = 6
   206|     IMPORTING
   207|       ANSWER                = P_ANSWER
   208|     EXCEPTIONS
   209|       TEXT_NOT_FOUND        = 1
   210|       OTHERS                = 2.
   211|   IF SY-SUBRC <> 0.
   212|     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
   213|             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
   214|   ENDIF.
  • EN: Calls POPUP_TO_CONFIRM with the given question text to get a Yes/No answer and raises the system message on failure.
  • 호출(파서): POPUP_TO_CONFIRM
  • SAP 객체: POPUP_TO_CONFIRM
  • 업무 키워드: 확인 팝업, 예/아니오, 사용자 응답
  • English: Confirmation Popup, Dialog
  • 정의부(복사 시 함께 필요): P_ANSWER
  • 위치: abap://ZFIR0100/ZFIR0100F01#L197-L214 · confidence 0.95 · ZFIR0100#ZFIR0100F01#FORM#SET_POP_MESSAGE#C1

FORM CHANG_LINE — ZFIR0100F01 L496-L573 (78줄)

ALV 에서 선택된 행만 변경 가능하도록 전체 행의 CELLTAB 을 초기화한 뒤 선택 행에 전표번호(BELNR)·회계연도(ZGJAH) 셀만 편집 가능한 스타일을 적용하는 FORM 이다.

이 unit 의 조각 2개가 43/78줄(55%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[validation] GO_GRID->GET_SELECTED_ROWS 로 선택 행을 가져오고 선택 행이 없으면 G_LINE 플래그를 세우고 '변경 할 행을 선택하세요' 메시지 후 종료한다.

   526|   CALL METHOD GO_GRID->GET_SELECTED_ROWS
   527|     IMPORTING
   528|       ET_INDEX_ROWS = LT_ROWS.
   529| 
   530|   IF LT_ROWS[] IS INITIAL.
   531|     G_LINE = 'X'.
   532|     MESSAGE S001 WITH '변경 할 행을 선택하세요.'.
   533|     EXIT.
   534|   ENDIF.
  • EN: Reads the selected ALV rows via GET_SELECTED_ROWS and exits with a message if no row is selected.
  • 호출(파서): GO_GRID->GET_SELECTED_ROWS
  • SAP 객체: CL_GUI_ALV_GRID, GET_SELECTED_ROWS
  • 업무 키워드: 행 선택 검증, 선택 행, 메시지
  • English: Selected Rows, ALV Grid, Validation
  • 정의부(복사 시 함께 필요): GO_GRID, LT_ROWS, G_LINE
  • 위치: abap://ZFIR0100/ZFIR0100F01#L526-L534 · confidence 0.9 · ZFIR0100#ZFIR0100F01#FORM#CHANG_LINE#C1

[other] GT_MAIN 전체 행의 CELLTAB 을 지운 뒤 선택된 행에 대해서만 SET_CELLTAB('CHAN') 으로 전표번호·회계연도 셀을 편집 가능하게 하는 셀 스타일을 삽입해 행 단위 편집 권한을 부여한다.

   537|  LOOP AT GT_MAIN.
   538|    LV_TABIX =  SY-TABIX.
   539|    CLEAR:  GT_MAIN-CELLTAB.
   540|    MODIFY GT_MAIN INDEX  LV_TABIX  TRANSPORTING  CELLTAB.
   541|    CLEAR  GT_MAIN.
   542|  ENDLOOP.
   543| 
   544| 
   545| 
   546|   LOOP AT LT_ROWS INTO LS_ROWS  WHERE ROWTYPE = SPACE.
   547|     CLEAR GT_MAIN.
   548| 
   549|     READ TABLE GT_MAIN INDEX LS_ROWS-INDEX.
   550|     IF SY-SUBRC = 0.
   551| 
   552|       CLEAR: GT_MAIN-CELLTAB,
   553|              LS_MAIN, LT_CELLTAB, LT_CELLTAB[], LV_UCOMM.
   554| 
   555|       MOVE-CORRESPONDING GT_MAIN TO LS_MAIN.
   556| 
   557|       IF LV_UCOMM IS INITIAL.
   558|         LV_UCOMM = 'CHAN'.  "  GV_UCOMM.
   559|       ENDIF.
   560| 
   561| * SETTING COLOR
   562|       PERFORM SET_CELLTAB USING    LS_MAIN
   563|                                    LV_UCOMM
   564|                           CHANGING LT_CELLTAB.
   565| 
   566|       INSERT LINES OF LT_CELLTAB INTO TABLE GT_MAIN-CELLTAB.
   567|       MODIFY GT_MAIN INDEX LS_ROWS-INDEX.
   568|     ENDIF.
   569| 
   570|   ENDLOOP.
  • EN: Clears CELLTAB for all rows and, for each selected row, builds the CHAN cell style via SET_CELLTAB so only BELNR/ZGJAH cells become editable.
  • 테이블(파서): read - / write GT_MAIN
  • 호출(파서): SET_CELLTAB
  • SAP 객체: LVC_T_STYL
  • 업무 키워드: 셀 편집 스타일, 선택 행 편집, 전표번호, 회계연도
  • English: CELLTAB, Editable Cell, Document Number
  • 정의부(복사 시 함께 필요): ZDTV3T_AP_HEAD, GT_MAIN, LV_TABIX, LT_ROWS, LS_ROWS, LS_MAIN, LT_CELLTAB, LV_UCOMM
  • 위치: abap://ZFIR0100/ZFIR0100F01#L537-L570 · confidence 0.8 · ZFIR0100#ZFIR0100F01#FORM#CHANG_LINE#C2

FORM SET_CELLTAB — ZFIR0100F02 L88-L124 (37줄)

변경(CHAN) 모드에서 필드카탈로그 전 컬럼을 입력 불가로 두되 전표번호(BELNR)·회계연도(ZGJAH) 셀만 입력 가능하게 CELLTAB 스타일을 만드는 FORM 이다.

이 unit 의 조각 1개가 24/37줄(65%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[other] CHAN 명령일 때 필드카탈로그의 각 컬럼을 MC_STYLE_DISABLED 로 잠그고 BELNR·ZGJAH 컬럼만 MC_STYLE_ENABLED 로 열어 사용자가 수동 전표번호·회계연도만 입력할 수 있도록 CELLTAB 을 구성한다.

    99|   LOOP AT GT_FCAT1 INTO GS_FCAT.
   100|     CLEAR LS_CELLTAB.
   101|     CASE P_UCOMM.
   102| 
   103|       WHEN 'CHAN'.
   104| 
   105|         LV_MODE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
   106|         LS_CELLTAB-FIELDNAME = GS_FCAT-FIELDNAME.
   107|         LS_CELLTAB-STYLE     = LV_MODE.
   108| 
   109|         IF   GS_FCAT-FIELDNAME = 'BELNR'      OR
   110|              GS_FCAT-FIELDNAME = 'ZGJAH'.
   111| 
   112|           LV_MODE = CL_GUI_ALV_GRID=>MC_STYLE_ENABLED.
   113|           LS_CELLTAB-FIELDNAME = GS_FCAT-FIELDNAME.
   114|           LS_CELLTAB-STYLE     = LV_MODE.
   115|         ENDIF.
   116| 
   117|     ENDCASE.
   118| 
   119| 
   120|     INSERT LS_CELLTAB INTO TABLE P_CELLTAB.
   121| 
   122|   ENDLOOP.
  • EN: Builds the CELLTAB style table so that in CHAN mode only the BELNR and ZGJAH cells are enabled for input while all other columns are disabled.
  • 호출(파서): CL_GUI_ALV_GRID=>MC_STYLE_DISABLED, CL_GUI_ALV_GRID=>MC_STYLE_ENABLED
  • SAP 객체: CL_GUI_ALV_GRID, LVC_T_STYL
  • 업무 키워드: 셀 입력 제어, 전표번호, 회계연도, 편집 가능 컬럼
  • English: CELLTAB, Cell Style, Editable Column
  • 정의부(복사 시 함께 필요): GT_FCAT1, GS_FCAT, LS_CELLTAB, LV_MODE
  • 위치: abap://ZFIR0100/ZFIR0100F02#L99-L122 · confidence 0.85 · ZFIR0100#ZFIR0100F02#FORM#SET_CELLTAB#C1

FORM RUN_DISPLAY_ALV — ZFIR0100F02 L703-L725 (23줄)

화면 0100 용 그리드(GO_GRID)와 GT_MAIN 을 할당하고 이벤트 등록 후 SET_TABLE_FOR_FIRST_DISPLAY 로 편집 가능한 ALV 를 최초 표시한다.

이 unit 의 조각 1개가 19/23줄(83%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[output] 화면번호에 따라 그리드 객체와 GT_MAIN 을 필드심볼에 할당하고 SET_EVENT_UCOMM 이벤트 등록 후 CL_GUI_ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY 로 레이아웃·변형·툴바제외·정렬을 적용해 ALV 를 표시한다.

   705|   CASE P_VALUE.
   706|     WHEN '0100'.
   707|       ASSIGN: GO_GRID   TO <FS_GRID>,
   708|               GT_MAIN[] TO <FS_TABLE>.
   709|   ENDCASE.
   710| 
   711|   PERFORM SET_EVENT_UCOMM.
   712| 
   713|   CALL METHOD <FS_GRID>->SET_TABLE_FOR_FIRST_DISPLAY
   714|     EXPORTING
   715|       I_DEFAULT            = 'X'
   716|       IS_LAYOUT            = GS_LAYOUT
   717|       IS_VARIANT           = GS_VARIANT
   718|       IT_TOOLBAR_EXCLUDING = GT_EXCLUDE
   719|       I_SAVE               = 'A'
   720|     CHANGING
   721|       IT_OUTTAB            = <FS_TABLE>
   722|       IT_FIELDCATALOG      = <GT_FIELD>
   723|       IT_SORT              = GT_SORT.
  • EN: Assigns the grid and GT_MAIN by screen number, registers events and calls SET_TABLE_FOR_FIRST_DISPLAY with layout, variant, toolbar exclusions and sort to display the ALV grid.
  • 호출(파서): SET_EVENT_UCOMM, <FS_GRID>->SET_TABLE_FOR_FIRST_DISPLAY
  • SAP 객체: CL_GUI_ALV_GRID, SET_TABLE_FOR_FIRST_DISPLAY
  • 업무 키워드: ALV 표시, 그리드, 레이아웃, 변형
  • English: ALV Grid, Layout Variant, First Display
  • 정의부(복사 시 함께 필요): GO_GRID, <FS_GRID>, ZDTV3T_AP_HEAD, GT_MAIN, <FS_TABLE>, GS_LAYOUT, GS_VARIANT, GT_EXCLUDE, <GT_FIELD>, GT_SORT
  • 위치: abap://ZFIR0100/ZFIR0100F02#L705-L723 · confidence 0.85 · ZFIR0100#ZFIR0100F02#FORM#RUN_DISPLAY_ALV#C1

FORM SET_CHANGE — ZFIR0100F02 L912-L953 (42줄)

변경(CHAN) 명령 시 선택 행 상태에 따라 그리드 편집 가능 여부를 토글하고 잠금(SET_LOCK)을 설정하는 FORM 이다.

이 unit 의 조각 2개가 12/42줄(29%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[control_flow] CHANG_LINE 으로 선택 행의 변경 가능 여부(G_LINE)를 판정한 뒤 변경 가능하면 GO_GRID->SET_READY_FOR_INPUT 으로 편집 모드를 켜고 아니면 끈다.

   914|   PERFORM CHANG_LINE.
   915| 
   916|   IF  G_LINE = ''.
   917|     CALL METHOD GO_GRID->SET_READY_FOR_INPUT
   918|       EXPORTING
   919|         I_READY_FOR_INPUT = 1.
   920|   ELSE.
   921|     CALL METHOD GO_GRID->SET_READY_FOR_INPUT
   922|       EXPORTING
   923|         I_READY_FOR_INPUT = 0.
   924|   ENDIF.
  • EN: Determines via CHANG_LINE whether the selected rows are changeable and toggles ALV edit mode with SET_READY_FOR_INPUT accordingly.
  • 호출(파서): CHANG_LINE, GO_GRID->SET_READY_FOR_INPUT, GO_GRID->SET_READY_FOR_INPUT
  • SAP 객체: CL_GUI_ALV_GRID, SET_READY_FOR_INPUT
  • 업무 키워드: 편집 모드, 변경 가능 여부, 행 선택
  • English: Edit Mode, ALV Grid, Ready For Input
  • 정의부(복사 시 함께 필요): G_LINE, GO_GRID
  • 위치: abap://ZFIR0100/ZFIR0100F02#L914-L924 · confidence 0.8 · ZFIR0100#ZFIR0100F02#FORM#SET_CHANGE#C1

[control_flow] 편집 진입 시 SET_LOCK 으로 데이터 잠금(Enqueue)을 걸어 동시 수정을 방지한다.

   951|   PERFORM SET_LOCK USING GV_UCOMM.
  • EN: Calls SET_LOCK to enqueue the data when entering change mode to prevent concurrent edits.
  • 호출(파서): SET_LOCK
  • 업무 키워드: 잠금, 동시 수정 방지
  • English: Enqueue, Lock
  • 정의부(복사 시 함께 필요): GV_UCOMM
  • 위치: abap://ZFIR0100/ZFIR0100F02#L951-L951 · confidence 0.7 · ZFIR0100#ZFIR0100F02#FORM#SET_CHANGE#C2

MODULE USER_COMMAND_0100_EXIT INPUT — ZFIR0100I01 L7-L37 (31줄)

화면 0100 종료 명령 처리 시 미저장 변경분 확인 팝업을 띄우고 잠금을 해제한 뒤 화면을 빠져나가는 EXIT 모듈이다.

이 unit 의 조각 2개가 19/31줄(61%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[validation] 변경 플래그(GV_CHK)가 있으면 SET_POP_MESSAGE 확인 팝업을 띄워 사용자가 확인하면 CHK_DATA 로 데이터 검증을 수행하고 오류가 있으면 종료를 막는다.

    11|   IF GV_CHK IS NOT INITIAL.
    12|     PERFORM SET_POP_MESSAGE USING    TEXT-100
    13|                             CHANGING GV_ANSWER.
    14|     IF GV_ANSWER = '1'.
    15|       PERFORM CHK_DATA.
    16|     ELSE.
    17|       MESSAGE S001 WITH TEXT-101.
    18|     ENDIF.
    19| 
    20|     CHECK GV_ERR IS INITIAL.
    21|   ENDIF.
  • EN: If unsaved changes exist, shows a confirmation popup and runs CHK_DATA validation, blocking exit on error.
  • 호출(파서): SET_POP_MESSAGE, CHK_DATA
  • 업무 키워드: 종료 확인, 변경 확인, 데이터 검증
  • English: Exit Confirmation, Validation
  • 정의부(복사 시 함께 필요): GV_CHK, GV_ANSWER, GV_ERR
  • 위치: abap://ZFIR0100/ZFIR0100I01#L11-L21 · confidence 0.8 · ZFIR0100#ZFIR0100I01#MODULE#USER_COMMAND_0100_EXIT_INPUT#C1

[control_flow] SET_LOCK 으로 잠금(Enqueue)을 해제한 뒤 BACK/EXIT 은 화면 0, CANCEL 은 프로그램 종료로 분기한다.

    28|   PERFORM SET_LOCK USING 'UNLOCK'.
    29| 
    30|   CASE SAVE_OK.
    31|     WHEN '&F03' OR '&F15'.
    32|       LEAVE TO SCREEN 0.
    33|     WHEN '&F12'.
    34|       LEAVE PROGRAM.
    35|   ENDCASE.
  • EN: Releases the lock via SET_LOCK and leaves the screen or program according to the exit function code.
  • 호출(파서): SET_LOCK
  • 업무 키워드: 잠금 해제, 화면 종료
  • English: Dequeue, Leave Screen
  • 정의부(복사 시 함께 필요): SAVE_OK
  • 위치: abap://ZFIR0100/ZFIR0100I01#L28-L35 · confidence 0.85 · ZFIR0100#ZFIR0100I01#MODULE#USER_COMMAND_0100_EXIT_INPUT#C2

MODULE USER_COMMAND_0100 INPUT — ZFIR0100I01 L45-L89 (45줄)

화면 0100 의 사용자 명령(변경·재조회·저장·전기)을 받아 해당 처리 FORM 으로 분기하는 PAI 모듈이다.

이 unit 의 조각 1개가 28/45줄(62%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[control_flow] OK_CODE(CHAN/REFRESH/SAVE/POST)에 따라 전자세금계산서 그리드 변경 반영(SET_CHANGE), 재조회(SET_DATA·MODIFY_PROCESS), 확인 팝업 후 저장(SET_SAVE), 매입전표 전기(SET_POST) 를 분기 호출한다.

    60|   CASE SAVE_OK.
    61|     WHEN 'CHAN'.
    62|       PERFORM SET_CHANGE.     " CHANGE
    63| 
    64| 
    65|     WHEN 'REFRESH'.
    66|       PERFORM SET_DATA.
    67|       PERFORM MODIFY_PROCESS.
    68|       PERFORM SET_REFRESH.
    69| 
    70|     WHEN 'SAVE'.
    71|       PERFORM  POPUP_TO_CONFIRM USING P_ANSWER  SAVE_OK.
    72|       CHECK P_ANSWER = 'J'.
    73|       PERFORM SET_SAVE.
    74|       PERFORM SET_REFRESH.
    75| 
    76|     WHEN 'POST'.
    77| *      PERFORM  POPUP_TO_CONFIRM USING P_ANSWER  P_UCOMM.
    78| *      CHECK P_ANSWER = 'J'.
    79|       PERFORM SET_POST.
    80| 
    81|       IF  G_OK = 'X'.
    82|         PERFORM SET_DATA.
    83|         PERFORM MODIFY_PROCESS.
    84|         PERFORM SET_REFRESH.
    85|       ENDIF.
    86| 
    87|   ENDCASE.
  • EN: Dispatches screen 0100 user commands to change, refresh, save (after POPUP_TO_CONFIRM) and post routines for the e-tax invoice AP document grid.
  • 호출(파서): SET_CHANGE, SET_DATA, MODIFY_PROCESS, SET_REFRESH, POPUP_TO_CONFIRM, SET_SAVE, SET_REFRESH, SET_POST, SET_DATA, MODIFY_PROCESS, SET_REFRESH
  • SAP 객체: POPUP_TO_CONFIRM
  • 업무 키워드: 사용자 명령, 저장, 전기, 재조회, 확인 팝업
  • English: User Command, PAI, Posting, Save
  • 정의부(복사 시 함께 필요): SAVE_OK, P_ANSWER, G_OK
  • 위치: abap://ZFIR0100/ZFIR0100I01#L60-L87 · confidence 0.9 · ZFIR0100#ZFIR0100I01#MODULE#USER_COMMAND_0100_INPUT#C1

정의부 (107건)

로직 조각을 다른 프로그램으로 옮겨 붙일 때 함께 가야 하는 선언이다. 조각별로 무엇이 필요한지는 위 조각 항목의 정의부 줄에 있고(이름을 누르면 여기로 온다), 붙여넣기용으로 의존까지 묶은 코드는 GET /chunks/<chunk_id>declaration_code 로 받는다.

ZFIR0100C01 (18건)

LCL_EVENT_RECEIVER — class · L7-L52

CLASS LCL_EVENT_RECEIVER DEFINITION .
  PUBLIC SECTION .

* 변경 필드 값처리

    METHODS : HANDLE_DATA_CHANGED
                 FOR EVENT DATA_CHANGED OF CL_GUI_ALV_GRID
                 IMPORTING
                   ER_DATA_CHANGED.

* ON F4처리

    METHODS : HANDLE_ON_F4
                 FOR EVENT ONF4 OF CL_GUI_ALV_GRID
                 IMPORTING SENDER
                   E_FIELDNAME
                   E_FIELDVALUE
                   ES_ROW_NO
                   ER_EVENT_DATA
                   ET_BAD_CELLS
                   E_DISPLAY.

* TOOLBAR

    METHODS: HANDLE_ON_TOOLBAR
                 FOR EVENT TOOLBAR OF CL_GUI_ALV_GRID
                 IMPORTING E_OBJECT
                           E_INTERACTIVE
                           SENDER.

* USER_COMMAND

    METHODS: HANDLE_USER_COMMAND
      FOR EVENT USER_COMMAND OF CL_GUI_ALV_GRID
      IMPORTING E_UCOMM.

* DOUBLE_CLICK

    METHODS: HANDLE_DOUBLE_CLICK
      FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
      IMPORTING SENDER
                E_ROW
                E_COLUMN
                ES_ROW_NO.

ENDCLASS. "LCL_EVENT_RECEIVER DEFINITION

GO_CUSTOM — data · L110-L110

DATA: GO_CUSTOM TYPE REF TO CL_GUI_CUSTOM_CONTAINER.

GO_CUSTOM2 — data · L111-L111

DATA:
      GO_CUSTOM2   TYPE REF TO CL_GUI_CUSTOM_CONTAINER.

GO_DOCKING — data · L113-L113

DATA: GO_DOCKING TYPE REF TO CL_GUI_DOCKING_CONTAINER.

GO_DOCKING2 — data · L114-L114

DATA:
      GO_DOCKING2  TYPE REF TO CL_GUI_DOCKING_CONTAINER.

GO_SPLITTER — data · L116-L116

DATA: GO_SPLITTER TYPE REF TO CL_GUI_SPLITTER_CONTAINER.

GO_SPLITTER2 — data · L117-L117

DATA:
      GO_SPLITTER2 TYPE REF TO CL_GUI_SPLITTER_CONTAINER.

GO_GRID — data · L124-L124

DATA: GO_GRID TYPE REF TO CL_GUI_ALV_GRID.

GO_GRID2 — data · L125-L125

DATA:
      GO_GRID2 TYPE REF TO CL_GUI_ALV_GRID.

GO_GRID3 — data · L126-L126

DATA:
      GO_GRID3 TYPE REF TO CL_GUI_ALV_GRID.

GO_GRID4 — data · L127-L127

DATA:
      GO_GRID4 TYPE REF TO CL_GUI_ALV_GRID.

GO_GRID5 — data · L128-L128

DATA:
      GO_GRID5 TYPE REF TO CL_GUI_ALV_GRID.

GO_CON — data · L130-L130

DATA: GO_CON TYPE REF TO CL_GUI_CONTAINER.

GO_CON2 — data · L131-L131

DATA:
      GO_CON2  TYPE REF TO CL_GUI_CONTAINER.

GO_CON3 — data · L132-L132

DATA:
      GO_CON3  TYPE REF TO CL_GUI_CONTAINER.

GO_CON4 — data · L133-L133

DATA:
      GO_CON4  TYPE REF TO CL_GUI_CONTAINER.

GO_CON5 — data · L134-L134

DATA:
      GO_CON5  TYPE REF TO CL_GUI_CONTAINER.

GO_EVENT — data · L136-L136

DATA: GO_EVENT TYPE REF TO LCL_EVENT_RECEIVER.

ZFIR0100SCR (7건)

P_BUKRS — parameter · L6-L8

PARAMETERS :   P_BUKRS  TYPE T001-BUKRS   DEFAULT 'KR01'
                                           MEMORY ID BUK
                                           OBLIGATORY.

P_SPMON — parameter · L9-L10

PARAMETERS:
               P_SPMON  TYPE  SPMON DEFAULT SY-DATUM+0(6)
                                   OBLIGATORY.

S_SU_ID — select-option · L12-L12

SELECT-OPTIONS: S_SU_ID   FOR LFA1-LIFNR.

S_EMAIL — select-option · L13-L13

SELECT-OPTIONS:
                S_EMAIL   FOR ZDTV3T_AP_HEAD-IP_EMAIL1.

P_R1 — parameter · L22-L22

PARAMETERS: P_R1 RADIOBUTTON GROUP G1 .

P_R2 — parameter · L25-L25

PARAMETERS: P_R2 RADIOBUTTON GROUP G1.

P_R3 — parameter · L28-L28

PARAMETERS: P_R3 RADIOBUTTON GROUP G1.

ZFIR0100T01 (39건)

IT_EXCEL — data · L9-L9

DATA: IT_EXCEL   LIKE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.

GT_EXCEL — data · L13-L22

DATA: BEGIN OF GT_EXCEL OCCURS 0,
        TRDAT(10),
        BANK_COD3(10),
        BANKN(20),
        OUTAMT(20),
        INAMT(20),
        ZBALAMT(20),
        NAME(20),
        SGTXT(20),
      END OF GT_EXCEL.

IT_ZTRT0002 — data · L25-L27

DATA: BEGIN OF IT_ZTRT0002   OCCURS 0.
        INCLUDE STRUCTURE ZTRT0002.
DATA  END OF IT_ZTRT0002.

GS_LAYOUT — data · L30-L30

DATA: GS_LAYOUT TYPE LVC_S_LAYO.

GS_VARIANT — data · L31-L31

DATA:
      GS_VARIANT TYPE DISVARIANT.

GX_VARIANT — data · L32-L32

DATA:
      GX_VARIANT TYPE DISVARIANT.

GT_EXCLUDE — data · L33-L33

DATA:
      GT_EXCLUDE TYPE UI_FUNCTIONS.

GS_FCAT — data · L34-L34

DATA:
      GS_FCAT    TYPE LVC_S_FCAT.

GT_FCAT1 — data · L35-L35

DATA:
      GT_FCAT1   TYPE LVC_T_FCAT.

GS_SORT — data · L36-L36

DATA:
      GS_SORT    TYPE LVC_S_SORT.

GT_SORT — data · L37-L37

DATA:
      GT_SORT    TYPE LVC_T_SORT.

GS_GLAY — data · L38-L38

DATA:
      GS_GLAY    TYPE LVC_S_GLAY.

GT_HEAD — data · L39-L39

DATA:
      GT_HEAD    TYPE LVC_T_HEAD.

GS_HEAD — data · L40-L40

DATA:
      GS_HEAD    TYPE LVC_S_HEAD.

GS_EVENT — data · L41-L41

DATA:
      GS_EVENT   TYPE LVC_S_EVTS.

GT_EVENT — data · L42-L42

DATA:
      GT_EVENT   TYPE LVC_T_EVTS.

GS_STBL — data · L43-L43

DATA:
      GS_STBL    TYPE LVC_S_STBL.  " Refresh stability.

G_REPID — data · L45-L45

DATA: G_REPID TYPE SY-REPID.

G_TABNAME — data · L46-L46

DATA:
      G_TABNAME  TYPE SLIS_TABNAME.

GV_EXIT — data · L47-L47

DATA:
      GV_EXIT    TYPE C.

OK_CODE — data · L54-L54

DATA: OK_CODE TYPE SY-UCOMM.

SAVE_OK — data · L55-L55

DATA:
      SAVE_OK   TYPE SY-UCOMM.

GV_UCOMM — data · L57-L57

DATA: GV_UCOMM TYPE SY-UCOMM.  " COMMAND

GS_MSG — data · L58-L58

DATA:
      GS_MSG    LIKE FIMSG.  " MESSSAGE

GV_ERR — data · L59-L59

DATA:
      GV_ERR    TYPE C.  " ERROR

GV_ANSWER — data · L60-L60

DATA:
      GV_ANSWER TYPE C.  " MESSAGE

GV_CHK — data · L61-L61

DATA:
      GV_CHK    TYPE C.  " CHANGE

GV_LOCK — data · L62-L62

DATA:
      GV_LOCK   TYPE C.

GV_MNAME — data · L63-L63

DATA:
      GV_MNAME  TYPE STRING.

GS_F4 — data · L65-L65

DATA:  GS_F4        TYPE LVC_S_F4.  " F4 ## ##

GT_F4 — data · L66-L66

DATA:
       GT_F4        TYPE LVC_T_F4.

GC_YEL — constants · L73-L73

CONSTANTS: GC_YEL(4) VALUE '@09@'.  " ICON_LED_YELLOW

GC_GRE — constants · L74-L74

CONSTANTS:
           GC_GRE(4) VALUE '@08@'.  " ICON_LED_GREEN

GC_OUT — constants · L75-L75

CONSTANTS:
           GC_OUT(4) VALUE '@EB@'.  " ICON_LED_LIGHT_OUT

GC_RED — constants · L76-L76

CONSTANTS:
           GC_RED(4) VALUE '@0A@'.  " ICON_LED_RED

<GS_FIELD> — field-symbol · L83-L83

FIELD-SYMBOLS: <GS_FIELD> TYPE LVC_S_FCAT.

<GT_FIELD> — field-symbol · L84-L84

FIELD-SYMBOLS:
               <GT_FIELD> TYPE LVC_T_FCAT.

<FS_GRID> — field-symbol · L86-L86

FIELD-SYMBOLS: <FS_GRID> TYPE REF TO CL_GUI_ALV_GRID.

<FS_TABLE> — field-symbol · L87-L87

FIELD-SYMBOLS:
               <FS_TABLE> TYPE TABLE.

ZFIR0100TOP (20건)

ZDTV3T_AP_EXT — tables · L5-L5

TABLES:  ZDTV3T_AP_HEAD,   ZDTV3T_AP_EXT,  ZDTV3T_AP_EXT_D.

ZDTV3T_AP_EXT_D — tables · L5-L5

TABLES:  ZDTV3T_AP_HEAD,   ZDTV3T_AP_EXT,  ZDTV3T_AP_EXT_D.

ZDTV3T_AP_HEAD — tables · L5-L5

TABLES:  ZDTV3T_AP_HEAD,   ZDTV3T_AP_EXT,  ZDTV3T_AP_EXT_D.

BKPF — tables · L6-L6

TABLES:
         BKPF,  LFA1.

LFA1 — tables · L6-L6

TABLES:
         BKPF,  LFA1.

ICON — type-pool · L8-L8

TYPE-POOLS: SLIS, ICON.

SLIS — type-pool · L8-L8

TYPE-POOLS: SLIS, ICON.

IT_ZDTV3T_AP_HEAD — data · L11-L18

DATA: BEGIN OF IT_ZDTV3T_AP_HEAD    OCCURS 0.
        INCLUDE STRUCTURE ZDTV3T_AP_HEAD.

DATA: BELNR     LIKE  ZDTV3T_AP_EXT_D-BELNR.
DATA: ZGJAH     LIKE  ZDTV3T_AP_EXT_D-ZGJAH.

DATA: USE_DOC   LIKE  ZDTV3T_AP_EXT-USE_DOC.
DATA  END OF IT_ZDTV3T_AP_HEAD.

GT_MAIN — data · L21-L31

DATA: BEGIN OF GT_MAIN OCCURS 0,
      MARK    LIKE ICON-STATUS,
      ZICON(4).
        INCLUDE STRUCTURE ZDTV3T_AP_HEAD.

DATA: BELNR   LIKE BKPF-BELNR,
      ZGJAH   LIKE BKPF-GJAHR.

DATA: CELLTAB TYPE LVC_T_STYL,
      SCOL    TYPE LVC_T_SCOL,
      END   OF GT_MAIN.

GT_IMSI — data · L35-L35

DATA: GT_IMSI  LIKE TABLE OF GT_MAIN WITH HEADER LINE.

P_ANSWER — data · L37-L37

DATA: P_ANSWER.

G_OK — data · L38-L38

DATA: G_OK.

G_LINE — data · L39-L39

DATA: G_LINE.

TMP_MAIN — data · L41-L41

DATA: TMP_MAIN LIKE TABLE OF GT_MAIN WITH HEADER LINE.

GT_TABLE — data · L43-L43

DATA: GT_TABLE LIKE TABLE OF GT_MAIN WITH HEADER LINE.

GT_ANY — data · L45-L45

DATA GT_ANY   TYPE REF TO DATA.

I_TABNAM — data · L46-L46

DATA I_TABNAM TYPE TABNAME16.

S_BUDAT — ranges · L48-L48

RANGES:  S_BUDAT  FOR   BKPF-BUDAT.

<FS_S> — field-symbol · L51-L51

FIELD-SYMBOLS: <FS_S> TYPE ANY.

<FS_T> — field-symbol · L52-L52

FIELD-SYMBOLS:
               <FS_T> TYPE ANY TABLE.

ZFIR0100F01 (18건)

L_DOC1 — data · unit 로컬 · L96-L96

  DATA: L_DOC1,  L_DOC2.

L_DOC2 — data · unit 로컬 · L96-L96

  DATA: L_DOC1,  L_DOC2.

L_DEFAULTOPTION — data · unit 로컬 · L267-L267

  DATA: L_DEFAULTOPTION, L_TEXTLINE1(70), L_TEXTLINE2(70).

L_TEXTLINE2 — data · unit 로컬 · L267-L267

  DATA: L_DEFAULTOPTION, L_TEXTLINE1(70), L_TEXTLINE2(70).

L_TEXTLINE1 — data · unit 로컬 · L267-L267

  DATA: L_DEFAULTOPTION, L_TEXTLINE1(70), L_TEXTLINE2(70).

LT_SCOL — data · unit 로컬 · L338-L338

DATA:
        LT_SCOL  TYPE LVC_T_SCOL.

LT_ROWS — data · unit 로컬 · L348-L348

  DATA: LT_ROWS TYPE LVC_T_ROW.  " ALV 제어: 테이블행

LS_ROWS — data · unit 로컬 · L349-L349

DATA:
        LS_ROWS TYPE LVC_S_ROW.

LT_SCOL — data · unit 로컬 · L407-L407

DATA:
        LT_SCOL  TYPE LVC_T_SCOL.

L_USE_DOC — data · unit 로컬 · L414-L414

  DATA: L_USE_DOC.

LT_ROWS — data · unit 로컬 · L421-L421

  DATA: LT_ROWS TYPE LVC_T_ROW.  " ALV 제어: 테이블행

LS_ROWS — data · unit 로컬 · L422-L422

DATA:
        LS_ROWS TYPE LVC_S_ROW.

LS_MAIN — data · unit 로컬 · L498-L498

  DATA: LS_MAIN    LIKE GT_MAIN.

LT_CELLTAB — data · unit 로컬 · L499-L499

  DATA: LT_CELLTAB TYPE LVC_T_STYL.

LV_UCOMM — data · unit 로컬 · L500-L500

  DATA: LV_UCOMM   TYPE SY-UCOMM.

LV_TABIX — data · unit 로컬 · L503-L503

  DATA: LV_TABIX TYPE SY-TABIX.

LT_ROWS — data · unit 로컬 · L518-L518

  DATA: LT_ROWS TYPE LVC_T_ROW.  " ALV 제어: 테이블행

LS_ROWS — data · unit 로컬 · L519-L519

DATA:
        LS_ROWS TYPE LVC_S_ROW.

ZFIR0100F02 (5건)

LS_CELLTAB — data · unit 로컬 · L92-L92

  DATA: LS_CELLTAB TYPE LVC_S_STYL.

LV_MODE — data · unit 로컬 · L93-L93

DATA:
        LV_MODE    TYPE RAW4.

LS_MOD_CELLS — data · unit 로컬 · L965-L965

  DATA: LS_MOD_CELLS TYPE LVC_S_MODI.

LV_LINE — data · unit 로컬 · L968-L968

  DATA: LV_LINE      TYPE I.

<FS_FIELD> — field-symbol · unit 로컬 · L970-L970

  FIELD-SYMBOLS: <FS_FIELD> TYPE ANY.

Unit 목록 (컨테이너)

unit 유형 위치 조각 한 줄 요약
INITIALIZATION EVENT ZFIR0100 L37-43 0 INITIALIZATION 에서 SET_INIT 를 호출하는 이벤트 블록이다.
AT SELECTION-SCREEN EVENT ZFIR0100 L44-49 0 선택화면 이벤트에서 GET_VARIANT(빈 FORM)를 호출하는 이벤트 블록이다.
AT SELECTION-SCREEN ON VALUE-REQUEST EVENT ZFIR0100 L50-58 0 조회 연월 P_SPMON 의 F4 검색도움을 공용 풀 ZTR_POOL 의 GET_PERIOD_SPMON 으로 제공하는 이벤트 블록이다.
START-OF-SELECTION EVENT ZFIR0100 L59-69 0 SET_DATA 로 전자세금계산서를 조회하고 MODIFY_PROCESS 로 그리드 데이터를 구성하는 메인 이벤트 블록이다.
END-OF-SELECTION EVENT ZFIR0100 L70-73 0 선택 종료 후 편집 ALV 화면 0100 을 호출하는 이벤트 블록이다.
LCL_EVENT_RECEIVER~HANDLE_DATA_CHANGED METHOD ZFIR0100C01 L64-66 0
LCL_EVENT_RECEIVER~HANDLE_ON_F4 METHOD ZFIR0100C01 L70-80 0
LCL_EVENT_RECEIVER~HANDLE_ON_TOOLBAR METHOD ZFIR0100C01 L84-88 0
LCL_EVENT_RECEIVER~HANDLE_USER_COMMAND METHOD ZFIR0100C01 L92-94 0
LCL_EVENT_RECEIVER~HANDLE_DOUBLE_CLICK METHOD ZFIR0100C01 L98-102 0
SET_INIT FORM ZFIR0100F01 L13-24 0 리포트 ID 와 초기 모드(DISP)를 설정하고 GET_INIT_VARIANT 로 기본 변형을 불러오는 초기화 FORM 이다.
SET_INIT_VARIANT FORM ZFIR0100F01 L35-44 0 ALV 변형 구조 GS_VARIANT 에 리포트명·사용자·핸들 '0010' 을 설정하는 플러밍 FORM 이다.
GET_INIT_VARIANT FORM ZFIR0100F01 L55-74 1 변형 키를 초기화하고 REUSE_ALV_VARIANT_DEFAULT_GET 으로 사용자 기본 ALV 변형(Variant)을 조회하는 FORM 이다.
GET_VARIANT FORM ZFIR0100F01 L79-81 0 선언만 되어 있고 본문이 비어 있는 FORM 이다.
SET_DATA FORM ZFIR0100F01 L92-166 2 조회 월의 기간을 만든 뒤 전자세금계산서 헤더(ZDTV3T_AP_HEAD)·확장(ZDTV3T_AP_EXT)·상세(ZDTV3T_AP_EXT_D)를 조인해 전표처리 상태 조건으로 수신 내역을 IT_ZDTV3T_AP_HEAD 에 읽는 FORM 이다.
RUN_MSG_PROC FORM ZFIR0100F01 L176-183 0 SAPGUI_PROGRESS_INDICATOR 로 처리 중 메시지를 표시하는 진행 표시 유틸 FORM 이다.
SET_POP_MESSAGE FORM ZFIR0100F01 L194-216 1 POPUP_TO_CONFIRM 으로 예/아니오 확인 팝업을 띄워 사용자 응답(P_ANSWER)을 돌려주는 FORM 이다.
SET_LOCK FORM ZFIR0100F01 L226-228 0 잠금/해제 처리를 위한 자리만 있고 본문이 비어 있는 FORM 이다.
SELECT_PROCESS FORM ZFIR0100F01 L232-236 0 선언만 되어 있고 본문이 비어 있는 FORM 이다.
MODIFY_PROCESS FORM ZFIR0100F01 L240-261 1 조회된 IT_ZDTV3T_AP_HEAD 를 GT_MAIN 그리드 테이블로 옮기며 전표번호 유무에 따라 처리 상태 아이콘(ZICON)을 설정하는 FORM 이다.
POPUP_TO_CONFIRM FORM ZFIR0100F01 L265-296 1 저장/전표기표 명령에 맞는 문구로 POPUP_TO_CONFIRM_STEP 확인 팝업을 띄워 사용자 응답을 받는 FORM 이다.
TEXT_PROCESS FORM ZFIR0100F01 L300-307 0 거래처 텍스트 보정용으로 예정되었으나 주석 처리되어 본문이 비어 있는 FORM 이다.
DATE_PROCESS FORM ZFIR0100F01 L311-330 1 조회 연월(P_SPMON)로 월초~월말 날짜 범위 S_BUDAT 를 LAST_DAY_OF_MONTHS 로 구성하는 FORM 이다.
SET_POST FORM ZFIR0100F01 L335-397 2 ALV 에서 선택된 미처리 전자세금계산서 행을 GT_TABLE 로 메모리에 EXPORT 한 뒤 전표 입력 화면 ZFIR0110_DOC 을 호출해 매입전표를 기표하는 FORM 이다.
SET_SAVE FORM ZFIR0100F01 L404-492 2 ALV 에서 선택한 전자세금계산서 행의 전표번호를 수신 테이블에 저장하고 사용여부·상태 아이콘을 갱신한다.
CHANG_LINE FORM ZFIR0100F01 L496-573 2 ALV 에서 선택된 행만 변경 가능하도록 전체 행의 CELLTAB 을 초기화한 뒤 선택 행에 전표번호(BELNR)·회계연도(ZGJAH) 셀만 편집 가능한 스타일을 적용하는 FORM 이다.
SET_ITAB_STYLE FORM ZFIR0100F02 L13-45 0 GT_MAIN 전체 행을 돌며 SET_CELLTAB 으로 셀 편집 스타일(CELLTAB)을 만들어 각 행에 반영하는 ALV 셀 속성 설정 FORM 이다.
SET_LINE_ITAB_STYLE FORM ZFIR0100F02 L51-74 0 단일 행의 CELLTAB 스타일 설정을 위해 작업변수만 준비하고 실제 로직은 없는 미완성 FORM 이다.
SET_CELLTAB FORM ZFIR0100F02 L88-124 1 변경(CHAN) 모드에서 필드카탈로그 전 컬럼을 입력 불가로 두되 전표번호(BELNR)·회계연도(ZGJAH) 셀만 입력 가능하게 CELLTAB 스타일을 만드는 FORM 이다.
SET_CELLTAB_INSERT FORM ZFIR0100F02 L131-153 0 필드카탈로그의 모든 컬럼을 입력 불가(MC_STYLE_DISABLED) 스타일로 CELLTAB 에 넣어 해당 행의 셀 편집을 막는 ALV 셀 속성 FORM 이다.
SET_CONTAINER FORM ZFIR0100F02 L163-175 0 프레임·툴바제외·레이아웃·필드카탈로그·이벤트·ALV 표시 FORM 을 순서대로 호출해 화면 컨테이너를 구성하는 디스패치 FORM 이다.
SET_FRAME FORM ZFIR0100F02 L186-196 0 커스텀 컨테이너 CON_0100 과 ALV 그리드 객체(GO_GRID)를 생성하는 플러밍 FORM 이다.
SET_VARIANT FORM ZFIR0100F02 L206-215 0 ALV 변형(Variant) 구조 GS_VARIANT 에 리포트명·사용자·핸들을 초기 설정하는 플러밍 FORM 이다.
SET_TOOLBAR_EXCLUDE FORM ZFIR0100F02 L226-389 0 편집 ALV 툴바에서 행 삽입·삭제·복사·붙여넣기·UNDO·REFRESH 버튼을 제외 목록(GT_EXCLUDE)에 넣는 ALV 설정 FORM 이다.
SET_LAYOUT FORM ZFIR0100F02 L399-416 0 ALV 레이아웃(열너비 최적화, 선택모드, CELLTAB 스타일 필드, SCOL 색상 필드)을 설정하는 플러밍 FORM 이다.
SET_FIELDCATALOG FORM ZFIR0100F02 L426-439 0 화면번호에 따라 필드카탈로그 작업영역(GS_FCAT/GT_FCAT1)을 필드심볼에 할당하고 SET_FIELD01 을 호출하는 플러밍 FORM 이다.
SET_FIELD01 FORM ZFIR0100F02 L450-656 0 화면 0100 편집 그리드의 필드카탈로그(작성일자·사업장·공급가액·세액·공급자 정보·전표번호 등)를 SET_FIELD 로 정의하는 ALV 설정 FORM 이다.
SET_FIELD FORM ZFIR0100F02 L668-693 0 필드카탈로그 속성을 동적 ASSIGN 으로 채워 S/E 타입에 따라 초기화·APPEND 하는 필드카탈로그 빌더 유틸 FORM 이다.
RUN_DISPLAY_ALV FORM ZFIR0100F02 L703-725 1 화면 0100 용 그리드(GO_GRID)와 GT_MAIN 을 할당하고 이벤트 등록 후 SET_TABLE_FOR_FIRST_DISPLAY 로 편집 가능한 ALV 를 최초 표시한다.
SET_EVENT_UCOMM FORM ZFIR0100F02 L736-768 0 그리드를 초기 비편집 상태로 두고 MODIFIED/ENTER 편집 이벤트를 등록한 뒤 CHECK_CHANGED_DATA 와 포커스 설정을 하는 ALV 편집 이벤트 준비 FORM 이다.
SET_EVENT FORM ZFIR0100F02 L778-790 0 ALV 그리드 이벤트 핸들러 객체(GO_EVENT)를 생성하고 F4·데이터변경·사용자명령·툴바·더블클릭 핸들러를 등록하는 플러밍 FORM 이다.
SET_REFRESH FORM ZFIR0100F02 L801-824 0 레이아웃을 재적용하고 REFRESH_TABLE_DISPLAY(행·열 안정)와 CL_GUI_CFW=>FLUSH 로 ALV 그리드를 새로고침하는 플러밍 FORM 이다.
TOOLBAR FORM ZFIR0100F02 L836-864 0 ALV 툴바 버튼 추가용 핸들러이나 모든 내용이 주석 처리되어 실제 로직이 없는 FORM 이다.
USER_COMMAND FORM ZFIR0100F02 L874-901 1 ALV 툴바 사용자 명령(REFRESH/SAVE/POST)을 받아 재조회·확인 후 저장·전표기표 FORM 으로 분기하는 디스패치 FORM 이다.
SET_CHANGE FORM ZFIR0100F02 L912-953 2 변경(CHAN) 명령 시 선택 행 상태에 따라 그리드 편집 가능 여부를 토글하고 잠금(SET_LOCK)을 설정하는 FORM 이다.
DATA_CHANGED FORM ZFIR0100F02 L962-1040 2 편집 ALV 의 DATA_CHANGED 이벤트에서 변경된 셀 값을 GT_MAIN 에 반영하고 변경 플래그를 세우며 오류 시 프로토콜에 기록한 뒤 그리드를 새로고침하는 FORM 이다.
CHK_DATS FORM ZFIR0100F02 L1046-1052 0 날짜 필드 검증용으로 선언만 되어 있고 본문이 비어 있는 FORM 이다.
ADD_PROTOCAL_ENTRY FORM ZFIR0100F02 L1064-1084 1 편집 ALV 의 셀 검증 오류를 CL_ALV_CHANGED_DATA_PROTOCOL->ADD_PROTOCOL_ENTRY 로 오류 로그(메시지 00/E)에 추가하는 FORM 이다.
HANDLE_DOUBLE_CLICK FORM ZFIR0100F02 L1096-1113 1 ALV 전표번호(BELNR) 셀 더블클릭 시 회사코드·회계연도·전표번호를 파라미터로 세팅해 FB03 전표 조회 트랜잭션을 호출하는 FORM 이다.
CHK_DATA FORM ZFIR0100F02 L1124-1125 0 데이터 검증용으로 선언만 되어 있고 본문이 비어 있는 FORM 이다.
GET_COLOR FORM ZFIR0100F02 L1137-1152 0 ALV 행의 DEVNUM 컬럼에 셀 색상(LVC_S_SCOL)을 지정하는 표시용 FORM 이다.
ON_F4 FORM ZFIR0100F02 L1157-1168 0 ALV F4 이벤트 핸들러로 선언만 되어 있고 본문이 비어 있는 FORM 이다.
F4_FIELD_ENTRY_PART FORM ZFIR0100F02 L1177-1188 0 ALV 그리드 필드에 F4 검색도움을 등록하는(REGISTER_F4_FOR_FIELDS) 플러밍 FORM 이다.
USER_COMMAND_0100_EXIT INPUT MODULE ZFIR0100I01 L7-37 2 화면 0100 종료 명령 처리 시 미저장 변경분 확인 팝업을 띄우고 잠금을 해제한 뒤 화면을 빠져나가는 EXIT 모듈이다.
USER_COMMAND_0100 INPUT MODULE ZFIR0100I01 L45-89 1 화면 0100 의 사용자 명령(변경·재조회·저장·전기)을 받아 해당 처리 FORM 으로 분기하는 PAI 모듈이다.
STATUS_0100 OUTPUT MODULE ZFIR0100O01 L10-29 0
SET_SCREEN_0100 OUTPUT MODULE ZFIR0100O01 L37-41 0
SET_GRID_0100 OUTPUT MODULE ZFIR0100O01 L49-69 0