Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
1783 lines
74 KiB
Markdown
1783 lines
74 KiB
Markdown
---
|
|
type: abap-program
|
|
title: "ZFIR0100 — [FI] 전자세금계산서 매입전표 생성"
|
|
description: "전자세금계산서 수신 데이터(ZDTV3T_AP_EXT 헤더/ZDTV3T_AP_EXT_D 상세)를 읽어 매입 전표를 생성하는 화면이다. 편집 가능한 ALV 그리드에서 수신 세금계산서를 검토·수정하고, 전기 대상을 확정해 저장·전기한다. 실제 전표 입력 화면은 ZFIR0110_DOC 을 호출해 처리하며, 셀 단위 입력 제어(CELLTAB)와 변형(Variant) 관리를 갖춘다."
|
|
resource: "abap://ZFIR0100"
|
|
tags: ["전자세금계산서", "세금계산서", "매입", "부가세", "전표", "채무관리", "FI", "행선택", "선택검증", "저장전검증", "ALV선택", "전표번호", "저장", "사용여부", "발행일", "사업장", "계산서순번", "상태아이콘", "사용자 명령", "전기"]
|
|
generated: { by: "abap-indexing/z-ai/glm-5.2:free", at: "2026-09-20T15:36:21+00:00" }
|
|
status: stable
|
|
x-package:
|
|
x-changed-on:
|
|
x-tables-read: ["ZDTV3T_AP_EXT", "ZDTV3T_AP_EXT_D"]
|
|
x-tables-write: ["GT_MAIN", "ZDTV3T_AP_EXT", "ZDTV3T_AP_EXT_D"]
|
|
x-calls: ["FB03", "LAST_DAY_OF_MONTHS", "POPUP_TO_CONFIRM", "POPUP_TO_CONFIRM_STEP", "REUSE_ALV_VARIANT_DEFAULT_GET", "SAPGUI_PROGRESS_INDICATOR", "ZFIR0110_DOC"]
|
|
x-code-hash: "009c573d7068cede209822b699c51af6a3cf09665a4077f9c8cdf6ee202d53e5"
|
|
x-unit-count: 64
|
|
x-chunk-count: 25
|
|
x-declaration-count: 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 에 읽는다(결과 반영은 주석 처리).
|
|
|
|
```abap
|
|
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`](#decl-zfir0100t01-32-gx_variant), [`GS_VARIANT`](#decl-zfir0100t01-31-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 를 결정한다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100scr-22-p_r1), [`L_DOC1`](#decl-zfir0100f01-96-l_doc1), [`L_DOC2`](#decl-zfir0100f01-96-l_doc2), [`P_R2`](#decl-zfir0100scr-25-p_r2), [`P_R3`](#decl-zfir0100scr-28-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 에 적재한다.
|
|
|
|
```abap
|
|
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](/tables/ZDTV3T_AP_EXT.md), [ZDTV3T_AP_EXT_D](/tables/ZDTV3T_AP_EXT_D.md) / 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`](#decl-zfir0100top-5-zdtv3t_ap_head), [`IT_ZDTV3T_AP_HEAD`](#decl-zfir0100top-11-it_zdtv3t_ap_head), [`ZDTV3T_AP_EXT`](#decl-zfir0100top-5-zdtv3t_ap_ext), [`ZDTV3T_AP_EXT_D`](#decl-zfir0100top-5-zdtv3t_ap_ext_d), [`P_BUKRS`](#decl-zfir0100scr-6-p_bukrs), [`S_BUDAT`](#decl-zfir0100top-48-s_budat), [`S_SU_ID`](#decl-zfir0100scr-12-s_su_id), [`S_EMAIL`](#decl-zfir0100scr-13-s_email), [`L_DOC1`](#decl-zfir0100f01-96-l_doc1), [`L_DOC2`](#decl-zfir0100f01-96-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) 를 만든다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100top-48-s_budat), [`P_SPMON`](#decl-zfir0100scr-9-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 에 넣어 그리드 상태 표시를 만든다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100top-5-zdtv3t_ap_head), [`IT_ZDTV3T_AP_HEAD`](#decl-zfir0100top-11-it_zdtv3t_ap_head), [`GT_MAIN`](#decl-zfir0100top-21-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)이 있으면 셀 변경 처리를 하지 않고 종료한다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100f02-968-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 갱신은 주석 처리).
|
|
|
|
```abap
|
|
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](/tables/GT_MAIN.md)
|
|
- 호출(파서): 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`](#decl-zfir0100f02-965-ls_mod_cells), [`GV_ERR`](#decl-zfir0100t01-59-gv_err), [`GS_MSG`](#decl-zfir0100t01-58-gs_msg), [`ZDTV3T_AP_HEAD`](#decl-zfir0100top-5-zdtv3t_ap_head), [`GT_MAIN`](#decl-zfir0100top-21-gt_main), [`<FS_FIELD>`](#decl-zfir0100f02-970--fs_field-), [`GV_CHK`](#decl-zfir0100t01-61-gv_chk), [`P_BUKRS`](#decl-zfir0100scr-6-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 오류 프로토콜에 표시한다.
|
|
|
|
```abap
|
|
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 로 매입전표 기표를 실행한다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100top-37-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 에 받는다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100t01-55-save_ok), [`L_DEFAULTOPTION`](#decl-zfir0100f01-267-l_defaultoption), [`L_TEXTLINE2`](#decl-zfir0100f01-267-l_textline2), [`L_TEXTLINE1`](#decl-zfir0100f01-267-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 그리드에서 현재 선택된 행을 가져오고, 선택이 없으면 '저장 할 행을 선택하세요' 메시지를 내고 중단한다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100f01-421-lt_rows), [`GO_GRID`](#decl-zfir0100c01-124-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)와 화면 상태 아이콘을 갱신한다.
|
|
|
|
```abap
|
|
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](/tables/ZDTV3T_AP_EXT_D.md), [ZDTV3T_AP_EXT](/tables/ZDTV3T_AP_EXT.md), [GT_MAIN](/tables/GT_MAIN.md)
|
|
- 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`](#decl-zfir0100f01-421-lt_rows), [`LS_ROWS`](#decl-zfir0100f01-422-ls_rows), [`ZDTV3T_AP_HEAD`](#decl-zfir0100top-5-zdtv3t_ap_head), [`GT_MAIN`](#decl-zfir0100top-21-gt_main), [`LT_SCOL`](#decl-zfir0100f01-407-lt_scol), [`ZDTV3T_AP_EXT_D`](#decl-zfir0100top-5-zdtv3t_ap_ext_d), [`L_USE_DOC`](#decl-zfir0100f01-414-l_use_doc), [`ZDTV3T_AP_EXT`](#decl-zfir0100top-5-zdtv3t_ap_ext), [`G_OK`](#decl-zfir0100top-38-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 로 선택 행을 읽고 선택 행이 없으면 '전표기표 할 행을 선택하세요' 메시지 후 종료한다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100c01-124-go_grid), [`LT_ROWS`](#decl-zfir0100f01-348-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' 으로 매입전표 입력 화면을 호출한다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100f01-348-lt_rows), [`LS_ROWS`](#decl-zfir0100f01-349-ls_rows), [`ZDTV3T_AP_HEAD`](#decl-zfir0100top-5-zdtv3t_ap_head), [`GT_MAIN`](#decl-zfir0100top-21-gt_main), [`LT_SCOL`](#decl-zfir0100f01-338-lt_scol), [`GT_TABLE`](#decl-zfir0100top-43-gt_table), [`G_OK`](#decl-zfir0100top-38-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 으로 호출한다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100top-5-zdtv3t_ap_head), [`GT_MAIN`](#decl-zfir0100top-21-gt_main), [`P_BUKRS`](#decl-zfir0100scr-6-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 로 반환하며 오류 시 시스템 메시지를 출력한다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100top-37-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 플래그를 세우고 '변경 할 행을 선택하세요' 메시지 후 종료한다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100c01-124-go_grid), [`LT_ROWS`](#decl-zfir0100f01-518-lt_rows), [`G_LINE`](#decl-zfir0100top-39-g_line)
|
|
- 위치: `abap://ZFIR0100/ZFIR0100F01#L526-L534` · confidence 0.9 · `ZFIR0100#ZFIR0100F01#FORM#CHANG_LINE#C1`
|
|
|
|
#### [other] GT_MAIN 전체 행의 CELLTAB 을 지운 뒤 선택된 행에 대해서만 SET_CELLTAB('CHAN') 으로 전표번호·회계연도 셀을 편집 가능하게 하는 셀 스타일을 삽입해 행 단위 편집 권한을 부여한다.
|
|
|
|
```abap
|
|
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](/tables/GT_MAIN.md)
|
|
- 호출(파서): SET_CELLTAB
|
|
- SAP 객체: LVC_T_STYL
|
|
- 업무 키워드: 셀 편집 스타일, 선택 행 편집, 전표번호, 회계연도
|
|
- English: CELLTAB, Editable Cell, Document Number
|
|
- 정의부(복사 시 함께 필요): [`ZDTV3T_AP_HEAD`](#decl-zfir0100top-5-zdtv3t_ap_head), [`GT_MAIN`](#decl-zfir0100top-21-gt_main), [`LV_TABIX`](#decl-zfir0100f01-503-lv_tabix), [`LT_ROWS`](#decl-zfir0100f01-518-lt_rows), [`LS_ROWS`](#decl-zfir0100f01-519-ls_rows), [`LS_MAIN`](#decl-zfir0100f01-498-ls_main), [`LT_CELLTAB`](#decl-zfir0100f01-499-lt_celltab), [`LV_UCOMM`](#decl-zfir0100f01-500-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 을 구성한다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100t01-35-gt_fcat1), [`GS_FCAT`](#decl-zfir0100t01-34-gs_fcat), [`LS_CELLTAB`](#decl-zfir0100f02-92-ls_celltab), [`LV_MODE`](#decl-zfir0100f02-93-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 를 표시한다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100c01-124-go_grid), [`<FS_GRID>`](#decl-zfir0100t01-86--fs_grid-), [`ZDTV3T_AP_HEAD`](#decl-zfir0100top-5-zdtv3t_ap_head), [`GT_MAIN`](#decl-zfir0100top-21-gt_main), [`<FS_TABLE>`](#decl-zfir0100t01-87--fs_table-), [`GS_LAYOUT`](#decl-zfir0100t01-30-gs_layout), [`GS_VARIANT`](#decl-zfir0100t01-31-gs_variant), [`GT_EXCLUDE`](#decl-zfir0100t01-33-gt_exclude), [`<GT_FIELD>`](#decl-zfir0100t01-84--gt_field-), [`GT_SORT`](#decl-zfir0100t01-37-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 으로 편집 모드를 켜고 아니면 끈다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100top-39-g_line), [`GO_GRID`](#decl-zfir0100c01-124-go_grid)
|
|
- 위치: `abap://ZFIR0100/ZFIR0100F02#L914-L924` · confidence 0.8 · `ZFIR0100#ZFIR0100F02#FORM#SET_CHANGE#C1`
|
|
|
|
#### [control_flow] 편집 진입 시 SET_LOCK 으로 데이터 잠금(Enqueue)을 걸어 동시 수정을 방지한다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100t01-57-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 로 데이터 검증을 수행하고 오류가 있으면 종료를 막는다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100t01-61-gv_chk), [`GV_ANSWER`](#decl-zfir0100t01-60-gv_answer), [`GV_ERR`](#decl-zfir0100t01-59-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 은 프로그램 종료로 분기한다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100t01-55-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) 를 분기 호출한다.
|
|
|
|
```abap
|
|
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`](#decl-zfir0100t01-55-save_ok), [`P_ANSWER`](#decl-zfir0100top-37-p_answer), [`G_OK`](#decl-zfir0100top-38-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 {#decl-zfir0100c01-7-lcl_event_receiver}
|
|
|
|
```abap
|
|
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 {#decl-zfir0100c01-110-go_custom}
|
|
|
|
```abap
|
|
DATA: GO_CUSTOM TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
|
|
```
|
|
|
|
#### GO_CUSTOM2 — data · L111-L111 {#decl-zfir0100c01-111-go_custom2}
|
|
|
|
```abap
|
|
DATA:
|
|
GO_CUSTOM2 TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
|
|
```
|
|
|
|
#### GO_DOCKING — data · L113-L113 {#decl-zfir0100c01-113-go_docking}
|
|
|
|
```abap
|
|
DATA: GO_DOCKING TYPE REF TO CL_GUI_DOCKING_CONTAINER.
|
|
```
|
|
|
|
#### GO_DOCKING2 — data · L114-L114 {#decl-zfir0100c01-114-go_docking2}
|
|
|
|
```abap
|
|
DATA:
|
|
GO_DOCKING2 TYPE REF TO CL_GUI_DOCKING_CONTAINER.
|
|
```
|
|
|
|
#### GO_SPLITTER — data · L116-L116 {#decl-zfir0100c01-116-go_splitter}
|
|
|
|
```abap
|
|
DATA: GO_SPLITTER TYPE REF TO CL_GUI_SPLITTER_CONTAINER.
|
|
```
|
|
|
|
#### GO_SPLITTER2 — data · L117-L117 {#decl-zfir0100c01-117-go_splitter2}
|
|
|
|
```abap
|
|
DATA:
|
|
GO_SPLITTER2 TYPE REF TO CL_GUI_SPLITTER_CONTAINER.
|
|
```
|
|
|
|
#### GO_GRID — data · L124-L124 {#decl-zfir0100c01-124-go_grid}
|
|
|
|
```abap
|
|
DATA: GO_GRID TYPE REF TO CL_GUI_ALV_GRID.
|
|
```
|
|
|
|
#### GO_GRID2 — data · L125-L125 {#decl-zfir0100c01-125-go_grid2}
|
|
|
|
```abap
|
|
DATA:
|
|
GO_GRID2 TYPE REF TO CL_GUI_ALV_GRID.
|
|
```
|
|
|
|
#### GO_GRID3 — data · L126-L126 {#decl-zfir0100c01-126-go_grid3}
|
|
|
|
```abap
|
|
DATA:
|
|
GO_GRID3 TYPE REF TO CL_GUI_ALV_GRID.
|
|
```
|
|
|
|
#### GO_GRID4 — data · L127-L127 {#decl-zfir0100c01-127-go_grid4}
|
|
|
|
```abap
|
|
DATA:
|
|
GO_GRID4 TYPE REF TO CL_GUI_ALV_GRID.
|
|
```
|
|
|
|
#### GO_GRID5 — data · L128-L128 {#decl-zfir0100c01-128-go_grid5}
|
|
|
|
```abap
|
|
DATA:
|
|
GO_GRID5 TYPE REF TO CL_GUI_ALV_GRID.
|
|
```
|
|
|
|
#### GO_CON — data · L130-L130 {#decl-zfir0100c01-130-go_con}
|
|
|
|
```abap
|
|
DATA: GO_CON TYPE REF TO CL_GUI_CONTAINER.
|
|
```
|
|
|
|
#### GO_CON2 — data · L131-L131 {#decl-zfir0100c01-131-go_con2}
|
|
|
|
```abap
|
|
DATA:
|
|
GO_CON2 TYPE REF TO CL_GUI_CONTAINER.
|
|
```
|
|
|
|
#### GO_CON3 — data · L132-L132 {#decl-zfir0100c01-132-go_con3}
|
|
|
|
```abap
|
|
DATA:
|
|
GO_CON3 TYPE REF TO CL_GUI_CONTAINER.
|
|
```
|
|
|
|
#### GO_CON4 — data · L133-L133 {#decl-zfir0100c01-133-go_con4}
|
|
|
|
```abap
|
|
DATA:
|
|
GO_CON4 TYPE REF TO CL_GUI_CONTAINER.
|
|
```
|
|
|
|
#### GO_CON5 — data · L134-L134 {#decl-zfir0100c01-134-go_con5}
|
|
|
|
```abap
|
|
DATA:
|
|
GO_CON5 TYPE REF TO CL_GUI_CONTAINER.
|
|
```
|
|
|
|
#### GO_EVENT — data · L136-L136 {#decl-zfir0100c01-136-go_event}
|
|
|
|
```abap
|
|
DATA: GO_EVENT TYPE REF TO LCL_EVENT_RECEIVER.
|
|
```
|
|
|
|
### `ZFIR0100SCR` (7건)
|
|
|
|
#### P_BUKRS — parameter · L6-L8 {#decl-zfir0100scr-6-p_bukrs}
|
|
|
|
```abap
|
|
PARAMETERS : P_BUKRS TYPE T001-BUKRS DEFAULT 'KR01'
|
|
MEMORY ID BUK
|
|
OBLIGATORY.
|
|
```
|
|
|
|
#### P_SPMON — parameter · L9-L10 {#decl-zfir0100scr-9-p_spmon}
|
|
|
|
```abap
|
|
PARAMETERS:
|
|
P_SPMON TYPE SPMON DEFAULT SY-DATUM+0(6)
|
|
OBLIGATORY.
|
|
```
|
|
|
|
#### S_SU_ID — select-option · L12-L12 {#decl-zfir0100scr-12-s_su_id}
|
|
|
|
```abap
|
|
SELECT-OPTIONS: S_SU_ID FOR LFA1-LIFNR.
|
|
```
|
|
|
|
#### S_EMAIL — select-option · L13-L13 {#decl-zfir0100scr-13-s_email}
|
|
|
|
```abap
|
|
SELECT-OPTIONS:
|
|
S_EMAIL FOR ZDTV3T_AP_HEAD-IP_EMAIL1.
|
|
```
|
|
|
|
#### P_R1 — parameter · L22-L22 {#decl-zfir0100scr-22-p_r1}
|
|
|
|
```abap
|
|
PARAMETERS: P_R1 RADIOBUTTON GROUP G1 .
|
|
```
|
|
|
|
#### P_R2 — parameter · L25-L25 {#decl-zfir0100scr-25-p_r2}
|
|
|
|
```abap
|
|
PARAMETERS: P_R2 RADIOBUTTON GROUP G1.
|
|
```
|
|
|
|
#### P_R3 — parameter · L28-L28 {#decl-zfir0100scr-28-p_r3}
|
|
|
|
```abap
|
|
PARAMETERS: P_R3 RADIOBUTTON GROUP G1.
|
|
```
|
|
|
|
### `ZFIR0100T01` (39건)
|
|
|
|
#### IT_EXCEL — data · L9-L9 {#decl-zfir0100t01-9-it_excel}
|
|
|
|
```abap
|
|
DATA: IT_EXCEL LIKE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
|
|
```
|
|
|
|
#### GT_EXCEL — data · L13-L22 {#decl-zfir0100t01-13-gt_excel}
|
|
|
|
```abap
|
|
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 {#decl-zfir0100t01-25-it_ztrt0002}
|
|
|
|
```abap
|
|
DATA: BEGIN OF IT_ZTRT0002 OCCURS 0.
|
|
INCLUDE STRUCTURE ZTRT0002.
|
|
DATA END OF IT_ZTRT0002.
|
|
```
|
|
|
|
#### GS_LAYOUT — data · L30-L30 {#decl-zfir0100t01-30-gs_layout}
|
|
|
|
```abap
|
|
DATA: GS_LAYOUT TYPE LVC_S_LAYO.
|
|
```
|
|
|
|
#### GS_VARIANT — data · L31-L31 {#decl-zfir0100t01-31-gs_variant}
|
|
|
|
```abap
|
|
DATA:
|
|
GS_VARIANT TYPE DISVARIANT.
|
|
```
|
|
|
|
#### GX_VARIANT — data · L32-L32 {#decl-zfir0100t01-32-gx_variant}
|
|
|
|
```abap
|
|
DATA:
|
|
GX_VARIANT TYPE DISVARIANT.
|
|
```
|
|
|
|
#### GT_EXCLUDE — data · L33-L33 {#decl-zfir0100t01-33-gt_exclude}
|
|
|
|
```abap
|
|
DATA:
|
|
GT_EXCLUDE TYPE UI_FUNCTIONS.
|
|
```
|
|
|
|
#### GS_FCAT — data · L34-L34 {#decl-zfir0100t01-34-gs_fcat}
|
|
|
|
```abap
|
|
DATA:
|
|
GS_FCAT TYPE LVC_S_FCAT.
|
|
```
|
|
|
|
#### GT_FCAT1 — data · L35-L35 {#decl-zfir0100t01-35-gt_fcat1}
|
|
|
|
```abap
|
|
DATA:
|
|
GT_FCAT1 TYPE LVC_T_FCAT.
|
|
```
|
|
|
|
#### GS_SORT — data · L36-L36 {#decl-zfir0100t01-36-gs_sort}
|
|
|
|
```abap
|
|
DATA:
|
|
GS_SORT TYPE LVC_S_SORT.
|
|
```
|
|
|
|
#### GT_SORT — data · L37-L37 {#decl-zfir0100t01-37-gt_sort}
|
|
|
|
```abap
|
|
DATA:
|
|
GT_SORT TYPE LVC_T_SORT.
|
|
```
|
|
|
|
#### GS_GLAY — data · L38-L38 {#decl-zfir0100t01-38-gs_glay}
|
|
|
|
```abap
|
|
DATA:
|
|
GS_GLAY TYPE LVC_S_GLAY.
|
|
```
|
|
|
|
#### GT_HEAD — data · L39-L39 {#decl-zfir0100t01-39-gt_head}
|
|
|
|
```abap
|
|
DATA:
|
|
GT_HEAD TYPE LVC_T_HEAD.
|
|
```
|
|
|
|
#### GS_HEAD — data · L40-L40 {#decl-zfir0100t01-40-gs_head}
|
|
|
|
```abap
|
|
DATA:
|
|
GS_HEAD TYPE LVC_S_HEAD.
|
|
```
|
|
|
|
#### GS_EVENT — data · L41-L41 {#decl-zfir0100t01-41-gs_event}
|
|
|
|
```abap
|
|
DATA:
|
|
GS_EVENT TYPE LVC_S_EVTS.
|
|
```
|
|
|
|
#### GT_EVENT — data · L42-L42 {#decl-zfir0100t01-42-gt_event}
|
|
|
|
```abap
|
|
DATA:
|
|
GT_EVENT TYPE LVC_T_EVTS.
|
|
```
|
|
|
|
#### GS_STBL — data · L43-L43 {#decl-zfir0100t01-43-gs_stbl}
|
|
|
|
```abap
|
|
DATA:
|
|
GS_STBL TYPE LVC_S_STBL. " Refresh stability.
|
|
```
|
|
|
|
#### G_REPID — data · L45-L45 {#decl-zfir0100t01-45-g_repid}
|
|
|
|
```abap
|
|
DATA: G_REPID TYPE SY-REPID.
|
|
```
|
|
|
|
#### G_TABNAME — data · L46-L46 {#decl-zfir0100t01-46-g_tabname}
|
|
|
|
```abap
|
|
DATA:
|
|
G_TABNAME TYPE SLIS_TABNAME.
|
|
```
|
|
|
|
#### GV_EXIT — data · L47-L47 {#decl-zfir0100t01-47-gv_exit}
|
|
|
|
```abap
|
|
DATA:
|
|
GV_EXIT TYPE C.
|
|
```
|
|
|
|
#### OK_CODE — data · L54-L54 {#decl-zfir0100t01-54-ok_code}
|
|
|
|
```abap
|
|
DATA: OK_CODE TYPE SY-UCOMM.
|
|
```
|
|
|
|
#### SAVE_OK — data · L55-L55 {#decl-zfir0100t01-55-save_ok}
|
|
|
|
```abap
|
|
DATA:
|
|
SAVE_OK TYPE SY-UCOMM.
|
|
```
|
|
|
|
#### GV_UCOMM — data · L57-L57 {#decl-zfir0100t01-57-gv_ucomm}
|
|
|
|
```abap
|
|
DATA: GV_UCOMM TYPE SY-UCOMM. " COMMAND
|
|
```
|
|
|
|
#### GS_MSG — data · L58-L58 {#decl-zfir0100t01-58-gs_msg}
|
|
|
|
```abap
|
|
DATA:
|
|
GS_MSG LIKE FIMSG. " MESSSAGE
|
|
```
|
|
|
|
#### GV_ERR — data · L59-L59 {#decl-zfir0100t01-59-gv_err}
|
|
|
|
```abap
|
|
DATA:
|
|
GV_ERR TYPE C. " ERROR
|
|
```
|
|
|
|
#### GV_ANSWER — data · L60-L60 {#decl-zfir0100t01-60-gv_answer}
|
|
|
|
```abap
|
|
DATA:
|
|
GV_ANSWER TYPE C. " MESSAGE
|
|
```
|
|
|
|
#### GV_CHK — data · L61-L61 {#decl-zfir0100t01-61-gv_chk}
|
|
|
|
```abap
|
|
DATA:
|
|
GV_CHK TYPE C. " CHANGE
|
|
```
|
|
|
|
#### GV_LOCK — data · L62-L62 {#decl-zfir0100t01-62-gv_lock}
|
|
|
|
```abap
|
|
DATA:
|
|
GV_LOCK TYPE C.
|
|
```
|
|
|
|
#### GV_MNAME — data · L63-L63 {#decl-zfir0100t01-63-gv_mname}
|
|
|
|
```abap
|
|
DATA:
|
|
GV_MNAME TYPE STRING.
|
|
```
|
|
|
|
#### GS_F4 — data · L65-L65 {#decl-zfir0100t01-65-gs_f4}
|
|
|
|
```abap
|
|
DATA: GS_F4 TYPE LVC_S_F4. " F4 ## ##
|
|
```
|
|
|
|
#### GT_F4 — data · L66-L66 {#decl-zfir0100t01-66-gt_f4}
|
|
|
|
```abap
|
|
DATA:
|
|
GT_F4 TYPE LVC_T_F4.
|
|
```
|
|
|
|
#### GC_YEL — constants · L73-L73 {#decl-zfir0100t01-73-gc_yel}
|
|
|
|
```abap
|
|
CONSTANTS: GC_YEL(4) VALUE '@09@'. " ICON_LED_YELLOW
|
|
```
|
|
|
|
#### GC_GRE — constants · L74-L74 {#decl-zfir0100t01-74-gc_gre}
|
|
|
|
```abap
|
|
CONSTANTS:
|
|
GC_GRE(4) VALUE '@08@'. " ICON_LED_GREEN
|
|
```
|
|
|
|
#### GC_OUT — constants · L75-L75 {#decl-zfir0100t01-75-gc_out}
|
|
|
|
```abap
|
|
CONSTANTS:
|
|
GC_OUT(4) VALUE '@EB@'. " ICON_LED_LIGHT_OUT
|
|
```
|
|
|
|
#### GC_RED — constants · L76-L76 {#decl-zfir0100t01-76-gc_red}
|
|
|
|
```abap
|
|
CONSTANTS:
|
|
GC_RED(4) VALUE '@0A@'. " ICON_LED_RED
|
|
```
|
|
|
|
#### <GS_FIELD> — field-symbol · L83-L83 {#decl-zfir0100t01-83--gs_field-}
|
|
|
|
```abap
|
|
FIELD-SYMBOLS: <GS_FIELD> TYPE LVC_S_FCAT.
|
|
```
|
|
|
|
#### <GT_FIELD> — field-symbol · L84-L84 {#decl-zfir0100t01-84--gt_field-}
|
|
|
|
```abap
|
|
FIELD-SYMBOLS:
|
|
<GT_FIELD> TYPE LVC_T_FCAT.
|
|
```
|
|
|
|
#### <FS_GRID> — field-symbol · L86-L86 {#decl-zfir0100t01-86--fs_grid-}
|
|
|
|
```abap
|
|
FIELD-SYMBOLS: <FS_GRID> TYPE REF TO CL_GUI_ALV_GRID.
|
|
```
|
|
|
|
#### <FS_TABLE> — field-symbol · L87-L87 {#decl-zfir0100t01-87--fs_table-}
|
|
|
|
```abap
|
|
FIELD-SYMBOLS:
|
|
<FS_TABLE> TYPE TABLE.
|
|
```
|
|
|
|
### `ZFIR0100TOP` (20건)
|
|
|
|
#### ZDTV3T_AP_EXT — tables · L5-L5 {#decl-zfir0100top-5-zdtv3t_ap_ext}
|
|
|
|
```abap
|
|
TABLES: ZDTV3T_AP_HEAD, ZDTV3T_AP_EXT, ZDTV3T_AP_EXT_D.
|
|
```
|
|
|
|
#### ZDTV3T_AP_EXT_D — tables · L5-L5 {#decl-zfir0100top-5-zdtv3t_ap_ext_d}
|
|
|
|
```abap
|
|
TABLES: ZDTV3T_AP_HEAD, ZDTV3T_AP_EXT, ZDTV3T_AP_EXT_D.
|
|
```
|
|
|
|
#### ZDTV3T_AP_HEAD — tables · L5-L5 {#decl-zfir0100top-5-zdtv3t_ap_head}
|
|
|
|
```abap
|
|
TABLES: ZDTV3T_AP_HEAD, ZDTV3T_AP_EXT, ZDTV3T_AP_EXT_D.
|
|
```
|
|
|
|
#### BKPF — tables · L6-L6 {#decl-zfir0100top-6-bkpf}
|
|
|
|
```abap
|
|
TABLES:
|
|
BKPF, LFA1.
|
|
```
|
|
|
|
#### LFA1 — tables · L6-L6 {#decl-zfir0100top-6-lfa1}
|
|
|
|
```abap
|
|
TABLES:
|
|
BKPF, LFA1.
|
|
```
|
|
|
|
#### ICON — type-pool · L8-L8 {#decl-zfir0100top-8-icon}
|
|
|
|
```abap
|
|
TYPE-POOLS: SLIS, ICON.
|
|
```
|
|
|
|
#### SLIS — type-pool · L8-L8 {#decl-zfir0100top-8-slis}
|
|
|
|
```abap
|
|
TYPE-POOLS: SLIS, ICON.
|
|
```
|
|
|
|
#### IT_ZDTV3T_AP_HEAD — data · L11-L18 {#decl-zfir0100top-11-it_zdtv3t_ap_head}
|
|
|
|
```abap
|
|
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 {#decl-zfir0100top-21-gt_main}
|
|
|
|
```abap
|
|
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 {#decl-zfir0100top-35-gt_imsi}
|
|
|
|
```abap
|
|
DATA: GT_IMSI LIKE TABLE OF GT_MAIN WITH HEADER LINE.
|
|
```
|
|
|
|
#### P_ANSWER — data · L37-L37 {#decl-zfir0100top-37-p_answer}
|
|
|
|
```abap
|
|
DATA: P_ANSWER.
|
|
```
|
|
|
|
#### G_OK — data · L38-L38 {#decl-zfir0100top-38-g_ok}
|
|
|
|
```abap
|
|
DATA: G_OK.
|
|
```
|
|
|
|
#### G_LINE — data · L39-L39 {#decl-zfir0100top-39-g_line}
|
|
|
|
```abap
|
|
DATA: G_LINE.
|
|
```
|
|
|
|
#### TMP_MAIN — data · L41-L41 {#decl-zfir0100top-41-tmp_main}
|
|
|
|
```abap
|
|
DATA: TMP_MAIN LIKE TABLE OF GT_MAIN WITH HEADER LINE.
|
|
```
|
|
|
|
#### GT_TABLE — data · L43-L43 {#decl-zfir0100top-43-gt_table}
|
|
|
|
```abap
|
|
DATA: GT_TABLE LIKE TABLE OF GT_MAIN WITH HEADER LINE.
|
|
```
|
|
|
|
#### GT_ANY — data · L45-L45 {#decl-zfir0100top-45-gt_any}
|
|
|
|
```abap
|
|
DATA GT_ANY TYPE REF TO DATA.
|
|
```
|
|
|
|
#### I_TABNAM — data · L46-L46 {#decl-zfir0100top-46-i_tabnam}
|
|
|
|
```abap
|
|
DATA I_TABNAM TYPE TABNAME16.
|
|
```
|
|
|
|
#### S_BUDAT — ranges · L48-L48 {#decl-zfir0100top-48-s_budat}
|
|
|
|
```abap
|
|
RANGES: S_BUDAT FOR BKPF-BUDAT.
|
|
```
|
|
|
|
#### <FS_S> — field-symbol · L51-L51 {#decl-zfir0100top-51--fs_s-}
|
|
|
|
```abap
|
|
FIELD-SYMBOLS: <FS_S> TYPE ANY.
|
|
```
|
|
|
|
#### <FS_T> — field-symbol · L52-L52 {#decl-zfir0100top-52--fs_t-}
|
|
|
|
```abap
|
|
FIELD-SYMBOLS:
|
|
<FS_T> TYPE ANY TABLE.
|
|
```
|
|
|
|
### `ZFIR0100F01` (18건)
|
|
|
|
#### L_DOC1 — data · unit 로컬 · L96-L96 {#decl-zfir0100f01-96-l_doc1}
|
|
|
|
```abap
|
|
DATA: L_DOC1, L_DOC2.
|
|
```
|
|
|
|
#### L_DOC2 — data · unit 로컬 · L96-L96 {#decl-zfir0100f01-96-l_doc2}
|
|
|
|
```abap
|
|
DATA: L_DOC1, L_DOC2.
|
|
```
|
|
|
|
#### L_DEFAULTOPTION — data · unit 로컬 · L267-L267 {#decl-zfir0100f01-267-l_defaultoption}
|
|
|
|
```abap
|
|
DATA: L_DEFAULTOPTION, L_TEXTLINE1(70), L_TEXTLINE2(70).
|
|
```
|
|
|
|
#### L_TEXTLINE2 — data · unit 로컬 · L267-L267 {#decl-zfir0100f01-267-l_textline2}
|
|
|
|
```abap
|
|
DATA: L_DEFAULTOPTION, L_TEXTLINE1(70), L_TEXTLINE2(70).
|
|
```
|
|
|
|
#### L_TEXTLINE1 — data · unit 로컬 · L267-L267 {#decl-zfir0100f01-267-l_textline1}
|
|
|
|
```abap
|
|
DATA: L_DEFAULTOPTION, L_TEXTLINE1(70), L_TEXTLINE2(70).
|
|
```
|
|
|
|
#### LT_SCOL — data · unit 로컬 · L338-L338 {#decl-zfir0100f01-338-lt_scol}
|
|
|
|
```abap
|
|
DATA:
|
|
LT_SCOL TYPE LVC_T_SCOL.
|
|
```
|
|
|
|
#### LT_ROWS — data · unit 로컬 · L348-L348 {#decl-zfir0100f01-348-lt_rows}
|
|
|
|
```abap
|
|
DATA: LT_ROWS TYPE LVC_T_ROW. " ALV 제어: 테이블행
|
|
```
|
|
|
|
#### LS_ROWS — data · unit 로컬 · L349-L349 {#decl-zfir0100f01-349-ls_rows}
|
|
|
|
```abap
|
|
DATA:
|
|
LS_ROWS TYPE LVC_S_ROW.
|
|
```
|
|
|
|
#### LT_SCOL — data · unit 로컬 · L407-L407 {#decl-zfir0100f01-407-lt_scol}
|
|
|
|
```abap
|
|
DATA:
|
|
LT_SCOL TYPE LVC_T_SCOL.
|
|
```
|
|
|
|
#### L_USE_DOC — data · unit 로컬 · L414-L414 {#decl-zfir0100f01-414-l_use_doc}
|
|
|
|
```abap
|
|
DATA: L_USE_DOC.
|
|
```
|
|
|
|
#### LT_ROWS — data · unit 로컬 · L421-L421 {#decl-zfir0100f01-421-lt_rows}
|
|
|
|
```abap
|
|
DATA: LT_ROWS TYPE LVC_T_ROW. " ALV 제어: 테이블행
|
|
```
|
|
|
|
#### LS_ROWS — data · unit 로컬 · L422-L422 {#decl-zfir0100f01-422-ls_rows}
|
|
|
|
```abap
|
|
DATA:
|
|
LS_ROWS TYPE LVC_S_ROW.
|
|
```
|
|
|
|
#### LS_MAIN — data · unit 로컬 · L498-L498 {#decl-zfir0100f01-498-ls_main}
|
|
|
|
```abap
|
|
DATA: LS_MAIN LIKE GT_MAIN.
|
|
```
|
|
|
|
#### LT_CELLTAB — data · unit 로컬 · L499-L499 {#decl-zfir0100f01-499-lt_celltab}
|
|
|
|
```abap
|
|
DATA: LT_CELLTAB TYPE LVC_T_STYL.
|
|
```
|
|
|
|
#### LV_UCOMM — data · unit 로컬 · L500-L500 {#decl-zfir0100f01-500-lv_ucomm}
|
|
|
|
```abap
|
|
DATA: LV_UCOMM TYPE SY-UCOMM.
|
|
```
|
|
|
|
#### LV_TABIX — data · unit 로컬 · L503-L503 {#decl-zfir0100f01-503-lv_tabix}
|
|
|
|
```abap
|
|
DATA: LV_TABIX TYPE SY-TABIX.
|
|
```
|
|
|
|
#### LT_ROWS — data · unit 로컬 · L518-L518 {#decl-zfir0100f01-518-lt_rows}
|
|
|
|
```abap
|
|
DATA: LT_ROWS TYPE LVC_T_ROW. " ALV 제어: 테이블행
|
|
```
|
|
|
|
#### LS_ROWS — data · unit 로컬 · L519-L519 {#decl-zfir0100f01-519-ls_rows}
|
|
|
|
```abap
|
|
DATA:
|
|
LS_ROWS TYPE LVC_S_ROW.
|
|
```
|
|
|
|
### `ZFIR0100F02` (5건)
|
|
|
|
#### LS_CELLTAB — data · unit 로컬 · L92-L92 {#decl-zfir0100f02-92-ls_celltab}
|
|
|
|
```abap
|
|
DATA: LS_CELLTAB TYPE LVC_S_STYL.
|
|
```
|
|
|
|
#### LV_MODE — data · unit 로컬 · L93-L93 {#decl-zfir0100f02-93-lv_mode}
|
|
|
|
```abap
|
|
DATA:
|
|
LV_MODE TYPE RAW4.
|
|
```
|
|
|
|
#### LS_MOD_CELLS — data · unit 로컬 · L965-L965 {#decl-zfir0100f02-965-ls_mod_cells}
|
|
|
|
```abap
|
|
DATA: LS_MOD_CELLS TYPE LVC_S_MODI.
|
|
```
|
|
|
|
#### LV_LINE — data · unit 로컬 · L968-L968 {#decl-zfir0100f02-968-lv_line}
|
|
|
|
```abap
|
|
DATA: LV_LINE TYPE I.
|
|
```
|
|
|
|
#### <FS_FIELD> — field-symbol · unit 로컬 · L970-L970 {#decl-zfir0100f02-970--fs_field-}
|
|
|
|
```abap
|
|
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 | |
|