SAP_ABAP_FI
ABAP SelectionScreen/Event/응용 본문
-Screen
- Program Main
- Selection Screen Top
TABLES:sscrfields.
SELECTION-SCREEN BEGIN OF SCREEN 1001 AS SUBSCREEN.
PARAMETERS: ck03 AS CHECKBOX.
SELECTION-SCREEN END OF SCREEN 1001.
SELECTION-SCREEN BEGIN OF SCREEN 1002 AS SUBSCREEN.
PARAMETERS: ck04 AS CHECKBOX.
SELECTION-SCREEN END OF SCREEN 1002.
SELECTION-SCREEN BEGIN OF SCREEN 1010 AS WINDOW.
PARAMETERS: p_spmon TYPE spmon,
p_mondt TYPE spmon.
SELECTION-SCREEN END OF SCREEN 1010.
SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE TEXT-t01.
PARAMETERS: p_bukr TYPE bukrs.
PARAMETERS: p_rldnr TYPE rldnr.
PARAMETERS: p_tab TYPE tabname.
SELECTION-SCREEN SKIP 1. " 한줄 띄기
SELECTION-SCREEN PUSHBUTTON 1(10) push
USER-COMMAND push." Push Btn1
SELECTION-SCREEN PUSHBUTTON 13(10) push2
USER-COMMAND push2." Push Btn2
SELECTION-SCREEN END OF BLOCK b01.
SELECTION-SCREEN BEGIN OF BLOCK b02 WITH FRAME TITLE TEXT-t02.
SELECTION-SCREEN COMMENT 3(35) TEXT-cm1.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 6(2) TEXT-cm2.
PARAMETERS: rb_01 RADIOBUTTON GROUP rad1 USER-COMMAND f001.
SELECTION-SCREEN COMMENT 11(10) TEXT-c01 FOR FIELD rb_01.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 11(10) TEXT-c03 FOR FIELD p_fname
MODIF ID m01.
PARAMETERS: p_fname TYPE rlgrap-filename MODIF ID m01.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 6(2) TEXT-cm2.
PARAMETERS: rb_02 RADIOBUTTON GROUP rad1.
SELECTION-SCREEN COMMENT 11(10) TEXT-c02 FOR FIELD rb_02.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b02.
SELECTION-SCREEN SKIP 2. " 한줄 띄기
SELECTION-SCREEN BEGIN OF TABBED BLOCK tab FOR 7 LINES.
SELECTION-SCREEN:TAB (20) t01 USER-COMMAND 1001 DEFAULT SCREEN 1001,
TAB (20) t02 USER-COMMAND 1002.
SELECTION-SCREEN END OF BLOCK tab.
PARAMETERS: ck01 AS CHECKBOX,
ck02 AS CHECKBOX.
SELECTION-SCREEN FUNCTION KEY: 1,
2,
3,
4,
5.
---> PBO/PAI/INIT_SCR/F4 등
*&---------------------------------------------------------------------*
*& Form INIT_SCR
*&---------------------------------------------------------------------*
FORM init_scr .
DATA: ls_func TYPE smp_dyntxt.
ls_func-icon_id = icon_detail.
ls_func-quickinfo = 'FUNC1'.
ls_func-icon_text = 'FUNC1'.
sscrfields-functxt_01 = ls_func. CLEAR: ls_func.
ls_func-icon_id = icon_detail.
ls_func-quickinfo = 'FUNC2'.
ls_func-icon_text = 'FUNC2'.
sscrfields-functxt_02 = ls_func. CLEAR: ls_func.
ls_func-icon_id = icon_detail.
ls_func-quickinfo = 'FUNC3'.
ls_func-icon_text = 'FUNC3'.
sscrfields-functxt_03 = ls_func. CLEAR: ls_func.
ls_func-icon_id = icon_detail.
ls_func-quickinfo = 'FUNC4'.
ls_func-icon_text = 'FUNC4'.
sscrfields-functxt_04 = ls_func. CLEAR: ls_func.
ls_func-icon_id = icon_detail.
ls_func-quickinfo = 'FUNC5'.
ls_func-icon_text = 'FUNC5'.
sscrfields-functxt_05 = ls_func. CLEAR: ls_func.
t01 = 'TAB01'.
t02 = 'TAB02'.
push = icon_activate.
push2 = icon_activate.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SCR_PAI
*&---------------------------------------------------------------------*
FORM scr_pai USING pv_dynnr.
CASE pv_dynnr.
WHEN 1000.
CASE sscrfields-ucomm.
WHEN 'ONLI'.
WHEN '1001'.
tab-dynnr = 1001.
tab-activetab = 'TAB01'.
WHEN '1002'.
tab-dynnr = 1002.
tab-activetab = 'TAB02'.
WHEN 'FC01'.
CALL SELECTION-SCREEN 1010 STARTING AT 10 5.
WHEN 'FC02'.
WHEN 'FC03'.
WHEN 'FC04'.
WHEN 'FC05'.
WHEN 'PUSH'.
WHEN 'PUSH2'.
ENDCASE.
ENDCASE.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SCR_PBO
*&---------------------------------------------------------------------*
FORM scr_pbo USING pv_dynnr.
DATA: lt_exclude TYPE TABLE OF rsexfcode.
CASE pv_dynnr.
WHEN 1000.
*실행 버튼 제거
APPEND 'ONLI' TO lt_exclude.
CALL FUNCTION 'RS_SET_SELSCREEN_STATUS'
EXPORTING
p_status = '%_00'
p_program = 'RSSTSTDB'
TABLES
p_exclude = lt_exclude.
LOOP AT SCREEN.
CASE screen-group1.
WHEN 'M01'.
CASE abap_true.
WHEN rb_01.screen-active = 1.
WHEN rb_02.screen-active = 0.
ENDCASE.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
WHEN 1010.
*실행 save delete 버튼
APPEND: 'NONE' TO lt_exclude,
'SPOS' TO lt_exclude,
'LVUV' TO lt_exclude.
CALL FUNCTION 'RS_SET_SELSCREEN_STATUS'
EXPORTING
p_status = '%_CSP'
p_program = 'RSSTSTDB'
TABLES
p_exclude = lt_exclude.
ENDCASE.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form F4_TAB
*&---------------------------------------------------------------------*
FORM f4_tab .
DATA: BEGIN OF ls_tab,
tabname TYPE tabname,
ddtext TYPE dd02t-ddtext,
END OF ls_tab,
lt_tab LIKE TABLE OF ls_tab.
DATA: ls_return LIKE ddshretval,
lt_return LIKE TABLE OF ls_return.
SELECT a~obj_name AS tabname
b~ddtext
INTO CORRESPONDING FIELDS OF TABLE lt_tab
FROM tadir AS a INNER JOIN dd02t AS b ON a~obj_name = b~tabname
WHERE a~obj_name LIKE 'Z%'
AND b~ddlanguage EQ sy-langu.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'TABNAME'
dynpprog = sy-repid
dynpnr = sy-dynnr
window_title = 'TABNAME'
value_org = 'S'
TABLES
value_tab = lt_tab
return_tab = lt_return.
CHECK lt_return IS NOT INITIAL.
READ TABLE lt_return INTO ls_return INDEX 1.
p_tab = ls_return-fieldval.
ENDFORM.
'SAP_ABAP_Source' 카테고리의 다른 글
Standard 파일 업 (0) | 2021.12.05 |
---|---|
SAP_다운로드 프로그램 (0) | 2021.12.05 |
abap 문법/sql (0) | 2021.10.09 |
ST04-Query Version2 (0) | 2021.09.27 |
ABAP_DOMAIN_FIELD값 가져오기 (0) | 2021.09.07 |