‎2006 Jun 14 9:01 AM
Hi, I modifying some reports that leave by the previous consultant, i meet this function HR_DISPLAY_BASIC_LIST in the programs, for value field with CURRENCY USD, its didnt list out in a proper format of USD, eventho i have already add waers field to catalog structure.
Any idea ?
Thanks.
‎2006 Jun 14 9:04 AM
‎2006 Jun 14 9:13 AM
REPORT (SY-REPID)
LINE-COUNT 60
LINE-SIZE 132.
* NO STANDARD PAGE HEADING.
TABLES: PERNR.
INFOTYPES: 0002,0001,0167,0021.
DATA: BEGIN OF FIELDNAMES2 OCCURS 10,
FIELD1(60), FIELD2(10), FIELD3(10),
END OF FIELDNAMES2.
DATA:TEXT LIKE GSUDISP OCCURS 1 WITH HEADER LINE.
DATA:AGE(3) TYPE N.
DATA: BEGIN OF REPORT OCCURS 0,
BPLAN LIKE P0167-BPLAN,
PERID LIKE P0002-PERID,
NACHN LIKE P0002-NACHN,
VORNA LIKE P0002-VORNA,
GBDAT(10) TYPE C, " LIKE P0002-GBDAT,
FAVOR LIKE P0021-FAVOR,
FANAM LIKE P0021-FANAM,
FGBDT(10) TYPE C. " LIKE P0021-FGBDT.
DATA: END OF REPORT.
DATA: PAYYR(4),
PAYPP(2),
PAGENO(6),
TCOUNT(3) TYPE P,
SCOUNT(3) TYPE P,
HCOUNT(3) TYPE P.
SELECT-OPTIONS:BPLAN FOR P0167-BPLAN.
INITIALIZATION.
PNPTIMED = 'D'.
*----------------------------------------------------------------------*
* Start of Main Program *
*----------------------------------------------------------------------*
START-OF-SELECTION.
FIELDNAMES2-FIELD1 = 'Plan'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'SSN'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Emp Last Name'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Emp First Name'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Emp Birthdate'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Spouse First Name'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Spouse Last Name'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Spouse Birthdate'.
APPEND FIELDNAMES2.
GET PERNR.
RP-PROVIDE-FROM-LAST P0002 SPACE PN-BEGDA PN-ENDDA.
RP-PROVIDE-FROM-LAST P0021 '1' PN-BEGDA PN-ENDDA.
RP-PROVIDE-FROM-LAST P0167 'MEDI' PN-BEGDA PN-ENDDA.
CHECK P0167-BPLAN IN BPLAN.
CLEAR TEXT.
CALL FUNCTION 'PDOA_AGE_OF_PERSON_GET'
EXPORTING
OTYPE = 'P'
FIELD = PERNR-PERNR
INFOTYPE = '0002'
* BEGDA =
* ENDDA =
TABLES
TEXTS = TEXT
EXCEPTIONS
OTHERS = 1.
IF TEXT => 65.
MOVE-CORRESPONDING P0002 TO REPORT.
WRITE P0002-PERID TO REPORT-PERID USING EDIT MASK '___-__-____'.
WRITE P0002-GBDAT TO REPORT-GBDAT MM/DD/YYYY.
MOVE P0167-BPLAN TO REPORT-BPLAN.
IF NOT P0021-PERNR IS INITIAL. " check spouse age.
CLEAR AGE.
CALL FUNCTION 'COMPUTE_YEARS_BETWEEN_DATES'
EXPORTING
FIRST_DATE = P0021-FGBDT
* MODIFY_INTERVAL = ' '
SECOND_DATE = SY-DATUM
IMPORTING
YEARS_BETWEEN_DATES = AGE
EXCEPTIONS
SEQUENCE_OF_DATES_NOT_VALID = 1
OTHERS = 2.
IF AGE > 65.
REPORT-FAVOR = P0021-FAVOR.
REPORT-FANAM = P0021-FANAM.
* REPORT-FGBDT = P0021-FGBDT.
WRITE P0021-FGBDT TO REPORT-FGBDT MM/DD/YYYY.
ELSE.
CLEAR:REPORT-FAVOR,
REPORT-FANAM,
REPORT-FGBDT.
ENDIF.
ELSE.
CLEAR:REPORT-FAVOR,
REPORT-FANAM,
REPORT-FGBDT.
ENDIF.
APPEND REPORT.
ENDIF.
END-OF-SELECTION.
SORT REPORT BY NACHN.
CALL FUNCTION 'HR_DISPLAY_BASIC_LIST'
EXPORTING
* BASIC_LIST_TITLE =
FILE_NAME = 'SAPDATA'
* HEAD_LINE1 = ' '
* HEAD_LINE2 = ' '
* FOOT_NOTE1 = ' '
* FOOT_NOTE2 = ' '
* FOOT_NOTE3 = ' '
* LAY_OUT = 0
* DYN_PUSHBUTTON_TEXT1 =
* DYN_PUSHBUTTON_TEXT2 =
* DYN_PUSHBUTTON_TEXT3 =
* DYN_PUSHBUTTON_TEXT4 =
* DYN_PUSHBUTTON_TEXT5 =
* DYN_PUSHBUTTON_TEXT6 =
* DATA_STRUCTURE = ' '
* HEAD_LINE3 = ' '
* HEAD_LINE4 = ' '
* CURRENT_REPORT =
* LIST_LEVEL = ' '
* ADDITIONAL_OPTIONS = ' '
* WORD_DOCUMENT =
* IMPORTING
* RETURN_CODE =
TABLES
DATA_TAB = REPORT
FIELDNAME_TAB = FIELDNAMES2
* SELECT_TAB =
* ERROR_TAB =
EXCEPTIONS
DOWNLOAD_PROBLEM = 1
NO_DATA_TAB_ENTIRIES = 2
TABLE_MISMATCH = 3
PRINT_PROBLEMS = 4
OTHERS = 5.
* LOOP AT REPORT.
* WRITE:/ REPORT-BPLAN,
* REPORT-PERID(11) USING EDIT MASK '___-__-____',
* REPORT-NACHN,
* REPORT-VORNA,
* REPORT-GBDAT MM/DD/YYYY,
* REPORT-FAVOR(15),
* REPORT-FANAM(20),
* REPORT-FGBDT MM/DD/YYYY NO-ZERO.
* ENDLOOP.Check the sample code.
Regards
vijay
‎2006 Jun 14 9:19 AM
Thanks for the reply, vijay
I already check the sample code that you provide to me, its showing the date format, how about currency format ?
Thanks
‎2006 Jun 14 9:32 AM
REPORT (SY-REPID)
LINE-COUNT 65(3)
LINE-SIZE 132
MESSAGE-ID ZZ
NO STANDARD PAGE HEADING.
TABLES: PERNR, PCL1, PCL2,T549T,T001P,T500L,T005U,T512T.
INFOTYPES : 0001,0002.
DATA: TAB LIKE TEXTPOOL OCCURS 10 WITH HEADER LINE.
DATA: ORG_TEXT LIKE P1000-SHORT.
DATA:NEW_WERKS(4) TYPE C.
DATA:WF-TEXT1(079) TYPE C.
DATA:WF-TEXT2(132) TYPE C.
DATA:WF-TEXT3(132) TYPE C.
DATA:WF-TEXT4(132) TYPE C.
DATA INAME LIKE P0001-ENAME.
DATA SNAME LIKE P0001-SNAME.
DATA: CALCMOLGA LIKE T500L-MOLGA VALUE '10'.
DATA : CALC_CURRENCY LIKE T001-WAERS VALUE 'USD'.
DATA: RT_KEY(5) TYPE C.
INCLUDE RPC2CD09. "Cluster CD Data-Definition
INCLUDE RPC2CA00. "Cluster CA Data-Definition
INCLUDE RPC2RUU0. "Cluster RU Data-Definition
INCLUDE RPC2RX09. "Cluster RU Data-Definition internat. part
INCLUDE RPPPXD00. "Data befinition buffer PCL1/PCL2
INCLUDE RPPPXD10. "Common part buffer PCL1/PCL2
INCLUDE RPPPXM00. "Buffer handling routine
INCLUDE RPC2ROX3. "Data definition RPCLSTRs (only J,K,U)
DATA: BEGIN OF REPORT OCCURS 0,
KOSTL LIKE PC205-KOSTL,
PERNR LIKE PERNR-PERNR,
ENMAE LIKE PERNR-ENAME, " LIKE P0001-ORGEH,
SALARY LIKE PC207-BETRG,
OTHER LIKE PC207-BETRG,
BONUS LIKE PC207-BETRG,
COMMIS LIKE PC207-BETRG,
FICA LIKE PC207-BETRG,
MEDICA LIKE PC207-BETRG,
FI_MED LIKE PC207-BETRG,
FEDERA LIKE PC207-BETRG,
STATE LIKE PC207-BETRG,
LOCAL LIKE PC207-BETRG,
SDI LIKE PC207-BETRG,
401K LIKE PC207-BETRG,
UNITED LIKE PC207-BETRG,
CU LIKE PC207-BETRG,
MISC LIKE PC207-BETRG,
TOTAL LIKE PC207-BETRG,
NET LIKE PC207-BETRG,
END OF REPORT.
DATA: BEGIN OF FIELDNAMES2 OCCURS 20,
FIELD1(60), FIELD2(10), FIELD3(10),
END OF FIELDNAMES2.
DATA: IFPPER LIKE RGDIR-FPPER.
DATA AMOUNT(15) TYPE C.
DATA AMT(15) TYPE C.
DATA: EMPL_ID(8) TYPE C,
HOLDNAME(25) TYPE C.
PARAMETERS:MOLGA LIKE T500L-MOLGA DEFAULT '10',
FILENAME(128) TYPE C.
SELECT-OPTIONS: CCENTER FOR WPBP-KOSTL.
AT SELECTION-SCREEN OUTPUT.
DATA: DUMMY TYPE C.
AUTHORITY-CHECK OBJECT 'PLOG'
ID 'PLVAR' FIELD DUMMY
ID 'OTYPE' FIELD DUMMY
ID 'INFOTYP' FIELD DUMMY
ID 'SUBTYP' FIELD DUMMY
ID 'ISTAT' FIELD DUMMY
ID 'PPFCODE' FIELD DUMMY.
IF SY-SUBRC <> 0.
MESSAGE E000(ZZ): WITH 'You are not Authorized to run this abap'.
ENDIF.
* get rid of ACHIVE checkbox.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ARCHIVE' OR
SCREEN-NAME = '%_ARCHIVE_%_APP_%-TEXT'.
SCREEN-INVISIBLE = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
START-OF-SELECTION.
FIELDNAMES2-FIELD1 = 'Cost Center'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Empl Number'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Name'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Salary'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Other'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Bonus'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Commission'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'FICA'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Medicare'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'FICA/Medicare'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Federal'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'State'. .
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Local'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'SDI'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = '401K'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'United Way'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Credit Union'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Misc'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Total Deductions'.
APPEND FIELDNAMES2.
FIELDNAMES2-FIELD1 = 'Net Pay'.
APPEND FIELDNAMES2.
IF PNPTIMR9 = 'X'.
CONCATENATE PNPDISPJ PNPDISPP INTO IFPPER.
ELSE.
CONCATENATE PNPPABRJ PNPPABRP INTO IFPPER.
ENDIF.
GET PERNR.
* FIND MOLGA
RP-PROVIDE-FROM-LAST P0001 SPACE PN-BEGDA PN-ENDDA.
RP-READ-T001P P0001-WERKS P0001-BTRTL SPACE.
IF T001P-MOLGA <> MOLGA.
REJECT.
ENDIF.
CALL FUNCTION 'RP_EDIT_NAME'
EXPORTING
FORMAT = '05'
LANGU = SPACE
MOLGA = '10'
PP0002 = P0002
* PP0021 = ' '
* PP0148 = ' '
IMPORTING
EDIT_NAME = INAME
* RETCODE =
EXCEPTIONS
OTHERS = 1.
CD-KEY-PERNR = PERNR-PERNR.
* this routine gets the number of payroll results for the Employee and
* puts in internal table RGDIR
RP-IMP-C2-CU.
IF SY-SUBRC <> 0.
MESSAGE I002 WITH:'No payroll results for Employee' PERNR-PERNR.
ELSE.
* BREAK JLONGO.
LOOP AT RGDIR WHERE FPPER = IFPPER AND
ABKRS = PNPXABKR AND
SRTZA = 'A'."INPER = IFPPER.
* fill the key to read payroll results from cluster 2
RX-KEY-PERNR = PERNR-PERNR.
UNPACK RGDIR-SEQNR TO RX-KEY-SEQNO.
* this routine gets the payroll results.
RP-IMP-C2-RU.
IF RP-IMP-RU-SUBRC <> 0.
REJECT.
ENDIF.
READ TABLE WPBP INDEX 1.
IF WPBP-KOSTL IN CCENTER.
REPORT-KOSTL = WPBP-KOSTL.
ELSE.
CLEAR REPORT.
CONTINUE.
ENDIF.
LOOP AT RT." WHERE "LGART."N WAGETY01."D CUMTY IN CUMTY.
REPORT-PERNR = PERNR-PERNR.
REPORT-ENMAE = INAME. " LIKE P0001-ORGEH,
* REPORT-MOLGA = T001P-MOLGA.
CASE RT-LGART.
WHEN '0002' OR '0003' OR '0020' OR '0025'.
REPORT-SALARY = REPORT-SALARY + RT-BETRG.
WHEN '1020'.
REPORT-COMMIS = RT-BETRG.
WHEN '/403'.
REPORT-FICA = RT-BETRG.
REPORT-FI_MED = REPORT-FI_MED + REPORT-FICA.
WHEN '/405'.
REPORT-MEDICA = RT-BETRG.
REPORT-FI_MED = REPORT-FI_MED + REPORT-MEDICA.
WHEN '/401'.
IF RT-CNTR1 = '01'.
REPORT-FEDERA = RT-BETRG.
ELSEIF RT-CNTR1 = '02'.
REPORT-STATE = RT-BETRG.
ELSEIF RT-CNTR1 = '03'.
REPORT-LOCAL = RT-BETRG.
ENDIF.
WHEN '/441'.
REPORT-SDI = RT-BETRG.
WHEN '4000' OR '4001'.
REPORT-401K = REPORT-401K + RT-BETRG.
WHEN '4600' OR '4610' OR '4620' OR '4630'.
REPORT-UNITED = REPORT-UNITED + RT-BETRG.
WHEN '7500' OR '7510' OR '7520' OR '7525' OR '7530'.
REPORT-CU = REPORT-CU + RT-BETRG.
WHEN '/110'.
REPORT-TOTAL = RT-BETRG.
WHEN '/560'.
REPORT-NET = RT-BETRG.
WHEN '0040' OR '0050' OR '0060' OR '1000' OR '1010' OR
'1030' OR '1040' OR '1042' OR '1050' OR '1051' OR
'1060' OR '1070' OR '1080' OR '1160'.
REPORT-OTHER = REPORT-OTHER + RT-BETRG.
ENDCASE.
IF RT-LGART BETWEEN '1120' AND '1132'.
REPORT-BONUS = RT-BETRG.
ENDIF.
ENDLOOP.
REPORT-MISC = REPORT-TOTAL - ( REPORT-CU + REPORT-UNITED +
REPORT-401K ).
APPEND REPORT.
CLEAR REPORT.
ENDLOOP.
ENDIF.
END-OF-SELECTION.
CHECK FILENAME <> ' '.
CALL FUNCTION 'HR_DISPLAY_BASIC_LIST'
EXPORTING
BASIC_LIST_TITLE = 'Payroll results'
FILE_NAME = FILENAME
HEAD_LINE1 = FILENAME
TABLES
DATA_TAB = REPORT
FIELDNAME_TAB = FIELDNAMES2
* SELECT_TAB =
* ERROR_TAB =
EXCEPTIONS
DOWNLOAD_PROBLEM = 1
NO_DATA_TAB_ENTIRIES = 2
TABLE_MISMATCH = 3
PRINT_PROBLEMS = 4
OTHERS = 5.
*---------------------------------------------------------------------*
* FORM 8000_GET_CC *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> ORGUNIT *
*---------------------------------------------------------------------*
FORM 8000_GET_CC USING ORGUNIT.
CALL FUNCTION 'READ_INTEGRATION_ORGUNIT'
EXPORTING
OBJID = ORGUNIT
BEGDA = SY-DATUM
ENDDA = SY-DATUM
IMPORTING
* ORGUNIT_BEGDA =
* ORGUNIT_ENDDA =
ORGUNIT_SHORT = ORG_TEXT
* ORGUNIT_STEXT =
EXCEPTIONS
ORGUNIT_NOT_FOUND = 1
NO_INTEGRATION = 2
OTHERS = 3.
ENDFORM.what about this ...
Regards
vijay
‎2006 Jun 14 10:24 AM
Hi, Vijay
My code more or less same as the code that you posted. My report also loop at the rt. But when i display into ALV list, the value for wage-type not showing in the proper format. For example for currency IDR instead of showing 15,500,000 (Right Figure) its show 155,000.00 (Wrong figure)....
Thanks
‎2006 Jun 14 10:34 AM
Go to Systems - > User Profile - > Own data - > Default Tab
check the format for the Decimal Notation.It is same as you want or different.
‎2006 Jun 14 10:37 AM
Hi,
you need to check use settings. you need to take care of it.
Regards
vijay
‎2006 Jun 14 10:44 AM
‎2006 Jun 14 11:08 AM
Sorry, it is USER settings, you can check it using the transaction <b>SU01</b>.
Regards
vijay
‎2006 Jun 14 11:38 AM
Hi, vijay
thanks for the reply, i just go to transaction SU01, but i cannot find any related field to the currency.
The value display in the ALV is correct only wrong format..... its just like if we use
WRITE : / intab-betrg without using CURRENCY......