REUSE_ALV_GRID_DISPLAY export to exel
Hi!
I'm displaying numbers into my ALV, that works perfect but when I export the ALV to Excel with the standard button (CTRL + SHIF + F7) I get the Excel sheet but the numbers are not being displayed fine.
the scenario.
I have a column of 20 char
012345678890123456789
and the number is much more bigger than 20
Is being display as
20
instead of
20
so I have to make the collumns bigger to se the data and does not look good.
Any idea?
My field size is 20
Hi Guys!.
Sorry but didn't work!..
The thing is that I have to reduce the field lenght not do it bigger.
what I tried to say before is that i'm getting
___________________________________________________________________________20
instead of
20
or
__________20
thanks.
Similar Messages
-
I use 'numbers" to create an invoice which I previously exported(prior to recent updating) to Exel to enable me to send it to my employer. When I try to do this now I get an file extn XLSX and the number content I placed on the invoice is different ( as if the file is corrupted)...can anyone help please ?
I use 'numbers" to create an invoice which I previously exported(prior to recent updating) to Exel to enable me to send it to my employer. When I try to do this now I get an file extn XLSX and the number content I placed on the invoice is different ( as if the file is corrupted)...can anyone help please ?
-
REUSe_ALV_GRID_DISPLAY export to excel
Hi,
When the ALV output is export to excel the order of the columns changes in excel.
The columns with same header comes adjacently.
For eg: ALV output has the below columns in the order
"NAME1", "NAME2", "NAME3", "NAME2" .
When I export it to excel, the order becomes
"NAME1", "NAME2" , "NAME2", "NAME3".
How can I get the excel also in the same order as the ALV ouptut?
Regards,
Soumya.hi,
you ca do it by using function module: 'GUI_DOWNLOAD'
DATA: l_file TYPE string.
l_file = p_file.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = l_file
filetype = 'ASC'
TABLES
data_tab = t_itab1
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6.
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. " download
regards
rahul -
Export to exell-Exchange rate details
hi,
Is there any possibility that i can Export the exchange rate details in a excel report? (S_BCE_68000174 - Update Exchange Rate) or just let me know any other report or table that i get same information and export to excel
thanks
GayaniDear,
Yes use S_BCE_68000174 header menuTable view and Print. Then in next screen go to ListExport --spreadsheet.or press CRT + Shift + F7.
Regards,
R.Brahmankar -
How to use exporting prameter IT_FILTER in FM 'REUSE_ALV_GRID_DISPLAY'
Hi ALL,
Can u plz tell me what are the fields which i must pass for using IT_FILTER in FM 'REUSE_ALV_GRID_DISPLAY'.
I am passing
DATA:WT_TAB TYPE SLIS_T_FILTER_ALV ,
ws_fieldcat1 TYPE SLIS_FILTER_ALV.
ws_fieldcat1-fieldname = 'SHIP_TO'.
ws_fieldcat1-tabname = 'WT_DATA'.
ws_fieldcat1-convexit = 'ALPHA'.
APPEND ws_fieldcat1 TO WT_TAB.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_buffer_active = wc_x
i_callback_program = wv_repid
is_layout = ws_layout
it_fieldcat = wt_fieldcat
i_save = 'A'
it_events = wt_event
IT_FILTER = WT_TAB
TABLES
t_outtab = wt_data
EXCEPTIONS
program_error = 1
OTHERS = 2.
but it is giving dump.
i think we have to pass more fields while creating WT_TAB.
Plz suggest.
ThanksHi Mahesh,
Below detail is from the documentation of the 'REUSE_ALV_GRID_DISPLAY'. Check the last point.
Filter criteria for first list output
Description: Table with filter criteria
Using this parameter, you can pass on filter criteria resulting from explicitly loading a display variant in advance, for example, to list output.
This table should never be set up 'manually'.
I can suggest use FM 'REUSE_ALV_GRID_LAYOUT_INFO_GET' and check the format of the filter table.
Hope this will be useful to you!
Thanks,
Raj -
Unable to export to excel from ALV
Hi,
i was trying to display information in an ALV report and it shows up properly. however, when i click on the excel icon it is not populating the data in the spread sheet though the excel window shows up in place of the report.
any suggestions will be rewarded. i attached the code below
Regards,
ravi.
F O R M F I L L _ A L V _ D A T A
FORM fill_alv_data.
DATA: ls_fieldcat TYPE slis_fieldcat_alv,
ls_sort TYPE slis_sortinfo_alv.
CLEAR ls_fieldcat.
field catalog information
Purchase order number
ls_fieldcat-fieldname = 'EBELN'.
ls_fieldcat-datatype = 'C'.
ls_fieldcat-seltext_m = 'P.O NUMBER'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
P.O line item
ls_fieldcat-fieldname = 'EBELP'.
ls_fieldcat-datatype = 'NUMC'.
ls_fieldcat-seltext_m = 'P.O Line item'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
Doc. condition number
ls_fieldcat-fieldname = 'KNUMV'.
ls_fieldcat-datatype = 'C'.
ls_fieldcat-seltext_m = 'doc. conditon no'.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
P.O date
ls_fieldcat-fieldname = 'BEDAT'.
ls_fieldcat-datatype = 'DATS'.
ls_fieldcat-seltext_m = 'P.O date'.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
purchasing org
ls_fieldcat-fieldname = 'EKORG'.
ls_fieldcat-datatype = 'C'.
ls_fieldcat-seltext_m = 'Purchasing org.'.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
purchasing group
ls_fieldcat-fieldname = 'EKGRP'.
ls_fieldcat-datatype = 'C'.
ls_fieldcat-seltext_m = 'Purchasing group'.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
vendor number
ls_fieldcat-fieldname = 'LIFNR'.
ls_fieldcat-datatype = 'C'.
ls_fieldcat-seltext_m = 'Vendor number'.
ls_sort-subtot = 'X'.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
company code
ls_fieldcat-fieldname = 'BUKRS'.
ls_fieldcat-datatype = 'C'.
ls_fieldcat-seltext_m = 'Company code'.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
short text
ls_fieldcat-fieldname = 'TXZ01'.
ls_fieldcat-datatype = 'C'.
ls_fieldcat-seltext_m = 'Text'.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
Material group
ls_fieldcat-fieldname = 'MATKL'.
ls_fieldcat-datatype = 'C'.
ls_fieldcat-seltext_m = 'Material group'.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
order quantity
ls_fieldcat-fieldname = 'MENGE'.
ls_fieldcat-datatype = 'QUAN'.
ls_fieldcat-seltext_m = 'order quantity'.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
order unit
ls_fieldcat-fieldname = 'MEINS'.
ls_fieldcat-datatype = 'UNIT'.
ls_fieldcat-seltext_m = 'order unit'.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
Gross amount
ls_fieldcat-fieldname = 'BRTWR'.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-outputlen = '15'.
ls_fieldcat-seltext_m = 'Gross amount'.
ls_fieldcat-do_sum = 'X'.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
Discount Condition
ls_fieldcat-fieldname = 'KSCHL'.
ls_fieldcat-datatype = 'C'.
ls_fieldcat-do_sum = 'X'.
ls_fieldcat-seltext_m = 'Discount Cond.'.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
Discount amount
ls_fieldcat-fieldname = 'DISV'.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-outputlen = '15'.
ls_fieldcat-do_sum = 'X'.
ls_fieldcat-seltext_m = 'Discount amount'.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
Net amount
ls_fieldcat-fieldname = 'NETWR'.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-outputlen = '15'.
ls_fieldcat-seltext_m = 'Net amount'.
ls_fieldcat-do_sum = 'X'.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
Tax code
ls_fieldcat-fieldname = 'MWSKZ'.
ls_fieldcat-datatype = 'C'.
ls_fieldcat-seltext_m = 'Tax code'.
ls_fieldcat-do_sum = 'X'.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
Tax amount
ls_fieldcat-fieldname = 'NAVNW'.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-outputlen = '15'.
ls_fieldcat-seltext_m = 'Tax amount'.
ls_fieldcat-do_sum = 'X'.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
Striped pattern
gs_layout-zebra = 'X'.
sort by p.o number
ls_sort-fieldname = 'LIFNR'.
ls_sort-spos = 1.
ls_sort-up = 'X'.
ls_sort-subtot = 'X'.
APPEND ls_sort TO gt_sort.
ENDFORM. "fill_alv_data
F O R M A L V _ D I S P L A Y
FORM alv_display.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = 'zreport'
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
it_sort = gt_sort
it_events = gt_events[]
TABLES
t_outtab = T_PO.
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. "alv_displayHi Ravi,
Normally we dont have to write any code for getting data in ALV's Excel inplace View. It is taken by SAP itself.
Any way waht we can try is just comment
<b>it_events = gt_events[]</b>
and test whether the data is getting populated in excel.. -
ALV Grid Excel in Place using REUSE_ALV_GRID_DISPLAY
I have a ALV grid displayed in a report and i have a bunch of layouts created by various users and the layouts works fine when selected. But when I use 'Excel' (excel-in-place) button to export the grid into an excel sheet, the order of the columns are all jumbled up and not in sync with the ALV grid layout on the screen. However, when I use export to local file>excel option, the order of columns are in sync with the layout. Can any one explain why this is happening and how I can fix it ? Is there any OSS note or something that I need to apply ?
PS : I am using REUSE_ALV_GRID_DISPLAY to display the report and I am building the fieldcatalog manually
Eg :
CLEAR r_fieldcatalog.
MOVE 'TB_OUTPUT' TO r_fieldcatalog-tabname.
MOVE 'BUKRS' TO r_fieldcatalog-fieldname.
MOVE 'VBAK' TO r_fieldcatalog-ref_tabname.
MOVE 'BUKRS_VF' TO r_fieldcatalog-ref_fieldname.
MOVE text-f01 TO r_fieldcatalog-seltext_s.
MOVE text-f01 TO r_fieldcatalog-seltext_m.
MOVE text-f01 TO r_fieldcatalog-seltext_l.
add '1' to lv_col_pos .
move lv_col_pos to r_fieldcatalog-col_pos .
APPEND r_fieldcatalog TO tc_fieldcatalog.
CLEAR r_fieldcatalog.
MOVE 'TB_OUTPUT' TO r_fieldcatalog-tabname.
MOVE 'VKORG' TO r_fieldcatalog-fieldname.
MOVE 'VBAK' TO r_fieldcatalog-ref_tabname.
MOVE 'VKORG' TO r_fieldcatalog-ref_fieldname.
MOVE text-f02 TO r_fieldcatalog-seltext_s.
MOVE text-f02 TO r_fieldcatalog-seltext_m.
MOVE text-f02 TO r_fieldcatalog-seltext_l.
add '1' to lv_col_pos .
move lv_col_pos to r_fieldcatalog-col_pos .
APPEND r_fieldcatalog TO tc_fieldcatalog.
Thanks in advance,
ShareenCALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_pf_status_set = 'ALV_PF_STATUS'
i_callback_program = sy-repid
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
i_default = ' '
i_save = g_save
TABLES
t_outtab = it_tab
EXCEPTIONS
program_error = 1
OTHERS = 2.
and beneath this just put a form.as its shown.
FORM alv_pf_status USING l_alv_excl TYPE STANDARD TABLE.
SET PF-STATUS 'STANDARD_FULLSCREEN' "excluding lt_extab
OF PROGRAM 'SAPLSETB'.
ENDFORM. "alv_pf_status -
Total in REUSE_ALV_GRID_DISPLAY
Hi,
If we CHECK total option in REUSE_ALV_GRID_DISPLAY we get a total of numeric value with yellow color at the bottom.
Requirement:
Let say I have 3 line item records in the display, with 20 fields and one amount field. So I get the total of the amount field. Apart from that I want the Total number of LINE ITEMS to get displayed on that line. Is that possible . How?
Thanks in Advance.Just call Reuse_alv_list_display instead of gris. Rest of functionality is same.
*& Report ZDEMO_ALVGRID *
*& Example of a simple ALV Grid Report *
*& The basic requirement for this demo is to display a number of *
*& fields from the EKKO table. *
REPORT zdemo_alvgrid .
TABLES: ekko.
type-pools: slis. "ALV Declarations
*Data Declaration
TYPES: BEGIN OF t_ekko,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
statu TYPE ekpo-statu,
aedat TYPE ekpo-aedat,
matnr TYPE ekpo-matnr,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
netpr TYPE ekpo-netpr,
peinh TYPE ekpo-peinh,
END OF t_ekko.
DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
wa_ekko TYPE t_ekko.
*ALV data declarations
data: fieldcatalog type slis_t_fieldcat_alv with header line,
gd_tab_group type slis_t_sp_group_alv,
gd_layout type slis_layout_alv,
gd_repid like sy-repid.
*Start-of-selection.
START-OF-SELECTION.
perform data_retrieval.
perform build_fieldcatalog.
perform build_layout.
perform display_alv_report.
*& Form BUILD_FIELDCATALOG
* Build Fieldcatalog for ALV Report
form build_fieldcatalog.
* There are a number of ways to create a fieldcat.
* For the purpose of this example i will build the fieldcatalog manualy
* by populating the internal table fields individually and then
* appending the rows. This method can be the most time consuming but can
* also allow you more control of the final product.
* Beware though, you need to ensure that all fields required are
* populated. When using some of functionality available via ALV, such as
* total. You may need to provide more information than if you were
* simply displaying the result
* I.e. Field type may be required in-order for
* the 'TOTAL' function to work.
fieldcatalog-fieldname = 'EBELN'.
fieldcatalog-seltext_m = 'Purchase Order'.
fieldcatalog-col_pos = 0.
fieldcatalog-outputlen = 10.
fieldcatalog-emphasize = 'X'.
fieldcatalog-key = 'X'.
* fieldcatalog-do_sum = 'X'.
* fieldcatalog-no_zero = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'EBELP'.
fieldcatalog-seltext_m = 'PO Item'.
fieldcatalog-col_pos = 1.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'STATU'.
fieldcatalog-seltext_m = 'Status'.
fieldcatalog-col_pos = 2.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'AEDAT'.
fieldcatalog-seltext_m = 'Item change date'.
fieldcatalog-col_pos = 3.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-seltext_m = 'Material Number'.
fieldcatalog-col_pos = 4.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MENGE'.
fieldcatalog-seltext_m = 'PO quantity'.
fieldcatalog-col_pos = 5.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MEINS'.
fieldcatalog-seltext_m = 'Order Unit'.
fieldcatalog-col_pos = 6.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'NETPR'.
fieldcatalog-seltext_m = 'Net Price'.
fieldcatalog-col_pos = 7.
fieldcatalog-outputlen = 15.
fieldcatalog-do_sum = 'X' "Display column total
fieldcatalog-datatype = 'CURR'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'PEINH'.
fieldcatalog-seltext_m = 'Price Unit'.
fieldcatalog-col_pos = 8.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
endform. " BUILD_FIELDCATALOG
*& Form BUILD_LAYOUT
* Build layout for ALV grid report
form build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(201).
* gd_layout-totals_only = 'X'.
* gd_layout-f2code = 'DISP'. "Sets fcode for when double
* "click(press f2)
* gd_layout-zebra = 'X'.
* gd_layout-group_change_edit = 'X'.
* gd_layout-header_text = 'helllllo'.
endform. " BUILD_LAYOUT
*& Form DISPLAY_ALV_REPORT
* Display report using ALV grid
form display_alv_report.
gd_repid = sy-repid.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
* i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM
* i_callback_user_command = 'USER_COMMAND'
* i_grid_title = outtext
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
* it_special_groups = gd_tabgroup
* IT_EVENTS = GT_XEVENTS
i_save = 'X'
* is_variant = z_template
tables
t_outtab = it_ekko
exceptions
program_error = 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.
endform. " DISPLAY_ALV_REPORT
*& Form DATA_RETRIEVAL
* Retrieve data form EKPO table and populate itab it_ekko
form data_retrieval.
select ebeln ebelp statu aedat matnr menge meins netpr peinh
up to 10 rows
from ekpo
into table it_ekko.
endform. " DATA_RETRIEVAL -
List- Export- Spreadsheet option disabled in ALV Report
Hi,
In one of the ALV Report the option List->Export->Spreadsheet option is disabled. How to enable that option?
I am calling the REUSE_ALV_GRID_DISPLAY Function module with the following parameters
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_repid
it_fieldcat = i_fieldtab[]
is_layout = ls_layout
it_events = i_events[]
i_save = 'A'
is_variant = i_variant
TABLES
t_outtab = it_display
EXCEPTIONS
program_error = 1
OTHERS = 2.
This is the problem with only this report. So I believe it is not due to authorization.
Regards,
AnushaHi Anusha,
This link should help you. You just need to change the deep structure.
[Export Option is Grayed out in ALV Grid Display;
You already figured it out
Edited by: sap_wiz on Jul 6, 2011 4:42 PM -
Button in ALV toolbar with REUSE_ALV_GRID_DISPLAY
Hello friends,
I am Displaying ALV using REUSE_ALV_GRID_IDSPLAY. i need to add a button in grid toolbar.
i am doing it by adding a new ZSTATUS in SET PF_STATUS. but the problem is that it is removing the standard buttons.
i want to add button without removing the standard butttons.
Please help.
thanx in advance.
Krishan Kumarhai friends.......
i had tried to add custom button to the reuse_alv_grid_display.please send the coding...
REPORT ZHAJI_SAMPLE.
tables:lfa1.
TYPE-POOLS : slis.
SELECT-OPTIONS: lifnr FOR lfa1-lifnr.
types:begin of fs,
flag type c,
lifnr type lfa1-lifnr,
land1 type lfa1-land1,
name1 type lfa1-name1,
end of fs.
data: itab type table of fs,
wa type fs.
data: fcat type slis_t_fieldcat_alv,
fcat1 type slis_fieldcat_alv.
data: rt_extab type slis_t_extab.
*CONSTANTS : c_check(1) VALUE 'X'.
select lifnr land1 name1 from lfa1 into corresponding FIELDS OF table
itab where lifnr IN
lifnr.
perform sub.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'sy-repid'
I_CALLBACK_PF_STATUS_SET = 'PF'
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'vendor details'
I_GRID_SETTINGS =
IS_LAYOUT = LAYOUT
IT_FIELDCAT = fcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = I_EVENT
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = itab
EXCEPTIONS
PROGRAM_ERROR = 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.
form sub.
fcat1-fieldname = 'FLAG'.
fcat1-tabname = 'TAB'.
*fcat1-COL_POS = 1.
fcat1-checkbox = 'X'.
fcat1-edit = 'X'.
append fcat1 to fcat.
CLEAR FCAT1.
fcat1-fieldname = 'LIFNR'.
fcat1-ref_tabname = 'LFA1'.
fcat1-ref_fieldname = 'LIFNR'.
FCAT1-outputlen = 10.
append fcat1 to fcat.
CLEAR FCAT1.
fcat1-fieldname = 'NAME1'.
fcat1-ref_tabname = 'LFA1'.
fcat1-ref_fieldname = 'NAME1'.
append fcat1 to fcat.
CLEAR FCAT1.
fcat1-fieldname = 'LAND1'.
fcat1-ref_tabname = 'LFA1'.
fcat1-ref_fieldname = 'LAND1'.
append fcat1 to fcat.
CLEAR FCAT1.
endform.
form PF USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'ZHAJI_P1' .
ENDFORM.
just give the fine coding -
Button in alv grid cell using REUSE_ALV_GRID_DISPLAY
Hi all,
I want to make the contents of 2 columns of my alv grid as push button with values as text on it. I am not using classes or methods but alv grid fm. On clicking the button one dialog box has to pop up which gives edit option for the values in that coloumn, my question is how to introduce button in alv grid cell? if i can use t_fieldcatalog-icon, then please give me the complete steps for that.
Thanks.this may helps u
u need to copy stadard screen elemetn to MARATAB1(at PF -STATUS)
You should copy the 'STANDARD' GUI status from program <b>SAPLSLVC_FULLSCREEN</b>
type this one in SE41 program name is:<b>SAPLSLVC_FULLSCREEN</b>
status : <b>STANDARD_FULLSCREEN</b>
and copy it ...
Type-pool
type-pools slis.
Tables
tables: mara,sscrfields.
Selection screen
select-options: s_matnr for mara-matnr.
PARAMETERS: p_email TYPE somlreci1-receiver.
TYPES: BEGIN OF t_charmara,
matnr(18) TYPE c, " Material Number
ernam(12) TYPE c, " Person Credited
aenam(12) TYPE c, " Person Changed Object
pstat(15) TYPE c, " Maintenance Status
END OF t_charmara.
Data Declarations
data: rt_extab type slis_t_extab, " Table of inactive function
codes
wa_charmara TYPE t_charmara, " work area of mara Table
fs_fieldcat type slis_t_fieldcat_alv,
" Field catalog with field
descriptions
t_fieldcat like line of fs_fieldcat,
" Table of Field catalog
r_ucomm like sy-ucomm, " User Command
rs_selfield TYPE slis_selfield. " cursor position ALV
data: filedlayout type slis_layout_alv,
heading type slis_t_listheader with header line,
t_event type slis_t_event.
data: fs_event like line of t_event.
data: fs_sort type slis_sortinfo_alv,
t_sort type slis_t_sortinfo_alv.
data: w_char(200) type c,
w_matnr type mara-matnr.
fs_sort-fieldname = 'MATNR'.
fs_sort-up = 'X'.
fs_sort-group = '*'.
append fs_sort to t_sort.
clear fS_sort.
DATA: t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
t_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
t_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE,
w_cnt TYPE i,
w_sent_all(1) TYPE c,
w_doc_data LIKE sodocchgi1,
gd_error TYPE sy-subrc,
gd_reciever TYPE sy-subrc.
Internal Tables
data: begin of it_mara occurs 0,
matnr like mara-matnr, " Material Number
ernam like mara-ernam, " Person Credited
aenam like mara-aenam, " Person Changed Object
pstat like mara-pstat, " Maintenance Status
end of it_mara.
DATA: it_message TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
WITH HEADER LINE.
DATA: it_attach TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
WITH HEADER LINE.
*at selection-screen on field event
AT SELECTION-SCREEN on s_matnr.
PERFORM f0100_VALIDATE_MATERIAL_NUMBER.
start-of-selection.
retrive Data from the data base table Mara
perform retrive_data_from_mara.
end-of-selection.
*Field catalog with field descriptions
perform fieldcat.
*perform top_of_page.
PERFORM EVENT_LIST.
*ALV Grid Display
perform alv_display.
Creating one Push button ENTER
perform maratab1 USING RT_EXTAB.
*& Form f0100_VALIDATE_MATERIAL_NUMBER
text
There are no interface parameters to be passed to this subroutine
FORM F0100_VALIDATE_MATERIAL_NUMBER .
select matnr " Material Number
from mara
up to 1 rows
into mara-matnr
where matnr in s_matnr.
endselect.
IF sy-subrc NE 0.
clear sscrfields-ucomm.
MESSAGE e000 WITH 'Enter valid Material number'(003).
ENDIF. " IF sy-subrc NE 0
ENDFORM. " f0100_VALIDATE_MATERIAL_NUMBER
*& Form retrive_data_from_mara
text
*There are no interface parameters to be passed to this subroutine
FORM retrive_data_from_mara .
select matnr " Material Number
ernam " Person Credited
aenam " Person Changed Object
pstat " Maintenance Status
from mara
into table It_mara
where matnr in s_matnr.
IF sy-subrc NE 0.
MESSAGE i001 WITH 'Records are not found'.
exit.
stop.
ENDIF. " IF sy-subrc NE 0
ENDFORM. " retrive_data_from_mara
*& Form fieldcat
text
*There are no interface parameters to be passed to this subroutine
FORM fieldcat .
*field catalog for MATNR
t_FIELDCAT-REF_TABNAME = 'MARA'.
t_fieldcat-fieldname = 'MATNR'.
t_fieldcat-col_pos = 1.
append t_fieldcat to fs_fieldcat.
clear t_fieldcat.
*field catalog for ERNAM
t_FIELDCAT-REF_TABNAME = 'MARA'.
t_fieldcat-fieldname = 'ERNAM'.
t_fieldcat-col_pos = 2.
append t_fieldcat to fs_fieldcat.
clear t_fieldcat.
*field catalog for AENAM
t_FIELDCAT-REF_TABNAME = 'MARA'.
t_fieldcat-fieldname = 'AENAM'.
t_fieldcat-col_pos = 3.
append t_fieldcat to fs_fieldcat.
clear t_fieldcat.
*field catalog for PSTAT
t_FIELDCAT-REF_TABNAME = 'MARA'.
t_fieldcat-fieldname = 'PSTAT'.
t_fieldcat-col_pos = 4.
append t_fieldcat to fs_fieldcat.
clear t_fieldcat.
ENDFORM. " fieldcat
*& Form EVENT_LIST
text
*There are no interface parameters to be passed to this subroutine
FORM EVENT_LIST .
fs_event-name ='TOP_OF_PAGE'.
fs_event-form = 'TOP_PAGE'.
append fs_event TO t_EVENT.
CLEAR FS_EVENT.
fs_event-name ='END_OF_PAGE'.
fs_event-form = 'END_PAGE'.
append fs_event TO t_EVENT.
CLEAR FS_EVENT.
fs_event-name ='END_OF_LIST'.
fs_event-form = 'LIST_END'.
append fs_event TO t_EVENT.
CLEAR FS_EVENT.
ENDFORM. " EVENT_LIST
*& Form alv_display
text
*There are no interface parameters to be passed to this subroutine
FORM alv_display .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = 'MARATAB1'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_STRUCTURE_NAME =
IS_LAYOUT =
IT_FIELDCAT = FS_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = T_SORT
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = T_EVENT
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IR_SALV_LIST_ADAPTER =
IT_EXCEPT_QINFO =
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_MARA[]
EXCEPTIONS
PROGRAM_ERROR = 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.
ENDFORM. " alv_display
form TOP_PAGE.
data:tbl_listheader type slis_t_listheader,
wa_listheader type slis_listheader .
wa_listheader-typ = 'S'.
wa_listheader-info = 'Created by : Vijay Pawar'.
append wa_listheader to tbl_listheader.
wa_listheader-typ = 'S'.
concatenate ' Date ' sy-datum into
wa_listheader-info separated by space.
append wa_listheader to tbl_listheader.
wa_listheader-typ = 'S'.
concatenate ' From ' s_matnr-low ' To ' s_matnr-high into
wa_listheader-info separated by space.
append wa_listheader to tbl_listheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = tbl_listheader
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
endform. " form TOP_PAGE.
form END_PAGE.
STATICS W_PAGE TYPE I .
data:tbl_listheader type slis_t_listheader,
wa_listheader type slis_listheader .
wa_listheader-typ = 'S'.
wa_listheader-info = W_PAGE.
append wa_listheader to tbl_listheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = tbl_listheader
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
add 1 to w_page.
endform. " form END_PAGE.
form list_end.
data:tbl_listheader type slis_t_listheader,
wa_listheader type slis_listheader .
wa_listheader-typ = 'S'.
wa_listheader-info = '......................................Last Page'
append wa_listheader to tbl_listheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = tbl_listheader
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
endform. " form list_end.
*& Form maratab1
text
-->P_RT_EXTAB text
FORM maratab1 USING P_RT_EXTAB.
SET PF-STATUS 'MARATAB1' EXCLUDING rt_extab.
ENDFORM. " maratab1
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
case r_ucomm.
when 'ENTER'.
perform bulid_xls_data_table.
PERFORM send_file_as_email_attachment
tables it_message
it_attach
using p_email "'[email protected]'
'Example .xls documnet attachment'
'XLS'
'filename'
changing gd_error
gd_reciever.
perform populate_email_message_body.
PERFORM initiate_mail_execute_program.
endcase. " case r_ucomm.
endform. " FORM user_command
perform populate_email_message_body.
PERFORM initiate_mail_execute_program.
CALL FUNCTION 'RH_START_EXCEL_WITH_DATA'
EXPORTING
DATA_FILENAME = 'MARA.XLS'
DATA_PATH_FLAG = 'W'
DATA_ENVIRONMENT =
DATA_TABLE = ITAB[]
MACRO_FILENAME =
MACRO_PATH_FLAG = 'E'
MACRO_ENVIRONMENT =
WAIT = 'X'
DELETE_FILE = 'X'
EXCEPTIONS
NO_BATCH = 1
EXCEL_NOT_INSTALLED = 2
INTERNAL_ERROR = 3
CANCELLED = 4
DOWNLOAD_ERROR = 5
NO_AUTHORITY = 6
FILE_NOT_DELETED = 7
OTHERS = 8
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
leave to list-processing.
endcase.
*& Form bulid_xls_data_table
text
*There are no interface parameters to be passed to this subroutine
FORM bulid_xls_data_table .
CONSTANTS: con_cret TYPE x VALUE '0D', "OK for non Unicode
con_tab TYPE x VALUE '09'. "OK for non Unicode
*If you have Unicode check active in program attributes thnen you will
*need to declare constants as follows
*class cl_abap_char_utilities definition load.
constants:
con_tab type c value cl_abap_char_utilities=>HORIZONTAL_TAB,
con_cret type c value cl_abap_char_utilities=>CR_LF.
CONCATENATE 'matnr' 'ernam' 'aenam' 'pstat'
INTO it_attach SEPARATED BY con_tab.
CONCATENATE con_cret it_attach INTO it_attach.
APPEND it_attach.
LOOP AT It_mara INTO wa_charmara.
CONCATENATE wa_charmara-matnr wa_charmara-ernam
wa_charmara-aenam wa_charmara-pstat
INTO it_attach SEPARATED BY con_tab.
CONCATENATE con_cret it_attach INTO it_attach.
APPEND it_attach.
ENDLOOP. " LOOP AT it_mara INTO...
ENDFORM. " bulid_xls_data_table
*& Form send_file_as_email_attachment
Send email
-->P_IT_MESSAGE text
-->P_IT_ATTACH text
-->P_P_EMAIL text
-->P_0387 text
-->P_0388 text
-->P_0389 text
-->P_0390 text
-->P_0391 text
-->P_0392 text
<--P_GD_ERROR text
<--P_GD_RECIEVER text
FORM send_file_as_email_attachment tables pit_message
pit_attach
using p_email
p_mtitle
p_format
p_filename
p_attdescription
p_sender_address
p_sender_addres_type
changing p_error
p_reciever.
DATA: ld_error TYPE sy-subrc,
ld_reciever TYPE sy-subrc,
ld_mtitle LIKE sodocchgi1-obj_descr,
ld_email LIKE somlreci1-receiver,
ld_format TYPE so_obj_tp ,
ld_attdescription TYPE so_obj_nam ,
ld_attfilename TYPE so_obj_des ,
ld_sender_address LIKE soextreci1-receiver,
ld_sender_address_type LIKE soextreci1-adr_typ,
ld_receiver LIKE sy-subrc.
ld_email = p_email.
ld_mtitle = p_mtitle.
ld_format = p_format.
ld_attdescription = p_attdescription.
ld_attfilename = p_filename.
ld_sender_address = p_sender_address.
ld_sender_address_type = p_sender_addres_type.
Fill the document data.
w_doc_data-doc_size = 1.
Populate the subject/generic message attributes
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle .
w_doc_data-sensitivty = 'F'.
Fill the document data and get size of attachment
CLEAR w_doc_data.
READ TABLE it_attach INDEX w_cnt.
w_doc_data-doc_size =
( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle.
w_doc_data-sensitivty = 'F'.
CLEAR t_attachment.
REFRESH t_attachment.
t_attachment[] = pit_attach[].
Describe the body of the message
CLEAR t_packing_list.
REFRESH t_packing_list.
t_packing_list-transf_bin = space.
t_packing_list-head_start = 1.
t_packing_list-head_num = 0.
t_packing_list-body_start = 1.
DESCRIBE TABLE it_message LINES t_packing_list-body_num.
t_packing_list-doc_type = 'RAW'.
APPEND t_packing_list.
Create attachment notification
t_packing_list-transf_bin = 'X'.
t_packing_list-head_start = 1.
t_packing_list-head_num = 1.
t_packing_list-body_start = 1.
DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
t_packing_list-doc_type = ld_format.
t_packing_list-obj_descr = ld_attdescription.
t_packing_list-obj_name = ld_attfilename.
t_packing_list-doc_size = t_packing_list-body_num * 255.
APPEND t_packing_list.
Add the recipients email address
CLEAR t_receivers.
REFRESH t_receivers.
t_receivers-receiver = ld_email.
t_receivers-rec_type = 'U'.
t_receivers-com_type = 'INT'.
t_receivers-notif_del = 'X'.
t_receivers-notif_ndel = 'X'.
APPEND t_receivers.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = w_doc_data
put_in_outbox = 'X'
sender_address = ld_sender_address
sender_address_type = ld_sender_address_type
commit_work = 'X'
IMPORTING
sent_to_all = w_sent_all
TABLES
packing_list = t_packing_list
contents_bin = t_attachment
contents_txt = it_message
receivers = t_receivers
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8.
Populate zerror return code
ld_error = sy-subrc.
Populate zreceiver return code
LOOP AT t_receivers.
ld_receiver = t_receivers-retrn_code.
ENDLOOP.
ENDFORM. " send_file_as_email_attachment
*& Form INITIATE_MAIL_EXECUTE_PROGRAM
Instructs mail send program for SAPCONNECT to send email.
FORM initiate_mail_execute_program.
WAIT UP TO 2 SECONDS.
SUBMIT rsconn01 WITH mode = 'INT'
WITH output = 'X'
AND RETURN.
ENDFORM. " INITIATE_MAIL_EXECUTE_PROGRAM
*& Form POPULATE_EMAIL_MESSAGE_BODY
Populate message body text
form populate_email_message_body.
REFRESH it_message.
it_message = 'Please find attached a list test mara records'.
APPEND it_message.
endform. "form populate_email_message_bod
rewards if it helps u -
Set pf_status in REUSE_ALV_GRID_DISPLAY
Hi All,
I am using the 'i_callback_pf_status_set' from the FUNCTION 'REUSE_ALV_GRID_DISPLAY' and I see the output but the pf_status is not working. I donot see the buttin I created not even basic BACK and SAvE are working. When I activate the program I am getting the warning like '
when you pass SY-REPID DIRECTLY, "I_CALLBACK_PROGRAM" is set to the name ot the function group "REUSE_ALV_GRID_DISPLAY"'.
Please help me how to set the pf_status in the ALV.
Thanks,
Neelu.
REPORT zppprice1 .
TABLES: zppprice, kna1.
* ALV Type-Pools *
TYPE-POOLS: slis. "Global types
* ALV Structures *
* ALV layout catalog
DATA: s_alv_layout_cat TYPE slis_layout_alv.
* ALV Tables *
* ALV field catalog
DATA: it_alv_field_cat TYPE slis_t_fieldcat_alv,
*occurs 0 with header line,
i_fieldcat TYPE slis_fieldcat_alv OCCURS 0 WITH HEADER LINE,
w_fieldcat LIKE LINE OF i_fieldcat. "ALV FieldCat WorkArea
* ALV sort catalog
DATA: it_alv_sort_cat TYPE slis_sortinfo_alv OCCURS 0 WITH HEADER LINE.
* ALV event catalog
*data: it_alv_event_cat type slis_alv_event occurs 0 with header line.
DATA: it_alv_event_cat TYPE slis_t_event,
ls_alv_event TYPE slis_alv_event.
DATA: t_list_top_of_page TYPE slis_t_listheader.
TYPES: BEGIN OF slis_layout_alv.
INCLUDE TYPE slis_layout_main.
INCLUDE TYPE slis_layout_alv_spec.
TYPES: END OF slis_layout_alv.
DATA: gt_zprice TYPE TABLE OF zprice_struct,
gs_zprice TYPE zprice_struct.
DATA: chbox(1) TYPE c VALUE ' '.
*SET PF-STATUS 'LIST'.
*NEW-PAGE LINE-SIZE 158.
SELECT kunnr matnr crdate efdate sprice
eprice eohqty aohqty crmemo
FROM zppprice
INTO TABLE gt_zprice.
PERFORM field_catalog.
* Populate the layout catalog for alv
PERFORM alv_layout.
* Populate the event catalog for alv
PERFORM alv_events.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'PF_STATUS'
i_callback_user_command = 'HANDLE_USER_COMMAND'
is_layout = s_alv_layout_cat
it_fieldcat = it_alv_field_cat
i_default = 'X'
i_save = 'A'
it_events = it_alv_event_cat
TABLES
t_outtab = gt_zprice
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
FORM field_catalog.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
ls_fieldcat-fieldname = 'CHBOX'.
ls_fieldcat-checkbox = 'X'.
ls_fieldcat-input = 'X'.
ls_fieldcat-edit = 'X'.
ls_fieldcat-seltext_s = 'BOX'.
ls_fieldcat-seltext_l = 'BOX'.
APPEND ls_fieldcat TO it_alv_field_cat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'KUNNR'.
ls_fieldcat-seltext_s = 'Customer'.
ls_fieldcat-seltext_l = 'Customer'.
APPEND ls_fieldcat TO it_alv_field_cat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MATNR'.
ls_fieldcat-seltext_s = 'Material'.
ls_fieldcat-seltext_l = 'Material'.
APPEND ls_fieldcat TO it_alv_field_cat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'CRDATE'.
ls_fieldcat-seltext_s = 'Creation date'.
ls_fieldcat-seltext_l = 'Creation date'.
APPEND ls_fieldcat TO it_alv_field_cat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'EFDATE'.
ls_fieldcat-seltext_s = 'Effective date'.
ls_fieldcat-seltext_l = 'Effective date'.
APPEND ls_fieldcat TO it_alv_field_cat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'SPRICE'.
ls_fieldcat-seltext_s = 'Old Price'.
ls_fieldcat-seltext_l = 'Old Price'.
APPEND ls_fieldcat TO it_alv_field_cat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'EPRICE'.
ls_fieldcat-seltext_s = 'New Price'.
ls_fieldcat-seltext_l = 'New Price'.
APPEND ls_fieldcat TO it_alv_field_cat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'EOHQTY'.
ls_fieldcat-seltext_s = 'Est. Qty'.
ls_fieldcat-seltext_l = 'Est. Qty'.
APPEND ls_fieldcat TO it_alv_field_cat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'AOHQTY'.
ls_fieldcat-seltext_s = 'Act. Qty'.
ls_fieldcat-seltext_l = 'Act. Qty'.
APPEND ls_fieldcat TO it_alv_field_cat.
CLEAR ls_fieldcat.
ENDFORM. " field_catalog
*& Form alv_layout
* text
* --> p1 text
* <-- p2 text
FORM alv_layout.
* Enable striped output display if user wants
s_alv_layout_cat-zebra = 'X'.
* Optimize column width if user wants
s_alv_layout_cat-colwidth_optimize = 'X'.
s_alv_layout_cat-box_fieldname = space.
s_alv_layout_cat-no_input = 'X'.
ENDFORM. " alv_layout
* FORM SET_PFSTATUS *
* --> EXTAB *
FORM pf_status USING extab TYPE slis_t_extab.
SET PF-STATUS 'LIST'.
ENDFORM.
* FORM HANDLE_USER_COMMAND *
* --> I_UCOM *
* --> IS_SELFIELD *
FORM handle_user_command USING i_ucom TYPE sy-ucomm
is_selfield TYPE slis_selfield.
CASE i_ucom.
WHEN 'CMEMO'.
LOOP AT gt_zprice INTO gs_zprice WHERE chbox = 'X'.
ENDLOOP.
ENDCASE.
ENDFORM.
*& Form alv_events
* text
* --> p1 text
* <-- p2 text
FORM alv_events.
* Declare event catalog for page headers
REFRESH: it_alv_event_cat.
CLEAR ls_alv_event.
ls_alv_event-name = 'PF_STATUS_SET'.
ls_alv_event-form = 'PF_STATUS'.
APPEND ls_alv_event TO it_alv_event_cat.
* Declare event catalog for report footers
CLEAR ls_alv_event.
ls_alv_event-name = 'USER_COMMAND'.
ls_alv_event-form = 'HANDLE_USER_COMMAND'.
APPEND ls_alv_event TO it_alv_event_cat.
ENDFORM. " alv_eventsYes, do not pass SY-REPID directly, first move to a variable.
data: repid type sy-repid.
repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = repid
i_callback_pf_status_set = 'PF_STATUS'
i_callback_user_command = 'HANDLE_USER_COMMAND'
is_layout = s_alv_layout_cat
it_fieldcat = it_alv_field_cat
i_default = 'X'
i_save = 'A'
it_events = it_alv_event_cat
TABLES
t_outtab = gt_zprice
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
Regards,
Rich Heilman -
Fatal Error when exporting Report to Excel
Hi Everyone, I've been trying to export my report to excel. But I have exhausted all possible reasons and I just couldn't figure it out. Can someone please help me. Thanks in advance.
PROGRAM NAME : ZADC_PAYSUMNEW
REPORT ZADC_PAYSUMNEW
NO STANDARD PAGE HEADING
LINE-SIZE 450
LINE-COUNT 65 MESSAGE-ID zmes.
TABLE DECLARATION *
TABLES: cskt,
csks,
pa0009,
pcl1,
pcl2,
pernr,
t512t,
t549a,
t527x,
zhrprtype.
INFOTYPES DECLARATION
INFOTYPES: 0001, 0002.
INCLUDE DECLARATION
INCLUDE: rpc2rx00.
INCLUDE: rpc2rxx0.
INCLUDE: rpppxd00.
INTERNAL TABLE DECLARATION
DATA: BEGIN OF itab OCCURS 0,
khinr LIKE csks-khinr,
kostl LIKE p0001-kostl,
ltext(40),
p_date LIKE pc261-inper,
basic(7) TYPE p DECIMALS 2,
pera(7) TYPE p DECIMALS 2,
longp(7) TYPE p DECIMALS 2,
trall(6) type p decimals 2,
srvaw(6) TYPE p DECIMALS 2,
chall(7) TYPE p DECIMALS 2,
leave(7) TYPE p DECIMALS 2,
meal(7) TYPE p DECIMALS 2,
saldf(7) TYPE p DECIMALS 2,
sipps(7) TYPE p DECIMALS 2,
sipgs(7) TYPE p DECIMALS 2,
subs(7) TYPE p DECIMALS 2,
hzard(7) TYPE p DECIMALS 2,
lallw(7) TYPE p DECIMALS 2,
medps(7) TYPE p DECIMALS 2,
medgs(7) TYPE p DECIMALS 2,
pcontps(7) TYPE p DECIMALS 2,
pcontgs(7) TYPE p DECIMALS 2,
pagibps(6) TYPE p DECIMALS 2,
pagibgs(6) TYPE p DECIMALS 2,
lwop(7) TYPE p DECIMALS 2,
npay(7) TYPE p DECIMALS 2,
otime(7) TYPE p DECIMALS 2,
ec(7) TYPE p DECIMALS 2,
fr_date like sy-datum,
to_date like sy-datum,
END OF itab.
DATA: BEGIN OF jtab OCCURS 0,
khinr LIKE csks-khinr,
kostl LIKE p0001-kostl,
ltext(40),
basic(7) TYPE p DECIMALS 2,
pera(7) TYPE p DECIMALS 2,
longp(7) TYPE p DECIMALS 2,
trall(6) type p decimals 2,
srvaw(6) TYPE p DECIMALS 2,
chall(7) TYPE p DECIMALS 2,
leave(7) TYPE p DECIMALS 2,
meal(7) TYPE p DECIMALS 2,
saldf(7) TYPE p DECIMALS 2,
sipps(7) TYPE p DECIMALS 2,
sipgs(7) TYPE p DECIMALS 2,
subs(7) TYPE p DECIMALS 2,
hzard(7) TYPE p DECIMALS 2,
lallw(7) TYPE p DECIMALS 2,
medps(7) TYPE p DECIMALS 2,
medgs(7) TYPE p DECIMALS 2,
pcontps(7) TYPE p DECIMALS 2,
pcontgs(7) TYPE p DECIMALS 2,
pagibps(6) TYPE p DECIMALS 2,
pagibgs(6) TYPE p DECIMALS 2,
lwop(7) TYPE p DECIMALS 2,
npay(7) TYPE p DECIMALS 2,
otime(7) TYPE p DECIMALS 2,
ec(7) TYPE p DECIMALS 2,
END OF jtab.
DATA: it_list TYPE STANDARD TABLE OF itab WITH HEADER LINE.
CONSTANTS DECLARATION
CONSTANTS: basic TYPE pc207-lgart VALUE '0401',
basic2 TYPE pc207-lgart VALUE '0402',
basic3 TYPE pc207-lgart VALUE '0403',
PERA TYPE pc207-lgart VALUE '3104',
PERA2 TYPE pc207-lgart VALUE '3110',
longp TYPE pc207-lgart VALUE '1601',
longp2 TYPE pc207-lgart VALUE '1603',
trall TYPE pc207-lgart VALUE '3109',
srvaw TYPE pc207-lgart VALUE '2117',
leave TYPE pc207-lgart VALUE '2118',
chall TYPE pc207-lgart VALUE '3105',
chall2 TYPE pc207-lgart VALUE '3111',
chall3 TYPE pc207-lgart VALUE '3112',
meal TYPE pc207-lgart VALUE '3102',
saldf TYPE pc207-lgart VALUE '4103',
sipps TYPE pc207-lgart VALUE '/090',
sipps2 TYPE pc207-lgart VALUE '1121',
subs TYPE pc207-lgart VALUE '3101',
hzard TYPE pc207-lgart VALUE '1602',
lallw TYPE pc207-lgart VALUE '3103',
medps TYPE pc207-lgart VALUE '/313',
medgs TYPE pc207-lgart VALUE '/314',
pcontps TYPE pc207-lgart VALUE '/093',
pcontps2 TYPE pc207-lgart VALUE '1327',
pcontps3 TYPE pc207-lgart VALUE '1120',
pagibps TYPE pc207-lgart VALUE '/326',
pagibps2 TYPE pc207-lgart VALUE '1326',
lwop TYPE pc207-lgart VALUE '1102',
otime TYPE pc207-lgart VALUE '0101',
otime2 TYPE pc207-lgart VALUE '0102',
otime3 TYPE pc207-lgart VALUE '0103',
otime4 TYPE pc207-lgart VALUE '0104',
npay TYPE pc207-lgart VALUE '/559'.
DATA DECLARATION
DATA: BEGIN OF COMMON PART buffer.
INCLUDE: rpppxd10.
DATA: END OF COMMON PART buffer.
*Table data containing directory to PCL2 payroll results file DATA:
DATA: BEGIN OF rgdir OCCURS 100.
INCLUDE STRUCTURE pc261.
DATA: END OF rgdir.
DATA: BEGIN OF evpdir OCCURS 100.
INCLUDE STRUCTURE pc261.
DATA: END OF evpdir.
DATA: country LIKE t001p-molga,
lname LIKE t527x-orgtx,
filename2(128),
p_date LIKE pc261-inper,
w_basic LIKE pc207-lgart,
w_basic2 LIKE pc207-lgart,
w_basic3 LIKE pc207-lgart,
w_pera LIKE pc207-lgart,
w_pera2 LIKE pc207-lgart,
w_longp LIKE pc207-lgart,
w_longp2 LIKE pc207-lgart,
w_trall LIKE pc207-lgart,
w_srvaw LIKE pc207-lgart,
w_leave LIKE pc207-lgart,
w_chall LIKE pc207-lgart,
w_chall2 LIKE pc207-lgart,
w_chall3 LIKE pc207-lgart,
w_meal LIKE pc207-lgart,
w_saldf LIKE pc207-lgart,
w_sipps LIKE pc207-lgart,
w_sipps2 LIKE pc207-lgart,
w_subs LIKE pc207-lgart,
w_hzard LIKE pc207-lgart,
w_lallw LIKE pc207-lgart,
w_medps LIKE pc207-lgart,
w_medgs LIKE pc207-lgart,
w_pcontps LIKE pc207-lgart,
w_pcontps2 LIKE pc207-lgart,
w_pcontps3 LIKE pc207-lgart,
w_pagibps LIKE pc207-lgart,
w_pagibps2 LIKE pc207-lgart,
w_lwop LIKE pc207-lgart,
w_otime LIKE pc207-lgart,
w_otime2 LIKE pc207-lgart,
w_otime3 LIKE pc207-lgart,
w_otime4 LIKE pc207-lgart,
w_npay LIKE pc207-lgart,
tempgs(7) TYPE p DECIMALS 2,
ctr-basic(7) TYPE p DECIMALS 2,
ctr-pera(7) TYPE p DECIMALS 2,
ctr-longp(7) TYPE p DECIMALS 2,
ctr-trall(6) TYPE p DECIMALS 2,
ctr-srvaw(6) TYPE p DECIMALS 2,
ctr-leave(7) TYPE p DECIMALS 2,
ctr-chall(7) TYPE p DECIMALS 2,
ctr-meal(7) TYPE p DECIMALS 2,
ctr-saldf(7) TYPE p DECIMALS 2,
ctr-sipps(7) TYPE p DECIMALS 2,
ctr-sipgs(7) TYPE p DECIMALS 2,
ctr-subs(7) TYPE p DECIMALS 2,
ctr-hzard(7) TYPE p DECIMALS 2,
ctr-lallw(7) TYPE p DECIMALS 2,
ctr-medps(7) TYPE p DECIMALS 2,
ctr-medgs(7) TYPE p DECIMALS 2,
ctr-pcontps(7) TYPE p DECIMALS 2,
ctr-pcontgs(7) TYPE p DECIMALS 2,
ctr-pagibps(6) TYPE p DECIMALS 2,
ctr-pagibgs(6) TYPE p DECIMALS 2,
ctr-lwop(7) TYPE p DECIMALS 2,
ctr-otime(7) TYPE p DECIMALS 2,
ctr-npay(7) TYPE p DECIMALS 2,
ctr-ec(7) TYPE p DECIMALS 2.
DATA: BEGIN OF ph-version.
INCLUDE STRUCTURE pc201_pay. "XTWPH9K008656
DATA: END OF ph-version.
DATA: fr_date LIKE sy-datum,
to_date LIKE sy-datum.
SELECT-OPTIONS and PARAMETERS
SELECT-OPTIONS: p_status FOR rgdir-srtza DEFAULT 'A'.
DATA: DATE1(15),
mon(9).
DEFINITION
DEFINE rp-imp-c2-rx2.
clear:
orx-version, "OBJECTS_FOR_CLEAR
rt, rt[].
import
ph-version to orx-version "OBJECTS_FOR_IMPORT
rt
from database pcl2(ph) id rx-key using pcl2_exp_imp.
rp-imp-rx-subrc = sy-subrc.
if sy-subrc eq 0 and orx-version-number ne ph-version-number.
rp-imp-rx-subrc = 8.
endif.
END-OF-DEFINITION.
TYPE-POOLS: slis.
DATA: g_repid LIKE sy-repid,
gt_fieldcat TYPE slis_t_fieldcat_alv,
gt_events TYPE slis_t_event,
gt_top TYPE slis_t_listheader,
gt_eol TYPE slis_t_listheader,
gt_list_top_of_page TYPE slis_t_listheader,
gt_list_end_of_list TYPE slis_t_listheader,
gs_layout TYPE slis_layout_alv,
d_f2code LIKE sy-ucomm VALUE '&ETA'.
CONSTANTS: fn_top TYPE slis_formname VALUE 'TOP_OF_PAGE',
fn_eol TYPE slis_formname VALUE 'END_OF_LIST'.
DATA: it_alv_out TYPE STANDARD TABLE OF itab WITH HEADER LINE.
INITIALIZATION.
g_repid = sy-repid.
PERFORM f_fieldcat_init USING gt_fieldcat[].
PERFORM eventtab_build USING gt_events[].
START-OF-SELECTION.
START-OF-SELECTION.
fr_date = to_date = pn-endda.
fr_date+6(2) = '01'.
SELECT SINGLE * FROM t549a
WHERE abkrs = pnpxabkr.
GET PERNR.
CLEAR: itab, lname.
PERFORM get_rt_tab.
END-OF-SELECTION.
PERFORM display_grid.
INCLUDE rpppxm00.
USING DATM
FORM get_rt_tab *
FORM get_rt_tab.
rp_provide_from_last p0001 space pn-begda pn-endda.
rp_provide_from_last p0002 space pn-begda pn-endda.
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
persnr = p0001-pernr
IMPORTING
molga = country
TABLES
in_rgdir = rgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
IF sy-subrc = 0.
SELECT single ltext FROM cskt
INTO itab-ltext
WHERE kostl = p0001-kostl
AND datbi = '99991231'.
SELECT SINGLE * FROM csks
WHERE kostl = p0001-kostl
AND kokrs = 'GSIS'
AND datbi = '99991231'.
IF sy-subrc = 0.
MOVE: csks-kostl TO itab-kostl,
csks-khinr TO itab-khinr.
ENDIF.
p_date = pn-paper.
regular payroll run.
CALL FUNCTION 'CD_EVALUATION_PERIODS'
EXPORTING
bonus_date = '00000000'
inper_modif = t549a-permo
inper = p_date
pay_type = ' '
pay_ident = ' '
TABLES
rgdir = rgdir
evpdir = evpdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
IF sy-subrc = 0.
LOOP AT evpdir WHERE srtza IN p_status and FPPER eq pn-begda+(6).
rx-key-pernr = p0001-pernr.
rx-key-seqno = evpdir-seqnr.
rp-imp-c2-rx2.
IF rp-imp-rx-subrc = 0.
PERFORM rt_to_itab.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM.
FORM PRINT_RX *
FORM print_rx.
LOOP AT rt.
PERFORM re512t USING country rt-lgart.
ENDLOOP.
ENDFORM.
FORM RE512T *
--> VALUE(COUNTRY_GROUPING) *
--> VALUE(WTYPE) *
FORM re512t USING value(country_grouping)
value(wtype).
CHECK t512t-sprsl NE sy-langu
OR t512t-molga NE country_grouping
OR t512t-lgart NE wtype.
SELECT SINGLE * FROM t512t
WHERE sprsl EQ sy-langu
AND molga EQ country_grouping
AND lgart EQ wtype.
IF sy-subrc NE 0.
CLEAR t512t.
ENDIF.
ENDFORM.
FORM rt_to_itab *
FORM rt_to_itab.
MOVE: basic TO w_basic,
basic2 TO w_basic2,
basic3 TO w_basic3,
pera TO w_pera,
pera2 TO w_pera2,
longp TO w_longp,
longp2 TO w_longp2,
srvaw TO w_srvaw,
leave TO w_leave,
trall TO w_trall,
chall TO w_chall,
chall2 TO w_chall2,
chall3 TO w_chall3,
meal TO w_meal,
saldf TO w_saldf,
sipps TO w_sipps,
sipps2 TO w_sipps2,
subs TO w_subs,
hzard TO w_hzard,
lallw TO w_lallw,
medps TO w_medps,
medgs TO w_medgs,
pcontps TO w_pcontps,
pcontps2 TO w_pcontps2,
pcontps3 TO w_pcontps3,
pagibps TO w_pagibps,
pagibps2 TO w_pagibps2,
LWOP TO w_lwop,
otime TO w_otime,
otime2 TO w_otime2,
otime3 TO w_otime3,
otime4 TO w_otime4,
npay TO w_npay.
LOOP AT rt WHERE lgart = w_basic or lgart = w_basic2
or lgart = w_basic3.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-basic.
itab-ec = rt-betrg / 100.
if itab-ec > 100.
itab-ec = 100.
ENDIF.
ENDLOOP.
LOOP AT rt WHERE lgart = w_pera.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-pera.
ENDLOOP.
LOOP AT rt WHERE lgart = w_pera2.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-pera.
ENDLOOP.
LOOP AT rt WHERE lgart = w_longp or lgart = w_longp2.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-longp.
ENDLOOP.
LOOP AT rt WHERE lgart = w_trall.
if rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
endif.
ADD: rt-betrg TO itab-trall.
ENDLOOP.
LOOP AT rt WHERE lgart = w_srvaw.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-srvaw.
ENDLOOP.
LOOP AT rt WHERE lgart = w_leave.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-leave.
ENDLOOP.
LOOP AT rt WHERE lgart = w_chall or
lgart = w_chall2 or
lgart = w_chall3.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-chall.
ENDLOOP.
LOOP AT rt WHERE lgart = w_meal.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-meal.
ENDLOOP.
LOOP AT rt WHERE lgart = w_saldf.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-saldf.
ENDLOOP.
LOOP AT rt WHERE lgart = w_sipps or
lgart = w_sipps2.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-sipps.
itab-sipgs = itab-sipps / 9 * 12.
ENDLOOP.
LOOP AT rt WHERE lgart = w_subs.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-subs.
ENDLOOP.
LOOP AT rt WHERE lgart = w_hzard.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-hzard.
ENDLOOP.
LOOP AT rt WHERE lgart = w_lallw.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-lallw.
ENDLOOP.
LOOP AT rt WHERE lgart = w_medps.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-medps.
ENDLOOP.
LOOP AT rt WHERE lgart = w_medgs.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
MOVE: rt-betrg TO tempgs.
itab-medgs = itab-medps.
ENDLOOP.
LOOP AT rt WHERE lgart = w_pcontps OR
lgart = w_pcontps2 OR
lgart = w_pcontps3.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-pcontps.
ENDLOOP.
itab-pcontgs = itab-pcontps * 9.
LOOP AT rt WHERE lgart = w_pagibps OR
lgart = w_pagibps2.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-pagibps.
ENDLOOP.
LOOP AT rt WHERE lgart = w_pagibps.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-pagibgs.
ENDLOOP.
LOOP AT rt WHERE lgart = w_lwop.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-lwop.
ENDLOOP.
LOOP AT rt WHERE lgart = w_otime or
lgart = w_otime2 or
lgart = w_otime3 or
lgart = w_otime4.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-otime.
ENDLOOP.
LOOP AT rt WHERE lgart = w_npay.
IF rt-betrg < 0.
rt-betrg = abs( rt-betrg ).
ENDIF.
ADD: rt-betrg TO itab-npay.
ENDLOOP.
COLLECT itab.
CLEAR: itab.
REFRESH rt.
ENDFORM. " rt_to_itab
*& Form f_fieldcat_init
text
-->P_GT_FIELDCAT[] text
FORM f_fieldcat_init USING rt_fieldcat TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 1.
ls_fieldcat-reptext_ddic = ' FXNAL Group'.
ls_fieldcat-fieldname = 'KHINR'.
ls_fieldcat-ref_tabname = 'ITAB'.
ls_fieldcat-outputlen = 12.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 2.
ls_fieldcat-reptext_ddic = ' OFFICE'.
ls_fieldcat-fieldname = 'LTEXT'.
ls_fieldcat-ref_tabname = 'ITAB'.
ls_fieldcat-outputlen = 40.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 3.
ls_fieldcat-reptext_ddic = ' RC #'.
ls_fieldcat-fieldname = 'KOSTL'.
ls_fieldcat-ref_tabname = 'ITAB'.
ls_fieldcat-outputlen = 5.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 4.
ls_fieldcat-reptext_ddic = 'Basic Salary'.
ls_fieldcat-tabname = 'ITAB'.
ls_fieldcat-fieldname = 'BASIC'.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 5.
ls_fieldcat-reptext_ddic = 'PERA Allow'.
ls_fieldcat-tabname = 'ITAB'.
ls_fieldcat-fieldname = 'PERA'.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 6.
ls_fieldcat-reptext_ddic = 'Longevity Pay'.
ls_fieldcat-tabname = 'ITAB'.
ls_fieldcat-fieldname = 'LONGP'.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 7.
ls_fieldcat-reptext_ddic = 'Service Award'.
ls_fieldcat-tabname = 'ITAB'.
ls_fieldcat-fieldname = 'SRVAW'.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 8.
ls_fieldcat-reptext_ddic = 'Child Allowance'.
ls_fieldcat-tabname = 'ITAB'.
ls_fieldcat-fieldname = 'CHALL'.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 9.
ls_fieldcat-reptext_ddic = 'Leave Mone'.
ls_fieldcat-tabname = 'ITAB'.
ls_fieldcat-fieldname = 'LEAVE'.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 10.
ls_fieldcat-reptext_ddic = 'Over-time'.
ls_fieldcat-tabname = 'ITAB'.
ls_fieldcat-fieldname = 'OTIME'.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 11.
ls_fieldcat-reptext_ddic = 'Meal Subsidy'.
ls_fieldcat-tabname = 'ITAB'.
ls_fieldcat-fieldname = 'MEAL'.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 12.
ls_fieldcat-reptext_ddic = 'Salary Diff.'.
ls_fieldcat-tabname = 'ITAB'.
ls_fieldcat-fieldname = 'SALDF'.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 13.
ls_fieldcat-reptext_ddic = 'Subsistence'.
ls_fieldcat-tabname = 'ITAB'.
ls_fieldcat-fieldname = 'SUBS'.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 14.
ls_fieldcat-reptext_ddic = 'Hazard Pay'.
ls_fieldcat-tabname = 'ITAB'.
ls_fieldcat-fieldname = 'HZARD'.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 15.
ls_fieldcat-reptext_ddic = 'Laundry Allow'.
ls_fieldcat-tabname = 'ITAB'.
ls_fieldcat-fieldname = 'LALLW'.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO rt_fieldcat.
ENDFORM. " f_fieldcat_init
*& Form display_grid
text
--> p1 text
<-- p2 text
FORM display_grid.
SORT itab BY kostl khinr.
LOOP AT itab.
AT NEW khinr.
MOVE-CORRESPONDING itab TO jtab.
APPEND jtab.
ENDAT.
ENDLOOP.
PERFORM my_top USING gt_top[].
PERFORM build_layout USING gs_layout.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
it_events = gt_events[]
TABLES
t_outtab = itab.
ENDFORM. " display_grid
*& Form eventtab_build
text
-->P_GT_EVENTS[] text
FORM EVENTTAB_BUILD USING my_events TYPE SLIS_T_EVENT.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 1
IMPORTING
et_events = my_events.
*TOP OF PAGE
READ TABLE my_events
WITH KEY NAME = slis_ev_top_of_page
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE fn_top TO ls_event-form.
APPEND ls_event TO my_events.
ENDIF.
CLEAR ls_event.
*END OF LIST
READ TABLE my_events
WITH KEY name = slis_ev_end_of_list
INTO ls_event.
IF sy-subrc = 0.
MOVE fn_eol TO ls_event-form.
APPEND ls_event TO my_events.
ENDIF. " SY-SUBRC for READ TABLE
ENDFORM. " eventtab_build
*& Form top_comment
text
-->P_MYTOP[] text
FORM top_comment USING my_top_of_page TYPE slis_t_listheader.
DATA: it_t247 LIKE t247 OCCURS 0 WITH HEADER LINE.
DATA: ls_line TYPE slis_listheader,
li_recs TYPE i,
lc_name(60) TYPE c,
lc_from(30) TYPE c,
lc_to(30) TYPE c.
CALL FUNCTION 'MONTH_NAMES_GET'
TABLES
month_names = it_t247.
Company Name
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = TEXT-001.
APPEND ls_line TO my_top_of_page.
CLEAR ls_line.
ls_line-typ = 'S'.
ls_line-info = TEXT-002.
APPEND ls_line TO my_top_of_page.
Date
CLEAR lc_name.
CONCATENATE sy-datum+6(2) ',' INTO lc_name.
READ TABLE it_t247 WITH KEY mnr = sy-datum+4(2).
CONCATENATE text-003 it_t247-ltx lc_name sy-datum(4)
INTO lc_name SEPARATED BY space.
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = lc_name.
APPEND ls_line TO my_top_of_page.
ENDFORM. " top_comment
*& Form build_layout
text
-->P_GS_LAYOUT text
FORM build_layout USING my_layout TYPE slis_layout_alv.
my_layout-f2code = d_f2code.
my_layout-reprep = 'X'.
my_layout-confirmation_prompt = 'X'.
my_layout-flexible_key = 'X'.
ENDFORM. " build_layout
*& Form TOP_OF_PAGE
Writes comments on top of page
FORM top_of_page.
DATA: ls_line TYPE slis_listheader,
lc_name(60) TYPE c.
IF sy-ucomm = '&RNT_PREV'.
READ TABLE gt_top INTO ls_line INDEX 2.
lc_name = ls_line-info.
WRITE 'Page:' TO lc_name+45(5).
WRITE sy-pagno TO lc_name+52(5).
ls_line-typ = 'H'.
ls_line-info = lc_name.
MODIFY gt_top FROM ls_line INDEX 2.
ENDIF.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_top.
ENDFORM. " TOP_OF_PAGE
*& Form my_top
text
-->P_GT_TOP[] text
FORM my_top USING top TYPE slis_t_listheader.
DATA: it_t247 LIKE t247 OCCURS 0 WITH HEADER LINE.
DATA: ls_line TYPE slis_listheader,
li_recs TYPE i,
lc_name(60) TYPE c,
lc_from(30) TYPE c,
lc_to(30) TYPE c.
CALL FUNCTION 'MONTH_NAMES_GET'
TABLES
month_names = it_t247.
Company Name
CLEAR lc_name.
WRITE text-001 TO lc_name.
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = lc_name.
APPEND ls_line TO top.
**Report Name
CLEAR lc_name.
WRITE text-002 TO lc_name.
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = lc_name.
APPEND ls_line TO top.
Range of date
CLEAR lc_name.
lc_name = p_date+4(2).
READ TABLE it_t247 WITH KEY mnr = p_date+4(2).
CONCATENATE: text-003 it_t247-ltx sy-datum(4)
INTO lc_name SEPARATED BY SPACE.
ls_line-typ = 'H'.
ls_line-info = lc_name.
APPEND ls_line TO top.
ENDFORM. " my_top
*& Form END_OF_LIST
Writes signature line at end of list
FORM end_of_list.
IF sy-ucomm = '&RNT_PREV' OR sy-ucomm = 'AUSW'.
REFRESH gt_eol.
PERFORM my_eol USING gt_eol[].
ELSE.
REFRESH gt_eol.
ENDIF.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_eol
i_end_of_list_grid = 'X'.
ENDFORM. " END_OF_LIST
*& Form my_eol
text
-->P_GT_EOL[] text
FORM my_eol USING eol TYPE slis_t_listheader.
DATA: ls_line TYPE slis_listheader,
lc_name(60) TYPE c.
Signature Line
CLEAR lc_name.
lc_name = '.'.
ls_line-typ = 'H'.
ls_line-info = lc_name.
APPEND ls_line TO eol.
CLEAR lc_name.
ls_line-typ = 'H'.
ls_line-info = lc_name.
APPEND ls_line TO eol.
CLEAR ls_line.
ls_line-typ = 'H'.
WRITE 'Submitted By:' TO lc_name(28).
WRITE 'Noted By:' TO lc_name+30(28).
ls_line-info = lc_name.
APPEND ls_line TO eol.
CLEAR: lc_name, ls_line-key.
lc_name = '.'.
ls_line-typ = 'H'.
ls_line-info = lc_name.
APPEND ls_line TO eol.
CLEAR lc_name. CLEAR ls_line.
WRITE sy-uline(28) TO lc_name(28).
WRITE sy-uline(28) TO lc_name+30(28).
ls_line-typ = 'H'.
ls_line-info = lc_name.
APPEND ls_line TO eol.
ENDFORM. " my_eol1.U are not getting the data into Excel when u client Excel Buttton from the ALV display ?
2.if yes then u will get one message stating that templet is Missing like this ?
Regards
prabhu -
Data missing when Exporting or print preview from ALV report
Hi
I have a alv report which is showing fine but when i try to export it to say excel sheet or do print preview some of the data is missing. Can anyone tell me how to fix this. or at least point to some document that discuss this problem.
Here is my ALV CODE
* CALL_ALV
form call_alv.
* v_repid = sy-repid.
perform build_field_catalog using field_tab[].
perform build_eventtab using events[].
perform comment_build using header_alv[].
perform build_sorttab using gt_sort[].
* perform build_layout.
* v_variant-variant = '/TEST3'.
* Call ABAP List Viewer
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = v_repid
i_callback_user_command = ''
i_structure_name = 'REC'
it_fieldcat = field_tab[]
it_special_groups = gt_sp_group[]
it_sort = gt_sort[]
i_save = v_save
is_variant = v_variant
it_events = events[]
* is_layout = gd_layout
tables
t_outtab = REC
exceptions
program_error = 1
others = 2.
endform.
From my Catalog this data is missing
* BUILD_FIELD_CATALOG
form build_field_catalog USING pt_fieldcat type
slis_t_fieldcat_alv.
data: ls_fieldcat type slis_fieldcat_alv.
clear: fieldcat, pt_fieldcat[].
ls_fieldcat-tabname = 'REC'.
ls_fieldcat-edit = ' '.
ls_fieldcat-fieldname = 'PERNR'.
ls_fieldcat-seltext_s = 'Employee # '.
ls_fieldcat-seltext_m = 'Employee # '.
ls_fieldcat-seltext_l = 'Employee # '.
ls_fieldcat-datatype = 'C'.
append ls_fieldcat to pt_fieldcat.
There r coupole that's missing
But there couple that show's up like this one
ls_fieldcat-fieldname = 'STIME'.
ls_fieldcat-seltext_s = 'ST '.
ls_fieldcat-seltext_m = 'St Tm '.
ls_fieldcat-seltext_l = 'Start Time '.
ls_fieldcat-datatype = 'C'.
append ls_fieldcat to pt_fieldcat.
ls_fieldcat-fieldname = 'ETIME'.
ls_fieldcat-seltext_s = 'ET '.
ls_fieldcat-seltext_m = 'Et Tm '.
ls_fieldcat-seltext_l = 'End Time '.
append ls_fieldcat to pt_fieldcat.
I always reward points.
Thankshi Anwarul,
Try the following code:
* CALL_ALV
form call_alv.
* v_repid = sy-repid.
perform build_field_catalog using field_tab[].
perform build_eventtab using events[].
perform comment_build using header_alv[].
perform build_sorttab using gt_sort[].
* perform build_layout.
* v_variant-variant = '/TEST3'.
* Call ABAP List Viewer
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = v_repid
i_callback_user_command = ''
i_structure_name = 'REC'
it_fieldcat = field_tab[]
it_special_groups = gt_sp_group[]
it_sort = gt_sort[]
i_save = v_save
is_variant = v_variant
it_events = events[]
* is_layout = gd_layout
tables
t_outtab = REC
exceptions
program_error = 1
others = 2.
endform.
form build_field_catalog USING pt_fieldcat type
slis_t_fieldcat_alv.
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
I_PROGRAM_NAME = sy-repid
I_STRUCTURE_NAME = 'REC'
changing
CT_FIELDCAT = pt_fieldcat.
When you export to excel, the character fields and numeric columns gets re-arranged, but all the fields will be displayed in this case.
hope this helps. -
Hi experts..
i got one requirement like i need to edit some rows particularly in alv....
Edit in alv output....is it possible to get that .....using normal function module with out using oops concept...
could any one pls help me...Hi Pendurti ,
If you want a particular field to be editable , simply define the fieldcatalog as
wa_fieldcatalog-edit = 'X'.
wa_fieldcatalog-input = 'X'.
for that field.
and
Now when you use FM ' Reuse alv grid display '
define USER_COMMAND
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = v_repid
i_callback_pf_status_set = 'SET_PF_STATUS'
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = int_fieldcatalog
is_layout = wa_layout
TABLES
t_outtab = t_disp.
and now in form USER_COMMAND ; code as per following
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA ref1 TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref1.
CALL METHOD ref1->check_changed_data.
endform.
Regards,
Yogendra Bhaskar
Maybe you are looking for
-
Windows update error: Code 80072F8F
CODE 800A1391 80072F8F
-
Traveling-do I need a dial up?
We have a network at home that allows me to access the internet. I am traveling to a location without wireless access/network and would like to be able to access the internet and check email (I use entourage). Forgive the silly question but do I need
-
Error extending EmployeeDetailsVO
Hi all I need to extend the EmployeeDetailsVO. I'm doing the following: 1. In custom directory, right click and select add new VO. 2. Choose the Browse button next to the Extends field, and select the EmployeeDetailsVO. 3. Click next to get to the SQ
-
Prime Infrastructure 2.2 with Nexus 5672UP
Hi I was wondering if anyone have managed to add Nexus 5672UP devices in Prime Infrastructure 2.2? I noticed that it is not in the device supported list of 2.2. I did however notice that the device is supported with Update Pack 7 in PI 2.1 Was wonder
-
Hi, DB is 9iR2 We needed to move some datafiles, and the RMAN method we use in 10g, didn't work in 9i. The script was: copy datafile 285 to '/u08/oracle/oradata/blablabla.dbf'; switch datafile 285 to copy; However, switch command RMAN 9i didn't like.