Posted: Mon Oct 08, 2007 4:07 pm Post subject: Get payroll
This program is used 'PNP' Logical Database
Code:
***********************************************************************
* EXAMPLE Report EXAMPLE_PNP_GET_PAYROLL *
* PNP: New event: GET PAYROLL for access to payroll results *
* *
* Use '900' as selection screen (report attributes) *
* *
* The selection screen can be customized by assigning a PNP payroll *
* reportclass to this report (the default is PY_DEF): Go to -> *
* report properties -> Button HR reportclass -> check the box "Payroll*
*-reportclass -> Press create to enter the customizing view. *
* *
* 4.6C VRM Small changes *
* *
* 4.6A VRM New report *
* *
***********************************************************************
REPORT EXAMPLE_PNP_GET_PAYROLL.
* These three tables need to be declared for the selection screen-.
* Currently, the declarations of pyorgscreen, pytimescreen HAS to
* be done in addition to setting selection screen = 900 .
TABLES: pernr,pyorgscreen, pytimescreen.
* Declare the country specific structure:
* payXX_result with XX = country code, e.g. payDE_result for Germany
* Country = 99 is an exception: If this structure is used, the
* international part of every payroll result is returned regardless
* of country code. In the other case, pernr's whose country code do
* not fit the structure are skipped.
NODES: payroll TYPE pay99_result.
* this section is example specific
TABLES: t512t.
DATA: wa_rt LIKE LINE OF payroll-inter-rt.
DATA: wa_crt LIKE LINE OF payroll-inter-crt.
DATA: wa_wpbp LIKE LINE OF payroll-inter-wpbp.
Data: g_result_counter type i.
* Declarations for modifying the result list after GET PERNR
DATA mylist LIKE pc261 OCCURS 0 .
DATA wa_mylist LIKE LINE OF mylist.
DATA pay TYPE REF TO cl_pay. "global class
INITIALIZATION.
* nothing to do here
*----------------------------------------
GET pernr.
* A progress indicator based on the number of pernrs processed / total
* number of selected pernrs is automatically calculated & displayed.
WRITE: / 'Currently working on:'(021), pernr-pernr.
g_result_counter = 0.
* The infotypes could be accessed here as in any other PNP
* based report. The same holds true for the infotype based
* authorizations.
* You can use the methods of class "pay" to read and modify
* the list of payroll result that is going to be processed at
* the <get payroll> event. However, these method calls might
* change with the next release.
CREATE OBJECT pay.
* pay->LDB = 'SAPDB_MY_OWN_LDB'. "only if you copied the LDB PNP
CALL METHOD pay->read_result IMPORTING list = mylist.
"delete mylist index 2. "For example: Remove an unwanted payroll result
CALL METHOD pay->write_result EXPORTING list = mylist.
*--------------------------------------
* After all payroll results for ONE pernr are processed, the event GET
* LATE is triggered. A good place to e. g. sum up results.
GET pernr LATE.
SKIP 1.
WRITE: / 'Found'(022), g_result_counter, 'results for #'(023),
pernr-pernr.
if g_result_counter = 0.
write: /
'No results ? Did you assign the right structure to node PAYROLL?'(024).
endif.
ULINE.
*--------------------------------------
GET payroll.
* At the event <payroll> the complex struture payroll is filled
* with the payroll result for the specific person. The structure
* of payroll is as declared above.
g_result_counter = g_result_counter + 1.
* Print some parts of the result (ignore splits for simplicity)
WRITE: / '*****************************************************'.
WRITE: / 'Seqnr = '(014), payroll-evp-seqnr,
'In period ='(015), payroll-inter-versc-inper,
'For period ='(016), payroll-inter-versc-fpper,
'Pay date ='(017), payroll-inter-versc-paydt.
LOOP AT payroll-inter-wpbp INTO wa_wpbp.
WRITE: / 'Personal Area ='(018), wa_wpbp-werks,
'Sub Area ='(019), wa_wpbp-btrtl.
ENDLOOP.
SKIP 1.
LOOP AT payroll-inter-rt INTO wa_rt.
SELECT SINGLE * FROM t512t
WHERE sprsl EQ sy-langu
AND molga EQ payroll-inter-versc-molga
AND lgart EQ wa_rt-lgart.
WRITE: / wa_rt-lgart,
t512t-lgtxt,
wa_rt-betrg CURRENCY payroll-inter-versc-waers.
ENDLOOP.
SKIP 1.
WRITE: / 'Cumulations:'(020).
LOOP AT payroll-inter-crt INTO wa_crt.
SELECT SINGLE * FROM t512t
WHERE sprsl EQ sy-langu
AND molga EQ payroll-inter-versc-molga
AND lgart EQ wa_crt-lgart.
WRITE: / wa_crt-lgart,
t512t-lgtxt,
wa_crt-betrg CURRENCY payroll-inter-versc-waers.
ENDLOOP.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.