04-28-2006 3:28 PM
Hi,
Can anyone let me know what im missing since i get only my header downloaded when i download my output to EXCEL.
Im using ALV using CLASSES.
Thanks,
Anita
04-28-2006 3:30 PM
Hi,
Are you using the standard download option of the ALV grid? What exactly are you doing, please explain.
Regards,
Ravi
04-28-2006 3:38 PM
Im using Download option available on the output in ALV itself.
Im using CL_GUI_ALV_GRID for ALV Display.
Only Header is downloaded. Is there something im missing to Download Data too??
Anita
04-28-2006 3:38 PM
Im using Download option available on the output in ALV itself.
Im using CL_GUI_ALV_GRID for ALV Display.
Only Header is downloaded. Is there something im missing to Download Data too??
Anita
04-28-2006 3:45 PM
Hi Anitha,
what download option, is it export option you are talking. if so , use localfile option which is available.
Regards
vijay
04-28-2006 3:45 PM
Hi Anitha,
Follow the following path to download the data from ALV Grid.
Click on Export --> Spreadsheet --> Select Table Radio Button --> Microsoft Excel Radio Button
And you should be able to download the data.
Please reward helpful answer.
Regards,
Amit Mishra
04-28-2006 4:42 PM
Hi Vijay,
Im using the Download Option, im just interested in knowing of there is some event which needs to be added for download option.
I think my output internal table should be of characters only, other wise it doesnt download .
Im using Local file Option and other options available.
Can anyone let me know what im missing?
Anita
04-28-2006 4:54 PM
Anitha,
There is no event required if you are using the standard toolbar of the grid.
And also its not necessary that internal table should of characters only, however, what it does is to push all the numeric fields to the end of the excel sheet.
Its actually surprising why its not working in your case.
Regards,
Ravi
Note : Please mark the helpful answers
04-28-2006 5:08 PM
Hi Ravi,
The Last Column of the Output is only downloaded when i chose export to EXCEL?
What could be the problem then?
Anita
04-28-2006 5:16 PM
Anita,
Alright, A shot in the dark ..
Let's look at the way you are building your field catalog. Can you publish the code here. Also, if you are doing anything with filters / layout, give that code as well.
Regards,
Ravi
04-28-2006 5:18 PM
REPORT ZTMM_STOCK MESSAGE-ID zmsg
LINE-SIZE 270
LINE-COUNT 58
NO STANDARD PAGE HEADING.
tables: YGFMLINV, "Material Ledger - Inventory Data Extract
lfa1, "Vendor Master (General Section)
setheader, "Set Header and Directory(checking profit center grp)
mseg,
t001w,
mslbh,
mslb,
t001.
Internal Tables Declaration
data: begin of i_ygfmlinv occurs 0,
BDATJ like ygfmlinv-bdatj, "Posting date YYYY
POPER like ygfmlinv-poper, "Posting period
BUKRS like ygfmlinv-bukrs, "Company Code
PRCTR like ygfmlinv-prctr, "Profit center
WERKS like ygfmlinv-werks, "Plant
BKLAS like ygfmlinv-bklas, "Valuation class
MATNR like ygfmlinv-matnr, "Material number
BWTAR like ygfmlinv-bwtar, "Valuation type
STOCK_IND like ygfmlinv-stock_ind, "Stock indicators
MEINS like ygfmlinv-meins, "Base unit of measure
MLAST like ygfmlinv-mlast, "Material Price Dtermination: Control
LBKUM like ygfmlinv-lbkum, "Total valuated stock
vprsv like ygfmlinv-vprsv, "Price control indicator
lc_mvp_prc like ygfmlinv-lc_mvp_prc, "LC:Moving Avg/Periodic Prc
LC_CURTP like ygfmlinv-LC_CURTP, "Currency Type
LC_CURRENCY like ygfmlinv-lc_currency, "Currency Key
gc_curtp like ygfmlinv-gc_curtp, "Grp.Curr Type
gc_currency like ygfmlinv-gc_currency, " Grp.Curr
LC_TOT_AMT like ygfmlinv-lc_tot_amt, "LC: Total Amount
KONTS LIKE T030-KONTS, "G/L Account No
XBILK LIKE SKA1-XBILK,
lc_cogs like ygfmlinv-lc_var_amt,
lifnr like mslbh-lifnr,
lc_trfix_amt like ygfmlinv-lc_trfix_amt,
lc_lofix_amt like ygfmlinv-lc_lofix_amt,
lc_var_amt like ygfmlinv-lc_var_amt,
lc_utp_amt like ygfmlinv-lc_utp_amt,
end of i_ygfmlinv.
data: begin of i_mslbh occurs 0,
MATNR like mslbh-matnr, "Material number
SOBKZ like mslbh-sobkz, "Special stock indicator
LIFNR like mslbh-lifnr, "Account number of vendor or creditor
WERKS like mslbh-werks, "Plant
CHARG like mslbh-charg, "Batch number
LFGJA like mslbh-lfgja, "Fiscal year of current period
LFMON like mslbh-lfmon, "Current period (posting period)
LBLAB like mslbh-lblab, "Current period (posting period)
LBINS like mslbh-lbins, "Stock in quality inspection
end of i_mslbh.
data: begin of i_MSLB occurs 0,
MATNR like mslb-matnr,
WERKS like mslb-werks,
SOBKZ like mslb-sobkz,
LIFNR like mslb-lifnr,
LFGJA like mslb-lfgja,
LFMON like mslb-lfmon,
LBLAB like mslb-lblab,
LBINS like mslb-lbins,
LBEIN like mslb-lbein,
end of i_mslb.
*data: begin of i_t030 occurs 0,
KTOPL like t030-ktopl,
BKLAS like t030-bklas,
KONTS like t030-konts,
end of i_t030.
*
*data: begin of i_ska1 occurs 0,
SAKNR like ska1-saknr,
XBILK like ska1-xbilk,
end of i_ska1.
DATA : BEGIN OF i_non_subc OCCURS 0,
MATNR LIKE YGFMLINV-MATNR, "Material
WERKS LIKE YGFMLINV-WERKS, "Plant,
bukrs like ygfmlinv-bukrs, "Company Code
BKLAS LIKE YGFMLINV-BKLAS, "Val Class
PRCTR LIKE YGFMLINV-PRCTR, "Profit Center
BWTAR LIKE YGFMLINV-BWTAR, "Val Type
LBKUM LIKE YGFMLINV-LBKUM, "QTY
PEINH LIKE YGFMLINV-PEINH, "Price Unit
MEINS LIKE YGFMLINV-MEINS, "Unit of Measure
lc_currency like ygfmlinv-lc_currency,
lc_curtp like ygfmlinv-lc_curtp,
gc_currency like ygfmlinv-gc_currency,
gc_curtp like ygfmlinv-gc_currency,
LC_VAR_AMT LIKE YGFMLINV-LC_VAR_AMT, "LC :Variable Amt
LC_TRFIX_AMT LIKE YGFMLINV-LC_TRFIX_AMT, "LC :Trnsfer Fixed Amt
LC_LOFIX_AMT LIKE YGFMLINV-LC_LOFIX_AMT, "LC:Local Fixed Amt.
LC_COGS LIKE YGFMLINV-LC_VAR_AMT, "Total LC fixed COGS
"added as per CC01507
LC_UTP_AMT LIKE YGFMLINV-LC_UTP_AMT, "LC:UTP Amount.
LC_TR_VAL LIKE YGFMLINV-LC_LOFIX_AMT,"TotalLC Transfer value
XBILK LIKE SKA1-XBILK, "Balance Indicator
gc_var_amt like ygfmlinv-gc_var_amt,
gc_trfix_amt like ygfmlinv-gc_trfix_amt,
gc_lofix_amt like ygfmlinv-gc_lofix_amt,
gc_cogs like ygfmlinv-gc_var_amt,
gc_utp_amt like ygfmlinv-gc_utp_amt,
gc_tr_val like ygfmlinv-gc_lofix_amt,
END OF i_non_subc.
Final Output Table
types: begin of t_output,
matnr like ygfmlinv-matnr,
lifnr like mslbh-lifnr,
werks like ygfmlinv-werks,
spstk like mslbh-lblab,
totstk like ygfmlinv-lbkum,
lc_currency like ygfmlinv-LC_CURRENCY,
lc_curtp like ygfmlinv-lc_curtp,
gc_curtp like ygfmlinv-gc_curtp,
gc_currency like ygfmlinv-gc_currency,
name1 like lfa1-name1,
vprsv like ygfmlinv-vprsv,
bukrs like ygfmlinv-bukrs,
mlast like ygfmlinv-mlast,
meins like ygfmlinv-meins,
bklas like ygfmlinv-bklas,
maktx like makt-maktx,
stdprice(18),
totval like ygfmlinv-lc_tot_amt,
sobkz like mslbh-sobkz,
end of t_output.
Work Area for Final Output Table
data: wa_output type t_output.
ALV Display
Name of Custom Container added on the screen
data: G_CONTAINER TYPE SCRFNAME VALUE 'ZGRID_CTRL',
ALV GRID Instance Reference
G_GRID1 TYPE REF TO CL_GUI_ALV_GRID, "Grid
Instance Reference to Custom Container
G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
PBO Status
data: ok_code like sy-ucomm,
Field Catalog Table
gT_FIELDCAT TYPE LVC_T_FCAT,
Layout Structure
gs_layout type lvc_s_layo,
Sorting anf Subtotal
gt_sort TYPE lvc_s_sort occurs 0,
gt_output type standard table of t_output.
data: g_curr(2).
----
CLASS lcl_event_receiver DEFINITION
----
........ *
----
class lcl_event_receiver definition.
public section.
Add SUB TOTAL TEXT to the ALV DISPLAY
methods handle_subtotal_text
for event subtotal_text of cl_gui_alv_grid
importing es_subtottxt_info ep_subtot_line e_event_data.
endclass.
Declaration for EVENT Receiver
data: event_receiver type ref to lcl_event_receiver,
l_subtxt(60) value 'Subtotal Text'.
field-symbols: <fs> type t_output,
<fs1>.
----
CLASS LCL_EVENT_RECEIVER IMPLEMENTATION
----
........ *
----
CLASS LCL_EVENT_RECEIVER IMPLEMENTATION.
METHOD HANDLE_SUBTOTAL_TEXT.
FIELD for which the SUBTOTAL is Calculated
if es_subtottxt_info-criteria = 'MATNR'.
ASSIGN EP_SUBTOT_LINE->* TO <FS1>.
ASSIGN E_EVENT_DATA->M_DATA->* TO <FS>.
CONCATENATE es_subtottxt_info-keyword ':MATERIAL'
<fs>-matnr INTO <fs1>.
ENDIF.
ENDMETHOD. "HANDLE_SUBTOTAL_TEXT
ENDCLASS. "LCL_EVENT_RECEIVER IMPLEMENTATION
Constants
constants: c_eb(2) value 'EB',
c_m value 'M',
C_KTOPL(4) VALUE 'TCOA',
C_KTOSL(3) VALUE 'BSX',
C_KONTS(4) VALUE '002%'.
Selection Screen
selection-screen:begin of block b1 with frame title text-001.
select-options: s_lifnr for lfa1-lifnr , "Vendor
s_werks for YGFMLINV-werks obligatory, "Plant
s_prctr for YGFMLINV-prctr, "Pr.Ctr
s_matnr for ygfmlinv-matnr, "Mat.No
s_bwtar for mseg-bwtar no-display.
parameters: p_bukrs like YGFMLINV-bukrs obligatory, "C.Code
p_pctrgp like SETHEADER-SETNAME, "Pf.ct.Grp
p_poper like YGFMLINV-poper obligatory, " Period
p_bdatj like YGFMLINV-bdatj obligatory, " Year
r_ccode radiobutton group rad1 default 'X',
r_grpcur radiobutton group rad1.
selection-screen: end of block b1.
----
Ranges Declaration
----
RANGES : R_PROFIT_CTR FOR CEPC-PRCTR.
*----
INITIALIZATON
*----
*initialization.
----
Validations for Selection Screen
----
Validation for Vendor
at selection-screen on s_lifnr.
select single lifnr
from lfa1
into lfa1-lifnr
where lifnr in s_lifnr.
if sy-subrc ne 0.
message e039.
endif.
Validation for Plant
at selection-screen on s_werks.
select single werks
from t001w
into t001w-werks
where werks in s_werks.
if sy-subrc ne 0.
message e040.
endif.
Validation for Profit Center
at selection-screen on s_prctr.
select single prctr
from ygfmlinv
into ygfmlinv-prctr
where prctr in s_prctr.
if sy-subrc ne 0.
message e041.
endif.
Validation for Company Code
at selection-screen on p_bukrs.
select single bukrs
from t001
into t001-bukrs
where bukrs eq p_bukrs.
if sy-subrc ne 0.
message e042.
endif.
Validation for Profit Center Group
at selection-screen on p_pctrgp.
if not p_pctrgp is initial.
select single setname
from setheader
into setheader-setname
where setname eq p_pctrgp.
if sy-subrc ne 0.
message e043.
endif.
endif.
Validation for Fiscal Period
*at selection-screen on p_poper.
select single poper
from YGFMLINV
into YGFMLINV-poper
where poper eq p_poper.
if sy-subrc ne 0.
message e045.
endif.
Validation for Fiscal Year
*at selection-screen on p_bdatj.
select single bdatj
from YGFMLINV
into YGFMLINV-bdatj
where bdatj eq p_bdatj.
if sy-subrc ne 0.
message e046.
endif.
start-of-selection.
if p_pctrgp ne ' '.
perform f_profit_center_select.
endif.
perform f_data_selection. "using p_profit_center..
end-of-selection.
call screen 100.
&----
*& Form f_data_selection
&----
text
----
--> p1 text
<-- p2 text
----
FORM f_data_selection.
data: l_flg,
l_lblab like mslbh-lblab,
l_name1 like lfa1-name1,
l_rate like mslbh-lblab,
l_maktx like makt-maktx,
l_diff_stk like mslbh-lblab,
l_totval like ygfmlinv-lc_tot_amt.
From profit center group get Profit Center
LOOP AT R_PROFIT_CTR.
IF R_PROFIT_CTR-LOW EQ R_PROFIT_CTR-HIGH.
R_PROFIT_CTR-OPTION = 'EQ'.
R_PROFIT_CTR-HIGH = SPACE.
MODIFY R_PROFIT_CTR.
ENDIF.
ENDLOOP.
if r_ccode eq 'X'.
g_curr = '10'.
else.
g_curr = '30'.
endif.
if g_curr eq '10'.
Fetch TOTAL STOCK ,VALUE from ML - Inv. Data Extract Table
select BDATJ POPER BUKRS PRCTR WERKS BKLAS MATNR
BWTAR STOCK_IND MEINS MLAST LBKUM
vprsv lc_mvp_prc LC_CURTP
LC_CURRENCY LC_TOT_AMT
lc_var_amt LC_UTP_AMT
lc_trfix_amt lc_lofix_amt
gc_curtp gc_currency
from YGFMLINV
into corresponding fields of table i_YGFMLINV
where bdatj eq p_bdatj and
poper eq p_poper and
bukrs eq p_bukrs and
werks in s_werks and
matnr in s_matnr and
STOCK_IND eq c_m and
trans_type eq c_eb and
lc_curtp eq g_curr.
else.
Fetch TOTAL STOCK ,VALUE from ML - Inv. Data Extract Table
select BDATJ POPER BUKRS PRCTR WERKS BKLAS MATNR
BWTAR STOCK_IND MEINS MLAST LBKUM
vprsv lc_mvp_prc LC_CURTP
LC_CURRENCY LC_TOT_AMT
lc_var_amt LC_UTP_AMT
lc_trfix_amt lc_lofix_amt
gc_curtp gc_currency
from YGFMLINV
into corresponding fields of table i_YGFMLINV
where bdatj eq p_bdatj and
poper eq p_poper and
bukrs eq p_bukrs and
werks in s_werks and
matnr in s_matnr and
STOCK_IND eq c_m and
trans_type eq c_eb and
gc_curtp eq g_curr.
endif.
Delete Entries not in Profit Center range
LOOP AT I_YGFMLINV.
IF NOT I_YGFMLINV-PRCTR IN R_PROFIT_CTR.
DELETE I_YGFMLINV.
ENDIF.
ENDLOOP.
if not i_ygfmlinv[] is initial.
data l_date like mkpf-budat.
move : p_bdatj to l_date(4),
p_poper to l_date+4(2),
'31' to l_date+6(2).
Get the TOTAL STOCK for Vendor and Material
SELECT MATNR
WERKS
CHARG
SOBKZ
LIFNR
LFGJA
LFMON
LBLAB
LBINS
FROM MSLBH INTO corresponding fields of TABLE I_MSLBH
for all entries in i_ygfmlinv
WHERE MATNR eq i_ygfmlinv-matnr and
WERKS EQ i_ygfmlinv-WERKS AND
SOBKZ in p_stkind AND
LIFNR in s_LIFNR AND
LFGJA GE P_BDATJ and
lfmon eq p_poper.
if sy-subrc eq 0.
DELETE I_MSLBH WHERE LFGJA EQ P_BDATJ AND
LFMON LT P_POPER.
endif.
endif.
sort i_mslbh by matnr lifnr werks lfgja lfmon.
sort i_ygfmlinv by matnr werks bdatj poper.
loop at i_mslbh.
l_lblab = l_lblab + i_mslbh-lblab.
at end of lifnr.
l_flg = 'X'.
endat.
read table i_ygfmlinv with key matnr = i_mslbh-matnr
werks = i_mslbh-werks
bdatj = i_mslbh-lfgja
poper = i_mslbh-lfmon
binary search.
if sy-subrc eq 0.
select single name1 from lfa1 into l_name1
where lifnr eq i_mslbh-lifnr.
if sy-subrc eq 0.
select single maktx
from makt
into l_maktx
where matnr eq i_mslbh-matnr and
spras eq sy-langu.
if l_flg eq 'X'.
Subtract Total stk from Special Stock Vendor to get the difference
l_diff_stk = i_ygfmlinv-lbkum - l_lblab.
move : i_mslbh-matnr to wa_output-matnr,
i_mslbh-lifnr to wa_output-lifnr,
i_mslbh-werks to wa_output-werks,
l_lblab to wa_output-totstk,
l_name1 to wa_output-name1,
i_ygfmlinv-vprsv to wa_output-vprsv,
i_ygfmlinv-meins to wa_output-meins,
i_ygfmlinv-lc_mvp_prc to wa_output-stdprice,
i_ygfmlinv-mlast to wa_output-mlast,
i_ygfmlinv-bukrs to wa_output-bukrs,
i_ygfmlinv-bklas to wa_output-bklas,
i_mslbh-sobkz to wa_output-sobkz.
if g_curr eq '10'.
move: i_ygfmlinv-lc_curtp to wa_output-lc_curtp,
i_ygfmlinv-lc_currency to wa_output-lc_currency.
else.
move: i_ygfmlinv-gc_curtp to wa_output-gc_curtp,
i_ygfmlinv-gc_currency to wa_output-gc_currency.
endif.
if wa_output-totstk ne 0.
l_rate = i_ygfmlinv-LC_TOT_AMT / i_ygfmlinv-lbkum.
wa_output-totval = l_rate * l_lblab.
endif.
append wa_output to gt_output.
move wa_output-totval to l_totval.
clear: l_rate,wa_output.
if l_diff_stk ne 0.
wa_output-totval = i_ygfmlinv-LC_TOT_AMT - l_totval.
move: i_mslbh-matnr to wa_output-matnr,
*Included - Remove
i_mslbh-matnr to wa_output-matnr,
i_mslbh-werks to wa_output-werks,
l_diff_stk to wa_output-totstk,
i_ygfmlinv-vprsv to wa_output-vprsv,
i_ygfmlinv-meins to wa_output-meins,
i_ygfmlinv-lc_mvp_prc to wa_output-stdprice,
i_ygfmlinv-mlast to wa_output-mlast,
i_ygfmlinv-bukrs to wa_output-bukrs,
i_ygfmlinv-bklas to wa_output-bklas.
if g_curr eq '10'.
move: i_ygfmlinv-lc_curtp to wa_output-lc_curtp,
i_ygfmlinv-lc_currency to wa_output-lc_currency.
else.
move: i_ygfmlinv-gc_curtp to wa_output-gc_curtp,
i_ygfmlinv-gc_currency to wa_output-gc_currency.
endif.
append wa_output to gt_output.
clear: i_ygfmlinv,l_flg,l_lblab,l_name1,wa_output,
i_mslbh.
endif.
endif.
endif.
endif.
endloop.
sort: i_ygfmlinv by matnr werks,
i_mslbh by matnr werks.
LOOP AT I_YGFMLINV.
read table i_mslbh with key matnr = i_ygfmlinv-matnr
binary search.
if sy-subrc eq 0.
delete i_ygfmlinv.
clear i_ygfmlinv.
else.
MOVE-CORRESPONDING I_YGFMLINV TO i_non_subc.
APPEND i_non_subc.
CLEAR I_YGFMLINV.
endif.
ENDLOOP.
sort i_non_subc by matnr werks.
data: l_lc_cogs(16) type p decimals 2,
l_lc_tr_val(16) type p decimals 2,
l_gc_cogs(16) type p decimals 2,
l_gc_tr_val(16) type p decimals 2.
LOOP AT i_non_subc.
if g_curr eq '10'.
l_LC_COGS = i_non_subc-LC_TRFIX_AMT +
i_non_subc-LC_LOFIX_AMT.
l_LC_TR_VAL = i_non_subc-LC_VAR_AMT + l_LC_COGS +
i_non_subc-LC_UTP_AMT.
else.
l_gc_cogs = i_non_subc-gc_trfix_amt + i_non_subc-gc_lofix_amt.
l_gc_tr_val = i_non_subc-gc_var_amt + i_non_subc-gc_cogs +
i_non_subc-gc_utp_amt.
endif.
at end of matnr.
l_flg = 'X'.
endat.
if l_flg eq 'X'.
move: i_non_subc-matnr to wa_output-matnr,
i_non_subc-werks to wa_output-werks,
i_non_subc-lbkum to wa_output-totstk,
i_non_subc-meins to wa_output-meins,
i_non_subc-bukrs to wa_output-bukrs,
i_non_subc-bklas to wa_output-bklas,
i_non_subc-lc_curtp to wa_output-lc_curtp,
i_non_subc-lc_currency to wa_output-lc_currency,
i_non_subc-gc_curtp to wa_output-gc_curtp,
i_non_subc-gc_currency to wa_output-gc_currency.
if g_curr eq '10'.
move l_lc_tr_val to wa_output-totval.
else.
move l_gc_tr_val to wa_output-totval.
endif.
i_non_subc-mlast to wa_output-mlast.
select single maktx
from makt
into l_maktx
where matnr eq i_non_subc-matnr and
spras eq sy-langu.
if sy-subrc eq 0.
move l_maktx to wa_output-maktx.
append wa_output to gt_output .
clear: wa_output,l_flg,l_lc_tr_val,l_lc_cogs,
l_gc_cogs,l_gc_tr_val.
endif.
endif.
ENDLOOP.
ENDFORM. " f_data_selection
&----
*& Module STATUS_0100 OUTPUT
&----
text
----
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'ZPF_STATUS'.
SET TITLEBAR 'ZTITLE'.
ENDMODULE. " STATUS_0100 OUTPUT
&----
*& Module alv_display OUTPUT
&----
text
----
MODULE alv_display OUTPUT.
data: total type ref to data,
subtotal1 type ref to data.
field-symbols <total> like gt_output .
field-symbols <subtotal1> like gt_output.
*
if g_grid1 is initial.
perform f_create_objects.
perform f_build_field_catalog changing gt_fieldcat.
perform f_prepare_layout changing gs_layout.
perform f_sort_sub_total changing gt_sort.
CALL METHOD G_GRID1->GET_SORT_CRITERIA
IMPORTING
ET_SORT = gt_sort[] .
CALL METHOD g_grid1->GET_SUBTOTALS
IMPORTING
EP_COLLECT00 = total
EP_COLLECT01 = subtotal1 .
EP_COLLECT02 =
EP_COLLECT03 =
EP_COLLECT04 =
EP_COLLECT05 =
EP_COLLECT06 =
EP_COLLECT07 =
EP_COLLECT08 =
EP_COLLECT09 =
ET_GROUPLEVELS = .
*
assign total->* to <total>.
assign subtotal1->* to <subtotal1>.
*ALV Display - Specify Sorting,Filtering Criteria
if gt_output[] is initial.
message i015.
endif.
CALL METHOD G_GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
I_CONSISTENCY_CHECK =
I_STRUCTURE_NAME =
IS_VARIANT =
I_SAVE =
I_DEFAULT = 'X'
IS_LAYOUT = gs_layout
IS_PRINT =
IT_SPECIAL_GROUPS =
IT_TOOLBAR_EXCLUDING =
IT_HYPERLINK =
IT_ALV_GRAPHICS =
IT_EXCEPT_QINFO =
CHANGING
IT_OUTTAB = gt_output[]
IT_FIELDCATALOG = gt_fieldcat
IT_SORT = gt_sort[]
IT_FILTER =
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
others = 4 .
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
else.
CALL METHOD G_GRID1->REFRESH_TABLE_DISPLAY
EXPORTING
IS_STABLE =
I_SOFT_REFRESH =
EXCEPTIONS
FINISHED = 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.
endif.
ENDMODULE. " alv_display OUTPUT
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE USER_COMMAND_0100 INPUT.
case ok_code.
when 'BACK'.
set screen '0'.
leave screen.
when 'EXIT' or 'CANCEL'.
PERFORM EXIT_PROGRAM.
endcase.
clear ok_code.
ENDMODULE. " USER_COMMAND_0100 INPUT
&----
*& Form f_create_objects
&----
text
----
--> p1 text
<-- p2 text
----
FORM f_create_objects.
Creating Custom Container Objects and GRID
IF G_grid1 IS INITIAL.
*Creating Custom Container Instance
Pass the name of the control that you have created on the screen
CREATE OBJECT G_CUSTOM_CONTAINER
EXPORTING CONTAINER_NAME = 'ZGRID_CTRL'.
*Creating ALV Grid Instance
CREATE OBJECT G_GRID1 EXPORTING I_PARENT = G_CUSTOM_CONTAINER.
endif.
ENDFORM. " f_create_objects
&----
*& Form f_build_field_catalog
&----
text
----
--> p1 text
<-- p2 text
----
FORM f_build_field_catalog changing pt_fieldcat type lvc_t_fcat.
data ls_fcat type lvc_s_fcat.
Val Type
ls_fcat-fieldname = 'BUKRS'.
ls_fcat-inttype = 'C'.
ls_fcat-outputlen = '4'.
ls_fcat-coltext = 'Val.Type'.
ls_fcat-seltext = 'Val.Type'.
ls_fcat-col_pos = '1'.
append ls_fcat to pt_fieldcat.
clear ls_fcat.
Val.Class
ls_fcat-fieldname = 'BKLAS'.
ls_fcat-TABNAME = 'YGFMLINV'.
ls_fcat-outputlen = '4'.
ls_fcat-coltext = 'Val.Class'.
ls_fcat-seltext = 'Val.Class'.
ls_fcat-col_pos = '2'.
append ls_fcat to pt_fieldcat.
clear ls_fcat.
*Plant
ls_fcat-fieldname = 'WERKS'.
ls_fcat-TABNAME = 'YGFMLINV'.
ls_fcat-outputlen = '4'.
ls_fcat-coltext = 'Plant'.
ls_fcat-seltext = 'Plant'.
ls_fcat-col_pos = '3'.
append ls_fcat to pt_fieldcat.
clear ls_fcat.
*Material
ls_fcat-fieldname = 'MATNR'.
ls_fcat-TABNAME = 'YGFMLINV'.
ls_fcat-outputlen = '18'.
ls_fcat-coltext = 'Material'.
ls_fcat-seltext = 'Material'.
ls_fcat-col_pos = '4'.
append ls_fcat to pt_fieldcat.
clear ls_fcat.
*Description
ls_fcat-fieldname = 'MAKTX'.
ls_fcat-TABNAME = 'MAKT'.
ls_fcat-outputlen = '40'.
ls_fcat-coltext = 'Description'.
ls_fcat-seltext = 'Description'.
ls_fcat-col_pos = '5'.
append ls_fcat to pt_fieldcat.
clear ls_fcat.
*Price Control
ls_fcat-fieldname = 'VPRSV'.
ls_fcat-TABNAME = 'YGFMLINV'.
ls_fcat-outputlen = '1'.
ls_fcat-coltext = 'Price Control'.
ls_fcat-seltext = 'Price Control'.
ls_fcat-col_pos = '6'.
append ls_fcat to pt_fieldcat.
clear ls_fcat.
*Price Determination
ls_fcat-fieldname = 'MLAST'.
ls_fcat-TABNAME = 'YGFMLINV'.
ls_fcat-outputlen = '1'.
ls_fcat-coltext = 'Price Determination'.
ls_fcat-seltext = 'Price Determination'.
ls_fcat-col_pos = '7'.
append ls_fcat to pt_fieldcat.
clear ls_fcat.
Total Stock
ls_fcat-fieldname = 'TOTSTK'.
ls_fcat-REF_TABLE = 'YGFMLINV'.
ls_fcat-REF_FIELD = 'LBKUM'.
ls_fcat-QFIELDNAME = 'MEINS'.
ls_fcat-IFIELDNAME = 'YGFMLINV'.
ls_fcat-coltext = 'Total Stock'.
ls_fcat-seltext = 'Total Stock'.
ls_fcat-col_pos = '8'.
ls_fcat-do_sum = 'X'.
append ls_fcat to pt_fieldcat.
clear ls_fcat.
Std. Price
ls_fcat-fieldname = 'STDPRICE'.
ls_fcat-TABNAME = 'YGFMLINV'.
ls_fcat-REF_TABLE = 'YGFMLINV'.
ls_fcat-ref_field = 'LC_MVP_PRC'.
ls_fcat-coltext = 'Std.Price'.
ls_fcat-col_pos = '9'.
append ls_fcat to pt_fieldcat.
clear ls_fcat.
if g_curr eq '10'.
Currency Type
ls_fcat-fieldname = 'LC_CURTP'.
ls_fcat-TABNAME = 'YGFMLINV'.
ls_fcat-coltext = 'Currency Type'.
ls_fcat-seltext = 'Currency Type'.
ls_fcat-col_pos = '10'.
append ls_fcat to pt_fieldcat.
clear ls_fcat.
else.
Currency Type
ls_fcat-fieldname = 'GC_CURTP'.
ls_fcat-TABNAME = 'YGFMLINV'.
ls_fcat-coltext = 'Currency Type'.
ls_fcat-seltext = 'Currency Type'.
ls_fcat-col_pos = '10'.
append ls_fcat to pt_fieldcat.
clear ls_fcat.
endif.
*Per Unit Price
ls_fcat-fieldname = 'STDPRICE'.
ls_fcat-TABNAME = 'YGFMLINV'.
ls_fcat-ref_table = 'YGFMLINV'.
ls_fcat-ref_field = 'LC_MVP_PRC'.
ls_fcat-currency = 'LC_CURRENCY'.
ls_fcat-coltext = 'Per.Unit.Price'.
ls_fcat-seltext = 'Per.Unit.Price'.
ls_fcat-col_pos = '11'.
append ls_fcat to pt_fieldcat.
clear ls_fcat.
Quantity Measurement
ls_fcat-fieldname = 'MEINS'.
ls_fcat-TABNAME = 'YGFMLINV'.
ls_fcat-coltext = 'Base Unit'.
ls_fcat-seltext = 'Base Unit'.
ls_fcat-col_pos = '12'.
append ls_fcat to pt_fieldcat.
clear ls_fcat.
*Total Value
ls_fcat-fieldname = 'TOTVAL'.
ls_fcat-TABNAME = 'YGFMLINV'.
ls_fcat-currency = 'GC_CURRENCY'.
ls_fcat-coltext = 'Total Value'.
ls_fcat-seltext = 'Total Value'.
ls_fcat-col_pos = '13'.
ls_fcat-do_sum = 'X'.
append ls_fcat to pt_fieldcat.
clear ls_fcat.
*Value/period
ls_fcat-fieldname = 'TOTVAL'.
ls_fcat-TABNAME = 'YGFMLINV'.
ls_fcat-currency = 'GC_CURRENCY'.
ls_fcat-coltext = 'Value/Period'.
ls_fcat-seltext = 'Value/Period'.
ls_fcat-col_pos = '14'.
append ls_fcat to pt_fieldcat.
clear ls_fcat.
*Vendor
ls_fcat-fieldname = 'LIFNR'.
ls_fcat-TABNAME = 'LFA1'.
ls_fcat-coltext = 'Vendor'.
ls_fcat-seltext = 'Vendor'.
ls_fcat-col_pos = '15'.
append ls_fcat to pt_fieldcat.
clear ls_fcat.
*Vendor Description
ls_fcat-fieldname = 'NAME1'.
ls_fcat-TABNAME = 'LFA1'.
ls_fcat-coltext = 'Vend.Desc'.
ls_fcat-seltext = 'Vend.Desc'.
ls_fcat-col_pos = '16'.
append ls_fcat to pt_fieldcat.
clear ls_fcat.
*Special Stock Indicator
ls_fcat-fieldname = 'SOBKZ'.
ls_fcat-TABNAME = 'MSLBH'.
ls_fcat-coltext = 'Spl.Stock Ind'.
ls_fcat-seltext = 'Spl.Stock Ind'.
ls_fcat-col_pos = '17'.
append ls_fcat to pt_fieldcat.
clear ls_fcat.
ENDFORM. " f_build_field_catalog
&----
*& Form f_prepare_layout
&----
text
----
<--P_GS_LAYOUT text
----
FORM f_prepare_layout CHANGING P_GS_LAYOUT type lvc_s_layo.
p_gs_layout-zebra = 'X'.
p_gs_layout-grid_title = 'Material List: Prices and Inventory Values'.
p_gs_layout-smalltitle ='X'.
p_gs_layout-no_totline = 'X'.
p_gs_layout-no_totarr = 'X'.
p_gs_layout-no_totexp = 'X'.
p_gs_layout-totals_bef = 'X'.
ENDFORM. " f_prepare_layout
&----
*& Form f_profit_center_select
&----
Validate the Profit Center Groups with Profit Center
----
--> p1 text
<-- p2 text
----
FORM f_profit_center_select.
DATA:V_RETCODE LIKE BAPIRET2,
V_GROUPNAME LIKE BAPICO_GROUP-GROUPNAME ,
p_kokrs like CEPC-KOKRS value 'DU01',
I_HIERARCHYNODES LIKE BAPISET_HIER OCCURS 0 WITH HEADER LINE,
I_PRCTR LIKE BAPI1116_VALUES OCCURS 0 WITH HEADER LINE.
V_GROUPNAME = P_PCTRGP.
CALL FUNCTION 'BAPI_PROFITCENTERGRP_GETDETAIL'
EXPORTING
CONTROLLINGAREA = P_KOKRS
GROUPNAME = V_GROUPNAME
IMPORTING
RETURN = V_RETCODE
TABLES
HIERARCHYNODES = I_HIERARCHYNODES
HIERARCHYVALUES = I_PRCTR.
LOOP AT I_PRCTR.
R_PROFIT_CTR-LOW = I_PRCTR-VALFROM.
R_PROFIT_CTR-HIGH = I_PRCTR-VALTO.
R_PROFIT_CTR-SIGN = 'I'.
R_PROFIT_CTR-OPTION = 'BT'.
APPEND R_PROFIT_CTR.
ENDLOOP.
ENDFORM. " f_profit_center_select
&----
*& Form f_sort_sub_total
&----
text
----
<--P_GT_SORT text
----
FORM f_sort_sub_total CHANGING P_GT_SORT.
DATA: ls_sort TYPE lvc_s_sort occurs 0 with header line.
ls_sort-spos = '1' .
ls_sort-fieldname = 'MATNR'.
ls_sort-up = 'X'.
ls_sort-subtot = 'X'.
ls_sort-expa ='X'.
ls_sort-group = 'UL'.
append ls_sort TO gt_sort.
ENDFORM. " f_sort_sub_total
&----
*& Form EXIT_PROGRAM
&----
text
----
--> p1 text
<-- p2 text
----
FORM EXIT_PROGRAM.
data: g_repid like sy-repid.
g_repid = sy-repid.
CALL METHOD G_CUSTOM_CONTAINER->FREE.
CALL METHOD CL_GUI_CFW=>FLUSH.
IF SY-SUBRC NE 0.
add your handling, for example
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
TITEL = G_REPID
TXT2 = SY-SUBRC
TXT1 = 'Error in Flush'(009).
ENDIF.
LEAVE PROGRAM.
ENDFORM. " EXIT_PROGRAM
04-28-2006 5:29 PM
Anita,
I am guessing its because of the field catalog that you have created manually, some parameters are not filled, but I cannot put my finger on which one it is.
Can you do this, create a structure in SE11 with the fields of the field catalog refrerring them to the data elements. Then create a field catalog using LVC_FIELDCATALOG_MERGE passing the structure name and use that field catalog.
I am sure that it will work.
Regards,
Ravi
Note :Please mark the helpful answers
04-28-2006 7:32 PM
Anitha,
Have you also tried to put, for each field of the field catalog, in the TABNAME field, the name of the Internal Table that contains the contents of the report?
Regards,
Daniel Carvalho.
04-28-2006 7:35 PM
Anitha,
A NOTE: The Internal Table for you to set in the TABNAME field of the field catalog internal table should be GT_OUTPUT (it is the Internal Table name of hte parameter you are passing in the SET_TABLE_FOR_FIRST_DISPLAY method).
Regards,
Daniel Carvalho.
04-28-2006 3:30 PM
Hi Anitha.
What is the class you are using to do the ALV? CL_GUI_ALV_GRID?
Regards,
Daniel Carvalho (dsctce@hotmail.com)