2010 Jun 01 4:12 PM
Hi all,
My requirement is to haev two tabs in a program. One tab is for Uploading a file to application server and the other is to download a file from application server.
I have created two tabs using the SELECTION-SCREEN AS SUBSCREEN. Now, each tab has a mandatory field. So when the user needs to download a file, he has to give some data to the upload tab's fields (as the field is mandatory and upload tab is the first tab).
Also, for these two tabs, I have to write separate logics. I tried giving a IF condition using sy-dynnr, but it is not working.
Please let me know how to have the obligatory fields in both tabs and logics for two tabs separately using an IF statement.
Thanks,
Surya
2010 Jun 03 9:13 AM
Hi Surya,
Check the below code this will help you.
SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.
PARAMETER: p_var1(10) TYPE c.
SELECTION-SCREEN END OF SCREEN 300.
* SUBSCREEN 2
SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
PARAMETERS: p_var2(10) TYPE c.
SELECTION-SCREEN END OF SCREEN 200.
SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 4 LINES,
TAB (20) button1 USER-COMMAND push1,
TAB (20) button2 USER-COMMAND push2
DEFAULT SCREEN 300,
END OF BLOCK mytab.
INITIALIZATION.
button1 = text-001.
button2 = text-002.
mytab-prog = sy-repid.
mytab-dynnr = 300.
mytab-activetab = 'BUTTON1'.
AT SELECTION-SCREEN.
CASE sy-dynnr.
WHEN 1000.
CASE sy-ucomm.
WHEN 'PUSH1'.
mytab-dynnr = 300.
mytab-activetab = 'BUTTON1'.
CLEAR: p_vbeln.
WHEN 'PUSH2'.
mytab-dynnr = 200.
mytab-activetab = 'BUTTON2'.
CLEAR: s_date.
ENDCASE.
ENDCASE.
START-OF-SELECTION.
IF mytab-dynnr = '300'.
* Check p_var1 is not initial else throw message
* Put logic for 1st tab
ELSE.
* Check p_var2 is not initial else throw message
* Put logic for 2nd tab
ENDIF.
[Tabstrip Controls on Selection Screens |http://help.sap.com/erp2005_ehp_04/helpdata/EN/24/23b937ba187121e10000009b38f8cf/frameset.htm]
Regards
Dillip
Edited by: Dillip Kumar Sahoo on Jun 3, 2010 1:47 PM
Sumodh,
I have created two different tabs already. The problem for me ism having obligatory fields on both the tabs and writing separate logic for each tabs using the screen number. I cannot solve these two.
Dilip
Your code will work , but I face difficulty in validating the fields. say, tab1 has 2 fields and tab2 has 2 fields. All are mandatory. I have to check if it is initial or not.
Thanks,
Surya
2010 Jun 01 4:21 PM
Hi surya,
just check this example and def you will find it helpful
http://nafran.blogspot.com/2010/03/selection-screen-with-tabs.html
cheers
Bhavana
2010 Jun 02 2:10 PM
Hi all,
The above example did not help me.. could some one help me on this issue.
Thanks,
Surya
2010 Jun 02 4:41 PM
Default the two values in INITIALIZATION event. Then, validate the values after the user executes from the active tab.
2010 Jun 03 8:11 AM
Hi,
Please check the below code.
SELECTION-SCREEN BEGIN OF B1.
fields
SELECTION-SCREEN END OF B1.
SELECTION-SCREEN BEGIN OF B2.
fields
SELECTION-SCREEN END OF B2.
Have you done this?
*No of line for the display of tabstrip
SELECTION-SCREEN BEGIN OF TABBED BLOCK tabb1 FOR 15 LINES.
SELECTION-SCREEN TAB (15) tabs1 USER-COMMAND ucomm1 DEFAULT SCREEN 001.
SELECTION-SCREEN TAB (15) tabs2 USER-COMMAND ucomm2 DEFAULT SCREEN 002.
SELECTION-SCREEN TAB (15) tabs3 USER-COMMAND ucomm3 DEFAULT SCREEN 003.
SELECTION-SCREEN END OF BLOCK tabb1.
INITIALIZATION.
*Get the names for all the tabs.
tabs1 = text-002.
tabs2 = text-005.
tabs3 = text-003.
activetab = 'TABS1'.
Now do the validation on separate blocks
AT SELECTION-SCREEN ON BLOCK 1.
IF sy-batch NE 'X'.
*Validate material no
IF NOT s_matnr IS INITIAL.
SELECT SINGLE * FROM mara WHERE matnr IN s_matnr.
IF sy-subrc NE 0.
MESSAGE text-014 TYPE 'E'.
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON BLOCK 2.
IF sy-batch NE 'X'.
*Validate sales order no
IF NOT s_vebln IS INITIAL.
SELECT SINGLE * FROM vbak WHERE vbeln IN s_vbeln.
IF sy-subrc NE 0.
MESSAGE text-015 TYPE 'E'.
ENDIF.
ENDIF.
Hope this helps
2010 Jun 03 9:06 AM
Hi,
SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
PARAMETERS: p1 TYPE c LENGTH 10,
p2 TYPE c LENGTH 10,
p3 TYPE c LENGTH 10.
SELECTION-SCREEN END OF SCREEN 100.
SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
PARAMETERS: q1 TYPE c LENGTH 10,
q2 TYPE c LENGTH 10,
q3 TYPE c LENGTH 10.
SELECTION-SCREEN END OF SCREEN 200.
SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 10 LINES,
TAB (20) button1 USER-COMMAND push1,
TAB (20) button2 USER-COMMAND push2,
END OF BLOCK mytab.
Check the above code. Hope this might help you.
With Regards,
Sumodh.P
2010 Jun 03 9:13 AM
Hi Surya,
Check the below code this will help you.
SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.
PARAMETER: p_var1(10) TYPE c.
SELECTION-SCREEN END OF SCREEN 300.
* SUBSCREEN 2
SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
PARAMETERS: p_var2(10) TYPE c.
SELECTION-SCREEN END OF SCREEN 200.
SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 4 LINES,
TAB (20) button1 USER-COMMAND push1,
TAB (20) button2 USER-COMMAND push2
DEFAULT SCREEN 300,
END OF BLOCK mytab.
INITIALIZATION.
button1 = text-001.
button2 = text-002.
mytab-prog = sy-repid.
mytab-dynnr = 300.
mytab-activetab = 'BUTTON1'.
AT SELECTION-SCREEN.
CASE sy-dynnr.
WHEN 1000.
CASE sy-ucomm.
WHEN 'PUSH1'.
mytab-dynnr = 300.
mytab-activetab = 'BUTTON1'.
CLEAR: p_vbeln.
WHEN 'PUSH2'.
mytab-dynnr = 200.
mytab-activetab = 'BUTTON2'.
CLEAR: s_date.
ENDCASE.
ENDCASE.
START-OF-SELECTION.
IF mytab-dynnr = '300'.
* Check p_var1 is not initial else throw message
* Put logic for 1st tab
ELSE.
* Check p_var2 is not initial else throw message
* Put logic for 2nd tab
ENDIF.
[Tabstrip Controls on Selection Screens |http://help.sap.com/erp2005_ehp_04/helpdata/EN/24/23b937ba187121e10000009b38f8cf/frameset.htm]
Regards
Dillip
Edited by: Dillip Kumar Sahoo on Jun 3, 2010 1:47 PM
2010 Jun 03 5:18 PM
Sumodh,
I have created two different tabs already. The problem for me ism having obligatory fields on both the tabs and writing separate logic for each tabs using the screen number. I cannot solve these two.
Dilip
Your code will work , but I face difficulty in validating the fields. say, tab1 has 2 fields and tab2 has 2 fields. All are mandatory. I have to check if it is initial or not.
Thanks,
Surya
2010 Jun 03 5:27 PM
If you have defined them as obligatory, then obligatory they are.
Remove the obligatory options and handle it with logic (as Dillip has shown).
Rob
Edited by: Rob Burbank on Jun 3, 2010 12:30 PM
2010 Jun 04 4:51 AM
Hello Surya,
Remove the obligatory addtion from the declaration of parameters of both the tabs.
Acording to my above code snippet validate the parameter data here
START-OF-SELECTION.
IF mytab-dynnr = '300'.
* Check p_var1 is not initial else throw message
* Put logic for 1st tab
ELSE.
* Check p_var2 is not initial else throw message
* Put logic for 2nd tab
ENDIF.
Hope this is clear now.
Regards
Dillip
2010 Jun 19 5:09 AM
Hi Surya,
Please close the thread, if the issue is solved now,
Regards
DKS
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |