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

problem when exporting to excell

Former Member
0 Likes
333

i am having a problem when i want to export my ALV report to excell. its exporting but its representing the data in haphazard manner. the items are not falling in the same column with column titles, there are columns that are being left blank in between columns that contain data, the column titles themselves are not appearing in the same row.

below is the code for the report code

REPORT zhap_wsp_tobetrained

NO STANDARD PAGE HEADING

LINE-SIZE 255.

************************************************************************

  • SYSTEM : SAP R/3 4.6C *

  • AUTHOR : Adrian Thorne *

  • DATE : 07/10/2002 *

  • TITLE : Employees to be Trained During Period *

----


  • PURPOSE: Work Place Skills Plan Report to list the *

  • number of employees in each Occupational *

  • category to be trained during period. This *

  • will normally be the levy grant year, which *

  • starts in April. *

  • METHOD : Accessed online *

  • *

************************************************************************

  • AMENDMENTS: *

  • VER DATE AUTHOR DESCRIPTION OF CHANGE *

  • --- ---- ------ ---------------------- *

  • V00 07/10/2002 A. Thorne Original version *

  • V01 08/10/2002 J. Chilton Remove Course Name *

  • V02 10/09/2003 Abe Rakgomo *

  • Decription:1.The report should display the Org Unit for all employees*

  • A selection checkbox needs to be added next to the field *

  • "Org Unit" which displays a drop-down table of all the 11*

  • Org Units and a selection icon included. *

  • 2. Include Age categories (0 - 19)(20 - 29) (30 - 39) *

  • (40 - 49))(50+) *

*RD1K920519 *

----


  • Data declaration

INCLUDE zhai_wsp_tobetrained_top.

INCLUDE zhai_equity.

data: va_short like hrp1000-short,

va_offset(2),

va_flag.

INITIALIZATION.

PERFORM init_params.

    • Adjust default selection dates to be April 1 - March 31 one year henc

  • Adjust default selection dates to be July 1 - June 30 one year henc

  • pnpbegda(4) = sy-datum(4) + 1.

pnpbegda(4) = sy-datum(4).

  • pnpbegda+4(4) = '0401'.

pnpbegda+4(4) = '0701'.

pnpendda = pnpbegda.

pnpendda(4) = pnpbegda(4) + 1.

pnpendda = pnpendda - 1.

TOP-OF-PAGE.

PERFORM top_of_page.

  • Extract Data

START-OF-SELECTION.

  • if so_dept-low is initial.

  • perform fill_dept.

  • endif.

CLEAR iline. REFRESH iline.

  • CLEAR oline. REFRESH oline.

  • CLEAR tab. REFRESH tab.

GET pernr.

fielda = 'ILINE-'.

CLEAR iline.

CLEAR p0000.

rp-provide-from-last p0000 space pn-begda pn-endda.

CLEAR p0001.

rp-provide-from-last p0001 space pn-begda pn-endda.

CLEAR p0002.

rp-provide-from-last p0002 space pn-begda pn-endda.

CLEAR p0004.

rp-provide-from-last p0004 space pn-begda pn-endda.

CLEAR p0007.

rp-provide-from-last p0007 space pn-begda pn-endda.

CLEAR p0077.

rp-provide-from-last p0077 space pn-begda pn-endda.

*get_org_seta.

Perform get_org_seta.

*Replaced by on 10/09/2003 Abe Rakgomo

  • Get Occupational Category

select single stltx from t513s

into iline-occcat

where sprsl eq sy-langu

and stell eq p0001-stell

and endda ge p0001-begda

and begda le p0001-endda.

if sy-subrc <> 0.

iline-occcat = 'Unknown'.

endif.

  • Get Equity Inf

perform fill_equity_info .

  • Determine Age

perform determine_age_categories.

  • Get Courses To Be Attended

clear va_flag.

perform get_course.

  • get development plan history

perform get_dplan_history.

if va_flag = 'Y'.

perform load_intable.

endif.

*If No Courses where planned

if sy-subrc ne 0.

ENDIF.

  • CLEAR iline.

COLLECT iline.

END-OF-SELECTION.

  • Check if any to be printed -------------------------------------------

DESCRIBE TABLE iline LINES var-lines." Get number of lines in table

IF var-lines = 0. " Show message if no c/elements

CALL FUNCTION 'POPUP_NO_LIST'.

ENDIF.

PERFORM build_header USING header_alv[].

PERFORM setup-fieldcatalog USING gt_fieldcat[].

  • PERFORM eventtab_build USING gt_events[].

PERFORM sort_build USING gt_sort[].

PERFORM layout_build USING gs_layout.

PERFORM print_build USING gs_print.

PERFORM produce-report.

----


  • FORM setup-fieldcatalog *

----


  • ........ *

----


  • --> _FIELDCAT *

----


FORM setup-fieldcatalog USING fieldcat TYPE slist_fieldcat_alv.

DATA: ls_fieldcat TYPE slis_fieldcat_alv,

w_last_col_pos LIKE ls_fieldcat-col_pos.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'OCCCAT'.

ls_fieldcat-seltext_s = 'Occupational Category'.

ls_fieldcat-seltext_m = 'Occupational Category'.

ls_fieldcat-seltext_l = 'Occupational Category'.

ls_fieldcat-ddictxt = 'L'.

APPEND ls_fieldcat TO _fieldcat .

clear ls_fieldcat.

ls_fieldcat-fieldname = 'SETA_AREA'.

ls_fieldcat-seltext_s = 'Seta Area'.

ls_fieldcat-seltext_m = 'Seta Area'.

ls_fieldcat-seltext_l = 'Seta Area'.

ls_fieldcat-ddictxt = 'L'.

append ls_fieldcat to _fieldcat .

clear ls_fieldcat.

ls_fieldcat-fieldname = 'SETA_SUBAREA'.

ls_fieldcat-seltext_s = 'Seta SubArea'.

ls_fieldcat-seltext_m = 'Seta SubArea'.

ls_fieldcat-seltext_l = 'Seta SubArea'.

ls_fieldcat-ddictxt = 'L'.

append ls_fieldcat to _fieldcat .

  • APPEND ls_fieldcat TO _fieldcat .

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_internal_tabname = 'ILINE'

i_structure_name = 'ZEQUITY'

CHANGING

ct_fieldcat = _fieldcat.

  • Ensure columns are added to the right, find maximum column position

w_last_col_pos = 0.

loop at fieldcat into lsfieldcat.

if ls_fieldcat-col_pos > w_last_col_pos.

w_last_col_pos = ls_fieldcat-col_pos.

endif.

endloop.

ls_fieldcat-fieldname = 'M_AGE00_20'.

w_last_col_pos = w_last_col_pos + 1.

ls_fieldcat-col_pos = w_last_col_pos.

ls_fieldcat-ddictxt = 'L'.

ls_fieldcat-seltext_s = 'Male Age 0 - 20'.

ls_fieldcat-seltext_m = 'Male Age 0 - 20'.

ls_fieldcat-seltext_l = 'Male Age 0 - 20'.

append ls_fieldcat to _fieldcat .

ls_fieldcat-fieldname = 'F_AGE00_20'.

w_last_col_pos = w_last_col_pos + 1.

ls_fieldcat-col_pos = w_last_col_pos.

ls_fieldcat-ddictxt = 'L'.

ls_fieldcat-seltext_s = 'Female Age 0 - 20'.

ls_fieldcat-seltext_m = 'Female Age 0 - 20'.

ls_fieldcat-seltext_l = 'Female Age 0 - 20'.

append ls_fieldcat to _fieldcat .

ls_fieldcat-fieldname = 'M_AGE21_30'.

w_last_col_pos = w_last_col_pos + 1.

ls_fieldcat-col_pos = w_last_col_pos.

ls_fieldcat-ddictxt = 'L'.

ls_fieldcat-seltext_s = 'Male Age 21 - 30'.

ls_fieldcat-seltext_m = 'Male Age 21 - 30'.

ls_fieldcat-seltext_l = 'Male Age 21 - 30'.

append ls_fieldcat to _fieldcat .

ls_fieldcat-fieldname = 'F_AGE21_30'.

w_last_col_pos = w_last_col_pos + 1.

ls_fieldcat-col_pos = w_last_col_pos.

ls_fieldcat-ddictxt = 'L'.

ls_fieldcat-seltext_s = 'Female Age 21 - 30'.

ls_fieldcat-seltext_m = 'Female Age 21 - 30'.

ls_fieldcat-seltext_l = 'Female Age 21 - 30'.

append ls_fieldcat to _fieldcat .

ls_fieldcat-fieldname = 'M_AGE31_40'.

w_last_col_pos = w_last_col_pos + 1.

ls_fieldcat-col_pos = w_last_col_pos.

ls_fieldcat-ddictxt = 'L'.

ls_fieldcat-seltext_s = 'Male Age 31 - 40'.

ls_fieldcat-seltext_m = 'Male Age 31 - 40'.

ls_fieldcat-seltext_l = 'Male Age 31 - 40'.

append ls_fieldcat to _fieldcat .

ls_fieldcat-fieldname = 'F_AGE31_40'.

w_last_col_pos = w_last_col_pos + 1.

ls_fieldcat-col_pos = w_last_col_pos.

ls_fieldcat-ddictxt = 'L'.

ls_fieldcat-seltext_s = 'Female Age 31 - 40'.

ls_fieldcat-seltext_m = 'Female Age 31 - 40'.

ls_fieldcat-seltext_l = 'Female Age 31 - 40'.

append ls_fieldcat to _fieldcat .

ls_fieldcat-fieldname = 'M_AGE41_50'.

w_last_col_pos = w_last_col_pos + 1.

ls_fieldcat-col_pos = w_last_col_pos.

ls_fieldcat-ddictxt = 'L'.

ls_fieldcat-seltext_s = 'Male Age 41 - 50'.

ls_fieldcat-seltext_m = 'Male Age 41 - 50'.

ls_fieldcat-seltext_l = 'Male Age 41 - 50'.

append ls_fieldcat to _fieldcat .

ls_fieldcat-fieldname = 'F_AGE41_50'.

w_last_col_pos = w_last_col_pos + 1.

ls_fieldcat-col_pos = w_last_col_pos.

ls_fieldcat-ddictxt = 'L'.

ls_fieldcat-seltext_s = 'Female Age 41 - 50'.

ls_fieldcat-seltext_m = 'Female Age 41 - 50'.

ls_fieldcat-seltext_l = 'Female Age 41 - 50'.

append ls_fieldcat to _fieldcat .

ls_fieldcat-fieldname = 'M_AGE51_99'.

w_last_col_pos = w_last_col_pos + 1.

ls_fieldcat-col_pos = w_last_col_pos.

ls_fieldcat-ddictxt = 'L'.

ls_fieldcat-seltext_s = 'Male Age 51 + '.

ls_fieldcat-seltext_m = 'Male Age 51 + '.

ls_fieldcat-seltext_l = 'Male Age 51 + '.

append ls_fieldcat to _fieldcat .

ls_fieldcat-fieldname = 'F_AGE51_99'.

w_last_col_pos = w_last_col_pos + 1.

ls_fieldcat-col_pos = w_last_col_pos.

ls_fieldcat-ddictxt = 'L'.

ls_fieldcat-seltext_s = 'Female Age 51 + '.

ls_fieldcat-seltext_m = 'Female Age 51 + '.

ls_fieldcat-seltext_l = 'Female Age 51 + '.

append ls_fieldcat to _fieldcat .

LOOP AT fieldcat INTO lsfieldcat.

CASE ls_fieldcat-fieldname.

WHEN 'DIRECTORATE'.

ls_fieldcat-outputlen = '40'.

WHEN 'OCCCAT' OR 'STEXT'.

ls_fieldcat-outputlen = '35'.

WHEN OTHERS.

ls_fieldcat-outputlen = '20'.

ENDCASE.

MODIFY fieldcat FROM lsfieldcat.

ENDLOOP.

ENDFORM. " SETUP-FIELDCATALOG

----


  • FORM sort_build *

----


  • ........ *

----


  • --> _SORT *

----


FORM sort_build USING sort TYPE slist_sortinfo_alv.

DATA: ls_sort TYPE slis_sortinfo_alv.

ls_sort-fieldname = 'OCCCAT'.

ls_sort-up = true.

APPEND ls_sort TO _sort.

ls_sort-fieldname = 'SETA_AREA'.

ls_sort-up = true.

APPEND ls_sort TO _sort.

ENDFORM. " SORT_BUILD

----


  • FORM layout_build *

----


  • ........ *

----


  • --> _LAYOUT *

----


FORM layout_build USING layout TYPE slislayout_alv.

layout-noinput = true.

layout-detailtitlebar = 'Detail Title'(002).

  • IF p_dept IS INITIAL.

layout-windowtitlebar =

'Number of Employees to be Trained During Period'.

  • ENDIF.

ENDFORM. " LAYOUT_BUILD

----


  • FORM print_build *

----


  • ........ *

----


  • --> _PRINT *

----


FORM print_build USING print TYPE slisprint_alv.

print-noprint_listinfos = true.

print-nocoverpage = true.

print-noprint_selinfos = true.

ENDFORM. " PRINT_BUILD

----


  • FORM build_header *

----


  • ........ *

----


  • --> HEADERALV *

----


FORM build_header USING headeralv TYPE slis_t_listheader.

  • Main Heading

  • IF p_dept IS INITIAL.

header_alv_wa-info =

'Number of Employees to be Trained During Period'.

header_alv_wa-typ = 'H'.

APPEND header_alv_wa TO headeralv.

  • ELSE.

  • header_alv_wa-info =

  • 'Number of Employees Trained During Period Per Department'.

  • header_alv_wa-typ = 'H'.

  • APPEND header_alv_wa TO headeralv.

  • ENDIF.

  • Secondary Heading

header_alv_wa-typ = 'S'.

header_alv_wa-key = 'Validity Period'.

  • Set up appropriate title (dd Month ccyy to dd Month ccyy)

CALL FUNCTION 'Z_FORMAT_DATE'

EXPORTING

date = pn-begda

CHANGING

formdate = w_sbegda.

CALL FUNCTION 'Z_FORMAT_DATE'

EXPORTING

date = pn-endda

CHANGING

formdate = w_sendda.

IF pn-begda = pn-endda.

w_title = w_sbegda.

ELSE.

CONCATENATE w_sbegda 'to' w_sendda INTO w_title SEPARATED BY space.

ENDIF.

CONCATENATE text-t01 w_title INTO w_title SEPARATED BY space.

CONDENSE w_title.

header_alv_wa-info = w_title.

APPEND header_alv_wa TO headeralv.

LOOP AT itab.

  • New Recruits

CLEAR header_alv_wa-info.

header_alv_wa-info = itab-recruit.

CONDENSE header_alv_wa-info.

header_alv_wa-typ = 'S'.

header_alv_wa-key = 'New Recruits:'.

APPEND header_alv_wa TO headeralv.

  • Full Time

CLEAR header_alv_wa-info.

header_alv_wa-info = itab-full.

CONDENSE header_alv_wa-info.

header_alv_wa-typ = 'S'.

header_alv_wa-key = 'Full Time:'.

APPEND header_alv_wa TO headeralv.

  • part time

CLEAR header_alv_wa-info.

header_alv_wa-info = itab-part.

CONDENSE header_alv_wa-info.

header_alv_wa-typ = 'S'.

header_alv_wa-key = 'Part Time:'.

APPEND header_alv_wa TO headeralv.

ENDLOOP.

ENDFORM. " build_header

----


  • FORM TOP_OF_PAGE *

----


FORM top_of_page.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = header_alv.

ENDFORM.

----


  • FORM produce-report *

----


  • ........ *

----


FORM produce-report.

DATA: _repid LIKE sy-repid.

_repid = sy-repid.

_save = 'A'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = _repid

  • i_structure_name = 'OLINE'

i_callback_top_of_page = 'TOP_OF_PAGE'

is_layout = gs_layout

it_fieldcat = gt_fieldcat[]

i_save = _save

is_variant = _variant

it_sort = gt_sort[]

  • it_events = gt_events[]

TABLES

t_outtab = iline[].

ENDFORM. " PRODUCE-REPORT

&----


*& Form init_params

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM init_params.

p_part-low = '1'.

p_part-high = '34'.

p_part-sign = 'I'.

p_part-option = 'BT'.

APPEND p_part.

p_full-low = '35'.

p_full-high = '999'.

p_full-sign = 'I'.

p_full-option = 'BT'.

APPEND p_full.

p_hire-low = 'Z1'.

p_hire-high = 'Z2'.

p_hire-sign = 'I'.

p_hire-option = 'BT'.

APPEND p_hire.

p_hire-low = 'Z7'.

p_hire-high = 'Z8'.

p_hire-sign = 'I'.

p_hire-option = 'BT'.

APPEND p_hire.

ENDFORM. " init_params

&----


*& Form load_intable

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM load_intable.

CLEAR zequity.

MOVE-CORRESPONDING zequity TO iline.

PERFORM fill_equity_info .

perform determine_age_categories.

PERFORM fill_info.

COLLECT iline.

ENDFORM. " load_intable

&----


*& Form fill_info

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fill_info.

CLEAR itab.

IF p0007-wostd IN p_full.

itab-full = 1.

ELSEIF p0007-wostd IN p_part.

itab-part = 1.

ENDIF.

LOOP AT p0000 WHERE begda LE pn-endda

AND begda GE pn-begda

AND massn IN p_hire.

itab-recruit = 1.

EXIT.

ENDLOOP.

COLLECT itab.

ENDFORM. " fill_info

&----


*& Form f4_shlp_pernr

&----


  • text

----


  • -->P_0035 text

  • -->P_0036 text

  • -->P_0037 text

----


FORM f4_shlp_pernr USING p_retfield

p_dynprofield

p_title. "p_valuetab.

clear return.

refresh return.

call function 'F4IF_INT_TABLE_VALUE_REQUEST'

exporting

retfield = p_retfield

  • dynpprog = 'ZFIR0101_INSTALLATION_FACTS'

dynpprog = 'X'

dynpnr = '1000'

dynprofield = p_dynprofield

window_title = p_title

value_org = 'S'

tables

value_tab = it_helptab

return_tab = return

exceptions

parameter_error = 1

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

endform. " f4_shlp_pernr

&----


*& Form fill_dept

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form fill_dept.

clear: it_helptab.

refresh: it_helptab.

it_helptab-short = '01'.

it_helptab-text = 'Governance and Integration'.

append it_helptab.

it_helptab-short = '07'.

it_helptab-text = 'Governance and Integration'.

append it_helptab.

it_helptab-short = '04'.

it_helptab-text = 'Community Services'.

append it_helptab.

it_helptab-short = '09'.

it_helptab-text = 'Corporate Systems & Services'.

append it_helptab.

it_helptab-short = '02'.

it_helptab-text = 'Development & Infrastructure'.

append it_helptab.

it_helptab-short = '11'.

it_helptab-text = 'Finance Services'.

append it_helptab.

it_helptab-short = '06'.

it_helptab-text = 'Finance Services'.

append it_helptab.

it_helptab-short = '05'.

it_helptab-text = 'Internal Audit'.

append it_helptab.

it_helptab-short = '10'.

it_helptab-text = 'Governance and Integration'.

append it_helptab.

it_helptab-short = '08'.

it_helptab-text = 'Governance and Integration'.

append it_helptab.

it_helptab-short = '03'.

it_helptab-text = 'Development & Infrastructure'.

append it_helptab.

sort it_helptab by short.

endform. " fill_dept

&----


*& Form determine_age_categories

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM determine_age_categories.

call function 'RP_01C_AGE_YEARS'

exporting

i37_pernr = pernr-pernr

  • i37_keydt = pn-endda

i37_keydt = sy-datum

i37_gbdat = p0002-gbdat

importing

e37_agejj = agejj.

if agejj between 0 and 20.

if p0002-gesch = '2'.

iline-F_age00_20 = '1'.

else.

iline-M_age00_20 = '1'.

endif.

elseif agejj between 21 and 30.

if p0002-gesch = '2'.

iline-F_age21_30 = '1'.

else.

iline-M_age21_30 = '1'.

endif.

elseif agejj between 31 and 40.

if p0002-gesch = '2'.

iline-F_age31_40 = '1'.

else.

iline-M_age31_40 = '1'.

endif.

elseif agejj between 41 and 50.

if p0002-gesch = '2'.

iline-F_age41_50 = '1'.

else.

iline-M_age41_50 = '1'.

endif.

elseif agejj ge 51.

if p0002-gesch = '2'.

iline-F_age51_99 = '1'.

else.

iline-M_age51_99 = '1'.

endif.

endif.

ENDFORM. " determine_age_categories

**

&----


*& Form get_course

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_course.

clear it_persons.

refresh it_persons.

it_persons-plvar = '01'.

it_persons-otype = 'P'.

it_persons-sobid = pernr-pernr.

append it_persons.

clear it_pplans_tab.

refresh it_pplans_tab.

call function 'RHPQ_INDIVIDUAL_PLAN_READ'

EXPORTING

plvar = '01'

begda = pnpbegda

endda = '99991231'

TABLES

persons = it_persons

pplans_tab = it_pplans_tab

EXCEPTIONS

no_authority = 1

nothing_found = 2

others = 3.

if sy-subrc = 0.

endif.

ENDFORM. " get_course

&----


*& Form get_dplan_history

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_dplan_history.

call function 'RHPQ_PERSON_TO_PLAN_READ'

EXPORTING

plvar = '01'

begda = pnpbegda

endda = '99991231'

TABLES

persons = it_persons

pplans_tab = db_dplans

EXCEPTIONS

illegal_otype = 4

no_authority = 1

nothing_found = 2

others = 3.

if sy-subrc eq 0.

endif.

ENDFORM. " get_dplan_history

****

&----


*& Form get_org_seta

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_org_seta .

DATA: l_direct(50),

l_seta(50),

l_seta_sub(80),

l_org(50).

break akhan.

*CR: 577168 add seta subarea "akhan

Select single orgtx into l_org

from T527X

where ORGEH = p0001-orgeh

and SPRSL = 'EN'

and endda = '99991231'.

check sy-subrc = 0.

Select single ZZSETA_AREA ZZSETA_SUBAREA ZZORG

from ZHR_SETA_AREAS

into (l_seta, l_seta_sub, l_direct)

where ZZORG = l_org.

.

  • Select single ZORG_TEXT zseta from ZHR_SETA_AREAS

  • into (l_direct, l_seta)

  • where ORGEH = p0001-orgeh.

*

if sy-subrc = 0.

move l_direct to iline-directorate.

move l_seta to iline-seta_area.

move l_seta_sub to iline-seta_subarea.

endif.

endform. " get_org_seta

..and the includse..

----


  • INCLUDE ZHAI_WSP_TOBETRAINED_TOP *

----


  • Tables containing data -----------------------------------------------

TYPE-POOLS: slis.

CONSTANTS: gc_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.

TABLES: pernr, zequity.

INFOTYPES: 0000, 0001, 0002, 0004, 0007, 0077.

DATA found.

DATA: w_title TYPE lvc_title,

w_sbegda TYPE z_ddmonthccyy,

w_sendda TYPE z_ddmonthccyy.

DATA: agejj TYPE p.

DATA: objid LIKE hrp1001-sobid,

otype LIKE hrp1001-sclas,

begda LIKE hrp1001-begda,

endda LIKE hrp1001-endda.

  • Internal tables with fields ------------------------------------------

DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,

gs_layout TYPE slis_layout_alv,

gs_print TYPE slis_print_alv,

gt_sort TYPE slis_t_sortinfo_alv,

gt_events TYPE slis_t_event,

header_alv TYPE slis_t_listheader,

header_alv_wa TYPE slis_listheader,

_variant LIKE disvariant,

_save(1).

data: begin of it_persons occurs 0.

include structure hrsobid.

data: end of it_persons.

*Development plan

data: begin of it_pplans_tab occurs 0.

include structure hrpe_ind_dev_plan.

data: end of it_pplans_tab.

data: db_dplans like hrpe_ind_dev_plan occurs 1 with header line.

DATA: BEGIN OF var,

lines LIKE sy-tabix.

DATA: END OF var.

DATA: BEGIN OF iline OCCURS 0,

occcat LIKE dd07t-ddtext,

directorate LIKE zhaletterheader-directorate,

seta_area type zseta,

seta_subarea type ZZSETA_SUBAREA.

INCLUDE STRUCTURE zequity.

data: M_age00_20 TYPE p,

F_age00_20 TYPE p,

M_age21_30 type p,

F_age21_30 type p,

M_age31_40 type p,

F_age31_40 type p,

M_age41_50 type p,

F_age41_50 type p,

M_age51_99 type p,

F_age51_99 type p,

anzhl like zequity-bmn.

DATA: END OF iline.

DATA: BEGIN OF itab OCCURS 0,

key(10),

recruit TYPE p,

full TYPE p,

part TYPE p.

DATA: END OF itab.

DATA: true(1) TYPE c VALUE 'X',

false(1) TYPE c VALUE ' '.

  • For U Type F4 look-up help

data: begin of return occurs 0.

include structure ddshretval.

data: end of return.

data: begin of it_helptab occurs 0,

short like hrp1000-short,

text like hrp1000-stext,

end of it_helptab.

FIELD-SYMBOLS: <fldnam>.

SELECTION-SCREEN BEGIN OF BLOCK wt WITH FRAME TITLE text-001.

  • Count Course

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(31) text-004.

POSITION 31.

PARAMETERS: p_course TYPE c RADIOBUTTON GROUP rout.

SELECTION-SCREEN END OF LINE.

  • Count Employee

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(31) text-005.

POSITION 31.

PARAMETERS: p_ee TYPE c RADIOBUTTON GROUP rout.

SELECTION-SCREEN END OF LINE.

  • Blank Line

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(32) text-006.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK wt.

SELECTION-SCREEN BEGIN OF BLOCK bl00 WITH FRAME TITLE text-003.

  • Full Time Weekly Working Hours

SELECT-OPTIONS: p_full FOR p0007-wostd OBLIGATORY.

  • Part Time Weekly Working Hours

SELECT-OPTIONS: p_part FOR p0007-wostd OBLIGATORY.

  • Hiring Action

SELECT-OPTIONS: p_hire FOR p0000-massn OBLIGATORY.

SELECTION-SCREEN END OF BLOCK bl00.

#######################################

----


  • INCLUDE ZHAI_EQUITY *

----


DATA: fielda(10) VALUE 'ILINE-'.

FIELD-SYMBOLS <a>.

"test

&----


*& Form fill_equity_info

&----


  • text

----


  • -->P_0109 text

  • -->P_0110 text

----


FORM fill_equity_info.

  • Determine Ethnic Origin

CASE p0077-racky.

WHEN '01'.

fielda+6(1) = 'B'. "Black

WHEN '02'.

fielda+6(1) = 'C'. "Coloured

WHEN '03'.

fielda+6(1) = 'I'. "Indian

WHEN '04'.

fielda+6(1) = 'W'. "White

WHEN OTHERS.

fielda+6(1) = 'W'. "White

ENDCASE.

  • Determine Gender

CASE p0002-gesch.

WHEN '1'.

fielda+7(1) = 'M'. "Male

WHEN '2'.

fielda+7(1) = 'F'. "Female

WHEN OTHERS.

fielda+7(1) = 'M'. "Male

ENDCASE.

  • Determine Disability

  • IF p0004-sbart IS INITIAL.

IF p0077-DISAB is initial. "CR442696

fielda+8(1) = 'N'. "Not Disabled

ELSE.

fielda+8(1) = 'D'. "Disabled

ENDIF.

ASSIGN (fielda) TO <a>.

<a> = 1.

  • Get Total

fielda+6(1) = 'T'.

ASSIGN (fielda) TO <a>.

<a> = 1.

ENDFORM. " fill_equity_info

What might be problem?

1 REPLY 1
Read only

Former Member
0 Likes
286

Hello,

I can't able to understand ur code.

Check this code..


FORM DOWNLOAD_FILE.

  DATA: LT_TAB TYPE TABLE OF STRING.
  DATA: LR_TAB TYPE STRING,
        L_F_NETPR_VE(21) TYPE C,
        L_F_NETPR_UM(21) TYPE C,
        L_F_ERDAT_VE(10),
        L_F_ERDAT_UM(10),
        L_F_PLAN(21) TYPE C,
        L_F_IST(21) TYPE C,
        L_F_OBLIGO(21) TYPE C,
        L_F_WIP(21) TYPE C,
        LV_FILE TYPE STRING,
        L_F_COUNT TYPE I,
        L_F_DATUM(10).

  CLEAR: LT_TAB,LR_TAB.
  REFRESH: LT_TAB.

  CONCATENATE TEXT-U01 TEXT-U02 TEXT-U03 TEXT-U04 TEXT-U05
              TEXT-U07 TEXT-U08 TEXT-U09 TEXT-U10 TEXT-U11 TEXT-U12
              TEXT-U14 TEXT-U17 TEXT-U15 TEXT-U16 TEXT-U21 TEXT-U18
              TEXT-U19 TEXT-U20 INTO LR_TAB
              SEPARATED BY CON_TAB.
  APPEND LR_TAB TO LT_TAB.

  LOOP AT G_T_OUTTAB.
    CLEAR: L_F_NETPR_VE,L_F_NETPR_UM, L_F_ERDAT_VE, L_F_ERDAT_UM,
           L_F_PLAN,L_F_IST,L_F_OBLIGO.
    WRITE: G_T_OUTTAB-NETPR_VE TO L_F_NETPR_VE,
           G_T_OUTTAB-NETPR_UM TO L_F_NETPR_UM,
           G_T_OUTTAB-ERDAT_VE TO L_F_ERDAT_VE,
           G_T_OUTTAB-ERDAT_UM TO L_F_ERDAT_UM,
           G_T_OUTTAB-PLAN TO L_F_PLAN,
           G_T_OUTTAB-IST TO L_F_IST,
           G_T_OUTTAB-OBLIGO TO L_F_OBLIGO,
           G_T_OUTTAB-WIP TO L_F_WIP,
           SY-DATUM TO L_F_DATUM.
    CONCATENATE G_T_OUTTAB-PRATX G_T_OUTTAB-POSID G_T_OUTTAB-POST1
                G_T_OUTTAB-WWGBE G_T_OUTTAB-WWGFE G_T_OUTTAB-VERNA
                G_T_OUTTAB-STTXT_INT G_T_OUTTAB-STTXT_EXT
                L_F_NETPR_VE L_F_ERDAT_VE L_F_NETPR_UM L_F_ERDAT_UM
                L_F_PLAN L_F_IST L_F_OBLIGO L_F_WIP G_T_OUTTAB-VBELN_VE
                G_T_OUTTAB-VBELN_UM L_F_DATUM
                INTO LR_TAB SEPARATED BY CON_TAB.
    APPEND LR_TAB TO LT_TAB.
  ENDLOOP.

  IF PC = 'X'.
    LV_FILE = FILENAME.
    CALL FUNCTION 'GUI_DOWNLOAD'
         EXPORTING
              FILENAME                = LV_FILE
              FILETYPE                = 'ASC'
         TABLES
              DATA_TAB                = LT_TAB
         EXCEPTIONS
              FILE_WRITE_ERROR        = 1
              NO_BATCH                = 2
              GUI_REFUSE_FILETRANSFER = 3
              INVALID_TYPE            = 4
              NO_AUTHORITY            = 5
              UNKNOWN_ERROR           = 6
              HEADER_NOT_ALLOWED      = 7
              SEPARATOR_NOT_ALLOWED   = 8
              FILESIZE_NOT_ALLOWED    = 9
              HEADER_TOO_LONG         = 10
              DP_ERROR_CREATE         = 11
              DP_ERROR_SEND           = 12
              DP_ERROR_WRITE          = 13
              UNKNOWN_DP_ERROR        = 14
              ACCESS_DENIED           = 15
              DP_OUT_OF_MEMORY        = 16
              DISK_FULL               = 17
              DP_TIMEOUT              = 18
              FILE_NOT_FOUND          = 19
              DATAPROVIDER_EXCEPTION  = 20
              CONTROL_FLUSH_ERROR     = 21
              OTHERS                  = 22.
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      LEAVE PROGRAM.
    ELSE.
      DESCRIBE TABLE LT_TAB LINES L_F_COUNT.
      SUBTRACT 1 FROM L_F_COUNT.
      MESSAGE I145 WITH L_F_COUNT FILENAME.
    ENDIF.

  ELSEIF AP = 'X'.
    OPEN DATASET FILENAME FOR OUTPUT IN TEXT MODE.
    IF SY-SUBRC NE 0.
      MESSAGE S041(S9) WITH FILENAME.
      EXIT.
    ENDIF.
    LOOP AT LT_TAB INTO LR_TAB.
      TRANSFER LR_TAB TO FILENAME.
    ENDLOOP.
    IF SY-SUBRC = 0.
      CLOSE DATASET FILENAME.
      DESCRIBE TABLE LT_TAB LINES L_F_COUNT.
      SUBTRACT 1 FROM L_F_COUNT.
      MESSAGE I145 WITH L_F_COUNT FILENAME.
    ENDIF.
  ENDIF.

ENDFORM.                    " DOWNLOAD_FILE

REgards,

Vasanth