Sei sulla pagina 1di 11

*&---------------------------------------------------------------------*

*& Report ZVR_SCREEN_DESIGN


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT zvr_screen_design.

*****************************************************************
****selection screen design to modify screen based on user action
***tables declarations
TABLES : vbak, likp, vbrk.
***PARAMETER fields
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECTION-SCREEN SKIP 1.
PARAMETERS : pr_sal RADIOBUTTON GROUP g1 USER-COMMAND sal DEFAULT 'X',
pr_del RADIOBUTTON GROUP g1,
pr_inv RADIOBUTTON GROUP g1.

SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN END OF BLOCK blk1.

SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.


SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS : ss_vbeln FOR vbak-vbeln MODIF ID sal,
ss_ernam FOR vbak-ernam NO INTERVALS NO-EXTENSION MODIF ID sal,
ss_erdat FOR vbak-erdat NO-EXTENSION MODIF ID sal.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN END OF BLOCK blk2.

SELECTION-SCREEN BEGIN OF BLOCK blk3 WITH FRAME TITLE text-003.


SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS : sd_vbeln FOR likp-vbeln MODIF ID del,
sd_ernam FOR likp-ernam NO INTERVALS NO-EXTENSION MODIF ID del,
sd_erdat FOR likp-erdat NO-EXTENSION MODIF ID del.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN END OF BLOCK blk3.

SELECTION-SCREEN BEGIN OF BLOCK blk4 WITH FRAME TITLE text-004.


SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS : si_vbeln FOR vbrk-vbeln MODIF ID inv,
si_ernam FOR vbrk-ernam NO INTERVALS NO-EXTENSION MODIF ID inv,
si_erdat FOR vbrk-erdat NO-EXTENSION MODIF ID inv.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN END OF BLOCK blk4.

***modify screen based on user action


AT SELECTION-SCREEN OUTPUT.
IF pr_sal = 'X'.
PERFORM fill_screen_values USING '1' '0' '0' '1' '0' '1'.
ENDIF.
IF pr_del = 'X'.
PERFORM fill_screen_values USING '0' '1' '1' '0' '0' '1'.
ENDIF.
IF pr_inv = 'X'.
PERFORM fill_screen_values USING '0' '1' '0' '1' '1' '0'.
ENDIF.
*&---------------------------------------------------------------------*
*& Form FILL_SCREEN_VALUES
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0193 text
* -->P_0194 text
* -->P_0195 text
* -->P_0196 text
* -->P_0197 text
* -->P_0198 text
*----------------------------------------------------------------------*
FORM fill_screen_values USING a TYPE c
b TYPE c
c TYPE c
d TYPE c
e TYPE c
f TYPE c.

LOOP AT SCREEN.
CASE screen-group1.
WHEN 'SAL'.
screen-input = a.
screen-invisible = b.
MODIFY SCREEN.
WHEN 'DEL'.
screen-input = c.
screen-invisible = d.
MODIFY SCREEN.
WHEN 'INV'.
screen-input = e.
screen-invisible = f.
MODIFY SCREEN.
ENDCASE.
ENDLOOP.

ENDFORM. " FILL_SCREEN_VALUES

*******************************************************************
******selection screen design to modify screen based on user action
*****tables declarations
**TABLES : vbak, likp, vbrk.
*****PARAMETER fields
**SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
**SELECTION-SCREEN SKIP 1.
**PARAMETERS : pr_sal RADIOBUTTON GROUP g1 USER-COMMAND sal DEFAULT 'X',
** pr_del RADIOBUTTON GROUP g1,
** pr_inv RADIOBUTTON GROUP g1.
**
**SELECTION-SCREEN SKIP 1.
**SELECTION-SCREEN END OF BLOCK blk1.
**
**SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.
**SELECTION-SCREEN SKIP 1.
**SELECT-OPTIONS : ss_vbeln FOR vbak-vbeln MODIF ID sal,
** ss_ernam FOR vbak-ernam NO INTERVALS NO-EXTENSION MODIF ID sal,
** ss_erdat FOR vbak-erdat NO-EXTENSION MODIF ID sal.
**SELECTION-SCREEN SKIP 1.
**SELECTION-SCREEN END OF BLOCK blk2.
**
**SELECTION-SCREEN BEGIN OF BLOCK blk3 WITH FRAME TITLE text-003.
**SELECTION-SCREEN SKIP 1.
**SELECT-OPTIONS : sd_vbeln FOR likp-vbeln MODIF ID del,
** sd_ernam FOR likp-ernam NO INTERVALS NO-EXTENSION MODIF ID del,
** sd_erdat FOR likp-erdat NO-EXTENSION MODIF ID del.
**SELECTION-SCREEN SKIP 1.
**SELECTION-SCREEN END OF BLOCK blk3.
**
**SELECTION-SCREEN BEGIN OF BLOCK blk4 WITH FRAME TITLE text-004.
**SELECTION-SCREEN SKIP 1.
**SELECT-OPTIONS : si_vbeln FOR vbrk-vbeln MODIF ID inv,
** si_ernam FOR vbrk-ernam NO INTERVALS NO-EXTENSION MODIF ID inv,
** si_erdat FOR vbrk-erdat NO-EXTENSION MODIF ID inv.
**SELECTION-SCREEN SKIP 1.
**SELECTION-SCREEN END OF BLOCK blk4.
**
*****modify screen based on user action
**AT SELECTION-SCREEN OUTPUT.
** IF pr_sal = 'X'.
** LOOP AT SCREEN.
** CASE screen-group1.
** WHEN 'SAL'.
** screen-input = '1'.
** screen-invisible = '0'.
** MODIFY SCREEN.
** WHEN 'DEL'.
** screen-input = '0'.
** screen-invisible = '1'.
** MODIFY SCREEN.
** WHEN 'INV'.
** screen-input = '0'.
** screen-invisible = '1'.
** MODIFY SCREEN.
** ENDCASE.
** ENDLOOP.
** ENDIF.
**
** IF pr_del = 'X'.
** LOOP AT SCREEN.
** CASE screen-group1.
** WHEN 'SAL'.
** screen-input = '0'.
** screen-invisible = '1'.
** MODIFY SCREEN.
** WHEN 'DEL'.
** screen-input = '1'.
** screen-invisible = '0'.
** MODIFY SCREEN.
** WHEN 'INV'.
** screen-input = '0'.
** screen-invisible = '1'.
** MODIFY SCREEN.
** ENDCASE.
** ENDLOOP.
** ENDIF.
**
** IF pr_inv = 'X'.
** LOOP AT SCREEN.
** CASE screen-group1.
** WHEN 'SAL'.
** screen-input = '0'.
** screen-invisible = '1'.
** MODIFY SCREEN.
** WHEN 'DEL'.
** screen-input = '0'.
** screen-invisible = '1'.
** MODIFY SCREEN.
** WHEN 'INV'.
** screen-input = '1'.
** screen-invisible = '0'.
** MODIFY SCREEN.
** ENDCASE.
** ENDLOOP.
** ENDIF.

*****************************************************
****declaration of work area & internal table
** to fill dropdown list
*DATA : wa_vrm TYPE vrm_value,
* it_vrm TYPE TABLE OF vrm_value,
* lv_vrm_id TYPE vrm_id.
*
****selection screen design to prodive drop down
*PARAMETERS p_dept(50) TYPE c AS LISTBOX VISIBLE LENGTH 30.
*
*AT SELECTION-SCREEN OUTPUT.
**fill dropdown list
* wa_vrm-key = 'ABAP'.
* wa_vrm-text = 'Advance Business Application Programming'.
* APPEND wa_vrm TO it_vrm.
* CLEAR wa_vrm.
*
* wa_vrm-key = 'CA'.
* wa_vrm-text = 'Cross Application'.
* APPEND wa_vrm TO it_vrm.
* CLEAR wa_vrm.
*
* wa_vrm-key = 'OABAP'.
* wa_vrm-text = 'Object Oriented ABAP'.
* APPEND wa_vrm TO it_vrm.
* CLEAR wa_vrm.
*
* wa_vrm-key = 'SD'.
* wa_vrm-text = 'Sales & distribution'.
* APPEND wa_vrm TO it_vrm.
* CLEAR wa_vrm.
*
* wa_vrm-key = 'MM'.
* wa_vrm-text = 'Material Management'.
* APPEND wa_vrm TO it_vrm.
* CLEAR wa_vrm.
*
***transfer parameter value to local variable
* lv_vrm_id = 'P_DEPT'.
* CALL FUNCTION 'VRM_SET_VALUES'
* EXPORTING
* id = lv_vrm_id
* values = it_vrm
* EXCEPTIONS
* id_illegal_name = 1
* OTHERS = 2.
* IF sy-subrc <> 0.
** Implement suitable error handling here
* ENDIF.

****************************************************
*****selection screen design to prodive F1 help
**PARAMETERS p_cust TYPE kna1-kunnr.
**
*****F1 help for parameter field
**AT SELECTION-SCREEN ON HELP-REQUEST FOR p_cust.
** CALL FUNCTION 'DSYS_SHOW_FOR_F1HELP'
** EXPORTING
*** APPLICATION = 'SO70'
** dokclass = 'TX'
** doklangu = sy-langu
** dokname = 'ZF1_CUST'
*** DOKTITLE = ' '
*** HOMETEXT = ' '
*** OUTLINE = ' '
*** VIEWNAME = 'STANDARD'
*** Z_ORIGINAL_OUTLINE = ' '
*** CALLED_FROM_SO70 = ' '
*** SHORT_TEXT = ' '
*** APPENDIX = ' '
*** IMPORTING
*** APPL =
*** PF03 =
*** PF15 =
*** PF12 =
** EXCEPTIONS
** class_unknown = 1
** object_not_found = 2
** OTHERS = 3
** .
** IF sy-subrc <> 0.
*** Implement suitable error handling here
** ENDIF.

***************************************************
****declaration of work area & internal table
*TYPES : BEGIN OF ty_f4_kunnr,
* kunnr TYPE kna1-kunnr,
* name1 TYPE kna1-name1,
* ort01 TYPE kna1-ort01,
* telf1 TYPE kna1-telf1,
* adrnr TYPE kna1-adrnr,
* END OF ty_f4_kunnr.
*DATA : wa_f4_kunnr TYPE ty_f4_kunnr,
* it_f4_kunnr TYPE TABLE OF ty_f4_kunnr,
* wa_retval TYPE ddshretval,
* it_retval TYPE TABLE OF ddshretval.
*
****selection screen design to prodive F4 help
*SELECT-OPTIONS s_cust FOR wa_f4_kunnr-kunnr.
*
****F4 help for lower limit
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_cust-low.
* PERFORM f4_help_cust.
****F4 help for higher limit
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_cust-high.
* PERFORM f4_help_cust.
*
**&---------------------------------------------------------------------*
**& Form F4_HELP_CUST
**&---------------------------------------------------------------------*
** text
**----------------------------------------------------------------------*
** --> p1 text
** <-- p2 text
**----------------------------------------------------------------------*
*FORM f4_help_cust .
*
****extract data for F4 help
* SELECT kunnr
* name1
* ort01
* telf1
* adrnr FROM kna1
* INTO TABLE it_f4_kunnr.
*
****attach f4 help data to F4 button
* CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
* EXPORTING
* retfield = 'KUNNR'
* dynpprog = sy-cprog
* dynpnr = '1000'
* window_title = 'f4 help for customer'
* value_org = 'S'
* TABLES
* value_tab = it_f4_kunnr
* return_tab = it_retval
* EXCEPTIONS
* parameter_error = 1
* no_values_found = 2
* OTHERS = 3.
* IF sy-subrc = 0.
* READ TABLE it_retval INDEX 1 INTO wa_retval.
* s_cust-sign = 'I'.
* s_cust-option = 'EQ'.
* s_cust-low = wa_retval-fieldval.
* s_cust-high = wa_retval-fieldval.
* APPEND s_cust.
* ENDIF.
*
*ENDFORM. " F4_HELP_CUST

****************************************************
*****declaration of work area & internal table
**TYPES : BEGIN OF ty_f4_kunnr,
** kunnr TYPE kna1-kunnr,
** name1 TYPE kna1-name1,
** ort01 TYPE kna1-ort01,
** telf1 TYPE kna1-telf1,
** adrnr TYPE kna1-adrnr,
** END OF ty_f4_kunnr.
**DATA : wa_f4_kunnr TYPE ty_f4_kunnr,
** it_f4_kunnr TYPE TABLE OF ty_f4_kunnr,
** wa_retval TYPE ddshretval,
** it_retval TYPE TABLE OF ddshretval.
**
*****selection screen design to prodive F4 help
**PARAMETERS p_cust TYPE c LENGTH 10.
***PARAMETERS p_cust TYPE kna1-kunnr.
**
**AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_cust.
*****extract data for F4 help
** SELECT kunnr
** name1
** ort01
** telf1
** adrnr FROM kna1
** INTO TABLE it_f4_kunnr.
**
*****attach f4 help data to F4 button
** CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
** EXPORTING
*** DDIC_STRUCTURE = ' '
** retfield = 'KUNNR'
*** PVALKEY = ' '
** dynpprog = sy-cprog
** dynpnr = '1000'
*** dynprofield = 'P_CUST'
*** STEPL = 0
** window_title = 'f4 help for customer'
*** VALUE = ' '
** value_org = 'S'
*** multiple_choice = 'X'
*** DISPLAY = ' '
*** CALLBACK_PROGRAM = ' '
*** CALLBACK_FORM = ' '
*** CALLBACK_METHOD =
*** MARK_TAB =
*** IMPORTING
*** USER_RESET =
** TABLES
** value_tab = it_f4_kunnr
*** FIELD_TAB =
** return_tab = it_retval
*** DYNPFLD_MAPPING =
** EXCEPTIONS
** parameter_error = 1
** no_values_found = 2
** OTHERS = 3
** .
** IF sy-subrc = 0.
** READ TABLE it_retval INDEX 1 INTO wa_retval.
** p_cust = wa_retval-fieldval.
** ENDIF.

***************************************************
****declaration of work area & internal table
*TYPES : BEGIN OF ty_f4_kunnr,
* kunnr TYPE kna1-kunnr,
* name1 TYPE kna1-name1,
* ort01 TYPE kna1-ort01,
* telf1 TYPE kna1-telf1,
* adrnr TYPE kna1-adrnr,
* END OF ty_f4_kunnr.
*DATA : wa_f4_kunnr TYPE ty_f4_kunnr,
* it_f4_kunnr TYPE TABLE OF ty_f4_kunnr.
*
****selection screen design to prodive F4 help
*PARAMETERS p_cust TYPE c LENGTH 10.
**PARAMETERS p_cust TYPE kna1-kunnr.
*
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_cust.
****extract data for F4 help
* SELECT kunnr
* name1
* ort01
* telf1
* adrnr FROM kna1
* INTO TABLE it_f4_kunnr.
*
****attach f4 help data to F4 button
* CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
* EXPORTING
** DDIC_STRUCTURE = ' '
* retfield = 'KUNNR'
** PVALKEY = ' '
* dynpprog = sy-cprog
* dynpnr = '1000'
* dynprofield = 'P_CUST'
** STEPL = 0
* window_title = 'f4 help for customer'
** VALUE = ' '
* value_org = 'S'
** MULTIPLE_CHOICE = ' '
** DISPLAY = ' '
** CALLBACK_PROGRAM = ' '
** CALLBACK_FORM = ' '
** CALLBACK_METHOD =
** MARK_TAB =
** IMPORTING
** USER_RESET =
* TABLES
* value_tab = it_f4_kunnr
** FIELD_TAB =
** RETURN_TAB =
** DYNPFLD_MAPPING =
* EXCEPTIONS
* parameter_error = 1
* no_values_found = 2
* OTHERS = 3
* .
* IF sy-subrc <> 0.
** Implement suitable error handling here
* ENDIF.
**************************************************
*****selection screen design
**SELECTION-SCREEN BEGIN OF LINE.
**SELECTION-SCREEN COMMENT 2(20) text-001.
**PARAMETERS : pr_sal RADIOBUTTON GROUP grp1.
**SELECTION-SCREEN END OF LINE.
**
**SELECTION-SCREEN BEGIN OF LINE.
**SELECTION-SCREEN COMMENT 2(20) text-002.
**PARAMETERS : pr_del RADIOBUTTON GROUP grp1.
**SELECTION-SCREEN END OF LINE.
**
**SELECTION-SCREEN BEGIN OF LINE.
**SELECTION-SCREEN COMMENT 2(20) text-003.
**PARAMETERS : pr_inv RADIOBUTTON GROUP grp1.
**SELECTION-SCREEN END OF LINE.
**

*************************************************
****selection screen design
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT 3(15) text-001.
*PARAMETERS : pr_sal RADIOBUTTON GROUP grp1.
*SELECTION-SCREEN COMMENT 25(15) text-002.
*PARAMETERS : pr_del RADIOBUTTON GROUP grp1.
*SELECTION-SCREEN COMMENT 45(15) text-003.
*PARAMETERS : pr_inv RADIOBUTTON GROUP grp1.
*SELECTION-SCREEN END OF LINE.

*************************************************
****selection screen design
*SELECTION-SCREEN BEGIN OF LINE.
*PARAMETERS : pr_sal RADIOBUTTON GROUP grp1.
*SELECTION-SCREEN COMMENT 3(15) text-001.
*PARAMETERS : pr_del RADIOBUTTON GROUP grp1.
*SELECTION-SCREEN COMMENT 25(15) text-002.
*PARAMETERS : pr_inv RADIOBUTTON GROUP grp1.
*SELECTION-SCREEN COMMENT 45(15) text-003.
*SELECTION-SCREEN END OF LINE.

**************************************************
*****selection screen design
**PARAMETERS : pr_sal RADIOBUTTON GROUP grp1,
** pr_del RADIOBUTTON GROUP grp1,
** pr_inv RADIOBUTTON GROUP grp1.

Potrebbero piacerti anche