HR Report from infotype 0014

Hi all,
I have to make an HR report - using ALV preferrably - from infotype no 0014. The report should contain the following fields:
emp no., empname, designation, emp sub group, wage type, amount and start date.
Please let me know how to go about it? Do I have to use the provide statiment?
Which logical database should I use - PNP or PNPCE?
Please give some sample code.
Thanks

Hi,
Create a program and attache the PNP logical database and create the program as per the attached program.
report zporgr0030
       line-size 193
       line-count 60(1)
       no standard page heading
       message-id zndc.
Database Tables
tables:    pernr,    " Logical PNP
           t001p,    " Personnel Subarea
           t005t,    " Country Descriptions
           t500p,    " Personnel Area
           t501,     " Employee Group
           t503k,    " Employee Subgroup
           csks,     " Cost Centers
           cskt,     " Cost Center Texts
           t513c,    " Job (Previous) Texts
           t513s,    " Job Titles
           t517t,    " Edn Est.Text
           t518b,    " Discipline Text
           t519t,    " Certificate Text
           t528t,    " Positions Texts
           t538t,    " Unit Text
           pa0003.   " Payroll Status
infotypes:
           0000,   " Actions
           0001,   " Organizational Assignment
           0002,   " Personal Data
           0007,   " Planned working time
           0008,   " Payroll Data
           0022,   " Education Data
           0023,   " Previous Employer data
           0025,   " Performance Appraisal Data
           0041,   " Date Spcifications
           2001.   " Absences
Declaration of Internal Tables
Internal Table for Personal Data
data: begin of pers_tab occurs 0,
        pernr like pa0001-pernr,      " Personal Number
        ename like pa0001-ename,      " Employee Name
        trfgr like pa0008-trfgr,      " Grade
        natio like pa0002-natio,      " Nationality
        hdate like pa0041-dat01,      " Hire Date
        gbdat like pa0002-gbdat,      " Birth Date
        plans like pa0001-plans,      " Position
        werks like pa0001-werks,      " Pers.Area
        kostl like pa0001-kostl,      " Cost Center
        ctext(40),                    " Cost Center Text
        ptext(25),                    " Position Text
        ntext(15),                    " Nation Text
        name1(23),                    " Location
      end of pers_tab.
Internal Table for Payroll Data
data: begin of pay_tab occurs 0,
        pernr like pa0008-pernr,      " Personal Number
        waers like pbwla-waers,       " Grade
        basic like pa0008-bet01,      " Basic Pay
        hra_allow like pa0008-bet01,  " Housing Allowance
        sup_allow like pa0008-bet01,  " Supp. Allowance
        soc_allow like pa0008-bet01,  " Social Allowance
        chl_allow like pa0008-bet01,  " Child Allowance
        fix_allow like pa0008-bet01,  " Fixed Overtime
        ra_allow  like pa0008-bet01,  " RA Allowance
        per_allow like pa0008-bet01,  " Perform. Allowance
        pen_allow like pa0008-bet01,  " Pension Allowance
        oth_allow like pa0008-bet01,  " Other Allowances
        tot_allow like pa0008-bet01,  " Total Allowances
      end of pay_tab.
Internal Table for Educational Data
data: begin of edn_tab occurs 0,
        pernr like pa0022-pernr,      " Personal Number
        ausbi like pa0022-ausbi,      " Discipline Name
        slart like pa0022-slart,      " Edn Establishment
        insti like pa0022-insti,      " Institute
        sland like pa0022-sland,      " Country
        slabs like pa0022-slabs,      " Certificate
        anzkl like pa0022-anzkl,      " Duration
        anzeh like pa0022-anzeh,      " Unit for Duration
        atext like t518b-atext,       " Discipline Text
        stext like t517t-stext,       " Edn Est.Text
        landx like t005t-landx,       " Country Text
        ctext like t519t-stext,       " Certificate Text
        etext like t538t-etext,       " Unit Text
      end of edn_tab.
Internal Table for Previous Employment Data
data: begin of pemp_tab occurs 0,
        pernr like pa0023-pernr,      " Personal Number
        arbgb like pa0023-arbgb,      " Previous Employer
        begda like pa0023-begda,      " Start Date
        endda like pa0023-endda,      " End Date
        taete like pa0023-taete,      " Last Position
        land1 like pa0023-land1,      " Country
        stltx like t513s-stltx,       " Position Text
        landx like t005t-landx,       " Country Text
      end of pemp_tab.
Internal Table for Job History Data
data: begin of job_tab occurs 0,
        pernr like pa0001-pernr,      " Personal Number
        begda like pa0001-begda,      " Promotion Date
        plans like pa0001-plans,      " Position
        stell like pa0001-stell,      " Job Key
        stltx like t513s-stltx,       " Job Text
        ptext like t528t-plstx,       " Position Text
      end of job_tab.
Internal Table for Performance Appraisal Data
data: begin of app_tab occurs 0,
        pernr like pa0001-pernr,       " Personal Number
        year(4) type     c,            " Current Year
        appr(35) type    c,            " C Y Appraisal
       year1(4) type    c,            " Last Year
       appr1(35) type   c,            " Last Year Appraisal
       year2(4) type    c,
       appr2(35) type   c,
       year3(4) type    c,
       appr3(35) type   c,
       year4(4) type    c,
       appr4(35) type   c,
      end of app_tab.
Internal Table for Performance Appraisal Data
data: begin of app1_tab occurs 0,
        year(4) type     c,            " Year
        appr(35) type    c,            " Appraisal
      end of app1_tab.
Internal Table to get the Payroll Amounts
data  wage_tab like pbwla occurs 0 with header line.
Internal table for retreiving Employee Appraisals
data  app_in_tab  like hrsobid occurs 0 with header line .
data  app_out_tab like hrpe_profa  occurs 0 with header line .
Declaration of Variables
data : v_year(4)  type c,
       v_ayear(4) type c,
       v_cyear(4) type c,
       v_year1(4) type c,
       v_year2(4) type c,
       v_year3(4) type c,
       v_year4(4) type c,
       v_year5(4) type c,
       v_year6(4) type c,
       v_mon(2)   type c,
       v_date2  like sy-datum,
       v_date3  like sy-datum,
       v_date   like sy-datum,
       v_date1  like sy-datum.
Declaration of Constants
constants : c_x       type c value 'X',              " Sign
            c_pernr(8) type n value '00000000',      " Pernr
            c_p   like hrp1007-otype  value 'P',     " Object Type
            c_01  like hrp1001-plvar  value '01',    " Version
            c_val1(2) type c value '31',             " Date Type
            c_val2(2) type c value '12',             " Date Type
            c_val    like p0041-dar01 value '01',    " Date Type
            c_1      like pernr-persg value '1',     " Emp Group
            c_type   like hrp1001-otype  value 'S',  " Object Type
            c_date1  like sy-datum value '18000101', " Date
            c_date2  like sy-datum value '99991231', " Date
            c_lga01 like pa0008-lga01 value '0101',  " Wage Type
            c_lga02 like pa0008-lga01 value '0102',  " Wage Type
            c_lga03 like pa0008-lga01 value '0103',  " Wage Type
            c_lga04 like pa0008-lga01 value '0105',  " Wage Type
            c_lga05 like pa0008-lga01 value '0109',  " Wage Type
            c_lga06 like pa0008-lga01 value '0110',  " Wage Type
            c_lga07 like pa0008-lga01 value '0114',  " Wage Type
            c_lga08 like pa0008-lga01 value '0116',  " Wage Type
            c_lga09 like pa0008-lga01 value '0267',  " Wage Type
            c_kokrs  like cskt-kokrs value '1000'.   " Controlling Area
Selection Screen
selection-screen begin of block b1 with frame title text-003.
selection-screen begin of line.
selection-screen comment 1(33)   text-060.
parameters: r_all radiobutton group rb1.
selection-screen end of line.
selection-screen begin of line.
selection-screen comment 1(33)   text-020.
parameters: r_per radiobutton group rb1.
selection-screen end of line.
selection-screen begin of line.
selection-screen comment 1(33)   text-021.
parameters: r_pay radiobutton group rb1.
selection-screen end of line.
selection-screen begin of line.
selection-screen comment 1(33)   text-022.
parameters: r_edn radiobutton group rb1.
selection-screen end of line.
selection-screen begin of line.
selection-screen comment 1(33)   text-023.
parameters: r_pemp radiobutton group rb1.
selection-screen end of line.
selection-screen begin of line.
selection-screen comment 1(33)   text-024.
parameters: r_job radiobutton group rb1.
selection-screen end of line.
selection-screen begin of line.
selection-screen comment 1(33)   text-025.
parameters: r_app radiobutton group rb1.
selection-screen end of line.
selection-screen end of block b1.
At selection-screen
at selection-screen.
Validate the Selection Screen fields
  perform validate_screen.
Start-of-Selection
start-of-selection.
Selection of Period
  perform get_period.
Get PERNR from LDB
get pernr.
  if pernr-persg eq c_1 or pernr-pernr ne c_pernr.
    if r_all eq c_x.
Get the Personal data from PA0001,PA0002, PA0008, PA0041
      perform get_pers_data.
Get the Payroll data from PA0008
      perform get_pay_data.
Get the Education data from PA0022
      perform get_edn_data.
Get the Previous Employment data from PA0023
      perform get_pemp_data.
Get the Job History data
      perform get_job_data.
Get the Performance Appraisal data
      perform get_app_data.
    elseif r_per eq c_x.
Get the Personal data from PA0001,PA0002, PA0008, PA0041
      perform get_pers_data.
    elseif r_pay eq c_x.
Get the Payroll data from PA0008
      perform get_pay_data.
    elseif r_edn eq c_x.
Get the Education data from PA0022
      perform get_edn_data.
    elseif r_pemp eq c_x.
Get the Previous Employment data from PA0023
      perform get_pemp_data.
    elseif r_job eq c_x.
Get the Job History data
      perform get_job_data.
    elseif r_app eq c_x.
Get the Performance Appraisal data
      perform get_app_data.
    endif.
  endif.
Top-of-page
top-of-page.
Write the Report and Column Headings
  perform top_of_page.
End-of-Page
end-of-page.
  perform end_of_page.
End-of-Selection
end-of-selection.
Display the Output Report.
  perform display_report.
Form-Routines
*&      Form  validate_screen
Validation of selection Screen fields
form validate_screen.
Validation of Personnel Number
  clear pa0003.
  if not pnppernr[] is initial.
    select pernr
    from pa0003 up to 1 rows
      into pa0003-pernr
      where pernr in pnppernr.
    endselect.
    if sy-subrc <> 0.
      message e999 with 'Incorrect Personnel Number Entered'(001).
    endif.
  endif.
Validation of Cost Center
  clear csks.
  if not pnpkostl[] is initial.
    select single kostl
      into csks-kostl
      from csks
      where kostl in pnpkostl.
    if sy-subrc <> 0.
      message e999 with 'Invalid Cost Center'(002).
    endif.
  endif.
Validation of Personnel Area
  clear t500p.
  if not pnpwerks[] is initial.
    select persa
    from t500p up to 1 rows
      into t500p-persa
      where persa in pnpwerks.
    endselect.
    if sy-subrc <> 0.
      message e999 with 'Incorrect Personnel Area Entered'(004).
    endif.
  endif.
Validation of Personnel Sub Area
  clear t001p.
  if not pnpbtrtl[] is initial.
    select btrtl
    from t001p up to 1 rows
      into t001p-btrtl
      where btrtl in pnpbtrtl.
    endselect.
    if sy-subrc <> 0.
      message e999 with 'Incorrect Personnel Sub Area Entered'(005).
    endif.
  endif.
Validation of Employee Group
  clear t501.
  if not pnppersg[] is initial.
    select persg
    from t501 up to 1 rows
      into t501-persg
      where persg in pnppersg.
    endselect.
    if sy-subrc <> 0.
      message e999 with 'Incorrect Employee Group Entered'(006).
    endif.
  endif.
Validation of Employee Sub Group
  clear t503k.
  if not pnppersk[] is initial.
    select persk
    from t503k up to 1 rows
      into t503k-persk
      where persk in pnppersk.
    endselect.
    if sy-subrc <> 0.
      message e999 with 'Incorrect Employee Sub Group Entered'(007).
    endif.
  endif.
endform.                  "validate_screen
*&      Form  get_period
Get the Correct Period based on Selection screen selection
form get_period.
  clear: v_year,v_mon, v_date, v_date1.
  v_year = sy-datum+0(4).
  v_mon  = sy-datum+4(2).
  if pnptimr1 = c_x.      " Current Date
    pnpbegda = sy-datum.
    pnpendda = sy-datum.
  elseif pnptimr2 = c_x.  " Current Month
    concatenate v_year v_mon c_val into v_date.
    concatenate v_year v_mon c_val1 into v_date1.
    pnpbegda = v_date.
    pnpendda = v_date1.
  elseif pnptimr3 = c_x.  " Current Year
    concatenate v_year c_val c_val into v_date.
    concatenate v_year c_val2 c_val1 into v_date1.
    pnpbegda = v_date.
    pnpendda = v_date1.
  elseif pnptimr4 = c_x.  " Upto Today
    pnpbegda = c_date1.
    pnpendda = sy-datum.
  elseif pnptimr5 = c_x.  " From Today
    pnpbegda = sy-datum.
    pnpendda = c_date2.
  else.
    if ( pnpbegda is initial and pnpendda is initial ).
      pnpbegda = c_date1.
      pnpendda = c_date2.
    elseif pnpbegda is initial and not pnpendda is initial.
      pnpbegda = c_date1.
      pnpendda = pnpendda.
    elseif not ( pnpbegda is initial and pnpendda is initial ).
      pnpbegda = pnpbegda.
      pnpendda = pnpendda.
    endif.
  endif.
endform.              "get_period
*&      Form  get_pers_data
Get the Personal Data from PA0001,PA0002,PA0008, PA0041
form get_pers_data.
Get data from Respective Infotypes
  rp_provide_from_last p0001 space pnpbegda pnpendda.
  rp_provide_from_last p0002 space pnpbegda pnpendda.
  rp_provide_from_last p0008 space pnpbegda pnpendda.
  rp_provide_from_last p0041 space pnpbegda pnpendda.
  pers_tab-pernr    = p0001-pernr.
  pers_tab-ename    = p0001-ename.
  pers_tab-werks    = p0001-werks.
  pers_tab-plans    = p0001-plans.
  pers_tab-kostl    = p0001-kostl.
  pers_tab-gbdat    = p0002-gbdat.
  pers_tab-trfgr    = p0008-trfgr.
Get the Engaged Date
  read table p0041 with key dar01 = c_val.
  if sy-subrc = 0.
    pers_tab-hdate = p0041-dat01.
  endif.
Get the Cost Center Text
  clear cskt-ltext.
  select single ltext into cskt-ltext from cskt
          where spras = sy-langu and
                kokrs = c_kokrs and
                kostl = p0001-kostl.
  if sy-subrc = 0.
    pers_tab-ctext = cskt-ltext.
  endif.
Get the Position Text
  clear t528t-plstx.
  select single plstx into t528t-plstx from t528t
          where plans = p0001-plans and
                otype = c_type and
                sprsl = sy-langu.
  if sy-subrc = 0.
    pers_tab-ptext = t528t-plstx.
  endif.
Get the Nationality
  clear t005t-natio.
  select single natio into t005t-natio from t005t
          where spras = sy-langu and
                land1 = p0002-natio.
  if sy-subrc = 0.
    pers_tab-ntext = t005t-natio.
  endif.
Get the Location (Personal Area) Text
  clear t500p-name1.
  select single name1 into t500p-name1 from t500p
          where persa = p0001-werks.
  if sy-subrc = 0.
    pers_tab-name1 = t500p-name1.
  endif.
  append pers_tab.
  clear pers_tab.
  sort pers_tab by pernr.
endform.          "get_pers_data
*&      Form  get_pay_data
Get the Payroll Data from Infotype 0008
form get_pay_data.
Get the Payroll data from Respective Infotypes
  rp_provide_from_last p0008 space pnpbegda pnpendda.
  pay_tab-pernr    = pernr-pernr.
  call function 'RP_FILL_WAGE_TYPE_TABLE_EXT'
    exporting
     appli                              = 'E'
     begda                              = p0008-begda
     endda                              = p0008-endda
     infty                              = '0008'
     objps                              = '  '
     tclas                              = 'A'
     pernr                              = pernr-pernr
     seqnr                              = '   '
     subty                              = '0   '
     dlspl                              = 'X'
     msgflg                             = ''
     nordct                             = ''
    tables
      pp0001                             = p0001
      pp0007                             = p0007
      pp0008                             = p0008
      ppbwla                             = wage_tab
  PP0230                             =
  PP0014                             =
  PP0015                             =
  PP0052                             =
EXCEPTIONS
  ERROR_AT_INDIRECT_EVALUATION       = 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.
  loop at wage_tab.
    pay_tab-waers = wage_tab-waers.
    case wage_tab-lgart.
      when c_lga01.
        pay_tab-basic = wage_tab-betrg.
      when c_lga02.
        pay_tab-sup_allow = wage_tab-betrg.
      when c_lga03.
        pay_tab-hra_allow = wage_tab-betrg.
      when c_lga04.
        pay_tab-chl_allow = wage_tab-betrg.
      when c_lga05.
        pay_tab-soc_allow = wage_tab-betrg.
      when c_lga06.
        pay_tab-fix_allow = wage_tab-betrg.
      when c_lga07.
        pay_tab-ra_allow = wage_tab-betrg.
      when c_lga08.
        pay_tab-per_allow = wage_tab-betrg.
      when c_lga09.
        pay_tab-pen_allow = wage_tab-betrg.
      when others.
        pay_tab-oth_allow = pay_tab-oth_allow + wage_tab-betrg.
    endcase.
    pay_tab-tot_allow = pay_tab-basic + pay_tab-sup_allow +
                        pay_tab-hra_allow + pay_tab-chl_allow +
                        pay_tab-soc_allow + pay_tab-fix_allow +
                        pay_tab-ra_allow + pay_tab-per_allow +
                        pay_tab-oth_allow - pay_tab-pen_allow.
  endloop.
  append pay_tab.
  clear  pay_tab.
endform.          "get_pay_data
*&      Form  get_edn_data
Get the Education Data from Infotype 0022
form get_edn_data.
Get the Education data from Respective Infotypes
  loop at p0022 where pernr = pernr-pernr.
    edn_tab-pernr    = pernr-pernr.
    edn_tab-ausbi    = p0022-ausbi.
    edn_tab-slart    = p0022-slart.
    edn_tab-insti    = p0022-insti.
    edn_tab-sland    = p0022-sland.
    edn_tab-slabs    = p0022-slabs.
    edn_tab-anzkl    = p0022-anzkl.
    edn_tab-anzeh    = p0022-anzeh.
Get the Discipline Text
    clear t518b-atext.
    select single atext into t518b-atext from t518b
            where langu = sy-langu and
                  ausbi = p0022-ausbi.
    if sy-subrc = 0.
      edn_tab-atext = t518b-atext.
    endif.
Get the Edn Establishment Text
    clear t517t-stext.
    select single stext into t517t-stext from t517t
            where slart = p0022-slart and
                  sprsl = sy-langu.
    if sy-subrc = 0.
      edn_tab-stext = t517t-stext.
    endif.
Get the Certificate Text
    clear t519t-stext.
    select single stext into t519t-stext from t519t
            where slabs = p0022-slabs and
                  sprsl = sy-langu.
    if sy-subrc = 0.
      edn_tab-ctext = t519t-stext.
    endif.
Get the Unit Text
    clear t538t-etext.
    select single etext into t538t-etext from t538t
            where zeinh = p0022-anzeh and
                  sprsl = sy-langu.
    if sy-subrc = 0.
      edn_tab-etext = t538t-etext.
    endif.
Get the Country Description
    clear t005t-landx.
    select single landx into t005t-landx from t005t
            where spras = sy-langu and
                  land1 = p0022-sland.
    if sy-subrc = 0.
      edn_tab-landx = t005t-landx.
    endif.
    append edn_tab.
    clear edn_tab.
  endloop.
endform.              "edn_data
*&      Form  get_pemp_data
Get the Previous Employment Data from Infotype 0023
form get_pemp_data.
Get the Previous Employment data from Respective Infotypes
  loop at p0023 where pernr = pernr-pernr.
    pemp_tab-pernr    = pernr-pernr.
    pemp_tab-arbgb    = p0023-arbgb.
    pemp_tab-begda    = p0023-begda.
    pemp_tab-endda    = p0023-endda.
    pemp_tab-taete    = p0023-taete.
    pemp_tab-land1    = p0023-land1.
Get the Last Job Text
    clear t513c-ltext.
    select single ltext into t513c-ltext from t513c
            where taete = pemp_tab-taete and
                  spras = sy-langu.
    if sy-subrc = 0.
      pemp_tab-stltx = t513c-ltext.
    endif.
Get the Country Description
    clear t005t-landx.
    select single landx into t005t-landx from t005t
            where spras = sy-langu and
                  land1 = pemp_tab-land1.
    if sy-subrc = 0.
      pemp_tab-landx = t005t-landx.
    endif.
    append pemp_tab.
    clear pemp_tab.
  endloop.
  sort pemp_tab by pernr.
endform.              "pemp_data
*&      Form  get_job_data
Get the Job History Data from Infotype
form get_job_data.
Get the Job History data from Respective Infotypes
  loop at p0001 where pernr = pernr-pernr.
    job_tab-pernr    = pernr-pernr.
    job_tab-begda    = p0001-begda.
    job_tab-plans    = p0001-plans.
    job_tab-stell    = p0001-stell.
Get the Last Job Text
    clear t513s-stltx.
    select single stltx into t513s-stltx from t513s
            where stell = job_tab-stell and
                  sprsl = sy-langu.
    if sy-subrc = 0.
      job_tab-stltx = t513s-stltx.
    endif.
Get the Position Text
    clear t528t-plstx.
    select single plstx into t528t-plstx from t528t
            where plans = job_tab-plans and
                  otype = c_type and
                  sprsl = sy-langu.
    if sy-subrc = 0.
      job_tab-ptext = t528t-plstx.
    endif.
    append job_tab.
    clear  job_tab.
  endloop.
  sort job_tab by pernr.
endform.          "get_job_data
*&      Form  get_app_data
Get the Performance Appraisal Data from Infotype
form get_app_data.
  clear: v_cyear, v_year1, v_year2, v_year3, v_year4,
         v_year5, v_year6, v_ayear, v_date2, v_date3.
  v_cyear = sy-datum+0(4) - 1.
  v_year1 = v_cyear - 1.
  v_year2 = v_cyear - 2.
  v_year3 = v_cyear - 3.
  v_year4 = v_cyear - 4.
  v_year5 = v_cyear - 5.
  v_year6 = v_cyear - 6.
  concatenate v_cyear c_date2+4(4) into v_date2.
  concatenate v_year6 c_date1+4(4) into v_date3.
  clear: app_in_tab, app_out_tab.
  refresh: app_in_tab, app_out_tab.
  app_in_tab-plvar = c_01.
  app_in_tab-otype = c_p.
  app_in_tab-sobid = pernr-pernr.
  append app_in_tab.
Get Appraisals data from Respective Infotypes
  call function 'RHPA_APPRAISEES_APP_READ'
   exporting
     begda               =   v_date3
     endda               =   v_date2
  WITH_STEXT          = 'X'
  WITH_ADD_INFO       = 'X'
    tables
      appraisees          = app_in_tab
      appraisals          = app_out_tab
   exceptions
     no_authority        = 1
     undefined           = 2
     others              = 3
  if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  endif.
  sort app_out_tab  by sobid vbegd vendd appraisal_adate descending .
  delete adjacent duplicates from app_out_tab
            comparing  sobid vbegd vendd.
  loop at app_out_tab where appraisal_histo = 'X' .
    condense app_out_tab-appraisal_result.
    app1_tab-year = app_out_tab-vendd+0(4).
    app1_tab-appr = app_out_tab-appraisal_result_text.
    append app1_tab.
    clear app1_tab.
  endloop.
  sort app1_tab by year descending.
  loop at app1_tab.
    app_tab-pernr    = pernr-pernr.
    move-corresponding  app1_tab to app_tab.
    append app_tab.
    clear: app1_tab, app_tab.
  endloop.
  refresh app1_tab.
  sort app_tab by pernr.
  delete app_tab where year = ' ' and appr = ' ' .
endform.          "get_app_data
*&      Form  top_of_page
Write the Report and Column Headings
form top_of_page.
  skip.
  format color col_heading on.
  if r_all eq c_x.
    write: /1(193) 'NATIONAL DRILLING COMPANY'(009) centered,
           /1(193) 'Employee Details Report'(066) centered.
  elseif r_per eq c_x.
    write: /1(193) 'NATIONAL DRILLING COMPANY'(009) centered,
           /1(193) 'Employee Details - Personal Data'(010)
                                            centered.
  elseif r_pay eq c_x.
    write: /1(172) 'NATIONAL DRILLING COMPANY'(009) centered,
           /1(172) 'Employee Details - Payroll Data'(027)
                                            centered.
  elseif r_edn eq c_x.
    write: /1(172) 'NATIONAL DRILLING COMPANY'(009) centered,
           /1(172) 'Employee Details - Education Data'(028)
                                            centered.
  elseif r_pemp eq c_x.
    write: /1(97) 'NATIONAL DRILLING COMPANY'(009) centered,
          /1(97) 'Employee Details - Previous Employment Data'(029)
                                            centered.
  elseif r_job eq c_x.
    write: /1(75) 'NATIONAL DRILLING COMPANY'(009) centered,
          /1(75) 'Employee Details - Job History Data'(030)
                                            centered.
  elseif r_app eq c_x.
    write: /1(192) 'NATIONAL DRILLING COMPANY'(009) centered,
          /1(192) 'Employee Details - Performance Appraisal Data'(031)
                                            centered.
  endif.
  format color off.
  if pnptimr1 = c_x.      " Current Date
    write: /2 'Period From     :'(008), sy-datum,
                     'To:'(019), sy-datum.
  elseif pnptimr2 = c_x.  " Current Month
    write: /2 'Period From     :'(008), v_date, 'To:'(019), v_date1.
  elseif pnptimr3 = c_x.  " Current Year
    write: /2 'Period From     :'(008), v_date, 'To:'(019), v_date1.
  elseif pnptimr4 = c_x.  " Upto Today
    write: /2 'Period From     :'(008), c_date1, 'To:'(019), sy-datum.
  elseif pnptimr5 = c_x.  " From Today
    write: /2 'Period From     :'(008), sy-datum, 'To:'(019), c_date2.
  else.
    if ( pnpbegda is initial and pnpendda is initial ).
      write: /2 'Period From     :'(008), c_date1, 'To:'(019), c_date2.
    elseif pnpbegda is initial and not pnpendda is initial.
      write: /2 'Period From     :'(008), c_date1, 'To:'(019), pnpendda.
    elseif not ( pnpbegda is initial and pnpendda is initial ).
      write: /2 'Period From     :'(008), pnpbegda,
               'To:'(019), pnpendda.
    endif.
  endif.
  if not ( r_pemp eq c_x or r_job eq c_x ).
    write: 140 'Report Run Date:'(073), sy-datum.
    if not pnpkostl[] is initial.
      if pnpkostl-high is initial.
        write: /2 'Cost Center     :'(074), pnpkostl-low,
              125 'Time           :'(075), sy-uzeit.
      else.
        write: /2 'Cost Center From:'(076), pnpkostl-low+7(3),
                                  'To:'(019), pnpkostl-high,
              140 'Time           :'(075), sy-uzeit.
      endif.
    else.
      write: /140  'Time           :'(075), sy-uzeit.
    endif.
    if not pnppernr[] is initial.
      if pnppernr-high is initial.
        write: /2 'Personal Number :'(077), pnppernr-low,
               140 'User           :'(078), sy-uname.
      else.
        write: /2 'Personal No.From:'(079),  pnppernr-low,
                                  'To:'(019), pnppernr-high,
               140 'User           :'(078), sy-uname.
      endif.
    else.
      write: /140 'User           :'(078), sy-uname.
    endif.
    write: /140 'Page No        :'(080), sy-pagno.
  else.
    write: 48 'Report Run Date:'(073), sy-datum.
    if not pnpkostl[] is initial.
      if pnpkostl-high is initial.
        write: /2 'Cost Center     :'(074), pnpkostl-low,
              48 'Time           :'(075), sy-uzeit.
      else.
        write: /2 'Cost Center From:'(076), pnpkostl-low+7(3),
                                  'To:'(019), pnpkostl-high,
              48 'Time           :'(075), sy-uzeit.
      endif.
    else.
      write: /48  'Time           :'(075), sy-uzeit.
    endif.
    if not pnppernr[] is initial.
      if pnppernr-high is initial.
        write: /2 'Personal Number :'(077), pnppernr-low,
               48 'User           :'(078), sy-uname.
      else.
        write: /2 'Personal No.From:'(079),  pnppernr-low,
                                  'To:'(019), pnppernr-high,
               48 'User           :'(078), sy-uname.
      endif.
    else.
      write: /48 'User           :'(078), sy-uname.
    endif.
    write: /48 'Page No        :'(080), sy-pagno.
  endif.
  skip.
  if r_per eq c_x.
    write /1(193) sy-uline.
    format color col_heading on.
    write:/1 sy-vline,  2(10) 'Employee #'(011),
          12 sy-vline, 13(40) 'Name'(012) centered,
          53 sy-vline, 54(8)  'Grade'(013) centered,
          62 sy-vline, 63(15) 'Nationality'(017) centered,
          78 sy-vline, 79(10) 'Eng.Date'(014) centered,
          89 sy-vline, 90(10) 'Birth Date'(016) centered,
         100 sy-vline,101(25) 'Location'(026) centered,
         126 sy-vline,127(25) 'Position'(015) centered,
         152 sy-vline,153(40) 'Division'(018) centered,
         193 sy-vline.
    format color off.
    write /1(193) sy-uline.
  elseif r_pay eq c_x.
    write /1(188) sy-uline.
    format color col_heading on.
    write:/1 sy-vline,  2(10) 'Employee #'(011),
          12 sy-vline, 13(15) 'Basic'(033) centered,
          28 sy-vline, 29(15) 'Housing Allow.'(034) centered,
          44 sy-vline, 45(15) 'Sup.Allow.'(035) centered,
          60 sy-vline, 61(15) 'Social Allow.'(036) centered,
          76 sy-vline, 77(15) 'Child Allow.'(037) centered,
          92 sy-vline, 93(15) 'Fixed Overtime'(038) centered,
         108 sy-vline,109(15) 'R.A.Allow.'(041) centered,
         124 sy-vline,125(15) 'Perform.Allow.'(039) centered,
         140 sy-vline,141(15) 'Pension.Allow.'(059) centered,
         156 sy-vline,157(15) 'Others'(040) centered,
         172 sy-vline,173(15) 'Total'(042) centered,
         188 sy-vline.
    format color off.
    write /1(188) sy-uline.
  elseif r_edn eq c_x.
    write /1(172) sy-uline.
    format color col_heading on.
    write:/1 sy-vline,  2(10) 'Employee #'(011),
          12 sy-vline, 13(25) 'Discipline'(043) centered,
          38 sy-vline, 39(20) 'Edu.Establishment'(044) centered,
          59 sy-vline, 60(45) 'Institute'(045) centered,
         105 sy-vline,106(15) 'Country'(046) centered,
         121 sy-vline,122(30) 'Certificate'(047) centered,
         152 sy-vline,153(19) 'Duration of Course'(048) centered,
         172 sy-vline.
    format color off.
    write /1(172) sy-uline.
  elseif r_pemp eq c_x.
    write /1(97) sy-uline.
    format color col_heading on.
    write:/1 sy-vline, 12 sy-vline,
          33 sy-vline, 34(21) 'Employment Period'(055) centered,
          55 sy-vline, 81 sy-vline,
          97 sy-vline.
    write:/1 sy-vline,  2(10) 'Employee #'(011),
          12 sy-vline, 13(20) 'Employer'(049) centered,
          33 sy-vline, 34(10) 'From'(050) centered,
          44 sy-vline, 45(10) 'To'(051) centered,
          55 sy-vline, 56(25) 'Last Position'(052) centered,
          81 sy-vline, 82(15) 'Country'(053) centered,
          97 sy-vline.
    format color off.
    write /1(97) sy-uline.
  elseif r_job eq c_x.
    write /1(75) sy-uline.
    format color col_heading on.
    write:/1 sy-vline,
          12 sy-vline,13(10) 'Date of'(054) centered,
          23 sy-vline,49 sy-vline,
          75 sy-vline.
    write:/1 sy-vline,2(10)  'Employee #'(011),
          12 sy-vline,13(10) 'Upgrading/'(058) centered,
          23 sy-vline,24(25) 'Position'(015) centered,
          49 sy-vline,50(25) 'Job'(056) centered,
          75 sy-vline.
    write:/1 sy-vline, 12 sy-vline,
          13(10) 'Promotion'(057) centered,
          23 sy-vline, 49 sy-vline,
          75 sy-vline.
    format color off.
    write /1(75) sy-uline.
  elseif r_app eq c_x.
    format color col_heading on.
     write: /1 sy-vline,2(56) sy-uline, 58 sy-vline,
            /1 sy-vline, 2(56) text-025 centered color 3, 58 sy-vline.
     write /1(58) sy-uline.
     format color col_heading on.
     write:/1 sy-vline,  2(10) 'Employee #'(011),
           12 sy-vline, 13(4)  'Year'(067),
           17 sy-vline, 18(40) 'Appraisal Text'(068) centered,
           58 sy-vline.
    format color off.
    write /1(58) sy-uline.
  endif.
endform.               "top_of_page
*&      Form  end_of_page
Write the Page footers
form end_of_page.
  if r_per eq c_x.
    write : /(193) sy-uline.
  elseif r_pay eq c_x.
    write : /(188) sy-uline.
  elseif r_edn eq c_x.
    write : /(172) sy-uline.
  elseif r_pemp eq c_x.
    write /1(97) sy-uline.
  elseif r_job eq c_x.
    write /1(75) sy-uline.
  elseif r_app eq c_x.
    write /1(217) sy-uline.
  endif.
endform.               "end_of_page
*&      Form  Display_report
Write the Report Output
form display_report.
  if r_all eq c_x.
    if pers_tab[] is initial.
      message i999 with
       'No Personal Data found'(061).
    else.
      write: /1 sy-vline,2(51) sy-uline, 53 sy-vline,
             /1 sy-vline, 2(50) text-020 centered color 3, 53 sy-vline.
      write /1(193) sy-uline.
      format color col_heading on.
      write:/1 sy-vline,  2(10) 'Employee #'(011),
            12 sy-vline, 13(40) 'Name'(012) centered,
            53 sy-vline, 54(8)  'Grade'(013) centered,
            62 sy-vline, 63(15) 'Nationality'(017) centered,
            78 sy-vline, 79(10) 'Eng.Date'(014) centered,
            89 sy-vline, 90(10) 'Birth Date'(016) centered,
           100 sy-vline,101(25) 'Location'(026) centered,
           126 sy-vline,127(25) 'Position'(015) centered,
           152 sy-vline,153(40) 'Division'(018) centered,
           193 sy-vline.
      format color off.
      write /1(193) sy-uline.
      sort pers_tab by pernr.
      loop at pers_tab.
        format color col_normal.
        write:/1 sy-vline,  2(10) pers_tab-pernr,
              12 sy-vline, 13(40) pers_tab-ename,
              53 sy-vline, 56(6)  pers_tab-trfgr,
              62 sy-vline, 63(15) pers_tab-ntext,
              78 sy-vline, 79(10) pers_tab-hdate,
              89 sy-vline, 90(10) pers_tab-gbdat,
             100 sy-vline,101(25) pers_tab-name1,
             126 sy-vline,127(25) pers_tab-ptext,
             152 sy-vline,153(40) pers_tab-ctext,
             193 sy-vline.
      endloop.
      write /1(193) sy-uline.
    endif.
    skip 3.
    if pay_tab[] is initial.
      message i999 with
       'No Standard Pay Data found'(062).
    else.
      write: /1 sy-vline,2(42) sy-uline, 44 sy-vline,
             /1 sy-vline, 2(42) text-021 centered color 3, 44 sy-vline.
      format color col_heading on.
      write /1(188) sy-uline.
      write:/1 sy-vline,  2(10) 'Employee #'(011),
            12 sy-vline, 13(15) 'Basic'(033) centered,
            28 sy-vline, 29(15) 'Housing Allow.'(034) centered,
            44 sy-vline, 45(15) 'Sup.Allow.'(035) centered,
            60 sy-vline, 61(15) 'Social Allow.'(036) centered,
            76 sy-vline, 77(15) 'Child Allow.'(037) centered,
            92 sy-vline, 93(15) 'Fixed Overtime'(038) centered,
           108 sy-vline,109(15) 'R.A.Allow.'(041) centered,
           124 sy-vline,125(15) 'Perform.Allow.'(039) centered,
           140 sy-vline,141(15) 'Pension.Allow.'(059) centered,
           156 sy-vline,157(15) 'Others'(040) centered,
           172 sy-vline,173(15) 'Total'(042) centered,
           188 sy-vline.
      format color off.
      write /1(188) sy-uline.
      sort pay_tab by pernr.
      loop at pay_tab.
        format color col_normal.
        write:/1 sy-vline,  2(10) pay_tab-pernr,
              12 sy-vline,
              13(15) pay_tab-basic currency pay_tab-waers no-zero,
              28 sy-vline,
              29(15) pay_tab-hra_allow currency pay_tab-waers no-zero,
              44 sy-vline,
              45(15) pay_tab-sup_allow currency pay_tab-waers no-zero,
              60 sy-vline,
              61(15) pay_tab-soc_allow currency pay_tab-waers no-zero,
              76 sy-vline,
              77(15) pay_tab-chl_allow currency pay_tab-waers no-zero,
              92 sy-vline,
              93(15) pay_tab-fix_allow currency pay_tab-waers no-zero,
             108 sy-vline,
             109(15) pay_tab-ra_allow currency pay_tab-waers no-zero,
             124 sy-vline,
             125(15) pay_tab-per_allow currency pay_tab-waers no-zero,
             140 sy-vline.
        pay_tab-pen_allow = pay_tab-pen_allow * -1.
        write: 141(15) pay_tab-pen_allow currency pay_tab-waers no-zero,
               156 sy-vline,
               157(15) pay_tab-oth_allow currency pay_tab-waers no-zero,
               172 sy-vline,
               173(15) pay_tab-tot_allow currency pay_tab-waers no-zero,
               188 sy-vline.
      endloop.
      write /1(188) sy-uline.
    endif.

Similar Messages

  • Report from  infotype 1002

    Hi Experts
    Can anybody tell me how to report from the infotype 1002 (table HRP1002), I need the verbal description field..I hope you can help me.
    Thanks in advance.
    Best Regards.

    Hi Gabriela,
    IT1002 is having a HRT1002 (Table Part Infotype 1002) attached with it. So the value you are getting is Reference Number to Table Part (TABNR) and then you have to read HRT1002 against that TABNR adn will get the description fro the object. Also HRT1002 has TABSEQNR (Sequence Number in Table Part of Table Infotype) as the field TLINE which contains text is of 79 character length. So if the description is more then 79 characters, it will get splitted in multiple lines and you have to concatenate that to have complete description of object.
    Hope this will help.
    Best Regards
    guds

  • How to get the report to relaionship from infotype 1001.

    Hi,
    Could any one just let me know regarding how to get reports to relationship for the particular employee number from infotype 1001.
    What exactly are the aprameters involved.
    Thanks in Advance ,
    Irfan Hussain

    Hi Irfan,
    SELECT abkrs
             pernr
             ename
             gsber
             begda
             persg
             persk
             werks
             btrtl
             plans
             kostl
             orgeh
         INTO TABLE it_0001
         FROM pa0001
       loop at it_0001.
        CLEAR: l_plans, l_sobid, l_sobidx, l_pernr.
        SELECT SINGLE sobid INTO l_sobid
          FROM hrp1001
         WHERE otype = 'S'
           AND objid = it_0001-plans
           AND plvar = '01'
           AND relat = '002'
           AND endda = '99991231'.
        IF sy-subrc EQ 0.
          l_plans = l_sobid.
          SELECT SINGLE sobid INTO l_sobidx
          FROM hrp1001
         WHERE otype = 'S'
           AND objid = l_plans
           AND plvar = '01'
           AND relat = '008'
           AND endda = '99991231'.
          IF sy-subrc EQ 0.
            l_pernr = l_sobidx.
            SELECT SINGLE ename INTO <b>it_0001-repto</b>
              FROM pa0001
             WHERE pernr = l_pernr.
            IF sy-subrc EQ 0.
             MODIFY it_0001 INDEX l_index TRANSPORTING repto.
            ENDIF.
          ENDIF.
        ENDIF.
       endloop.
    Regards,
    Raj

  • HRMD_A07 Idoc to update InfoType 0014 does not delimit existing PA0014 rec

    In ECC 6.0, we are using HRMD_A07 Idoc to update infotype 0014 using update data received from a third party application. In XI, I am creating the Idoc with Update Code "U" with E1PLOGI, E1PITYP and E1P0014 segments. E1P0014 holds the data for the latest record.
    If I directly pass the Idoc thru ALE layer, It creates records for the new date range on E1P0014 segment, but does not delimit the previous record by changing its end date. This results in two records in PA0014 with end date of 12/31/9999 - which is wrong.
    I also tried using a wrapper FM to create additional segments in the Idoc representing the existing record in PA0014, with the end date being delimited to incoming record's beg. date minus 1.
    This also results in just creating two additional records in PA0014 corresponding to the two segments in Idoc while existing record in PA0014 stays intact resulting in two records with end date 12/31/9999.
    I also experimented with setting the lock indicator (PA0014-SPRPS) but that also does not result in delimiting the existing record.
    Am I missing something? Is there a piece of config that controls this?
    Regards,
    The time constraint on 0014 is "2"

    Hi Jon and Ashish,
    I too am facing the same issue that the new IDOC is not delimiting the previous record.
    Can you explain how did u get over you issue.
    I'm maintaining the same dates in E1PITYP and in E1P0014.
    Thanks,
    Jilly

  • Download data from infotypes

    Hi,
    My client wants me to download all the data in infotypes(std and custom) from production client. Then they will migrate this data to their new system. What would be the approach for downloading?
    1. Through SE16N (we are not authorized to use SE11/SE16)? But couldnt save the data to local file when we use se16n.
        even i get se11 authorization -> we can download only 64,000 records in excel. Do i need to split? or any other way?
    2. Write custom progms to download data from infotypes.
    3. Any data migration tools ?
    4. Basis can do client copy?
    Thanks!

    Hi,
    U can write a report to donwload data, but my preferde way is to use the hr toolbox (Transaction PU12), it's very simple to use .
    Here is a link to know how ti use it :
    http://shafiq.us/sap/index.php?option=com_content&view=article&id=47:hr-interface-toolbox-pu12&catid=36:pu12tutorial&Itemid=14
    i Hope it helps u.

  • Fetching data from infotype

    Hi Experts,
    I have to fetch all data from infotype 0581,can you suggest me how to do this
    in sap abap-hr.
    I am not using LDB in my report.
    Thanks&Regards
    Priyaranjan

    You can use Function module "HR_READ_INFOTYPE"

  • Change Field desription in report using Infotype

    Hi,
    I create a HR Report, using infotype's. When we execute the report, it fields description comes in unknown format...means user can't understand that.
    Please let me know From where we can change the field description of any column.
    Plz. help...

    U are Welcome!!
    If u are using alv then manually fill the field catalog and give the field names as u desire as i have done in below code...
    * Column 1 in ALV
      ls_fcat-no_out = '' .
      ls_fcat-col_pos = 1.
      ls_fcat-tabname = 'oitab'.
      ls_fcat-fieldname = 'Field 1'.
      Is_fcat-outputlen = '10'.
      ls_fcat-edit(1) = ''.
      ls_fcat-no_sum = 'X'.              "Only Output, if input then 'X'
      ls_fcat-key = 'X'.
      append ls_fcat to fieldcat.
    * Column 2 in ALV
      clear : ls_fcat.
      ls_fcat-col_pos = 2.
      ls_fcat-tabname = 'oitab'.
      ls_fcat-fieldname = 'Field 2'.
      ls_fcat-edit(1) = ''.
      ls_fcat-do_sum = 'X'.
      ls_fcat-key = ''.
      append ls_fcat to fieldcat.
    * Column 3 in ALV
    clear : ls_fcat.
    ls_fcat-col_pos = 3.
      ls_fcat-tabname = 'oitab'.
      ls_fcat-fieldname = 'Field 3'.
      ls_fcat-edit(1) = ''.
      ls_fcat-do_sum = 'X'.
      append ls_fcat to fieldcat.

  • Creating a infotype 0014 automatically in the background when 0008 changes

    Hello All-
    We have a wagetype on Infotype 0014 and when we create a record with this wagetype then it is having a balance wagetype in IT0015 so IT0015 with balance wagetype will automatically popup when we create a record in IT0014 and this is because of the the wagetype config.
    When ever IT0008 changes we want to create a new IT0014 with the wagetype in question and a new record in IT0015 also.
    But when I tried this Dynamic actions I can pass parameters to IT0014 and do it in the background, but I can not control IT0015 as this is comming automatically from the wagetype config.
    We are trying to write a custom code to achive this by BDC recording in PA userexit -> PBAS0001 but its not working. Is there any other way or any other user exit to do this??
    Thanks-
    Chakri.

    I've done this type of thing with BAdi definition HRPAD00INFTY (this is a more recent BAdi so you may need to check if it exists in your system) during the IN_UPDATE method.  In this BAdi, I check to see if I need to create a new IT0014 and if I do, I submit an external program which eventually calls the HR_MAINTAIN_MASTERDATA function after a number of complicated calculations - it's quite a few steps but it does work.
    In my case the CATS transfer into infotype 2002 which is run in background will kick off an update on IT0014 in the case of a certain time type being entered.  By keeping it in infotype 2002, it also allows our payroll group to manually add entries there as well and this process will still work.
    Hope this helps.

  • Report RPUAUD00 Infotype audit log with date & time

    Hi all,
    I want to know from where the time is captured when we execute Report RPUAUD00 Infotype audit log?
    I want to know from which fields or tables or structures?
    We want to use the same logic in a custom report.
    Your help appreciated.
    Thanks & regards,
    Vikas

    Hi,
    Infotype logs are maintained in PCL4 cluster. You can use fn modules HR_INFOTYPE_LOG_GET_LIST
    and HR_INFOTYPE_LOG_GET_DETAIL to get infotype logs.
    Thanks,
    Aravind

  • How to retrieve time data from infotypes 2001 and 2002 when we use PNPCE

    Hello Everyone,
       I am new in using PNPCE ldb.In the requirement i have to retrieve time data from infotypes 2001 and 2002 between the begda and endda.I tried using the macro RP-READ-ALL-TIME-ITY to retrieve data.But its not supporting.Can some body help me in doing this.
    THanks in Advance..
    Regards,
    Chinni.

    Hi
       Try the following code:
    REPORT  ZHRTM41.
    nodes peras.
    Tables: PERNR.
    Infotypes: 2001.
    start-of-selection.
    get peras.
    rp_read_all_time_ity pn-begda pn-endda.
    end-of-selection.
    loop at p2001.
    write:/ p2001-abwtg,p2001-stdaz.
    endloop.
        It worked for me when using PNPCE. let me know if you have any problem
    Thanks,
    V.Nagaraju

  • Error publishing reports from BW

    Hi,
    I am facing some issues while publishing reports from BW system. I have taken care of all the settings mentioned in Integration Kit guide. We are using BOXI 3.1 SP3  OS:windows 2008 (64-bit)
    The error that we are getting is:
    "0000000001 An error occurred when retrieving the role metadata for YBW_BO_CONTENT_PUBLISHER. Returned with RFC code 18 and message: See RFC trace file or SAP system log for more details"
    I have enabled the trace also, still not able to find the root cause.
    Need help urgently. Thanks.
    Amit Tewatia

    Hi Startos,
    I have matched the auth. as per the admin guide, everything is fine with the role. I have checked the trace file logs, part of which is below:
    "Starting up callback server at 10.239.30.2 sapgw00 with prog-id SEGIDC8BBB5A3
    GetRfcHandle() returned with handle 0
    Connection cloning failed. Message: See RFC trace file or SAP system log for more details
    ERROR: .\job_defs.cpp 52: l_rfcDownloadRoleMdata failed with return code l_rcRfc = 18 Exception:
    Leaving job processor CPubJobGetRoleMetaData(YBW_BO_CONTENT_PUBLISHER)"
    No idea why it calling this IP. This is not the IP of our BW server. please suggest where to check for this.
    Regards,
    Amit

  • Discoverer report from OLAP

    Hi,
    We are trying to run a doscoverer OLAP PLUS report therough a URL. The help says that we need to use the workbook ID, but in the workbook property we cannot find identifier field. The URL we are forming is as shown. Please help
    http://itlinuxdevblade18.hq.emirates.com:7778/discoverer/plus?%20%20%20&us=S243191%20%20&pw=S243191%20%20&db=itlinuxdevblade18:1521:cvu10gd%20&lm=OLAP&wb=root\Users\S243191\A1

    As regards the Forms 6i.....
    Re: Calling a Disco Report from Forms
    Greetings....
    Sim

  • Calling report from form. Need PDF output

    I am calling a report from a form using RUN_PRODUCT. I need to display the form in PDF format. When the user clicks the button in the form to run the report, acrobat reader should open up and the report displayed there. Please help.
    Thanks

    Thanks for the response. The first part worked. I am able to get the output in PDF format. In the 2nd part where I want to open acrobat and display the output, I am having some trouble with the code. When I compile, it says
    win_api_environment.read_registry must be declared. Is there some package I need to attach?
    Also, in the After reports trigger, how do I pass vFile (I am assuming this is the PDF file name)?
    Thanks
    The first thing you'll want to do is pass parameters to the report IE DESTYPE, DESNAME and DESFORMAT where these could be FILE, 'c:\temp\report' and PDF.
    Then, you can try this piece of code I wrote (with some help from other people at Metalink and here) sometime back. Now, I call it from forms, but in your case, you'd have to run it in the after report trigger. Since with RUN_PRODUCT you don't know when the report is finished, if you did it from the form, it wouldn't work correctly.
    PROCEDURE OPEN_PDF(vFile IN VARCHAR2)
    IS
    vcServerApp varchar2(40);
    vcServerTag varchar2(600);
    vcCommand varchar2(2000);
    iArgPos pls_integer;
    dummy NUMBER;
    BEGIN
    -- 1 get the Server App for .PDF files
    vcServerApp := win_api_environment.read_registry('HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\.PDF','',true);
    -- 2 get the executable
    vcServerTag := 'HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\'||
    vcServerApp||'\SHELL\OPEN\COMMAND';
    vcCommand:= win_api_environment.read_registry(vcServerTag,'',true);
    -- 3 Sort out how to specify the Filename
    iArgPos:= instr(vcCommand,'%1');
    if iArgPos = 0 then --no substitution Var on the command line
    vcCommand := vcCommand||' '||vFile;
    else
    vcCommand := substr(vcCommand,1,(iArgPos-1))||
    vFile||substr(vcCommand,(iArgPos+2));
    end if;
    -- 4 Run using Winexec (or Host if preferred).
    win_api_shell.winexec(vcCommand);
    EXCEPTION
    when no_data_found then
    abortt('Acrobat Reader was not found! Please consult with your help desk to install it and try again.','N');
    END;
    Chad
    I am calling a report from a form using RUN_PRODUCT. I need to display the form in PDF format. When the user clicks the button in the form to run the report, acrobat reader should open up and the report displayed there. Please help.
    Thanks

  • Stop the report from firing until the user clicks the Go button?

    Hi All,
    Is there a way to stop the report from firing until the user clicks the Go button? At the moment it is populating when I open the dashboard page. I found something online that said i could use the Page Options>Save Current Settings> For Others.. but even though i am signed in as an administrator i only see a For Me.. option. Also, even after setting this option i would like to be able to hit the 'Go' button to run the report and have it uncollapse the section. Is this possible?
    Thanks

    Thanks for the replies,
    In my report i am trying to constrain the report to todays data only. However the only prompt i have is for another column. If i place a filter on the date column with Year=0000 it will not change with the prompt selection and so will never return any results. Is there any other way?
    It seems wasteful to fire a request to the database onload of the page. Is there an option to only fire a request what the prompts are entered? I will be using a stored proc which needs parameters to run the request so it would be good to be able to set the report to not run until it has parameters entered
    Thanks

  • Print a report from Application Express direct to a CUPS Printer

    Hi all, I'm new to this technology, is it possible to print a report from Application Express directly to a CUPS Printer? Can someone tell me in laymans terms how to do it? I find the terminology and documentation less than helpful.

    Jeremy,
    BI Publisher handles submitting reports directly to a CUPS printer. However, the APEX integration doesn't currently integrate with that portion of BI Publisher.
    Here's an options:
    Use the Java API of BI Publisher to build a custom Java program that would do this for you. Delivering to CUPS is part of the Java API.
    Bryan

Maybe you are looking for

  • LSO Course Program Follow-Up

    Hi there, We are using Course Programs (EK) for many of our training programs.  We opted for either Course Programs or Curriculum Types but the beauty of Course Programs is it only shows learners (during follow-up) that have completed the required Co

  • Unplugged my imac by accident and unable to unmount volume for repair

    Managed to unplugged my imac yesterday without realizing it was still on. Now when trying to repair the disk I get: unable to unmount volume for repair. I tried to reinstall OS Maverick but it goes to OS X Yosemite telling me that I need to go to the

  • N8 SYSTEN ERROR

    N8 returns system error message after I did hard reset. The problem only occurs when installing some applications. Sent via computer or the device itself started. something like: "Preparing installation" and then "System error".  I tried also to use

  • HT204053 I am not getting emails

    Suddenly stopped incoming e-mails to my in box. How do I fix that?

  • Security archiving

    We turned on security archving for adapter engine in our system... And we have configured messages with S/MIME security settings. Files are getting generated in XI_SEC folder of the archive...  We were unable to read this file from Unix level and not