Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Tabstrip on selection screen and validations

Former Member
0 Likes
704

Hi,

I need to validate the selection screen data which is entered in tab strips.

I need help in writing the validation for the data as below:

If the MATERIAL (on tab1) is blank then the fields on tab2 are mandatory.

AND if the MATERIAL (on tab1) is blank then the fields on tab2 are NOT mandatory.

The code is as follows

REPORT ztest123.

TABLES kna1.

TABLES : sscrfields, vbap.

DATA gv_activetab(6) TYPE c .

SELECTION-SCREEN BEGIN OF SCREEN 001 AS SUBSCREEN.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

PARAMETERS p_matnr TYPE mara-matnr.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN END OF SCREEN 001.

SELECTION-SCREEN BEGIN OF SCREEN 002 AS SUBSCREEN.

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

SELECT-OPTIONS: so_kunnr FOR kna1-kunnr NO INTERVALS NO-EXTENSION.

SELECT-OPTIONS: so_datum FOR vbap-erdat NO-EXTENSION." DEFAULT sy-datum.

SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN END OF SCREEN 002.

SELECTION-SCREEN BEGIN OF TABBED BLOCK tabb1 FOR 5 LINES.

SELECTION-SCREEN TAB (15) tabs1 USER-COMMAND ucomm1 DEFAULT SCREEN 001.

SELECTION-SCREEN TAB (15) tabs2 USER-COMMAND ucomm2.

SELECTION-SCREEN END OF BLOCK tabb1.

AT SELECTION-SCREEN .

CASE sscrfields-ucomm.

WHEN 'UCOMM1'.

tabb1-prog = sy-repid.

tabb1-dynnr = 001.

tabb1-activetab = 'TABS1'.

gv_activetab = 'TABS1' .

WHEN 'UCOMM2'.

tabb1-prog = sy-repid.

tabb1-dynnr = 002.

tabb1-activetab = 'TABS2'.

gv_activetab = 'TABS2'.

ENDCASE.

START-OF-SELECTION.

CASE gv_activetab.

WHEN 'TABS1'.

WRITE: 'Material ' .

WHEN 'TABS2'.

WRITE: 'Plant '.

ENDCASE.

Hi,

I need to validate the selection screen data which is entered in tab strips.

I need help in writing the validation for the data as below:

If the MATERIAL (on tab1) is blank then the fields on tab2 are mandatory.

AND if the MATERIAL (on tab1) is blank then the fields on tab2 are NOT mandatory.

The code is as follows

REPORT ztest123.

TABLES kna1.

TABLES : sscrfields, vbap.

DATA gv_activetab(6) TYPE c .

SELECTION-SCREEN BEGIN OF SCREEN 001 AS SUBSCREEN.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

PARAMETERS p_matnr TYPE mara-matnr.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN END OF SCREEN 001.

SELECTION-SCREEN BEGIN OF SCREEN 002 AS SUBSCREEN.

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

SELECT-OPTIONS: so_kunnr FOR kna1-kunnr NO INTERVALS NO-EXTENSION.

SELECT-OPTIONS: so_datum FOR vbap-erdat NO-EXTENSION." DEFAULT sy-datum.

SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN END OF SCREEN 002.

SELECTION-SCREEN BEGIN OF TABBED BLOCK tabb1 FOR 5 LINES.

SELECTION-SCREEN TAB (15) tabs1 USER-COMMAND ucomm1 DEFAULT SCREEN 001.

SELECTION-SCREEN TAB (15) tabs2 USER-COMMAND ucomm2.

SELECTION-SCREEN END OF BLOCK tabb1.

AT SELECTION-SCREEN .

CASE sscrfields-ucomm.

WHEN 'UCOMM1'.

tabb1-prog = sy-repid.

tabb1-dynnr = 001.

tabb1-activetab = 'TABS1'.

gv_activetab = 'TABS1' .

WHEN 'UCOMM2'.

tabb1-prog = sy-repid.

tabb1-dynnr = 002.

tabb1-activetab = 'TABS2'.

gv_activetab = 'TABS2'.

ENDCASE.

START-OF-SELECTION.

CASE gv_activetab.

WHEN 'TABS1'.

WRITE: 'Material ' .

WHEN 'TABS2'.

WRITE: 'Plant '.

ENDCASE.

1 REPLY 1
Read only

franois_henrotte
Active Contributor
0 Likes
429

you have to do 2 things

1) set fields mandatory

IF p_matnr IS INITIAL.
    LOOP AT SCREEN.
      IF screen-name EQ 'SO_KUNNR-LOW'.
        screen-required = 1.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.

2) ensure the program is not run without a value, because the point 1 will be done only if user goes through tabstrip 2

AT SELECTION-SCREEN .
  IF sscrfields-ucomm EQ 'ONLI'.
    IF p_matnr IS INITIAL.
      IF so_kunnr-low IS INITIAL.
        sscrfields-ucomm = 'UCOMM2'.
      ENDIF.
    ENDIF.
  ENDIF.

  CASE sscrfields-ucomm.

    WHEN 'UCOMM1'.
    .....