Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Function HR_DISPLAY_BASIC_LIST

Former Member
0 Likes
1,695

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.

10 REPLIES 10
Read only

Former Member
Read only

Former Member
0 Likes
1,397
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

Read only

0 Likes
1,397

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

Read only

0 Likes
1,397
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

Read only

0 Likes
1,397

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

Read only

0 Likes
1,397

Go to Systems - > User Profile - > Own data - > Default Tab

check the format for the Decimal Notation.It is same as you want or different.

Read only

0 Likes
1,397

Hi,

you need to check use settings. you need to take care of it.

Regards

vijay

Read only

0 Likes
1,397

Sorry vijay,

what do you mean by use settings ?

Thanks

Read only

0 Likes
1,397

Sorry, it is USER settings, you can check it using the transaction <b>SU01</b>.

Regards

vijay

Read only

0 Likes
1,397

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......