Call screen into module program?
hi all,
i am trying to call the screen of sap standard program into my customized module program can anyone please tell me how to call screen of another program into my program?
thanks
john
Hi,
First set the values which needs to be passed using the following statement:
SET PARAMETER ID <pid> FIELD <f>.
then call your screen using the statement:
call screen 'SCREEN_NUMBER'.
if the screen is of a standard transaction then do set the required values through set parameter statement and then call the screen as
CALL TRANSACTION <tcod> [AND SKIP FIRST SCREEN] [USING <itab>].
Similar Messages
-
How to call Screen in another program from exsisting program
Hello Frieds,
Can any one help me how to call a screen in another program (Say "test2") from exsisting program(say "test1')
If above case is possible then how to access the fields in the target screen?
Your responce is greatly appreciated.
Best Regards,
RakeshHi Rakesh,
If you wish to use ONLY the screen of another program, call transaction will not help you, because the called transaction will be fully executed (and not only the screen), and the acess to screen field wil be difficult.
When you wish to access the same screen from more than one program, you can create this screen in a function module and in this way you can call the function (to display the screen) in many programs.
Best regards,
Leandro Mengue -
Selection-screen in module program
Hi,
I have created a module pool prog.
Now the new regd. is that I want to create selection-screen before displying the actual screen.
But when I m trying to use selection screen then I m getting the message that it is not possible in type 'M' as my program is module pool.
I m using screen 9000 to display the records, now where to write selection screen in the program?
I think in PBO but getting some error, I have created one screen and in that defined a subscreen but it is giving some error.
So any body knows how to add selection screen in 'M' type program?
Thankx in advance.
UmeshHi,
You can create a selection-screen for a module pool program.
Create a new program with executable type. Create the selection screen as you would do in a normal program. Once you give data in the selection and press F8 button, based on the logics written, the O/P must appear in a table control. This is what your requirement is:
A example below for your understanding.
name of the prog : ZTEST
Type: Exectable report (I)
*----Selection Screen -
SELECTION-SCREEN BEGIN OF BLOCK IPDATA WITH FRAME TITLE TEXT-001.
PARAMETERS: PR_MONTH LIKE BOITEM-SPMON.
SELECT-OPTIONS: SO_VKGRP FOR KNVV-VKGRP.
SELECTION-SCREEN END OF BLOCK IPDATA.
SELECTION-SCREEN BEGIN OF BLOCK ORGDATA WITH FRAME TITLE TEXT-002.
SELECT-OPTIONS: SO_REGIO FOR KNA1-REGIO,
SO_KUNNR FOR KNA1-KUNNR,
SO_WERKS FOR T001W-WERKS.
SELECTION-SCREEN END OF BLOCK ORGDATA.
*--Selection Screen Events--
START-OF-SELECTION.
W_CURMFDAY = SY-DATUM.
W_CURMFDAY+6(2) = '01'.
PERFORM F001_GETDATA.
IF SY-DBCNT EQ 0.
MESSAGE S017(ZSFL).
EXIT.
ENDIF.
PERFORM F002_ADDITIONALDATA.
CALL SCREEN 100.
For this screen 100, both the PBO and PAI can be declared in this main program itself.
Regards,
JLN. -
How to insert a standard selection screen on moduled program?
Hi All,
Selection screen can be easily done in classic report by just simply invoking the event "SELECTION-SCREEN"
SELECTION-SCREEN BEGIN OF ...
SELECT-OPTIONS ...
PARAMETERS ...
In the case of moduled program, there will be a PBO and PAI, I have a requirement on my 2nd screen where I need to have a selection screen, but the SELECTION-SCREEN event is not applicable for NOT TYPE 1(Executable) Program.
My Dialog Program Flow:
Main Screen -> Display Screen (should be SELECTION SCREEN) -> Output (3rd screen)
What's the best alternative solution on this scenario?
Thanks.Hi All,
I layout and detailed my question, please see my scenario below:
screen 9000
MODULE user_command_9000 INPUT.
CASE ok_code.
WHEN 'CREATE'.
CALL SCREEN 9001.
WHEN 'DISPLAY'.
"SHOULD CALL A SELECTION SCREEN HERE
"AFTER THE SELECTION SCREEN, IS ANOTHER SCREEN FOR OUTPUT
ENDCASE.
TOP include
SELECTION-SCREEN BEGIN OF SCREEN 9003 AS SUBSCREEN.
PARAMETERS P_PLANT TYPE T001W-WERKS.
SELECT-OPTIONS: S_MATNR FOR MARA-MATNR,
S_LICHA FOR MCHA-LICHA,
S_LIFNR FOR LFA1-LIFNR.
SELECTION-SCREEN END OF SCREEN 9003.
Questions:
1. on the PAI of my main screen 9001, how can I call the SUBSCREEN I created using CALL SUBSCREEN?
the code:
CALL SUBSCREEN 9001 INCLUDING 'PROG_NAME' '9002',
is not working / syntax error.
2. Should I call it like this?
WHEN 'DISPLAY'.
CALL SCREEN 9002.
Screen 9002 PBO
CALL SUBSCREEN 9001INCLUDING 'PROG_NAME' 9002',
is not working / syntax error.
Thanks all.
Edited by: Jaime Cabanban on Dec 2, 2009 5:29 PM -
How to call screen of custom program as popup screen in standard transaction
Hi friends,
I have created a custom button in standard vl02n transaction in application toolbar. now when i click on this button it should display my custom screen as a pop up from my custom Ztest program. how to achive this requirement. the functionality of my custom screen is it should it has input fields, so we enter some data and on click on submit button in custom screen it should save the data in ztable and close.
Regards,
SivaHi Jim,
Thank you i missed this point.
So now i am planning to add custom fields to likp table and map this fields to my custom module pool screen so on making changes the standard likp header detail should be modified. so when user clicks on save of vl02n it would update the record. How to achieve this?
and as per my above post. I have created a Zprogram with Screen 9000, now i want to call this screen, on click of button from vlo2n as pop up how to achieve this? -
Call Screen from Standard program
How to Call a screen of a Z Program from an exit in a standard online program...???
Thak's
Flavio RasseliHi.
I create dialog modules via SE35 to Call a screen of a Z Program from an exit in a standard online program.
In the standard:
CALL DIALOG 'ZTEST2'
EXPORTING
act_new FROM 'X'.
But the screen is shown in "full screen".
<b>How to show screen with the definition of the position?</b>
Example:
...STARTING AT 2 2
ENDING AT 60 09.
Thank's
Douglas Sant'Ana -
Hello all,
i need to call MM03 DasicData, MRPdetails, SalesData screens from a secondary list of report program.
Can any body give an example how i can call a SAP defined screen of a particular program into a report program..
Thanks and Regards
SeenuHello,
U could call like this:
<b>CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.</b>
CASE R_UCOMM.
WHEN '&IC1'.
*--- Hotspot selektion
CASE RS_SELFIELD-FIELDNAME.
WHEN 'POSID'.
*------ PSP-Element
Click auf PSP Element -> PSP Element anzeigen (CJ12)
SET PARAMETER ID 'PSP' FIELD SPACE.
SET PARAMETER ID 'PRO' FIELD RS_SELFIELD-VALUE.
<b> CALL TRANSACTION 'CJ12' AND SKIP FIRST SCREEN.</b>
Regards,
Vasanth -
Should I include standard sap screen into my program?
Hi all,
I have a custom program, where I need to modify the values of material batch classification values (like in trans. msc2n).
What is the best way to do it?
I tried to copy the screen from standard sap function pool CHRG (screen 2300) to my own, but I failed.
It has few subscreens included (e.g. screen 5000 from pool CTMS), which use lot of data provided in the standard program and I am unable to follow all the logic included there to make it work in my program.I have a custom transaction where I should modify some of the material batch characteristic values for some certain batches. I was trying to build my own UI and logic to perform this, but I can't find any FM's to change the characteristic values (I am using CLAF_CLASSIFICATION_OF_OBJECTS to retrieve the values but have no idea how to change and store them).
That's why I thought of including some standard functionality in my program but as You said, screens alone won't help me much.
Anyway, thanks for reply. Any further suggestions appreciated. -
Can we call sceen of one program into another?
Hi ABAPers,
I wish to know whether, is it possible to call the screen of one program through another program? I know, calling a subroutine of a program from another is possible but i want to know whether calling screen of one program from another is possible or not?
Also if its possible then how?
Regards,
Sonu.Hi,
We can call the subscreens ...
CALL SUBSCREEN <area> INCLUDING [<prog>] <dynnr>.
The screen of a subscreen that you call is placed in the subscreen area <area> on the main screen.
If you do not specify a program <prog>, the system uses a screen from the current ABAP program. If you do specify a program <prog>, the system uses a screen from the program <prog> for the subscreen. This program is treated in the same way as an external subroutine call. In other words, it is loaded into the program group of the calling program, or, if it is a function group, as its own program group in the same internal session as the calling ABAP program.
Regards
Sudheer -
How to set Screen type "Selection Screen" in Dialog program
Hi Experts,
I have copied a screen 400 from a program into my program. In that screen in source program, the screen type was defined as 'Selection Screen'. After i copied that screen into my program, the screen type Selection Screen option is disabled. How to set the screen type of a screen to Selection Screen.
I am currently getting the following error
"Error when generating the selection screen "0400" of "Ztest_screen ".
I tried running the generation program RSDBGENA. There the diagnosis was given as follows:
When generating the report Ztest_screen and its selection screen, an existing screen 1000 (not a selection screen) was overwritten.
The selection screen was defined as follows:
SELECTION-SCREEN BEGIN OF SCREEN 400 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK blck1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_matnr FOR mara-matnr.
PARAMETERS: p_werks TYPE werks_d OBLIGATORY.
SELECTION-SCREEN END OF BLOCK blck1.
SELECTION-SCREEN END OF SCREEN 400 .
I am calling the screen 400 with selection screen declarations in PBO of screen 0100.
CALL SUBSCREEN sub_scr INCLUDING 'Ztest_Screen' '400'.
Where am i going wrong? Your inputs are needed.
ThanksThanks Przemysław and Nabheet for your suggestions.
I had copied the generated screen 400 also from the source program into my program. This was the error. I deleted that and the report got activated now.
Both the source and destination programs are not module pool. They are executable programs.
Thanks -
Diff between call screen and set screen
diff CALL SCREEN and SET SCREEN
With SET SCREEN the current screen simply specifies the next screen in the chain , control branches to this next screen as sonn as th e current screen has been processed .Return from next screen to current screen is not automatic .It does not interrupt processing of the current screen.If we want to branch to the next screen without finishing the current one ,use LEAVE SCREEN.
- With CALL SCREEN , the current (calling) chain is suspended , and a next screen (screen chain) is called .The called can then return to the suspended chain with the statement LEAVE SCREEN TO SCREEN 0 .Sometime we might want to let an user call a pop up screen from the main application screen to let him enter secondary information.After they have completed their enteries, the users should be able to close the popup and return directly to the place where they left off in the main screen.Here comes CALL SCREEN into picture .This statement lets us insert such a sequence intp the current one -
Call report selection screen in module pool program with tab strip control
Hi,
Could anyone explain in detail to call report selection screen in module pool program with tab strip control.
Thanks
ManoHi,
Refer std program:
demo_sel_screen_in_tabstrip.
demo_sel_screen_with_tabstrip.
Call your program with SUBMIT stmt form module program.
Reward points if this Helps.
Manish -
How to call a "Z"module pool program in a "z"report
Hi Guys,
I have two reports .
1. Report : uploads a tab delimited " .Txt1" file and update the "z1" table
".TXT1" : File contains 4 fields
2. Module pool. :Uploads a a tab delimited " .Txt2" file and update another "z2" table
".TXT2" file contains the 4 fileds of ".TXT1" and also 2 extra fields.
I want to merge (call) the module pool program in the Report and perform the upload function using only one ".TXT" file.Please do guide me precisely .
*Report:*
REPORT zrswbgcs009 NO STANDARD PAGE HEADING MESSAGE-ID zwb
LINE-SIZE 185.
TABLES: zgcs_foc. "FOC Parts Table
*data count buffer
DATA: read_cnt(6) TYPE p, "Find read record
update_cnt(6) TYPE p, "OK record
error_cnt(6) TYPE p. "Error record
*file buffer(FOC)
DATA: BEGIN OF FOC_inrec OCCURS 0,
CUSTOMER(10), "Customer
PART_CODE(18), "Parts Code
REF_NO(35), "Ref No.
REF_DATE(10), "Ref Date
QTY(12), "Parts Qty
TEXT(100), "Remark
END OF FOC_inrec.
*file buffer
DATA: BEGIN OF inrec OCCURS 0,
CUSTOMER(10), "Customer
PART_CODE(18), "Parts Code
REF_NO(35), "Ref No.
REF_DATE(10), "Ref Date
QTY(12), "Parts Qty
PRICE(15), "Parts Price
WAERK(5), "Parts Currency
TEXT(100), "Remark
END OF inrec.
DATA : v_file LIKE rlgrap-filename.
DATA gt_zgcs_foc LIKE zgcs_foc OCCURS 0 WITH HEADER LINE.
DATA gs_zgcs_foc LIKE zgcs_foc.
*File name ACCEPT--------------------------------------------------
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
*Company code
PARAMETERS: p_comp LIKE zgcs_imei-company OBLIGATORY.
PARAMETERS: pcfile LIKE rlgrap-filename OBLIGATORY LOWER CASE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
PARAMETERS: HQfile RADIOBUTTON GROUP b2.
SELECTION-SCREEN COMMENT 7(20) text-101 FOR FIELD HQfile.
SELECTION-SCREEN POSITION 31.
PARAMETERS: SUBfile RADIOBUTTON GROUP b2.
SELECTION-SCREEN COMMENT 37(20) text-102 FOR FIELD SUBfile.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK box WITH FRAME.
SELECTION-SCREEN: COMMENT /2(40) text-011, COMMENT 42(40) text-001,
ULINE,
COMMENT /2(40) text-012, COMMENT 42(40) text-002,
COMMENT /2(40) text-013, COMMENT 42(40) text-003,
COMMENT /2(40) text-014, COMMENT 42(40) text-004,
COMMENT /2(40) text-015, COMMENT 42(40) text-005,
COMMENT /2(40) text-016, COMMENT 42(40) text-006,
COMMENT /2(40) text-017, COMMENT 42(40) text-007,
COMMENT /2(40) text-018, COMMENT 42(40) text-008,
COMMENT /42(40) text-009.
SELECTION-SCREEN END OF BLOCK box.
* -- AT SELECTION SCREEN ON
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pcfile.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = space
def_path = 'C:\'
mask = ',*.txt,*.TXT.'
mode = 'O'
title = ' '
IMPORTING
filename = pcfile
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
*-----------------------------start--------------------------------
START-OF-SELECTION.
CLEAR: read_cnt, update_cnt, error_cnt.
REFRESH gt_zgcs_foc. CLEAR gs_zgcs_foc.
PERFORM file_upload_from_pc.
SORT gt_zgcs_foc.
DELETE ADJACENT DUPLICATES FROM gt_zgcs_foc
COMPARING COMPANY CUSTOMER PART_CODE REF_NO REF_DATE.
*// customer code check
DATA: LT_ZESTD LIKE ZESTD OCCURS 0 WITH HEADER LINE.
IF NOT gt_zgcs_foc[] IS INITIAL.
SELECT COMPANY CUSTOMER CURRENCY
INTO CORRESPONDING FIELDS OF TABLE LT_ZESTD
FROM ZESTD
FOR ALL ENTRIES IN gt_zgcs_foc
WHERE COMPANY = gt_zgcs_foc-COMPANY
AND CUSTOMER = gt_zgcs_foc-CUSTOMER.
ENDIF.
SORT LT_ZESTD BY COMPANY CUSTOMER.
*// part code check
DATA: LT_MARA LIKE MARA OCCURS 0 WITH HEADER LINE.
IF NOT gt_zgcs_foc[] IS INITIAL.
SELECT *
INTO TABLE LT_MARA
FROM MARA
FOR ALL ENTRIES IN gt_zgcs_foc
WHERE MATNR = gt_zgcs_foc-PART_CODE.
ENDIF.
SORT LT_MARA BY MATNR.
LOOP AT gt_zgcs_foc.
*// customer code check
READ TABLE LT_ZESTD WITH KEY
COMPANY = gt_zgcs_foc-COMPANY
CUSTOMER = gt_zgcs_foc-CUSTOMER.
IF SY-SUBRC <> 0.
WRITE:/'Invalid Customer code ',
gt_zgcs_foc-COMPANY, ' ',
gt_zgcs_foc-CUSTOMER.
STOP.
ENDIF.
*// part code check
READ TABLE LT_MARA WITH KEY MATNR = gt_zgcs_foc-PART_CODE
BINARY SEARCH.
IF SY-SUBRC <> 0.
WRITE:/ 'Invalid part code ', gt_zgcs_foc-PART_CODE.
STOP.
ENDIF.
*// REF_NO
TRANSLATE gt_zgcs_foc-REF_NO TO UPPER CASE.
SHIFT gt_zgcs_foc-REF_NO LEFT DELETING LEADING SPACE.
IF gt_zgcs_foc-REF_NO = SPACE.
WRITE:/'Ref No. is blank'.
STOP.
ENDIF.
*// REF_DATE
IF gt_zgcs_foc-REF_DATE = 0.
WRITE:/'Invalid Ref Date'.
STOP.
ENDIF.
*// QTY
* IF gt_zgcs_foc-QTY CO ' 0123456789'.
* ELSE.
* WRITE:/ gt_zgcs_foc-QTY, ' Invalid Qty value'.
* STOP.
* ENDIF.
ENDLOOP.
* Insert/Update table
* MODIFY zgcs_foc FROM TABLE gt_zgcs_foc.
INSERT zgcs_foc FROM TABLE gt_zgcs_foc.
IF sy-subrc EQ 0.
COMMIT WORK.
DESCRIBE TABLE gt_zgcs_foc LINES update_cnt.
error_cnt = read_cnt - update_cnt.
ELSE.
ROLLBACK WORK.
error_cnt = read_cnt - update_cnt.
ENDIF.
ULINE.
FORMAT COLOR 3.
WRITE: / 'Read count :', read_cnt.
WRITE: / 'Insert/Update count :', update_cnt.
WRITE: / 'Error count :', error_cnt.
FORMAT COLOR OFF.
*end-of-selection--------------------------------------------------
END-OF-SELECTION.
*& Form FILE_UPLOAD_FROM_PC
FORM file_upload_from_pc.
IF pcfile IS INITIAL.
WRITE: / 'SELECT UPLOAD FILE !'.
ELSE.
MOVE pcfile TO v_file.
* HQ file upload
IF HQfile EQ 'X'.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = v_file
filetype = 'DAT'
TABLES
data_tab = FOC_inrec
EXCEPTIONS
conversion_error = 1
file_open_error = 2
file_read_error = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
OTHERS = 10.
IF sy-subrc <> 0.
WRITE: / 'FILE UPLOAD :', sy-subrc.
ENDIF.
LOOP AT FOC_inrec.
ADD 1 TO read_cnt.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = FOC_inrec-customer
importing
output = FOC_inrec-customer.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = FOC_inrec-part_code
importing
output = FOC_inrec-part_code.
MOVE-CORRESPONDING FOC_inrec TO gs_zgcs_foc.
MOVE p_comp TO gs_zgcs_foc-company.
MOVE gs_zgcs_foc-qty TO gs_zgcs_foc-balan.
MOVE sy-uname TO gs_zgcs_foc-ERNAM.
MOVE sy-datum TO gs_zgcs_foc-ERDAT.
MOVE sy-UZEIT TO gs_zgcs_foc-ERZET.
* Source(1:HQ,2:SUB,0:Etc)
MOVE '1' TO gs_zgcs_foc-source.
APPEND gs_zgcs_foc TO gt_zgcs_foc.
ENDLOOP.
* SGE file upload
ELSE.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = v_file
filetype = 'DAT'
TABLES
data_tab = inrec
EXCEPTIONS
conversion_error = 1
file_open_error = 2
file_read_error = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
OTHERS = 10.
IF sy-subrc <> 0.
WRITE: / 'FILE UPLOAD :', sy-subrc.
ENDIF.
LOOP AT inrec.
ADD 1 TO read_cnt.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = inrec-customer
importing
output = inrec-customer.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = FOC_inrec-part_code
importing
output = FOC_inrec-part_code.
MOVE-CORRESPONDING inrec TO gs_zgcs_foc.
MOVE p_comp TO gs_zgcs_foc-company.
MOVE gs_zgcs_foc-qty TO gs_zgcs_foc-balan.
MOVE sy-uname TO gs_zgcs_foc-ERNAM.
MOVE sy-datum TO gs_zgcs_foc-ERDAT.
MOVE sy-UZEIT TO gs_zgcs_foc-ERZET.
* Source(1:HQ,2:SUB,0:Etc)
MOVE '2' TO gs_zgcs_foc-source.
APPEND gs_zgcs_foc TO gt_zgcs_foc.
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM.
*MODULE POOL::*
*& Module Name : Warranty Bill
*& Sub-Module : W/B
*& Description : Parts Q'ty Adjust(Sales & Warranty)
*& Program Name : ZRSWBP004
*& History
*& Date Author Reason
*& 2007.05.08 Song, Ji-Hyun Initial Coding Req.by WH.Song
*& Logic Process
* - CONDITIONS
* Company, Customer, Material
* - PROCESS
* Display,Insert,Update data in the T/B ZESP04
REPORT zrswbp004 NO STANDARD PAGE HEADING
MESSAGE-ID 00
LINE-SIZE 250
LINE-COUNT 50.
* G L O B A L V A R I A B L E S *
TABLES : zesp04.
DATA : BEGIN OF itab_list OCCURS 0,
company LIKE zesp04-company,
customer LIKE zesp04-customer,
material LIKE zesp04-material,
adj_date LIKE zesp04-adj_date,
adjust LIKE zesp04-adjust,
reason LIKE zesp04-reason,
reason_code LIKE zesp04-reason_code,
doc_no LIKE zesp04-doc_no,
in_date LIKE zesp04-in_date,
create_id LIKE zesp04-create_id,
END OF itab_list.
DATA : itab_upload LIKE TABLE OF zesp04 WITH HEADER LINE.
DATA : s_mode(10).
DATA : table_name(10) VALUE 'ZESP04'.
DATA : tot_cnt TYPE i.
DATA : ref_flag(1).
* M A C R O D E F I N E *
DEFINE conversion_kunnr.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = &1
importing
output = &1.
END-OF-DEFINITION.
DEFINE conversion_material.
call function 'CONVERSION_EXIT_MATN1_INPUT'
exporting
input = &1
importing
output = &1.
END-OF-DEFINITION.
* S E L E C T I O N S C R E E N *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE title1.
PARAMETERS : company LIKE zesp04-company MEMORY ID buk MODIF ID v1
OBLIGATORY.
SELECT-OPTIONS : customer FOR zesp04-customer MEMORY ID kun
MODIF ID v1.
SELECT-OPTIONS : material FOR zesp04-material MEMORY ID mat
MODIF ID v1.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 3.
SELECTION-SCREEN COMMENT 3(12) text-002 MODIF ID v2.
PARAMETERS : up_flag AS CHECKBOX MODIF ID v2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 3(12) text-001 MODIF ID v2.
PARAMETERS : p_fname(300) LOWER CASE MODIF ID v2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE title2.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 3(53) text-003 MODIF ID v2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(10) text-004 MODIF ID v2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(12) text-005 MODIF ID v2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(12) text-006 MODIF ID v2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(15) text-007 MODIF ID v2.
PARAMETERS : df1 TYPE c RADIOBUTTON GROUP grp1.
SELECTION-SCREEN COMMENT 24(13) text-012 MODIF ID v2.
PARAMETERS : df2 TYPE c RADIOBUTTON GROUP grp1.
SELECTION-SCREEN COMMENT 41(11) text-013 MODIF ID v2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(14) text-008 MODIF ID v2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(11) text-009 MODIF ID v2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(14) text-010 MODIF ID v2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(10) text-011 MODIF ID v2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b2.
INCLUDE zrswbp004_pbo.
INCLUDE zrswbp004_pai.
INITIALIZATION.
title1 = ' Parts Quantity Adjustment '.
title2 = ' Text File Layout '.
* S T A R T O F S E L E C T I O N *
TOP-OF-PAGE.
PERFORM write_header.
TOP-OF-PAGE DURING LINE-SELECTION.
PERFORM write_header.
START-OF-SELECTION.
IF up_flag = 'X'.
PERFORM upload_data.
ELSE.
PERFORM select_data.
SET PF-STATUS 'PF01' EXCLUDING 'SAVE'.
PERFORM display_data.
ENDIF.
AT USER-COMMAND.
PERFORM user_command.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
PERFORM get_filename.
*& Form SELECT_DATA
* Select Data for Display
FORM select_data.
SELECT * FROM (table_name)
INTO CORRESPONDING FIELDS OF TABLE itab_list
WHERE company = company
AND customer IN customer
AND material IN material.
CHECK sy-subrc <> 0.
WRITE: 'No data found with your option.'.
ENDFORM. " SELECT_DATA
*& Form DISPLAY_DATA
* Display Data following Condition
FORM display_data.
LOOP AT itab_list.
FORMAT COLOR 2 INTENSIFIED.
WRITE : / '|' NO-GAP.
WRITE : (07) itab_list-company CENTERED NO-GAP, '|' NO-GAP,
(10) itab_list-customer CENTERED NO-GAP, '|' NO-GAP,
(20) itab_list-material CENTERED NO-GAP, '|' NO-GAP,
(10) itab_list-adj_date CENTERED NO-GAP, '|' NO-GAP,
(15) itab_list-adjust RIGHT-JUSTIFIED NO-GAP, '|'
NO-GAP,
(55) itab_list-reason LEFT-JUSTIFIED NO-GAP, '|' NO-GAP,
(11) itab_list-reason_code CENTERED NO-GAP, '|' NO-GAP,
(10) itab_list-doc_no CENTERED NO-GAP, '|' NO-GAP,
(10) itab_list-in_date CENTERED NO-GAP, '|' NO-GAP,
(12) itab_list-create_id CENTERED NO-GAP, '|' NO-GAP.
FORMAT INTENSIFIED OFF.
HIDE itab_list.
ENDLOOP.
WRITE : / sy-uline(171).
ENDFORM. " DISPLAY_DATA
*& Form WRITE_HEADER
* Write Report Header
FORM write_header.
DATA : line(1024).
CLEAR line WITH '-'.
DESCRIBE TABLE itab_list LINES tot_cnt.
FORMAT INTENSIFIED ON.
WRITE : 15 'Parts Quantity Adjustment'.
SKIP.
WRITE : / 'Total Count : ', tot_cnt.
WRITE : /.
WRITE : (171) sy-uline.
WRITE : / '|' NO-GAP.
WRITE : (07) 'Company' CENTERED NO-GAP, '|' NO-GAP,
(10) 'Customer' CENTERED NO-GAP, '|' NO-GAP,
(20) 'Material' CENTERED NO-GAP, '|' NO-GAP,
(10) 'Adj. Date' CENTERED NO-GAP, '|' NO-GAP,
(15) 'Adjust' CENTERED NO-GAP, '|' NO-GAP,
(55) 'Reason' CENTERED NO-GAP, '|' NO-GAP,
(11) 'Reason Code' CENTERED NO-GAP, '|' NO-GAP,
(10) 'Doc No' CENTERED NO-GAP, '|' NO-GAP,
(10) 'IN DATE' CENTERED NO-GAP, '|' NO-GAP,
(12) 'CREATE ID' CENTERED NO-GAP, '|' NO-GAP.
WRITE : /(171) sy-uline.
FORMAT INTENSIFIED OFF.
ENDFORM. " WRITE_HEADER
*& Form UPLOAD_DATA
* Data Upload from File
FORM upload_data.
DATA : l_filename LIKE rlgrap-filename,
temp_dateformat TYPE dateformat.
IF df1 = 'X'.
temp_dateformat = 'YYYY.MM.DD'.
ELSE.
temp_dateformat = 'DD.MM.YYYY'.
ENDIF.
MOVE p_fname TO l_filename.
CHECK l_filename NE space.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = l_filename
filetype = 'DAT'
dat_d_format = temp_dateformat
TABLES
data_tab = itab_list
EXCEPTIONS
conversion_error = 1
file_open_error = 2
file_read_error = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9.
IF sy-subrc NE 0.
MESSAGE s000 WITH 'File upload is failed!'.
STOP.
ELSE.
CLEAR : itab_upload, itab_upload[].
LOOP AT itab_list.
MOVE-CORRESPONDING itab_list TO itab_upload.
conversion_kunnr itab_upload-customer.
conversion_material itab_upload-material.
itab_upload-mandt = sy-mandt.
itab_upload-in_date = sy-datum.
itab_upload-create_id = sy-uname.
*>>>>Insert by GSCHOI 2007.11.08
IF itab_list-adj_date+0(6) NE sy-datum+0(6).
MESSAGE i368 WITH 'Adjust month must same as current month!'.
ROLLBACK WORK.
STOP.
ENDIF.
*<<<<End
APPEND itab_upload.
INSERT INTO (table_name) VALUES itab_upload.
IF sy-subrc EQ 0.
CONTINUE.
ELSEIF sy-subrc EQ 4.
MESSAGE s368 WITH 'Duplicated Data Error!'.
ROLLBACK WORK.
STOP.
ELSE.
MESSAGE s368 WITH 'File Error!'.
ROLLBACK WORK.
STOP.
ENDIF.
ENDLOOP.
ENDIF.
IF sy-subrc EQ 0.
MESSAGE s368 WITH 'Uploaded Successfully!'.
ENDIF.
ENDFORM. " UPLOAD_DATA
*& Form USER_COMMAND
* User Command Execution in Screen 1000
FORM user_command.
MOVE-CORRESPONDING itab_list TO zesp04.
CASE sy-ucomm.
WHEN 'INSERT'.
PERFORM insert_item.
WHEN 'UPDATE'.
PERFORM update_item.
WHEN 'DISPLAY'.
PERFORM display_item.
WHEN 'REFRESH'.
PERFORM refresh_list.
ENDCASE.
IF ref_flag = 'Y'.
PERFORM refresh_list.
CLEAR ref_flag.
ENDIF.
ENDFORM. " USER_COMMAND
*& Form INSERT_ITEM
* When Clicking Insert Button
FORM insert_item.
CLEAR : s_mode.
CLEAR : zesp04.
s_mode = 'INSERT'.
CALL SCREEN '100'.
ENDFORM. " INSERT_ITEM
*& Form UPDATE_ITEM
* When Clicking Update Button
FORM update_item.
CLEAR : s_mode.
s_mode = 'UPDATE'.
CALL SCREEN '100'.
ENDFORM. " UPDATE_ITEM
*& Form DISPLAY_ITEM
* When Clicking Display Button
FORM display_item.
CLEAR : s_mode.
s_mode = 'DISPLAY'.
CALL SCREEN '100'.
ENDFORM. " DISPLAY_ITEM
*& Form REFRESH_LIST
* When Clicking Refresh Button or Returning Display Screen
FORM refresh_list.
CLEAR : itab_list, itab_list[].
PERFORM select_data.
sy-lsind = sy-lsind - 1.
PERFORM display_data.
ENDFORM. " REFRESH_LIST
*& Form GET_FILENAME
* Get Filename
FORM get_filename.
DATA: l_fname LIKE ibipparms-path .
DATA : p_name LIKE sy-repid.
p_name = sy-repid.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = p_name
dynpro_number = sy-dynnr
field_name = ''
IMPORTING
file_name = l_fname.
p_fname = l_fname.
ENDFORM. " GET_FILENAME
Edited by: Matt on Nov 24, 2008 11:24 AM - surrounded the ABAP with tagsHi,
Use SUBMIT statement in your first Report zrswbgcs009 at the end, to call the Modulepool program zrswbp004.
do a search in SDN you will get lot of threads on SUBMIT statement with selection screen.
SUBMIT... [VIA SELECTION-SCREEN]
[USING SELECTION-SET <var>]
[WITH <sel> <criterion>]
[WITH FREE SELECTIONS <freesel>]
[WITH SELECTION-TABLE <rspar>].
http://help.sap.com/saphelp_nw04/Helpdata/EN/9f/dba51a35c111d1829f0000e829fbfe/content.htm
Regards
Bala Krishna -
Checking Records in multiple screens using module pool programming
Hi,
I created student registration form using module pool programming.In first SCREEN i designed like the Below.
Name: <INPUT/OUTPUT Field>
Emailid: <INPUT/OUTPUT Field>
Password:<INPUT/OUTPUT Field>
CREATE<Push Button> SIGNIN<Push Button> cancel<Push Button>
in screen 1000 I created like the above screen and i wrote the code for it.It's successfully inserted records in ZSTUDENT database.
BUT
when i call the second screen 2000.I design the screen like below.And database table is ZSTU_LOGIN.
username : <INPUT/OUTPUT Field>
password : <INPUT/OUTPUT Field>
LOGIN<push Button> EXIT<Push Button>
AND i created Third screen 3000.Like full of detail of student details like First Name,Last Name,DOB,Education Details,Contact Details etc...
BUT I'm facing the pbm is
whatever the record is stored in table ZSTUDENT-Name & password when i call the screen 2000 that USERNAME & PASSWORD are same
Then go to THIRD screen 3000.BUT i wrote the code for second screen 2000 by using SELECT statement.without my code check it will go to third
screen 3000 By the Statement of Call screen 3000.
PLZ any one help me HOW to CHECK the Exact Record From second Screen 2000 to First Screen 1000.
HOW to Check the code AND can u provide me any code available.
thanks,
AnushaHi vikram,
I wrote the code for screen 2000 like below.
MODULE STATUS_2000 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
TABLES : ZSTUDENT_ENTER.
TYPES: BEGIN OF ST_TAB1,
USERNAME TYPE ZSTUDENT_ENTER-USERNAME,
PASSWORD1 TYPE ZSTUDENT_ENTER-PASSWORD1,
END OF ST_TAB1.
DATA : W_TAB1 TYPE ZSTUDENT_ENTER.
DATA : IT_TAB1 TYPE STANDARD TABLE OF ZSTUDENT_ENTER.
DATA : USERNAME TYPE CHAR50,
PASSWORD1 TYPE CHAR25.
ENDMODULE. " STATUS_2000 OUTPUT
*& Module USER_COMMAND_2000 INPUT
* text
MODULE USER_COMMAND_2000 INPUT.
CLEAR W_TAB1.
MOVE-CORRESPONDING W_TAB TO W_TAB1.
IF SY-SUBRC EQ 0.
SELECT SINGLE MAILID PASSWORD
INTO CORRESPONDING FIELDS OF W_TAB
FROM ZSTUDENT_INFO
WHERE USERNAME = W_TAB-MAILID AND
PASSWORD1 = W_TAB-PASSWORD.
CALL SCREEN 2000.
ENDSELECT.
ELSEIF SY-SUBRC NE 0.
MESSAGE 'INVALID USERNAME/PASSWORD'.
ELSEIF SY-UCOMM = 'LOGIN'.
CALL SCREEN 3000.
ENDIF.
ENDMODULE. " USER_COMMAND_2000 INPUT
But i could not found whether code is write or not.
syntax error is USERNAME is Unknown.
could solve me my pbm anybody.....
Thanks,
Anusha -
Calling a sub screen in MODULE user_command_9000 INPUT
HI,
PROCESS BEFORE OUTPUT.
MODULE STATUS_9000.
CALL SUBSCREEN subscreen_9220 INCLUDING sy-repid '9220'.
CALL SUBSCREEN subscreen_9240 INCLUDING sy-repid '9240'.
PROCESS AFTER INPUT.
CALL SUBSCREEN subscreen_9220.
MODULE USER_COMMAND_9000.
Inside MODULE user_command_9000 INPUT.
DATA: ok_code TYPE sy-ucomm.
CLEAR ok_code.
ok_code = sy-ucomm.
CASE ok_code.
WHEN 'CANCEL'.
LEAVE PROGRAM.
WHEN 'ENTER'.
IF rb_hdb_code EQ 'X'
OR rb_landed_code EQ 'X'
OR rb_hawker_code EQ 'X'.
CALL SCREEN 9221.
ENDIF.
IF rb_trade_code EQ 'X'.
select OPERAND from TE221
into table t_tt221
where OPTYP eq 'TQUANT'.
CALL SCREEN 9222.
ENDIF.
IF rb_non_standard_code = 'X'.
PERFORM GET_DATA.
CALL SCREEN 9223.
ENDIF.
<b> WHEN 'OK'.
CALL SUBSCREEN subscreen_9240 INCLUDING sy-repid '9240'.</b>
WHEN OTHERS.
ENDCASE.
ENDMODULE. " USER_COMMAND_9000 INPUT
<b></b> My question is "when case is OK" then I need to display a subscreen in the same normal screen 9000 as we do in selection screen in a normal report.
Wat needs to be done here .
pls do suggest me. Good answers are appreciated and rewarded.
regards
MacHi Mac
You have to write the " CALL SUBSCREEN" statement both in pbo and pai,
the call subscreen statement should be in flow logic .
so write that statement(in bold) in pai.
do it dynamically by assigning a number and changing it using a dynamic variable.
hope this helps u.
here is an example :
REPORT demo_dynpro_tabstrip_server.
CONTROLS mytabstrip TYPE TABSTRIP.
DATA: ok_code TYPE sy-ucomm,
save_ok TYPE sy-ucomm.
DATA number TYPE sy-dynnr.
mytabstrip-activetab = 'PUSH2'.
number = '0120'.
CALL SCREEN 100.
MODULE status_0100 OUTPUT.
SET PF-STATUS 'SCREEN_100'.
ENDMODULE.
MODULE cancel INPUT.
LEAVE PROGRAM.
ENDMODULE.
MODULE user_command INPUT.
save_ok = ok_code.
CLEAR ok_code.
IF save_ok = 'OK'.
MESSAGE i888(sabapdocu) WITH 'MYTABSTRIP-ACTIVETAB ='
mytabstrip-activetab.
ELSE.
mytabstrip-activetab = save_ok.
CASE save_ok.
WHEN 'PUSH1'.
number = '0110'.
WHEN 'PUSH2'.
number = '0120'.
WHEN 'PUSH3'.
number = '0130'.
ENDCASE.
ENDIF.
ENDMODULE.
flow logic of the screen 100
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
CALL SUBSCREEN SUB INCLUDING SY-REPID NUMBER.
PROCESS AFTER INPUT.
MODULE CANCEL AT EXIT-COMMAND.
CALL SUBSCREEN SUB.
MODULE USER_COMMAND.
flow logic of the screen 110
PROCESS BEFORE OUTPUT.
PROCESS AFTER INPUT.
flow logic of the screen 120
PROCESS BEFORE OUTPUT.
PROCESS AFTER INPUT.
flow logic of the screen 130
PROCESS BEFORE OUTPUT.
PROCESS AFTER INPUT.
Regards,
Prasanth
Reward all helpful replies
Maybe you are looking for
-
Basically my sister updated her iPhone 5c to iOS 7.1, before this she has a passcode on it, She then took the passcode off, after the 7.1 update. Yesterday it randomly put a passcode back on so she tried the ones she had used before and the usual 1,2
-
my payslip gets emailed to me and opens with firefox , i can not print it out have tried saving to doc, but still opens with firefox and will not print. The server i have to use for my pay is Explorer( i told them that this would have conflicting thi
-
Hi, I would like to do routing in Visual business. It seems the only way to draw a path is to use polygon class and provide lat long for all the points where road turns (intermediate points also in case of an arc so that it's rendered realistically).
-
As5300 - invalid checksum file removal from flash:
I am having as5300.In the flash: of it there are number of invalid checksum files.How to remove these files without erasing the entire flash.Following is text of show flash: System flash directory: File Length Name/status 1 373849 mica-modem-portware
-
Hi, I have a procedure which is returning the cursor. Like this: Create Procedure rptschool cur_out OUT SYS_REFCURSOR IS BEGIN OPEN cur_out FOR SELECT * FROM xxx END; Now I need to execute the above procedure from SQLPLUS. So I am calling like t