Submitting of report using selection screen
Hi,
My requirement is iam having one report so it is executed when we r given site and date it gives one excel file data so now iam having 150 sites so now I want to write the report as date as selection screen and I want to submit that report in this one (new report) so it wants to take the sites automatically from werks (t001w table) and it wants to execute in a loop upto 150 times then it gives 150 excel files so now how can I pass the sites and date to the submitting selection screen date as same for all but only the site wants to varry in the submitting report pls provide the coding ..
Thanks & Regards,
Mohan Reddy.
Hello Mohan Reddy,
I think we can try in this way
data: y_v_rspar_line LIKE LINE OF y_v_rspar_tab,
y_v_rspar_tab TYPE TABLE OF rsparams,
y_lk_parm3 TYPE char5 VALUE 'SPERR'. " Selection screen variable name
y_v_rspar_line-selname = y_lk_parm3.
y_v_rspar_line-kind = y_k_p.
y_v_rspar_line-sign = y_k_i.
y_v_rspar_line-option = y_k_eq.
y_v_rspar_line-low = y_k_e. "Excel file site value.
APPEND y_v_rspar_line TO y_v_rspar_tab.
SUBMIT Program name USING SELECTION-SCREEN '1000'
WITH SELECTION-TABLE y_v_rspar_tab AND RETURN.
But try in 2different ways i.e
1) Keep the submit program in the loop of the excel file internal table
and take the site value in the variable and pass the value to this y_v_rspar_line-low
and call submit program.
2) Sort the excel file internal table then pass all the values to y_v_rspar_line-low and use the append statement in the same way and then call the SUBMIT program outside the loop.
Similar Messages
-
Submit report using selection-table to report 'RKAEP000'(Tcode ksb1)
Hi,
I am calling report "RKAEP000'(This is the report for tcode KSB1) using submit statement in my program to import the ksb1 output in my program. For time being I am calling this report using selection-set 'variant'.
The selection screen of ksb1 is designed with modulepool program (screen 100).
The selection screen of my program is similar to ksb1 initial screen, except layout option and controlling area is on the screen itself instead of calling it through menu.
Please tell me how to post the selction criteria of my report to the calling program 'RKAEP000'.
Thanks,
sureshYou can use WITH addition of SUBMIT statement.
SUBMIT report1 USING SELECTION-SCREEN '1100'
WITH SELECTION-TABLE rspar_tab
WITH selcrit2 BETWEEN 'H' AND 'K'
WITH selcrit2 IN range_tab
AND RETURN.
Regards,
Premal -
Prob in Submit Report via Selection screen.
Hi,
I have to submit a report via selection screen.
The report name is detemined at run time.
This i am able to handle easily as we can use SUBMIT (V_PROG)...
WHERE V_PROG contains the name of the report that i get at runtime...
Now the issue :::::::
I have to also populate a select-options on the called report on submit.
usually this is done by :
SUBMIT (V_PROG)
name of select-option in itab...
However in my case the name of the <name of select-option> is also detemined at runtime say PNPPERNR.
Now if i use any variable / field symbol for the name of the select - option (like for the called program), it does not work (the called report does not have the values i populate in ITAB for the particular select-option)
I have also tried Macro but cant find solution...
ANY IDEAS ??Hi Anuj,
When you are getting the report name in runtime, you can also get the report selection screen information during runtime.
Now how are you going to decide which values you will move to which selection screen variables of which report? If you have a way to determine this, then here is a program that works on that assumption.
REPORT ztest1 .
DATA: i_seltab TYPE TABLE OF rsparams WITH HEADER LINE,
i_selections_info TYPE TABLE OF selinfo WITH HEADER LINE.
DATA: v_report LIKE sy-repid,
v_matnr LIKE mara-matnr.
PARAMETERS: p_rep1 RADIOBUTTON GROUP rad DEFAULT 'X',
p_rep2 RADIOBUTTON GROUP rad.
SELECT-OPTIONS: s_matnr FOR v_matnr.
START-OF-SELECTION.
IF p_rep1 = 'X'.
*-- some criteria to determine the name of the report
v_report = 'ZTEST2'.
ELSE.
v_report = 'ZTEST4'.
ENDIF.
*-- get the parameters for the report
CALL FUNCTION 'RS_SELECTIONS_DESCRIPTION'
EXPORTING
report = v_report
TABLES
selections_info = i_selections_info
EXCEPTIONS
no_selections = 1
report_not_existent = 2
subroutine_pool = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT i_selections_info WHERE name = 'S_MATNR'.
*-- some criteria based on which, move the values from this program
* to the called program
CLEAR i_seltab.
i_seltab-selname = i_selections_info-name.
i_seltab-kind = i_selections_info-kind.
i_seltab-sign = 'I'.
i_seltab-option = 'EQ'.
i_seltab-low = s_matnr-low.
i_seltab-high = s_matnr-high.
APPEND i_seltab.
ENDLOOP.
IF NOT i_seltab[] IS INITIAL.
SUBMIT (v_report) VIA SELECTION-SCREEN
WITH SELECTION-TABLE i_seltab .
ENDIF.
If this works for you, please reward and close the post.
Regards,
Srinivas -
Run alv report without selection screen in background
Hello Every body,
i programmed a ALV Report without selection screen, and i want to create a job for this alv report.
Any help?
Thank u.
Ouail.Hi Steve,
Can you tell me where i have to put your code?
this is my abap code:
START-OF-SELECTION.
p_filref = '\\SAPSERVER\f\SAFT\ivat\FI_Extract_1000_20140709_102346_910.XML'.
PERFORM copy_from_xml_to_itab TABLES it_ref_file
ref_xml_data
USING p_filref.
**Begin Extraction File
SUBMIT ZZ_FI_IVAT_EXTRACTOR
WITH p_bukrs EQ '1000'
WITH p_gjahr EQ '1998'
WITH filepath EQ '\\SAPSERVER\f\SAFT\iVAT_Extractie\'
WITH cldata eq space
AND RETURN.
DATA: FILE_TABLE TYPE TABLE OF SDOKPATH,
DIR_TABLE TYPE TABLE OF SDOKPATH.
CALL FUNCTION 'TMP_GUI_DIRECTORY_LIST_FILES'
EXPORTING
DIRECTORY = '\\SAPSERVER\f\SAFT\iVAT_Extractie\'
FILTER = '*.*'
TABLES
FILE_TABLE = FILE_TABLE
DIR_TABLE = DIR_TABLE
EXCEPTIONS
CNTL_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
"get file name
LOOP AT FILE_TABLE INTO p_filref.
ENDLOOP.
CONCATENATE '\\SAPSERVER\f\SAFT\iVAT_Extractie\' p_filref INTO path.
PERFORM copy_from_xml_to_itab TABLES t_ext_file
ext_xml_data
USING path.
PERFORM fill_xml_tab_in .
perform build_fieldcatalog.
PERFORM compare_data_ref_ext.
PERFORM send_email.
perform display_alv_report.
PERFORM delete_extraction_file.
in the perform copy_from_xml_to_itab TABLES it_ref_file......, i use this code:
CREATE OBJECT gcl_xml.
*Upload XML File
CALL METHOD gcl_xml->import_from_file
EXPORTING
filename = p_filref
RECEIVING
retcode = gv_subrc.
IF gv_subrc = 0.
CALL METHOD gcl_xml->render_2_xstring
IMPORTING
retcode = gv_subrc
stream = gv_xml_string
size = gv_size.
IF gv_subrc = 0.
REFRESH gt_xml_data[].
* Convert XML to internal table
CALL FUNCTION 'SMUM_XML_PARSE'
EXPORTING
xml_input = gv_xml_string
TABLES
xml_table = gt_xml_data
return = gt_return.
ENDIF.
ENDIF. -
Call a report with selection screen as subscreen.
Hi all,
i need to Submit And Return a Report having some parameters and Select options, from a Function Module.
all i want that the Selection Scrren of Report should appeared as Subscreeen, so that Calling Screen sould be visible in Background.
Is this Possible , if yes then How ?
thanks in advance,
NitinRunning new report means opening new internal session. This can't be embeded within the current internal session where your function group (function module specifically) runs. So there is no such a way which you could run a report inside a subscreen area.
If you however want only selection screen of the report to be embeded inside your subscreen area (not run) you can use
"report Z_SUBSCREEN_REPORT
SELECTION-SCREEN BEGIN OF SCREEN 0200 as SUBSCREEN.
PARAMETERS pa type c.
SELECTION-SCREEN end of SCREEN 0200.
"main screen's flow logic in function group with subscreen area
PROCESS BEFORE OUTPUT.
call SUBSCREEN area INCLUDING 'Z_SUBSCREEN_REPORT '0200'.
Regards
Marcin -
Regarding reports and selection screens
Hi,
I have to call one report program from anthoer report program . But the ohter report
program has a selection with radio buttons and check boxes and parameters.
we have to fill that selection screen from this program with the data
and we have to skip that screen.
How we have to do this ?Hi
I believe you need to skip the selection screen of the report you call... please chk out the code below for the same
*-- Company Code
IF NOT us_bukrs[] IS INITIAL.
LOOP AT us_bukrs INTO ls_bukrs.
ls_rspar_line-selname = 'S_BUKRS'.
ls_rspar_line-kind = 'S'.
ls_rspar_line-sign = ls_bukrs-sign.
ls_rspar_line-option = ls_bukrs-option.
ls_rspar_line-low = ls_bukrs-low.
IF NOT ls_bukrs-high IS INITIAL.
ls_rspar_line-high = ls_bukrs-high.
ENDIF.
APPEND ls_rspar_line TO lt_rspar_tab.
CLEAR: ls_rspar_line,
ls_bukrs.
ENDLOOP. " us_bukrs
ENDIF. " us_bukrs
*-- Business Entity of SU
IF NOT us_swenr[] IS INITIAL.
LOOP AT us_swenr INTO ls_swenr.
ls_rspar_line-selname = 'S_SWENR'.
ls_rspar_line-kind = 'S'.
ls_rspar_line-sign = ls_swenr-sign.
ls_rspar_line-option = ls_swenr-option.
ls_rspar_line-low = ls_swenr-low.
IF NOT ls_swenr-high IS INITIAL.
ls_rspar_line-high = ls_swenr-high.
ENDIF.
APPEND ls_rspar_line TO lt_rspar_tab.
CLEAR: ls_rspar_line,
ls_swenr.
ENDLOOP. " us_swenr
ENDIF. " us_swenr
*-- Get the Total costs from the report zrfreexposting_cc
SUBMIT zreexposting_cc
USING SELECTION-SCREEN '1000'
WITH SELECTION-TABLE lt_rspar_tab
WITH p_begin EQ uv_fdate
WITH p_end EQ uv_tdate
AND RETURN.
Santosh -
HOW TO USE SELECTION SCREEN
I WANT TO INSERT PURCHASE DOCUMENT NUMBER
AND WANT TO SEE ALL INFORMATION FOR THAT PURCHASE DOCUMNET NUMBER.
THANKS IN ADVANCED.The main use of the selection-screen is to select screen in the back ground
ex :
TABNAME
IN THE ABOVE FIGURE TABNAME IS THE FIELD AND THE BACK END IS CREATED SCREEN IN THE BACK END
THIS SCREEN CREATION WE CAN USED THE SCREEN SELECTION -
How to set my own gui status when i use selection-screen
how to set my own gui status when i use selection-screen command
and
how to set the names in the application tool bar when function keys are createdMake sure that you do this in event "AT SELECTION-SCREEN OUTPUT".
Run Txn ABAPDOCU and check 'DEMO_SEL_SCREEN_STATUS' for sample.
Also check out following discussion -
Selection Screen PF-STATUS
Cheers,
Sanjeev -
How to get ME23 screen using selection-screen
Hi,
I am trying to get the ME23 screen using selection-screen with following code.
select-options: purordno for ekko-ebeln NO intervals.
SUBMIT SAPMM06E VIA SELECTION-SCREEN .
But at the time of execution i got this error "INCORRECT PROGRAM TYPE WITH SUBMIT".
Can any one please provide me some sample code how to get the ME23 screen
using Abap program.
Regards,
krishna/rajesh.Hi Rajesh,
You can't submit a pool modul ( SAPMM06E ).
Only executable prog can be submit .
What you can try is use "CALL TRANSACTION" statement.
Hope this helps,
Erwan -
Designing a calculator using selection screen(abap)
hi i just now stepped into this technology. iam learning abap. i like to jknow how to design a calculator using selection screen.
could any one give your suggestions or any sites having such example programs .
thankyouHi
Welcome to SDN.
Use the sample peace of code for design Calculator.
Hi,
Create push buttons for the + , - , / , * , = in your dialog program.
Create an input field with the data type that can accept decimal places..
When the enter 12 then press the push button "+" button store the value 12 in a variable v1..Then clear the input field..
Then when the user enters another number..lets say "13"..
Then if the user presses the "=" button...Then sum the values from the variable v1 with the input field..
Hope this helps..
Check this sample code..
MODULE USER_COMMAND.
CASE SY-UCOMM.
WHEN 'ADDITION'.
ASSUMING THE INPUT FIELD NAME IS P_INPUT.
V_V1 = P_INPUT.
V_OPERATION = '+'.
CLEAR: P_INPUT.
WHEN 'EQUALTO'.
CASE V_OPERATION.
ADDITION
WHEN '+'.
SUM UP THE VALUES.
P_INPUT = P_INPUT + V_V1.
ENDCASE.
MULTIPLICATION
WHEN '*'.
MULTIPLY UP THE VALUES.
P_INPUT = P_INPUT * V_V1.
ENDCASE.
ENDCASE.
ENDMODULE.
Regards,
Sree -
Report Painter selection screen field modfication?
Hi Buddies,
I want to modify the report painter selection screen.
There is one field manadatory on the selection screen . I want to make it as optional.
Please let me know if any one knows.
Waiting for your response..
Regards,
VijayHello sir,
Some one did the code. Now iam modifying this report painter selection screen.
I would like to know where the field definition will take place in report painter.
Regards,
Vijnay -
Screen Saver does not use selected Screen Saver when activated
Screen Saver does not use selected Screen Saver when activated. After "Start screen saver" elapse time has been reached, a blank black full screen is displayed. I can activate the selected screen saver by using the hot corners function. Any help with this matter will be greatfully received.
Hi again sassey,
You're assuming correctly. Simply change the settings so that your screen saver activates before the sleep settings.
Hope this solves your problem... -
How to create a report with selection screen that can run in background
Sorry to ask these basic questions but I am knew to ABAP Programming.
To keep it simply, I am attempting to create a report that has a simple parameter driven selections screen with one field. That field takes in a folder path from the user. The user executes the report. The report creates a simply BDC that goes into SE16, gathers data from a table, and exports the results to a text file using the folder path provided. I created a variant for the folder path field in the selection screen hoping to use it while executing the report in the background. The report is not exporting the file as it did when run in the foreground for some reason.
I am wondering what event is triggered when a report is executed in the background. In the foreground (or when I execute the program via SE38->Execute->With Variant) the user needs to execute the program by hitting the execute button once the variant has populated the folder path field. It works then, so I am trying to get the same to work in the background. I am thinking I didn't put the program together correctly to accommodate the running in the background. How can you create a report that can accept user input via variant into a selection screen and then run in the background?
Please, any information would be greatly appreciated.
Thanks you all for reading this!!!Ok, finally I understand what you're doing. Initially you lost me with the SE16 reference...
Not sure what you're trying to achieve overall, but apart from the fact that you cannot export/download a file to a user's PC via background job (unless you have a mapped network share on the server or something like an FTP server on the user's PC, but both are pretty hypothetical scenarios and unlikely to occur).
Also, the BDC approach to get data via SE16 is pretty awkward. Note that SE16 is guarded by some authorization checks and often users won't have access in production (which might not matter if you intend to always run your program in background via dedicated batch user). However, I have no clue why you wouldn't want to use [open SQL|http://help.sap.com/abapdocu_70/en/ABENOPEN_SQL_READING.htm] to read the data. You could then save it on the application server or if you really have to get it to the user you can consider e-mailing the file (extracts should be compressed before sending). For the latter you'll find plenty of references here, basically it's the [business communication services|http://help.sap.com/saphelp_nw2004s/helpdata/en/2d/1c5d3aebba4c38e10000000a114084/frameset.htm] that you'd need to look at. -
How to filter by manager's name using selection screen
Hi all,
I am trying to modify the report to filter data from the report based on the manger name given in selection screen. As the manger's name was given in selection screen.. records have to come only of the employee how were working under that entered manager name.
I am unable to follow this code to modify.. where to add select criteria to filter... please make modify to my code..
I am pasting my code here, Can any one kindly help for this scenario.
TABLES: PA0001, "HR Master Record: Infotype 0001 (Org. Assignment),
PA0002,
P0000,
PA9001,
PA0007,
HRP1001, "Infotype 1001 DB Table
PA0034. "HR Master Record: Infotype 0034 (Corporate Function)
*Internal table for holding output data
DATA: IT_PA0002 LIKE PA0002 OCCURS 100 WITH HEADER LINE,
IT_PA9001 LIKE PA9001 OCCURS 100 WITH HEADER LINE,
IT_PA0007 LIKE PA0007 OCCURS 100 WITH HEADER LINE,
IT_PA0034 LIKE PA0034 OCCURS 100 WITH HEADER LINE.
DATA: IT_RET LIKE BAPIRET2,
IT_ACT LIKE BAPI_SWHACTOR OCCURS 0,
IT_STR LIKE BAPI_STRUC OCCURS 0,
IT_ORG LIKE BAPI_OBJEC OCCURS 0,
IT_POS LIKE BAPI_OBJEC OCCURS 0,
IT_SUP LIKE BAPI_OBJEC OCCURS 0,
IT_FCAT LIKE BAPI_HRAQFIELDDESCRIPTION OCCURS 0,
IT_FDAT LIKE BAPI_HRFIELDDATA OCCURS 0,
IT_ORGS TYPE STANDARD TABLE OF BAPI_OBJEC WITH HEADER LINE,
IT_POSS TYPE STANDARD TABLE OF BAPI_OBJEC WITH HEADER LINE,
IT_SUPR TYPE STANDARD TABLE OF BAPI_OBJEC WITH HEADER LINE,
V_DATE TYPE SY-DATUM,
IT_T500P LIKE T500P OCCURS 0 WITH HEADER LINE,
IT_TT500P LIKE T500P OCCURS 0 WITH HEADER LINE,
IT_T001P LIKE T001P OCCURS 0 WITH HEADER LINE .
DATA: IT_PA0001 LIKE PA0001 OCCURS 100 WITH HEADER LINE,
P_ENDDA LIKE sy-datum.
DATA: Begin of I_HRE,
pernr like pa0001-pernr, "Emp Number
nachn like pa0002-nachn, "Last Name
vorna like pa0002-vorna, "First Name
plans like BAPI_OBJEC-LONG_TEXT, "Position
div_text like pa9001-div_text,
kztim like ZKZTIM_VAUES-name,
stext like T591S-STEXT, "Corporate function text
werks like BAPI_OBJEC-LONG_TEXT,
btrtl like pa0001-btrtl,
orgeh like BAPI_OBJEC-LONG_TEXT,
kostl like pa0001-kostl,
mstbr like pa0001-mstbr, "Supervisor
End of I_HRE.
DATA: I_HR like I_HRE occurs 100 with header line.
DATA: V_PLANS LIKE PA0001-PLANS,
V_EMP LIKE PA0001-PERNR,
V_KOSTL LIKE PA0001-KOSTL,
V_SUPER LIKE BAPI_OBJEC-LONG_TEXT,
V_EMP_POS LIKE BAPI_OBJEC-LONG_TEXT,
V_SUPER_POS LIKE BAPI_OBJEC-LONG_TEXT,
V_HEADER TYPE N VALUE 1,
V_COUNTER TYPE N VALUE 1,
EMP_INDICATOR TYPE N,
V_ORGEH LIKE BAPI_OBJEC-LONG_TEXT,
V_WERKS LIKE BAPI_OBJEC-LONG_TEXT,
V_KZTIM LIKE ZKZTIM_VAUES-NAME,
V_STEXT LIKE T591S-STEXT.
DATA: v_file TYPE string, "Detail Filename
v_filerecord(1000),
f_filerecord(1000),
drive(3),
mstbr like pa0001-mstbr, "Supervisor
count type n value 0.
SELECTION-SCREEN BEGIN OF BLOCK SELECTION WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_PERNR FOR P0000-PERNR,
S_WERKS FOR PA0001-WERKS,
S_BTRTL FOR PA0001-BTRTL,
S_PERSG FOR PA0001-PERSG,
S_ORGEH FOR PA0001-ORGEH,
S_DIV FOR PA9001-DIV_CODE,
S_KZTIM FOR PA0007-KZTIM,
S_sname for pa0001-sname, " this is to enter name
" as manager name
S_FUNKT FOR PA0034-FUNKT.
SELECTION-SCREEN END OF BLOCK SELECTION.
SELECTION-SCREEN BEGIN OF BLOCK SELECTION1 WITH FRAME TITLE TEXT-002.
PARAMETERS: P_BEGDA LIKE SY-DATUM DEFAULT sy-datum.
* P_ENDDA LIKE SY-DATUM DEFAULT '99991231'.
SELECTION-SCREEN END OF BLOCK SELECTION1.
START-OF-SELECTION.
if P_BEGDA is initial.
p_begda = sy-datum.
endif.
if P_ENDDA is initial.
p_endda = sy-datum.
endif.
if S_PERSG is initial.
* S_PERSG-SIGN = 'I'.
* S_PERSG-OPTION = 'EQ'.
* S_PERSG-LOW = '1'.
* APPEND S_PERSG.
* S_PERSG-SIGN = 'I'.
* S_PERSG-OPTION = 'EQ'.
* S_PERSG-LOW = '6'.
* APPEND S_PERSG.
S_PERSG-SIGN = 'I'.
S_PERSG-OPTION = 'NE'.
S_PERSG-LOW = '5'.
APPEND S_PERSG.
endif.
SELECT * FROM PA0001 into IT_PA0001
WHERE PERNR IN S_PERNR
AND WERKS IN S_WERKS
AND BTRTL IN S_BTRTL
AND PERSG IN S_PERSG
AND ORGEH IN S_ORGEH
AND BEGDA LE P_BEGDA
AND ENDDA GE P_ENDDA.
APPEND IT_PA0001.
ENDSELECT.
IF not S_DIV[] is initial.
SELECT * FROM PA9001 into IT_PA9001
WHERE DIV_CODE IN S_DIV.
APPEND IT_PA9001.
ENDSELECT.
ENDIF.
IF not S_KZTIM[] is initial.
SELECT * FROM PA0007 into IT_PA0007
WHERE KZTIM IN S_KZTIM.
APPEND IT_PA0007.
ENDSELECT.
ENDIF.
IF not S_FUNKT[] is initial.
SELECT * FROM PA0034 into IT_PA0034
WHERE FUNKT IN S_FUNKT.
APPEND IT_PA0034.
ENDSELECT.
ENDIF.
SORT IT_PA0001 by SNAME.
LOOP AT IT_PA0001.
IF not S_DIV[] is initial.
READ TABLE IT_PA9001 with key pernr = IT_PA0001-PERNR.
IF sy-subrc ne 0.
continue.
ENDIF.
ENDIF.
IF not S_KZTIM[] is initial.
READ TABLE IT_PA0007 with key pernr = IT_PA0001-PERNR.
IF sy-subrc ne 0.
continue.
ENDIF.
ENDIF.
IF not S_FUNKT[] is initial.
READ TABLE IT_PA0034 with key pernr = IT_PA0001-PERNR.
IF sy-subrc ne 0.
continue.
ENDIF.
ENDIF.
V_COUNTER = 1.
V_EMP = IT_PA0001-PERNR.
V_KOSTL = IT_PA0001-KOSTL.
* WRITE: (10) V_EMP, (20) PA0002-NACHN, (20) PA0002-VORNA.
WRITE: / SY-VLINE. " Left border
WHILE V_EMP NE ''.
PERFORM GET_SUPER CHANGING V_EMP V_SUPER
V_EMP_POS.
if v_emp ne ''.
select single * into it_pa0002 from pa0002
where pernr = v_emp
and begda LE p_begda
and endda GE p_endda.
IF V_HEADER = 1.
PERFORM HEADING.
V_HEADER = 0.
ENDIF.
WRITE: (10) V_EMP, (17) IT_PA0002-NACHN
,(17) IT_PA0002-VORNA, (40) V_EMP_POS.
move v_emp to i_hr-pernr.
move IT_PA0002-NACHN to i_hr-nachn.
move IT_PA0002-VORNA to i_hr-vorna.
move V_EMP_POS to i_hr-plans.
EMP_INDICATOR = V_COUNTER.
IF V_COUNTER = 1.
select single * into it_pa9001 from pa9001
where pernr = v_emp
and begda LE p_begda
and endda GE p_endda.
select single * into it_pa0007 from pa0007
where pernr = v_emp
and begda LE p_begda
and endda GE p_endda.
PERFORM GET_KZTIM_TEXT CHANGING it_pa0007-kztim V_KZTIM.
select single * into it_pa0034 from pa0034
where pernr = v_emp
and begda LE p_begda
and endda GE p_endda.
PERFORM GET_FUNKT_TEXT CHANGING it_pa0034-funkt v_stext.
write: (8) IT_PA9001-DIV_CODE, (17) V_KZTIM,
(25) V_STEXT.
move IT_PA9001-DIV_CODE to i_hr-div_text.
move v_KZTIM to i_hr-kztim.
ENDIF.
IF V_COUNTER = 0.
WRITE: (1) '|'.
ENDIF.
IF V_COUNTER = 1.
PERFORM GET_NAMES.
WRITE: (20) V_WERKS, (5) IT_PA0001-BTRTL
,(20) V_ORGEH,(11) V_KOSTL, (3) '|'.
V_COUNTER = 0.
move V_WERKS to i_hr-werks.
move IT_PA0001-BTRTL to i_hr-btrtl.
move V_ORGEH to i_hr-orgeh.
move V_KOSTL to i_hr-kostl.
ENDIF.
clear it_pa0002.
refresh it_pa0002.
endif.
V_EMP = V_SUPER.
move V_SUPER to i_hr-mstbr.
if EMP_INDICATOR EQ 1.
append i_hr.
endif.
clear i_hr.
ENDWHILE.
NEW-LINE.
CLEAR : V_KZTIM, it_pa9001, it_PA0007.
ENDLOOP.
* Check if its a background Job
IF SY-BATCH NE SPACE.
perform write_file. "Output File
ENDIF.
ULINE.
*& Form GET_SUPER
* This subroutine takes the position number and get the position
* number that it reports to and then who is holding that position and
* then the name of the person who is holding that position in order to
* provide the supervisors name for the person in that position.
* --> p1 text
* <-- p2 text
FORM GET_SUPER CHANGING EMP_SUB EMP_SUPER
EMP_SUB_POS .
DATA: v_reporto like hrp1001-varyf value space,
v_holder like hrp1001-varyf value space,
v_filled like hrp1001-varyf value space,
v_otype like hrp1001-otype value space,
v_objid like hrp1001-objid value space.
CLEAR: v_reporto, v_holder, v_filled, v_otype, v_objid,
EMP_SUB_POS.
Select single plans
into v_plans
from pa0001
where pernr = emp_sub
and begda LE p_begda
and endda GE p_endda.
CALL FUNCTION 'BAPI_ORGUNITEXT_DATA_GET'
EXPORTING
PLVAR = '01'
OTYPE = 'S'
OBJID = v_PLANS
KEYDATE = SY-DATUM
SCENARIO = ' '
* EVALPATH = 0
EVALDEPTH = 0
IMPORTING
RETURN = IT_RET
TABLES
* ACTORTAB = IT_ACT
* STRUCTURALDATA = IT_STR
OBJECTSDATA = IT_SUP
* FIELDCATALOGUE = IT_FCAT
* FIELDDATA = IT_FDAT
IF SY-SUBRC EQ 0.
READ TABLE IT_SUP INTO IT_SUPR
WITH KEY PLAN_VERS = '01'
OBJECTTYPE = 'S'
OBJECT_ID = v_PLANS.
IF SY-SUBRC EQ 0.
MOVE IT_SUPR-LONG_TEXT TO EMP_SUB_POS.
ENDIF.
ENDIF.
Select Single varyf
into v_reporto
from hrp1001
where otype = 'S'
and objid = v_plans
and rsign = 'A'
and relat = '002'
and begda LE p_begda
and endda GE p_endda.
if sy-subrc = 0.
move v_reporto+0(1) to v_otype.
move v_reporto+2(8) to v_objid.
Select single varyf
into v_holder
from hrp1001
where otype = v_otype
and objid = v_objid
and rsign = 'A'
and relat = '008'
and begda LE p_begda
and endda GE p_endda.
if sy-subrc = 0.
move v_holder+0(1) to v_otype.
move v_holder+2(8) to v_objid.
EMP_SUPER = v_objid.
IF EMP_SUB = EMP_SUPER.
EMP_SUPER = ''.
ENDIF.
* Select single varyf
* into v_filled
* from hrp1001
* where otype = v_otype
* and objid = v_objid
* and rsign = 'A'
* and relat = '209'.
* if sy-subrc = 0.
* CLEAR: IT_RET, IT_ACT, IT_STR, IT_FCAT, IT_FDAT,
* IT_SUP, IT_SUPR.
* REFRESH: IT_POSS.
* move v_filled+0(2) to v_otype.
* move v_filled+2(8) to v_objid.
* CALL FUNCTION 'BAPI_ORGUNITEXT_DATA_GET'
* EXPORTING
* PLVAR = '01'
* OTYPE = v_otype
* OBJID = v_objid
* KEYDATE = V_DATE
* SCENARIO = ' '
** EVALPATH = 0
* EVALDEPTH = 0
* IMPORTING
* RETURN = IT_RET
* TABLES
** ACTORTAB = IT_ACT
** STRUCTURALDATA = IT_STR
* OBJECTSDATA = IT_SUP
** FIELDCATALOGUE = IT_FCAT
** FIELDDATA = IT_FDAT
* IF SY-SUBRC EQ 0.
* READ TABLE IT_SUP INTO IT_SUPR
* WITH KEY PLAN_VERS = '01'
* OBJECTTYPE = v_otype
* OBJECT_ID = v_objid.
* IF SY-SUBRC EQ 0.
* MOVE IT_SUPR-LONG_TEXT TO EMP_SUPER.
* ENDIF.
* ENDIF.
* endif.
endif.
endif.
if sy-subrc <> 0.
EMP_SUPER = ''.
endif.
ENDFORM. " GET_SUPER
*& Form HEADING
* text
* --> p1 text
* <-- p2 text
FORM HEADING .
FORMAT INTENSIFIED OFF. " Remove any INTENSIFIED
FORMAT COLOR COL_HEADING INTENSIFIED." Title color
WRITE: (10) 'Employee', (17) 'Last Name'
,(17) 'First Name', (40) 'Position'
,(8) 'Division', (17) 'Management Type'
,(25) 'Corporate Function'
,(20) 'Personnel Area', (5) 'PSA'
,(20) 'Org. Unit',(11) 'Cost Center',(3) '|'
,(10) 'Supervisor', (17) 'Last Name'
,(17) 'First Name', (40) 'Position', (1) '|'
,(10) 'Supervisor', (17) 'Last Name'
,(17) 'First Name', (40) 'Position', (1) '|'
,(10) 'Supervisor', (17) 'Last Name'
,(17) 'First Name', (40) 'Position', (1) '|'
,(10) 'Supervisor', (17) 'Last Name'
,(17) 'First Name', (40) 'Position', (1) '|'
,(10) 'Supervisor', (17) 'Last Name'
,(17) 'First Name', (40) 'Position', (1) '|'
,(10) 'Supervisor', (17) 'Last Name'
,(17) 'First Name', (40) 'Position', (1) '|'
,(10) 'Supervisor', (17) 'Last Name'
,(17) 'First Name', (40) 'Position', (1) '|'
,(10) 'Supervisor', (17) 'Last Name'
,(17) 'First Name', (40) 'Position', (1) '|'
,(10) 'Supervisor', (17) 'Last Name'
,(17) 'First Name', (40) 'Position', (1) '|'
ULINE . " Line below titles
NEW-LINE.
WRITE: / SY-VLINE. " Left border
FORMAT COLOR OFF.
ENDFORM. " HEADING
*& Form GET_NAMES
* text
* --> p1 text
* <-- p2 text
FORM GET_NAMES .
CLEAR: IT_RET, IT_ACT, IT_STR, IT_ORG, IT_POS, IT_FCAT, IT_FDAT,
IT_ORGS, IT_POSS, V_ORGEH, V_WERKS.
REFRESH: IT_ORGS, IT_POSS.
MOVE SY-DATUM TO V_DATE.
CALL FUNCTION 'BAPI_ORGUNITEXT_DATA_GET'
EXPORTING
PLVAR = '01'
OTYPE = 'O '
OBJID = IT_PA0001-ORGEH
KEYDATE = V_DATE
SCENARIO = ' '
* SCENARIO = 'MDT1'
* EVALPATH = '0 '
EVALDEPTH = 0
IMPORTING
RETURN = IT_RET
TABLES
* ACTORTAB = IT_ACT
* STRUCTURALDATA = IT_STR
OBJECTSDATA = IT_ORG
* FIELDCATALOGUE = IT_FCAT
* FIELDDATA = IT_FDAT
IF SY-SUBRC EQ 0.
READ TABLE IT_ORG INTO IT_ORGS
WITH KEY PLAN_VERS = '01'
OBJECTTYPE = 'O '
OBJECT_ID = IT_PA0001-ORGEH.
IF SY-SUBRC EQ 0.
MOVE IT_ORGS-LONG_TEXT TO V_ORGEH.
ENDIF.
ENDIF.
CALL FUNCTION 'HR_TMW_READ_T500P'
EXPORTING
PERSA = IT_PA0001-WERKS
IMPORTING
W500P = IT_T500P
EXCEPTIONS
NO_ENTRY_FOUND = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF SY-SUBRC EQ 0.
MOVE IT_T500P-NAME1 TO V_WERKS.
CLEAR: IT_T500P.
REFRESH: IT_T500P.
ENDIF.
* CALL FUNCTION 'HR_TMW_READ_T001P'
* EXPORTING
* PERSA = PA0001-WERKS
* BTRTL = PA0001-BTRTL
* IMPORTING
* W001P = IT_T001P
* EXCEPTIONS
* NO_ENTRY_FOUND = 1
* OTHERS = 2.
* IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
* ENDIF.
* IF SY-SUBRC EQ 0.
* MOVE IT_T001P-BTEXT TO IT_HRR05-BTRTL.
* ENDIF.
ENDFORM. " GET_NAMES
*& Form GET_KZTIM_TEXT
* text
* <--P_V_EMP text
* <--P_V_KZTIM text
FORM GET_KZTIM_TEXT CHANGING P_KZTIM_ID
P_KZTIM.
select single NAME into P_KZTIM from ZKZTIM_VAUES
where TYPE eq P_KZTIM_ID.
ENDFORM. " GET_KZTIM_TEXT
*& Form GET_FUNKT_TEXT
* text
* <--P_V_EMP text
* <--P_V_KZTIM text
FORM GET_FUNKT_TEXT CHANGING P_FUNKT_ID
P_STEXT.
select single STEXT into P_STEXT from T591S
where SPRSL eq 'EN' and
INFTY eq '0034' and
SUBTY eq P_FUNKT_ID.
ENDFORM. " GET_KZTIM_TEXT
*& Form write_file
* text
* --> p1 text
* <-- p2 text
FORM write_file .
* Checking the System ID
if sy-sysid = 'RD1'.
drive = 'D:\'.
else.
drive = 'M:\'.
endif.
* concatenate drive sy-sysid
* '\Output\Reports\HR\HR_Public\Emp_Hierarchy'
* sy-datum
* '.xls' into v_file.
concatenate drive sy-sysid
'\Output\Reports\HR\HR_Public\Emp_Hierarchy.xls'
into v_file.
OPEN DATASET v_file FOR OUTPUT in text mode encoding default.
concatenate 'Employee'
'Last Name'
'First Name'
'Position'
'Division'
'Management Type'
'Corporate Function'
'Personnel Area '
'PSA'
'Org. Unit'
'Cost Center'
'Supervisor'
'Last Name'
'First Name'
'Position'
'Supervisor'
'Last Name'
'First Name'
'Position'
'Supervisor'
'Last Name'
'First Name'
'Position'
'Supervisor'
'Last Name'
'First Name'
'Position'
'Supervisor'
'Last Name'
'First Name'
'Position'
'Supervisor'
'Last Name'
'First Name'
'Position'
'Supervisor'
'Last Name'
'First Name'
'Position'
'Supervisor'
'Last Name'
'First Name'
'Position'
'Supervisor'
'Last Name'
'First Name'
'Position'
into v_filerecord
separated by CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.
transfer v_filerecord to v_file. "Writing to file
clear v_filerecord.
loop at IT_PA0001.
do.
if count eq 0.
read table i_hr with key pernr = IT_PA0001-pernr.
concatenate i_hr-pernr
i_hr-nachn
i_hr-vorna
i_hr-plans
i_hr-div_text
i_hr-kztim
i_hr-stext
i_hr-werks
i_hr-btrtl
i_hr-orgeh
i_hr-kostl
into v_filerecord
separated by CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.
mstbr = i_hr-mstbr.
count = count + 1.
else.
read table i_hr with key pernr = mstbr.
concatenate v_filerecord
i_hr-pernr
i_hr-nachn
i_hr-vorna
i_hr-plans
into f_filerecord
separated by CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.
v_filerecord = f_filerecord.
mstbr = i_hr-mstbr.
clear i_hr.
endif.
if mstbr eq space.
exit.
endif.
enddo.
transfer v_filerecord to v_file. "Writing to file
clear: v_filerecord, f_filerecord, count.
endloop.
CLOSE DATASET v_file.
ENDFORM. " write_file
Edited by: Surender Batlanki on Feb 20, 2008 7:50 AM
Edited by: Surender Batlanki on Feb 20, 2008 7:59 AM
Edited by: Surender Batlanki on Feb 20, 2008 8:12 AM
Edited by: Surender Batlanki on Feb 20, 2008 3:16 PM
Edited by: Alvaro Tejada Galindo on Feb 20, 2008 9:26 AMHi Surender,
In the Perform GET_SUPER, you are getting manager's OBJID. Use this OBJID and from PA0001 get Manger's name.
While passing data to output table, filter that table by Manager's name and then pass output table for display.
Hope this helps u.
<REMOVED BY MODERATOR>
Regards,
Preeti
Edited by: Alvaro Tejada Galindo on Feb 20, 2008 9:26 AM -
Report Groups - Selection screen on receiver report
Hi there,
When dealing with sender / receiver reports, do you know if it's possible to force a selection screen prompt when calling a receiver report during execution?
A report was written in the Report Painter, and belongs to a report group called 1OAB. This report group has three receiver reports defined, so when users double click on a value, it will forward navigate to another report (receiver report, selected after double click) using the same selection criteria of the current report (sender).
My <b>problem</b>, is that the selection criteria that is passed by the sender isn't sufficient for the receiver report, and the report ends up running with a much larger selection than required.
My <b>question</b>, is whether or not we can either:
<b>a)</b> Interrupt during the report call and prompt with the report selection screen for the receiver report. This would allow the user to input any missing selections.
<b>b)</b> Add in any missing selections via a user exit. I have not had much luck in finding such an exit. The closest I got was form 'USEREXIT1' from include LRSTIF90. This exit appears to be called before and after the report call. I'm not sure if it's a true exit though, as it's just a piece of code in an include and is referred to as an exit? To implement would I just register the object and add in my code?
Any suggestions would be appreciated!
Thanks,
LFYI the only solution I see is to put in a modification to prompt a selection screen during execution. Modification would go in include 'LRSTIF02' as follows:
PERFORM report_check_obligatory TABLES it_fieldr
USING flg_obl.
** MODIFICATION **
if ld_tcode = 'FBL3N'.
flg_obl = 'X'.
endif.
** END MODIFICATION **
IF flg_obl IS INITIAL.
CALL TRANSACTION ld_tcode AND SKIP FIRST SCREEN.
ELSE.
CALL TRANSACTION ld_tcode.
ENDIF.
* clear parameter ids
* perform clear_pid_fieldr tables it_fieldr it_dfies.
PERFORM reset_pid_fieldr TABLES it_fieldr it_selpid.
* if flg_return = 'X'.
* call transaction ld_tcode and skip first screen.
* else.
* leave to transaction ld_tcode.
* endif.
ENDFORM.
If anybody has a better idea on how to accomplish this I'd love to hear it!
Thanks,
L
Maybe you are looking for
-
I just got my first iPad and it is the mini retina 64 gigs. I don't what to do with it? What can I/should I do with it? Is this a good investment? I have 7.0.4 do I need to update the software Is this the best iPad or should I take it back for a bett
-
Vehicle Consumption Analysis question?
I'm working with the Vehicle Consumption analysis objects in SAP BW (0PM_C12 and 0PM_DS08) and I've got a question regarding the retrieval of Operation hours. The 0PM_FLEET datasource retrieves Distance, Fuel, and Operating Hours from SAP ecc and the
-
Iweb website wont go on domain name
i purchased a domain name from network solutions, and made my iweb website, which i will be hosting with mpbileme. i then changed the CNAME (alias) to web.me.com on www, and followed all the instructions, howevermy website has not been uploaded to th
-
Regarding Shortdump "CALL FUNCTION 'RSAU_READ_FILE"
hey.. I am trying to use this below functional module. It goest to shortdump <b>"CALL FUNCTION CONFLICT _LENG"</b> even i cant check whether sy-subrc is <> 0 or not. How to stop this SHORTDUMP. could somebody help me here.. (Situation used is : When
-
Its not a simple baud-rate or parity error. If I issue the command to send data (X1) in hyperterminal I start to get data. If I then switch to Labview I still get data. However if I try to issue the send-data command via Labview I get nothing (i.e. I