본문 바로가기

set_ready_for_input3

[SAP ABAP] ALV 특정 셀만 편집 가능 — CELL 별 EDIT (LVC_T_STYL + stylefname) 편집 가능한 ALV 에서 컬럼 전체가 아니라 특정 행의 특정 셀만 편집 가능/불가로 만들고 싶을 때가 있습니다. "이미 발주된 행은 잠그고 신규 행만 입력 받기" 같은 조건부 잠금이 대표 케이스. 컬럼 단위 fcat-edit = abap_true 만으로는 부족하고, 셀(cell) 단위 스타일 을 박아 줘야 합니다. 핵심은 두 가지입니다. (1) 인터널 테이블에 LVC_T_STYL 타입의 컬럼 한 개 를 추가하고, (2) layout-stylefname 에 그 컬럼명을 등록. 그 다음 행마다 LOOP 돌면서 그 컬럼에 (필드명, 스타일 상수) 한 줄씩 채워 넣으면 ALV 가 자동으로 셀별로 편집/잠금을 표시합니다. 이 글에서는 셀 스타일 컬럼 선언 → fill 폼 작성 → layout 등록 → 편집 이벤트.. 2026. 6. 4.
[SAP ABAP] ALV TOOLBAR 버튼으로 행 추가·삭제 — handle_toolbar + user_command 이벤트 (CL_GUI_ALV_GRID) 편집 가능한 ALV 화면에서 사용자가 직접 행을 추가하거나 삭제하는 버튼이 필요할 때가 있습니다. 입력용 ALV(예: 수기 데이터 입력, 항목 등록 화면) 에서 "행추가" · "행삭제" 버튼을 툴바에 올리는 패턴입니다. 이 기능의 핵심은 CL_GUI_ALV_GRID 의 두 이벤트 입니다. toolbar 이벤트로 커스텀 버튼을 툴바에 그리고, user_command 이벤트로 그 버튼을 눌렀을 때의 동작(행 추가/삭제) 을 처리합니다. 두 이벤트는 항상 짝으로 움직입니다 — 버튼을 그리는 쪽과 클릭을 처리하는 쪽. 이 글에서는 편집 가능 ALV 구성 → 이벤트 핸들러 등록 → toolbar 로 버튼 추가 → user_command 로 행 추가/삭제 처리 → 화면 갱신까지 정리합니다. 데이터는 SAP 표준 학.. 2026. 5. 29.
[SAP ABAP] ALV 체크박스 전체 선택 — TOOLBAR 이벤트로 select 버튼 추가 + USER_COMMAND 로 LOOP·REFRESH 5단계 ALV 그리드에 체크박스 컬럼을 만들고 사용자가 라인별로 선택하게 하는 화면은 흔합니다. 그런데 데이터가 많을 때 한 행씩 체크하는 건 비효율적이라, 사용자들이 가장 먼저 요청하는 기능이 “전체 선택 / 전체 해제 버튼”. ALV 도구 모음에 작은 버튼 하나만 추가하면 한 번 클릭으로 모든 행의 체크박스를 켜고 끌 수 있습니다. 구현의 핵심은 두 가지 — (1) ALV 도구 모음에 사용자 정의 버튼 “select” 를 추가하는 TOOLBAR 이벤트 핸들러, (2) 버튼 클릭을 받아 gt_data 의 box 컬럼을 일괄 ON 한 뒤 ALV 새로고침을 거는 USER_COMMAND 이벤트 핸들러. SAP 표준 ALV 의 두 이벤트만 연결하면 끝입니다. 이 글에서는 데이터 구조 선언부터 Field Catalog.. 2026. 5. 27.