‎2007 Jun 11 12:54 PM
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?
‎2007 Jun 11 12:58 PM
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