Run Time error in ALV report
Dear friends
When I try to run the following code, I keep getting a message that says
"The field "GT_FIELD" specified here has a different field type.".
I have run this in many occassions and it has worked before. I would appreciate if some one can help me with this. Following is the code
CODE FOLLOWS----
REPORT ZSAPMZRFT_ZWMSCHED_REPORT MESSAGE-ID zrammessage LINE-SIZE 168
LINE-COUNT 20(6) NO STANDARD PAGE HEADING.
TABLES: zwmsched,
zwmwave.
Data : v_repid LIKE sy-repid,
BEGIN OF s_zwmsched occurs 1,
mandt LIKE zwmsched-mandt,
werks LIKE zwmsched-werks,
lgnum LIKE zwmsched-lgnum,
ship_date LIKE zwmsched-ship_date,
carrier LIKE zwmsched-carrier,
vbeln LIKE zwmsched-vbeln,
kunnr LIKE zwmsched-kunnr,
custname LIKE zwmsched-custname,
city LIKE zwmsched-city,
state LIKE zwmsched-state,
zip LIKE zwmsched-zip,
qty LIKE zwmsched-qty,
uom LIKE zwmsched-uom,
wt LIKE zwmsched-wt,
wt_uom LIKE zwmsched-wt_uom,
volumn LIKE zwmsched-volumn,
vol_uom LIKE zwmsched-vol_uom,
inco LIKE zwmsched-inco,
equipment LIKE zwmsched-equipment,
door LIKE zwmsched-door,
wavenum LIKE zwmsched-wavenum,
load_seq LIKE zwmsched-load_seq,
notes LIKE zwmsched-notes,
pick_stat LIKE zwmsched-pick_stat,
load_stat LIKE zwmsched-load_stat,
bol_stat LIKE zwmsched-bol_stat,
mbol LIKE zwmsched-mbol,
seal LIKE zwmsched-seal,
gm_status LIKE zwmsched-gm_status,
createdate LIKE zwmsched-createdate,
created_by LIKE zwmsched-created_by,
changedate LIKE zwmsched-changedate,
changed_by LIKE zwmsched-changed_by,
END of s_zwmsched,
Begin of temp_zwmsched occurs 1,
so_lgnum LIKE zwmsched-lgnum,
so_vbeln LIKE zwmsched-vbeln,
pa_date LIKE zwmsched-ship_date,
pa_wvno LIKE zwmsched-wavenum,
pa_door LIKE zwmsched-door,
carrier LIKE zwmsched-carrier,
pickstat LIKE zwmsched-pick_stat,
mbol LIKE zwmsched-mbol,
loadstat LIKE zwmsched-load_stat,
bol_stat LIKE zwmsched-bol_stat,
pgi_stat LIKE zwmsched-gm_status,
end of temp_zwmsched.
TYPE-POOLS : slis.
DATA :
gt_field TYPE slis_t_fieldcat_alv,
wa_field TYPE slis_fieldcat_alv,
gt_layout TYPE slis_layout_alv.
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-001.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS: so_lgnum FOR zwmsched-lgnum,
so_vbeln FOR zwmsched-vbeln,
pa_date FOR zwmsched-ship_date,
pa_wvno FOR zwmsched-wavenum,
pa_door FOR zwmsched-door,
carrier FOR zwmsched-carrier,
pickstat FOR zwmsched-pick_stat,
mbol FOR zwmsched-mbol.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK block1.
SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE text-002.
SELECTION-SCREEN SKIP.
PARAMETERS: loadstat LIKE zwmsched-load_stat,
bol_stat LIKE zwmsched-bol_stat,
pgi_stat LIKE zwmsched-gm_status.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK block2.
select * from zwmsched into corresponding fields of table temp_zwmsched
where
lgnum in so_lgnum AND
vbeln in so_vbeln AND
ship_date in pa_date AND
wavenum in pa_wvno AND
door in pa_door AND
carrier in carrier AND
pick_stat in pickstat AND
mbol in mbol AND
load_stat = loadstat AND
bol_stat = bol_stat AND
gm_status = pgi_stat.
wa_field-col_pos = 1.
wa_field-tabname = 'ZWMSCHED'.
wa_field-fieldname = 'LGNUM'.
wa_field-seltext_l = 'WARE HOUSE'.
wa_field-outputlen = 11.
APPEND wa_field TO gt_field.
*wa_field-col_pos = 2.
*wa_field-fieldname = 'VBELN'.
*wa_field-seltext_l = 'DELIVERY'.
*wa_field-outputlen = 10.
*APPEND wa_field TO gt_field.
*wa_field-col_pos = 3.
*wa_field-fieldname = 'SHIP_DATE'.
*wa_field-seltext_l = 'SHIP DATE'.
*wa_field-outputlen = 11.
*APPEND wa_field TO gt_field.
*wa_field-col_pos = 4.
*wa_field-fieldname = 'WAVENUM'.
*wa_field-seltext_l = 'WAVENUM'.
*wa_field-outputlen = 11.
*APPEND wa_field TO gt_field.
*wa_field-col_pos = 5.
*wa_field-fieldname = 'DOOR'.
*wa_field-seltext_l = 'DOOR'.
*wa_field-outputlen = 5.
*APPEND wa_field TO gt_field.
*wa_field-col_pos = 6.
*wa_field-fieldname = 'CARRIER'.
*wa_field-seltext_l = 'CARRIER'.
*wa_field-outputlen = 8.
*APPEND wa_field TO gt_field.
*wa_field-col_pos = 7.
*wa_field-fieldname = 'PICK_STAT'.
*wa_field-seltext_l = 'PICK STAT'.
*wa_field-outputlen = 10.
*APPEND wa_field TO gt_field.
*wa_field-col_pos = 8.
*wa_field-fieldname = 'MBOL'.
*wa_field-seltext_l = 'MBOL'.
*wa_field-outputlen = 5.
*APPEND wa_field TO gt_field.
*wa_field-col_pos = 9.
*wa_field-fieldname = 'LOAD_STAT'.
*wa_field-seltext_l = 'LOAD STAT'.
*wa_field-outputlen = 10.
*APPEND wa_field TO gt_field.
*wa_field-col_pos = 10.
*wa_field-fieldname = 'BOL_STAT'.
*wa_field-seltext_l = 'BOL STAT'.
*wa_field-outputlen = 11.
*APPEND wa_field TO gt_field.
*wa_field-col_pos = 11.
*wa_field-fieldname = 'GM_STATUS'.
*wa_field-seltext_l = 'PFI STAT'.
*wa_field-outputlen = 9.
*APPEND wa_field TO gt_field.
gt_layout-zebra = 'X'.
v_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = v_repid
I_CALLBACK_PF_STATUS_SET = ' '
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 =
I_GRID_SETTINGS =
IS_LAYOUT = gt_field
IT_FIELDCAT = gt_layout
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
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_ADD_FIELDCAT =
IT_HYPERLINK =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IT_EXCEPT_QINFO =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = temp_zwmsched
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.
You problem is right here.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = v_repid
I_CALLBACK_PF_STATUS_SET = ' '
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 =
I_GRID_SETTINGS =
<b>IS_LAYOUT = gt_field
IT_FIELDCAT = gt_layout</b>
IT_EXCLUDING =
Should be....
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = v_repid
I_CALLBACK_PF_STATUS_SET = ' '
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 =
I_GRID_SETTINGS =
<b>IS_LAYOUT = gt_layout
IT_FIELDCAT = gt_field</b>
IT_EXCLUDING =
Regarsd,
Rich Heilman
Similar Messages
-
Hi guys,
I am executing an alv grid report.i m getting a run time error and i m gettig a dump.In the below i pasted the error.any suggestions where i m going wrong in the code.
What happened?
The current application program detected a situation which really
should not occur. Therefore, a termination with a short dump was
triggered on purpose by the key word MESSAGE (type X).
Information on where terminated?
Termination occurred in the ABAP program "SAPLSLVC" - in "FILL_DATA_TABLE"
The main program was "ZRPP1353 ".
In the source code you have the termination point in line 2735
of the (Include) program "LSLVCF36".
Source code where the error occured?
Column per Fieldcat Entry
ls_lvc_data-value = space.
clear ls_lvc_data-style.
loop at it_fcat_local assigning <ls_fcat>
where tech ne 'X' and no_out ne 'X'.
if l_invisible eq 'X'.
clear l_invisible.
if <ls_fcat>-do_sum is initial.
continue.
else.
clear ls_lvc_data-col_pos.
endif.
endif.
add 1 to ls_lvc_data-col_pos.
assign component <ls_fcat>-fieldname
of structure <ls_data> to <l_field_value>.
if sy-subrc ne 0.
message x000(0k).
endif.Hi Dinesh,
This is because of some problem with the field catalog you have defined. Please give the field catalog so that we can identify the problem easily. -
Run time error in ALV editable
Hi Gurus
I am getting a run time error when I edit a field in the ALV report and press enter. The run time error is : GETWA_NOT_ASSIGNED. It says I tried to access an unassigned field symbol. I have not used any field symbols in my field catalog or anywhere. It also says that the location of the termination was : cl_gui_alv_grid .
I have to get this report working today at anycost. Any help will be very usefulYes , I have internal tables , a whole lot of them ...here is the code.
REPORT ZSCREENREPORT NO STANDARD PAGE HEADING MESSAGE-ID YE.
TABLES : VBUK ,
VEPVG ,
LIKP ,
VTTP ,
LIPS ,
LQUA ,
MAKT.
DATA : PWERKS TYPE LIPS-WERKS , PLGNUM TYPE LIPS-LGNUM.
DATA PTKNUM TYPE VTTP-TKNUM.
DATA PVBELN TYPE LIPS-VBELN.
DATA : t_toolbar type ui_functions with header line.
DATA OKCODE LIKE SY-UCOMM.
DATA S_OKCODE LIKE SY-UCOMM.
DATA B_VIEWREPORT.
DATA B_CLEARALL.
DATA B_PRINT.
DATA pr_data_changed TYPE REF TO cl_alv_changed_data_protocol.
*DATA: g_event_receiver TYPE REF TO lcl_event_receiver.
*TYPES: PR_DATA_CHANGED TYPE xxxxxx.
*TYPES: LCL_EVENT_RECEIVER TYPE .
class lcl_event_receiver definition deferred.
selection-screen begin of block b2 with frame title text-001.
selection-screen begin of block b1 with frame.
BLOCK B1 FOR FIRST SET OF SELECT OPTIONS
ALL ENTRIES ARE NECESSARY IN THIS BLOCK
SELECT-OPTIONS : S_ORG FOR LIKP-VKORG MODIF ID B1, "Sales Org
S_DISCHA FOR LIKP-VTWIV MODIF ID B1, "Dis Cha
S_DIV FOR LIKP-SPAIV MODIF ID B1, "Division
S_SPOINT FOR LIKP-VSTEL MODIF ID B1. "Shipping
"point
selection-screen end of block b1.
selection-screen begin of block b3 with frame.
*BLOCK B3 FOR PICKING DATE . THIS FIELD IS OBLIGATORY
PARAMETERS : P_DEL LIKE VBUK-KOSTK DEFAULT 'A'.
SELECT-OPTIONS : S_PICDAT FOR LIKP-KODAT OBLIGATORY ,
S_PGDAT FOR LIKP-WADAT .
selection-screen end of block b3.
selection-screen begin of block b4 with frame.
BLOCK B4 FOR SHIPMENT NUMBER / DELIVERY NUMBER. ONLY ONE CAN BE
*ENTERED
SELECT-OPTIONS: S_SHNUM FOR VTTP-TKNUM MODIF ID B2 , " Shipment
"Number
S_DENUM FOR LIKP-VBELN MODIF ID B2 . " Delivery
" Number
selection-screen end of block b4.
PARAMETERS : C_BBINS AS CHECKBOX .
selection-screen end of block b2.
RANGES : R_ORG FOR VEPVG-VKORG , "Sales Org
R_DISCHA FOR VEPVG-VTWEG , "Dis Cha
R_DIV FOR VEPVG-SPART , "Division
R_SPOINT FOR VEPVG-VSTEL , "Shipping point
R_PICDAT FOR LIKP-KODAT , " Planned Pick Date
R_PGDAT FOR LIKP-WADAT , " Planned goods issue
R_SHNUM FOR VTTK-TKNUM , " Shipment Number
R_DENUM FOR LIKP-VBELN , " Delivery Number
R_VBELN FOR VBUK-VBELN ,
R_MATNR FOR LIPS-MATNR .
DATA : BEGIN OF ITAB1 OCCURS 0.
DATA: MATL LIKE LIPS-MATNR,
QUANT LIKE LIPS-LFIMG,
UOM LIKE LIPS-VRKME,
KUNR LIKE LIKP-KUNNR ,
WERKS LIKE LIKP-WERKS,
LGNUM LIKE LIPS-LGNUM,
LGTYP LIKE LIPS-LGTYP ,
VBELN LIKE LIPS-VBELN ,
TKNUM LIKE VTTP-TKNUM.
DATA : END OF ITAB1.
DATA : BEGIN OF ITAB2 OCCURS 0.
DATA :
MATL LIKE LIPS-MATNR,
QUANT TYPE I,
UOM LIKE LIPS-VRKME,
KUNR LIKE LIKP-KUNNR.
DATA : END OF ITAB2.
DATA : BEGIN OF ITAB3 OCCURS 0.
DATA : MATL LIKE LIPS-MATNR,
QUANT LIKE LIPS-LFIMG,
UOM LIKE LIPS-VRKME,
KUNR LIKE LIKP-KUNNR.
DATA : END OF ITAB3.
DATA : BEGIN OF ITAB_VBELN OCCURS 0.
DATA : IBLN LIKE VBUK-VBELN.
DATA : END OF ITAB_VBELN.
DATA : BEGIN OF DEMANDTAB OCCURS 0.
DATA : D_MATL LIKE LIPS-MATNR,
D_MQUANT LIKE LIPS-LFIMG,
D_MUOM LIKE LIPS-VRKME,
D_QUANT LIKE LIPS-LFIMG,
D_UOM LIKE LIPS-VRKME,
D_KUNR LIKE LIKP-KUNNR.
DATA : END OF DEMANDTAB.
DATA : VMATNR LIKE LIPS-MATNR,
VKUNR LIKE LIKP-KUNNR,
VQUANT LIKE LIPS-VRKME.
DATA : BEGIN OF INVTAB OCCURS 0.
DATA : IMATL LIKE LIPS-MATNR,
IBINLOC LIKE LQUA-LGPLA,
IBATCH LIKE LQUA-CHARG,
IWARSTK LIKE LQUA-VERME,
IUOM LIKE LQUA-MEINS.
DATA : END OF INVTAB.
DATA : BEGIN OF ITABX OCCURS 0.
DATA : XMATL LIKE LIPS-MATNR,
XMATDESC LIKE MAKT-MAKTX,
XQUANT TYPE I,
XUOM LIKE LIPS-VRKME,
XBALQ TYPE I.
EXPAND.
DATA : END OF ITABX.
DATA : BEGIN OF ITABMASTER OCCURS 0 .
DATA : MMATL LIKE LIPS-MATNR,
MKUNR LIKE LIKP-KUNNR,
M_KQUANT TYPE I,
M_KUOM LIKE LIPS-VRKME,
MBINLOC LIKE LQUA-LGPLA,
MBATCH LIKE LQUA-CHARG,
MWATSTK LIKE LQUA-VERME,
M_IUOM LIKE LQUA-MEINS.
DATA : END OF ITABMASTER.
DATA : BEGIN OF ITABDESC OCCURS 0.
DATA : MATNR LIKE MAKT-MATNR,
MATDESC LIKE MAKT-MAKTX.
DATA : END OF ITABDESC.
TYPES : BEGIN OF ITABT ,
FMATL LIKE LIPS-MATNR,
FINDEX LIKE SY-TABIX,
FKEY LIKE LIPS-MATNR,
FMATDESC LIKE MAKT-MAKTX,
FQUANT LIKE LIPS-LFIMG,
FUOM LIKE ITAB1-UOM,
FKUNR LIKE LIKP-KUNNR,
F_KQUANT LIKE LIPS-LFIMG,"TYPE I,
F_KUOM LIKE LIPS-VRKME,
F_BALQUANT LIKE LIPS-LFIMG,"TYPE I,
FBINLOC LIKE LQUA-LGPLA,
FBATCH LIKE LQUA-CHARG,
FWATSTK LIKE LQUA-VERME,
F_IUOM LIKE LQUA-MEINS ,
SEL_QUANT type LIPS-LFIMG," corr_1,
END OF ITABT.
DATA : BEGIN OF FLAGTAB OCCURS 0 .
DATA : SEL_QUANT TYPE I , FKEY LIKE LIPS-MATNR.
DATA : END OF FLAGTAB.
DATA : ITAB type ITABT occurs 0 with header line .
data : itab_w like line of itab .
DATA t_layout type lvc_s_layo.
DATA: ok_code LIKE sy-ucomm .
DATA:
go_grid TYPE REF TO cl_gui_alv_grid,
go_custom_container TYPE REF TO cl_gui_custom_container.
DATA : I_SELECTED_ROWS TYPE LVC_T_ROW,
W_SELECTED_ROWS TYPE LVC_T_ROW,
I_MODIFIED TYPE STANDARD TABLE OF ITABT,
W_MODIFIED TYPE ITABT,
WA TYPE ITABT.
*field catalogs -
DATA : WA_FIELDCAT TYPE lvc_t_fcat with header line.
data : fcat type lvc_t_fcat WITH HEADER LINE .
FIELD-SYMBOLS : <FS_FIELDCAT> TYPE LVC_S_FCAT .
DATA : V_VALID TYPE C.
clear fcat.
CLASS LCL_EVENTS_D0100 DEFINITION
CLASS LCL_EVENT_receiver DEFINITION.
PUBLIC SECTION.
METHODS :
handle_data_changed for event data_changed
of cl_gui_alv_grid
IMPORTING er_data_changed.
ENDCLASS.
data : my_application type ref to lcl_event_receiver.
CLASS LCL_EVENTS_D0100 IMPLEMENTATION
CLASS LCL_EVENT_receiver IMPLEMENTATION.
METHOD handle_data_changed.
DATA: ls_good TYPE lvc_s_modi.
DATA : L_PLANETYPE TYPE LIPS-ANZSN.
data : swapper type LIPS-ANZSN .
LOOP AT er_data_changed->mt_good_cells INTO ls_good.
CASE ls_good-fieldname.
WHEN 'SEL_QUANT'.
CALL METHOD pr_data_changed->get_cell_value
EXPORTING
i_row_id = ls_good-row_id
i_fieldname = ls_good-fieldname
IMPORTING
e_value = l_planetype.
*read table itab into itab_w index ls_good-row_id.
swapper = itab_w-f_balquant - l_planetype.
move swapper to itab_w-f_balquant.
modify itab FROM itab_w .
ENDCASE.
ENDLOOP.
ENDMETHOD.
ENDCLASS.
DATA: g_event_receiver TYPE REF TO lcl_event_receiver.
INITIALIZATION.
S_PICDAT-SIGN = 'I'.
S_PICDAT-OPTION = 'BT'.
S_PGDAT-SIGN = 'I'.
S_PGDAT-OPTION = 'BT'.
S_PICDAT-LOW = SY-DATUM.
S_PICDAT-HIGH = SY-DATUM + 1.
APPEND S_PICDAT.
S_PGDAT-LOW = SY-DATUM.
S_PGDAT-HIGH = SY-DATUM + 1.
APPEND S_PGDAT.
**--VALIDATIONS--
AT SELECTION-SCREEN .
IF S_ORG IS initial AND S_DISCHA IS INITIAL AND S_DIV IS
INITIAL AND S_SPOINT IS initial AND S_SHNUM IS INITIAL AND S_DENUM IS
INITIAL .
MESSAGE E082(YE) WITH 'AT LEAST ONE FIELD MUST BE ENTERED'.
ENDIF.
DATA LV_COUNT TYPE I VALUE 0.
IF NOT S_ORG IS initial OR NOT S_DISCHA IS INITIAL OR NOT S_DIV IS
INITIAL OR NOT S_SPOINT IS initial.
lv_COUNT = 1.
ENDIF.
IF NOT S_SHNUM IS INITIAL .
LV_COUNT = LV_COUNT + 1.
ENDIF.
IF NOT S_DENUM IS INITIAL .
LV_COUNT = LV_COUNT + 1.
ENDIF.
IF LV_COUNT > 1.
MESSAGE E081(YE) WITH 'Please Enter Only in Block1 Or Block3' .
endif.
read table s_PICDAT index 1.
data: days type i.
days = s_PICDAT-high - s_PICDAT-low .
if days > 2.
message e080(YE) with 'Range can not be > 2 days'.
endif.
read table s_PGDAT index 1.
data: days2 type i.
days2 = s_PGDAT-high - s_PGDAT-low .
if days2 > 2.
message e080(YE) with 'Range can not be > 2 days'.
endif.
VALIDATIONS FOR FIRST BLOCK---------------------------------------
*IF S_SHNUM IS INITIAL AND S_DENUM IS INITIAL.
IF S_ORG IS INITIAL OR S_SPOINT IS INITIAL OR S_DISCHA IS INITIAL OR
*S_DIV IS INITIAL .
*MESSAGE E083(YE) WITH 'ALL FIELDS IN BLOCK ONE REQUIRED'.
ENDIF.
*ENDIF.
*--START OF SELECTION--
START-OF-SELECTION .
IF NOT S_ORG IS initial OR NOT S_DISCHA IS INITIAL OR NOT S_DIV IS
INITIAL OR NOT S_SPOINT IS initial.
PERFORM INPUTBLOCK1.
PERFORM TABPRINT1.
ENDIF.
IF NOT S_SHNUM IS INITIAL .
PERFORM INPUTBLOCK2 .
PERFORM TABPRINT1.
ENDIF .
IF NOT S_DENUM IS INITIAL .
PERFORM INPUTBLOCK3 .
PERFORM TABPRINT1.
ENDIF .
CLEAR ITAB2.
*LOOP AT ITABX.
R_MATNR-SIGN = 'I'.
R_MATNR-OPTION = 'EQ'.
R_MATNR-LOW = ITABX-XMATL.
APPEND R_MATNR. CLEAR R_MATNR.
*ENDLOOP.
PERFORM WARINVENTORY.
PERFORM WARMASTERUPLD.
CALL SCREEN 100.
*=====================================================
*& Module user_command_0100 input
text
MODULE USER_COMMAND_0100 INPUT.
SAVED_OKCODE = OKCODE.
S_OKCODE = OKCODE.
CLEAR OKCODE.
CASE S_OKCODE.
WHEN 'EXIT' OR 'BACK' OR 'CANC'.
LEAVE PROGRAM.
WHEN OTHERS.
call method go_grid->check_changed_data
importing
e_valid = V_VALID .
PERFORM SAVE_ITAB.
endcase.
case sy-ucomm.
when 'b_clearall'.
loop at itab.
itab-sel_quant = 30.
modify itab.
endloop.
CALL TRANSACTION 'YWMINI'.
ENDCASE.
call method go_grid->check_changed_data.
importing
e_valid = v_valid.
*LOOP AT ITAB.
*IF ITAB-SEL_QUANT NE 0.
*MOVE ITAB-SEL_QUANT TO FLAGTAB-SEL_QUANT.
*MOVE ITAB-FKEY TO FLAGTAB-FKEY.
*COLLECT FLAGTAB.
*ENDIF.
*ENDLOOP.
LOOP AT ITAB.
LOOP AT FLAGTAB WHERE FKEY = ITAB-FKEY.
ITAB-F_BALQUANT = ITAB-F_BALQUANT - FLAGTAB-SEL_QUANT.
MODIFY ITAB.
ENDLOOP.
*ENDLOOP.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Module STATUS_0100 OUTPUT
text
MODULE STATUS_0100 OUTPUT.
*SET PF-STATUS 'ZSTAT'.
set pf-status 'STAT'.
SET TITLEBAR 'WAVEPICK'.
*call screen 1010 .
IF go_custom_container IS INITIAL.
CREATE OBJECT go_custom_container
EXPORTING container_name = 'ALV_CONTAINER'.
CREATE OBJECT go_grid
EXPORTING
i_parent = go_custom_container.
set handler pr_data_changed=>on_data_changed
*for all instances.
call method go_grid->register_edit_event
exporting
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
CREATE OBJECT g_event_receiver.
SET HANDLER g_event_receiver->handle_data_changed FOR go_grid.
PERFORM xclude_toolbar.
PERFORM CREATE_FIELDCAT.
PERFORM load_data_into_grid.
ENDIF.
else .
call method my_application->refresh_table_display.
endif.
*call method go_grid->register_edit_event
*exporting
*i_event_id = cl_gui_alv_grid=>mc_evt_enter.
*CALL METHOD GO_GRID->REFRESH_TABLE_DISPLAY
perform load_data_into_grid.
CLEAR ITAB1.
READ TABLE ITAB1 .
PWERKS = ITAB1-WERKS.
PLGNUM = ITAB1-LGNUM.
PVBELN = ITAB1-VBELN.
PTKNUM = ITAB1-TKNUM.
ENDMODULE. " STATUS_0100 OUTPUT
FORM INPUTBLOCK1 *
FORM INPUTBLOCK1.
SELECT LIPSMATNR LIPSLFIMG LIPSVRKME LIKPKUNNR LIPS~WERKS
LIPS~LGNUM
LIPSLGTYP LIPSVBELN INTO TABLE ITAB1 FROM
LIPS JOIN LIKP ON LIPSVBELN = LIKPVBELN JOIN VBUK ON LIKP~VBELN =
VBUK~VBELN WHERE
LIKP~VKORG IN S_ORG AND
LIKP~VTWIV IN S_DISCHA AND
LIKP~SPAIV IN S_DIV AND
LIKP~VSTEL IN S_SPOINT AND
LIKP~KODAT IN S_PICDAT AND
LIKP~WADAT IN S_PGDAT AND
LIPS~LGTYP = '001' ." AND
*VBUK~KOSTK = 'A' .
ENDFORM .
FORM INPUTBLOCK2 *
FORM INPUTBLOCK2.
SELECT LIPSMATNR LIPSLFIMG LIPSVRKME LIKPKUNNR INTO
TABLE ITAB1
FROM LIPS JOIN LIKP ON LIPSVBELN = LIKPVBELN JOIN VTTP ON LIKP~VBELN =
VTTPVBELN JOIN VBUK ON LIKPVBELN = VBUK~VBELN WHERE
VTTP~TKNUM IN S_SHNUM
AND
LIKP~KODAT IN S_PICDAT AND
LIKP~WADAT IN S_PGDAT AND
VBUK~KOSTK = 'A'.
ENDFORM.
FORM INPUTBLOCK3 *
FORM INPUTBLOCK3 .
SELECT LIPSMATNR LIPSLFIMG LIPSVRKME LIKPKUNNR INTO
TABLE ITAB1
FROM LIPS JOIN LIKP ON LIPSVBELN = LIKPVBELN JOIN VBUK ON LIKP~VBELN =
VBUKVBELN WHERE LIKPVBELN IN
S_DENUM
AND
LIKP~KODAT IN S_PICDAT AND
LIKP~WADAT IN S_PGDAT AND
VBUK~KOSTK = 'A'.
ENDFORM.
FORM TABPRINT1 *
FORM TABPRINT1.
LOOP AT ITAB1 .
MOVE: ITAB1-MATL TO ITAB2-MATL,
ITAB1-UOM TO ITAB2-UOM,
ITAB1-KUNR TO ITAB2-KUNR,
ITAB1-QUANT TO ITAB2-QUANT.
COLLECT ITAB2.
ENDLOOP.
LOOP AT ITAB2.
MOVE ITAB2-MATL TO ITABX-XMATL.
MOVE ITAB2-QUANT TO ITABX-XQUANT.
MOVE ITAB2-UOM TO ITABX-XUOM.
MOVE ITABX-XQUANT TO ITABX-XBALQ.
COLLECT ITABX.
ENDLOOP.
clear ITABX .
LOOP AT ITABX.
R_MATNR-SIGN = 'I'.
R_MATNR-OPTION = 'EQ'.
R_MATNR-LOW = ITABX-XMATL.
APPEND R_MATNR. CLEAR R_MATNR.
ENDLOOP.
SELECT MAKTMATNR MAKTMAKTX INTO TABLE ITABDESC FROM MAKT
WHERE MAKT~MATNR IN R_MATNR .
DATA C_DESC LIKE MAKT-MAKTX.
C_DESC = '0'.
LOOP AT ITABDESC .
IF ITABDESC-MATNR = C_DESC .
DELETE ITABDESC.
ELSE .
C_DESC = ITABDESC-MATNR.
ENDIF.
ENDLOOP.
LOOP AT ITABDESC.
LOOP AT ITABX WHERE XMATL = ITABDESC-MATNR.
ITABX-XMATDESC = ITABDESC-MATDESC.
MODIFY ITABX.
ENDLOOP.
ENDLOOP.
CLEAR ITABX.
*ENDSELECT.
ENDFORM.
FORM WARINVENTORY *
FORM WARINVENTORY.
*Select matnr from LQUA
into LQUA where
matnr in r_matnr.
endselect.
*if not r_matnr-low is initial .
MESSAGE E080(YE) WITH 'NOT IN RANGE'.
SELECT LQUAMATNR LQUALGPLA LQUACHARG LQUAVERME LQUA~MEINS INTO TABLE
INVTAB FROM LQUA WHERE LQUA~MATNR
IN R_MATNR AND LQUAWERKS = ITAB1-WERKS AND LQUALGNUM = ITAB1-LGNUM AND
LQUA~LGTYP = '001' AND
NOT LQUA~LGPLA = '000'.
ENDFORM .
FORM WARMASTERUPLD *
FORM WARMASTERUPLD .
LOOP AT ITAB2.
DELETE ITAB2.
LOOP AT INVTAB WHERE IMATL = ITAB2-MATL.
MOVE: ITAB2-MATL TO ITABMASTER-MMATL ,
ITAB2-KUNR TO ITABMASTER-MKUNR,
ITAB2-QUANT TO ITABMASTER-M_KQUANT,
ITAB2-UOM TO ITABMASTER-M_KUOM ,
INVTAB-IBINLOC TO ITABMASTER-MBINLOC,
INVTAB-IBATCH TO ITABMASTER-MBATCH,
INVTAB-IWARSTK TO ITABMASTER-MWATSTK,
INVTAB-IUOM TO ITABMASTER-M_IUOM.
APPEND ITABMASTER.
DELETE INVTAB.
CLEAR INVTAB.
CLEAR ITAB2.
EXIT.
ENDLOOP.
ENDLOOP.
IF NOT INVTAB[] IS INITIAL.
LOOP AT INVTAB.
MOVE: INVTAB-IMATL TO ITABMASTER-MMATL,
INVTAB-IBINLOC TO ITABMASTER-MBINLOC,
INVTAB-IBATCH TO ITABMASTER-MBATCH,
INVTAB-IWARSTK TO ITABMASTER-MWATSTK,
INVTAB-IUOM TO ITABMASTER-M_IUOM.
ITABMASTER-MKUNR = SPACE.
ITABMASTER-M_KQUANT = SPACE.
ITABMASTER-M_KUOM = SPACE.
APPEND ITABMASTER.
ENDLOOP.
ENDIF.
*-- BEGIN ITAB UPLOAD--
DATA : MATCHK LIKE ITABX-XMATL VALUE 0.
LOOP AT ITABX.
DELETE ITAB2.
LOOP AT ITABMASTER WHERE MMATL = ITABX-XMATL.
IF ITABX-XMATL NE MATCHK .
IF ITABMASTER-MMATL = ITABX-XMATL.
MOVE:
ITABX-XMATL TO ITAB-FMATL,
ITABMASTER-MMATL TO ITAB-FKEY,
ITABX-XMATDESC TO ITAB-FMATDESC,
ITABX-XQUANT TO ITAB-FQUANT,
ITABX-XUOM TO ITAB-FUOM ,
ITABX-XBALQ TO ITAB-F_BALQUANT.
MATCHK = ITABX-XMATL.
ELSE .
MOVE ITABMASTER-MMATL TO ITAB-FKEY.
ITAB-FMATL = SPACE .
ITAB-FMATDESC = SPACE.
ITAB-FQUANT = SPACE .
ITAB-FUOM = SPACE .
ITAB-F_BALQUANT = SPACE.
ENDIF.
MOVE:
ITABMASTER-MKUNR TO ITAB-FKUNR,
ITABMASTER-M_KQUANT TO ITAB-F_KQUANT,
ITABMASTER-M_KUOM TO ITAB-F_KUOM,
ITABMASTER-MBINLOC TO ITAB-FBINLOC,
ITABMASTER-MBATCH TO ITAB-FBATCH,
ITABMASTER-MWATSTK TO ITAB-FWATSTK,
ITABMASTER-M_IUOM TO ITAB-F_IUOM.
ITAB-FINDEX = SY-TABIX.
ITAB-SEL_QUANT = 0.
APPEND ITAB.
DELETE INVTAB.
CLEAR INVTAB.
CLEAR ITABX.
*EXIT.
ENDLOOP.
ENDLOOP.
*----- END ITAB UPLOAD--
*TEST----
*LOOP AT ITABMASTER.
DELETE ITAB2.
LOOP AT ITABX WHERE XMATL = ITABMASTER-MMATL.
**IF ITABX-XMATL NE MATCHK .
*MOVE:
ITABX-XMATL TO ITAB-FMATL,
ITABX-XMATDESC TO ITAB-FMATDESC,
ITABX-XQUANT TO ITAB-FQUANT,
ITABX-XUOM TO ITAB-FUOM ,
ITABX-XBALQ TO ITAB-F_BALQUANT,
ITABMASTER-MKUNR TO ITAB-FKUNR,
ITABMASTER-M_KQUANT TO ITAB-F_KQUANT,
ITABMASTER-M_KUOM TO ITAB-F_KUOM,
ITABMASTER-MBINLOC TO ITAB-FBINLOC,
ITABMASTER-MBATCH TO ITAB-FBATCH,
ITABMASTER-MWATSTK TO ITAB-FWATSTK,
ITABMASTER-M_IUOM TO ITAB-F_IUOM.
APPEND ITAB.
DELETE INVTAB.
CLEAR INVTAB.
CLEAR ITABX.
**EXIT.
ENDLOOP.
*ENDLOOP.
*SORT ITAB BY FMATL.
*END TEST----
ENDFORM.
FORM load_data_into_grid *
FORM load_data_into_grid.
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
IS_LAYOUT = t_layout
i_structure_name = 'ITABT'
IT_TOOLBAR_EXCLUDING = t_toolbar[]
CHANGING
it_outtab = ITAB[]
IT_FIELDCATALOG = fcat[]
*call method go_grid->refresh_table_display
*EXPORTING
*i_event_id = cl_gui_alv_grid=>mc_evt_modified.
i_structure_name = 'ITABT'
CHANGING
IT_OUTTAB = ITAB[]
ENDFORM.
form create_fieldcat.
CLEAR wa_fieldcat.
WA_FIELDCAT-REPTEXT = 'MATERIAL'.
WA_FIELDCAT-COLTEXT = 'MATERIAL'.
wa_fieldcat-fieldname = 'FMATL'.
wa_fieldcat-col_pos = 1.
wa_FIELDCAT-ref_table = 'ITAB'.
wa_fieldcat-outputlen = 8.
APPEND wa_fieldcat to fcat .
CLEAR wa_fieldcat.
WA_FIELDCAT-REPTEXT = 'MATERIAL'.
WA_FIELDCAT-COLTEXT = 'MATERIAL DESCRIPTION'.
wa_fieldcat-fieldname = 'FMATDESC'.
wa_fieldcat-col_pos = 2.
wa_FIELDCAT-ref_table = 'ITAB'.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to fcat .
CLEAR wa_fieldcat.
WA_FIELDCAT-COLTEXT = 'QUANTITY'.
wa_fieldcat-fieldname = 'FQUANT'.
wa_fieldcat-col_pos = 8.
wa_FIELDCAT-ref_table = 'ITAB'.
wa_fieldcat-outputlen = 8.
WA_FIELDCAT-QUANTITY = 'VRKME'.
WA_FIELDCAT-QFIELDNAME = 'VRKME'.
APPEND wa_fieldcat to fcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'FUOM'.
wa_fieldcat-col_pos = 4.
wa_FIELDCAT-ref_table = 'ITAB'.
WA_FIELDCAT-COLTEXT = 'UOM'.
wa_fieldcat-outputlen = 4.
APPEND wa_fieldcat to fcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'FKUNR'.
wa_fieldcat-col_pos = 5.
wa_FIELDCAT-ref_table = 'ITAB'.
WA_FIELDCAT-COLTEXT = 'CUSTOMER'.
wa_fieldcat-outputlen = 8.
APPEND wa_fieldcat to fcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'F_KQUANT'.
wa_fieldcat-col_pos = 6.
wa_FIELDCAT-ref_table = 'ITAB'.
WA_FIELDCAT-COLTEXT = 'QUANTITY'.
wa_fieldcat-outputlen = 8.
WA_FIELDCAT-QUANTITY = 'VRKME'.
WA_FIELDCAT-QFIELDNAME = 'VRKME'.
APPEND wa_fieldcat to fcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'F_KUOM'.
wa_fieldcat-col_pos = 7.
wa_FIELDCAT-ref_table = 'ITAB'.
WA_FIELDCAT-COLTEXT = 'UOM'.
wa_fieldcat-outputlen = 4.
APPEND wa_fieldcat to fcat.
CLEAR wa_fieldcat.
WA_FIELDCAT-COLTEXT = 'BALANCE QTY TO PICK'.
wa_fieldcat-fieldname = 'F_BALQUANT'.
wa_fieldcat-col_pos = 8.
wa_FIELDCAT-ref_table = 'ITAB'.
wa_fieldcat-outputlen = 8.
WA_FIELDCAT-QUANTITY = 'VRKME'.
WA_FIELDCAT-QFIELDNAME = 'VRKME'.
APPEND wa_fieldcat to fcat .
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'FBINLOC'.
wa_fieldcat-col_pos = 9.
wa_FIELDCAT-ref_table = 'ITAB'.
WA_FIELDCAT-COLTEXT = 'BIN LOCATION'.
wa_fieldcat-outputlen = 8.
APPEND wa_fieldcat to fcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'FBATCH'.
wa_fieldcat-col_pos = 10.
wa_FIELDCAT-ref_table = 'ITAB'.
WA_FIELDCAT-COLTEXT = 'BATCH'.
wa_fieldcat-outputlen = 8.
APPEND wa_fieldcat to fcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'FWATSTK'.
wa_fieldcat-col_pos = 11.
wa_FIELDCAT-ref_table = 'ITAB'.
WA_FIELDCAT-COLTEXT = 'WAREHOUSE STK'.
wa_fieldcat-outputlen = 8.
APPEND wa_fieldcat to fcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'F_IUOM'.
wa_fieldcat-col_pos = 12.
wa_FIELDCAT-ref_table = 'ITAB'.
WA_FIELDCAT-COLTEXT = 'UOM'.
wa_fieldcat-outputlen = 4.
APPEND wa_fieldcat to fcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'SEL_QUANT'.
wa_fieldcat-col_pos = 13.
wa_FIELDCAT-ref_table = 'ITAB'.
WA_FIELDCAT-COLTEXT = 'SELECTED QTY'.
wa_fieldcat-edit = 'X'.
wa_fieldcat-outputlen = 8.
WA_FIELDCAT-QUANTITY = 'VRKME'.
WA_FIELDCAT-QFIELDNAME = 'VRKME'.
APPEND wa_fieldcat to fcat.
*LOOP AT FCAT ASSIGNING <FS_FIELDCAT>.
*CASE <FS_FIELDCAT>-FIELDNAME.
*WHEN 'SEL_QUANT'.
*<FS_FIELDCAT>-EDIT = 'X'.
*ENDCASE.
*ENDLOOP.
*CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
*EXPORTING
*I_STRUCTURE_NAME = 'ITABT'
*CHANGING
*CT_FIELDCATALOG = FCAT.
*LOOP AT FCAT ASSIGNING <FS_FIELDCAT>.
*CASE <FS_FIELDCAT>-FIELDNAME.
*WHEN 'SEL_QUANT'.
*<FS_FIELDCAT>-EDIT = 'X'.
*ENDCASE.
*ENDLOOP.
endform.
form xclude_toolbar .
t_toolbar = '&DETAIL'.
append t_toolbar.
t_toolbar = '&&SEP00'.
append t_toolbar.
t_toolbar = '&&SEP01'.
append t_toolbar.
t_toolbar = '&&SEP02'.
append t_toolbar.
t_toolbar = '&SORT_ASC'.
append t_toolbar.
t_toolbar = '&SORT_DSC'.
append t_toolbar.
t_toolbar = '&FIND'.
append t_toolbar.
t_toolbar = '&MB_FILTER'.
append t_toolbar.
t_toolbar = '&&SEP04'.
append t_toolbar.
t_toolbar = '&MB_SUM'.
append t_toolbar.
t_toolbar = '&MB_SUB_TOTAL'.
append t_toolbar.
t_toolbar = '&PRINT_BACK'.
append t_toolbar.
t_toolbar = '&MB_VIEW'.
append t_toolbar.
t_toolbar = '&MB_EXPORT'.
append t_toolbar.
t_toolbar = '&GRAPH'.
append t_toolbar.
t_toolbar = '&COLO'.
append t_toolbar.
t_toolbar = '&&SEP06'.
append t_toolbar.
t_toolbar = '&&SEP07'.
append t_toolbar.
t_toolbar = '&INFO'.
append t_toolbar.
t_toolbar = '&&SEP03'.
append t_toolbar.
endform.
FORM SAVE_ITAB.
*CALL METHOD GO_GRID->GET_SELECTED_ROWS
*IMPORTING
*ET_INDEX_ROWS = I_SELECTED_ROWS.
*LOOP AT I_SELECTED_ROWS INTO W_SELECTED_ROWS.
*READ TABLE ITAB INTO WA INDEX W_SELECTED_ROWS-INDEX.
*IF SY-SUBRC EQ 0.
*MOVE-CORRESPONDING WA TO W_MODIFIED.
*APPEND W_MODIFIED TO I_MODIFIED.
*ENDIF.
*ENDLOOP.
*MODIFY ITAB FROM TABLE I_MODIFIED.
*ENDFORM.
ENDFORM. -
Hi,
I am Using ALV list to display data,In that when itry to display currency field it is giving run time error.
Following is the code i am using
lf_fcat-fieldname = 'SALARYE'.
lf_fcat-tabname = 'IT_EMPLOYEE'.
lf_fcat-col_pos = l_cnt.
lf_fcat-emphasize = 'X'.
lf_fcat-outputlen = 15.
lf_fcat-ref_tabname = 'PA0008'. "<--- Ref table
lf_fcat-ref_fieldname = 'ANCUR'. "<-----ref field
lf_fcat-decimals_out = 2.
lf_fcat-seltext_l = text-061.
append lf_fcat to it_fcat.
clear lf_fcat.Hi,
Please check in the internal table 'IT_EMPLOYEE' , the relevant currency field as it should type compatible with your reference table field.
Thanks,
Dhruv Kumar Malhotra -
"no data found" run-time error masking SQL/report mismatch
Hi all,
At last, figured out a vexing problem and wondering if anyone else either:
a) has also hit the problem, and hopefully
b) has figured out a clever way around it.
Namely, in our AppEx apps, we rely on SQL query generation from PL/SQL packaged functions. This "best practice" promotes reuse, automated testing, etc. Great idea - works great.
However, we've repeatedly come across a situation where we go to run a page with a report on it only to get a "report error: ORA-01403: no data found" message where the report should be. Not much to go on. After trial and error, it turns out that simply going to the Region Definition page (where the PL/SQL function call is defined) and clicking the "Apply Changes" button cleared the problem up.
Mystifying because the actual SQL query generated by the PL/SQL is valid (we've got a nightly testing job that pulls the PL/SQL function calls out of the AppEx metadata tables, executes them to get back the SQL and then validates the SQL).
Turns out this problem looks to be a result of columns changing in the actual SQL itself, and hence not matching up to the Region Attributes (column names, one assumes) that AppEx knows about. Simply clicking Apply Changes causes AppEx to validate the returned query and then it adjusts the column attributes (one assumes) so that things match up.
So - the $64,000 question(s):
1) Are there any cool AppEx APIs to be able to try and detect this situation? Given an app of middling complexity (50-100 pages, each with various queries/reports), this is not an attractive issue to deal with manually.
2) Any cool AppEx APIs to fix, or auto-sync these situations? (Essentially programmatically calling the "Apply Changes" button if you will).
At a minimum, it would be great if AppEx could be updated to put out some kind of more informative error message when this occurs - maybe something along the lines of "Region Attributes Do Not Match Data Returned from Query", or something like that at least.
Thanks for any input/ideas,
Jim C.Thanks to all for your prompt responses.
Vikas actually did me the favor of pretty much clarifying my info for me (tks Vikas). Yes, to all the above. It's PL/SQL code generating a SQL query, so 1 is (a); we want to use query-specific columns so it is (2a). And yes, the whole problem is that the something does change to cause the SELECT statement column list to change...nature of the beast, so "don't do that" doesn't really help here.
Scott - sorry, should have been more explicit. Basically, we have a PL/SQL function behind a report that returns a SQL statement for the report. If that PL/SQL code changes to add a new column to the report (without going to the corresponding Report Attributes page and clicking the "Apply Changes" button to get AppEx to revalidate the query), then you wind up with this "no data found" error msg, which doesn't exactly point you to the root of the problem.
It seems as though the "parse at compile-time" is really what's going on here. There must be some kind of "run-time" check going on as well, that is resulting in the "no data found" message. Seems as though it ought to be fairly straightforward to add some kind of check at run-time to handle that exception a little cleaner. Is there an official process to register a "Request for Process Enhancement" for AppEx to do this?
In the meantime, thank you Vikas for the pointer to the APEX_APPLICATION_PAGE_RPT_COLS view - that looks like it will do the trick nicely. Given that, we can now add logic to our nightly "app tester" job that can compare what columns AppEx expects to find in a given report (for a given page) with the actual SQL (coming back from the PL/SQL function call) to essentially "validate" the AppEx meta data and at least let us know when these things get out of sync.
BTW - if anyone would be interested in the actual contents of that "app tester" logic, I'd be happy to post it (someplace...here? Studio site?). It's basically just a PL/SQL block of code that currently runs in cron that just validates any SQL embedded in our app. (I suppose it is a little "hard-coded" since it does use our naming conventions for packages/functions to parse the PL/SQL calls from the Meta Data but it might still serve as a usefull starting point...) Since our AppEx app(s) sit on top of a database schema that is in fairly constant flux, we need the ability to know when somebody has changed something in the schema that needs to be accounted for in AppEx. The job primarily just parses the AppEx meta data to find PL/SQL function calls that return SQL, executes that PL/SQL to get the generated SQL, then just validates that SQL and reports back any invalid SQL calls. Perhaps we're in some unusual development environment (15-20 people working on a database schema with 700-800 tables/views) but it seems as though it would be fairly easy, for anybody using PL/SQL to generate SQL (which is a GREAT and powerful thing, by the way - thanks to whoever thought that up in AppEx land) to run into this issue.
Jim C. -
In BEx Report Designer, I keep getting short dumps and timeouts when trying to design flashy reports.
I keep getting 2 errors when I time out:
1. 'Query (view) definition cannot be retrieved from Portal.
Please try again or check query and Portal Setup!
Time limit exceeded.
2. xxx Error when reading Query (via BICS)
Please check query and Portal setup!
Time limit exceeded.
We are running ECC 6.0, BI2004s, and SEM 6.0. All in Sandbox/Dev environment.
We are NOT running EP.
I am aware that we have some memory issues, and we're adding 4Gb more on Thursday....can the solution be that simple, or are these errors telling me we need Portals installed? I was under the impression that Portals were NOT required for 2004s, so long as you did not use WAD etc.
Any thoughts??You would need to install portals(EP) for the report designer to work. When you design your flashy report in designer and try it launch it... it would try to connect to EP to publish it. It bombs when it doesnt find the portal.
On a personal note: Report designer have a long way to go when you think the output would be something like crystal .. NO not yet ... But SAP just got started ... I think they would be there pretty soon. And they promise many enhancements as of SP 13.. so lets all wait. -
Run time error in ALV editable on Class implementation
I am getting a runtime error GETWA_NOT_ASSIGNED again ( This error was resolved yesterday thanks to an expert ) after I implemented a class to handle screen events in an editable ALV . Without the class the program was working and was able to insert the changed values into the internal table. I want to use these values to make changes another field on the same row . Is there a solution .
I have copied the code from BCALV_EDIT_03. I can post my code.
I am almost reaching my deadline date so , I will appreciate any help.Yes , I have altered a lot in handle_data_change . Its only when I try to use the pr_data_changed->modify_cell
method call , I get into the runtime error.
This is the syntax that I have used. :
CALL METHOD pr_data_changed->modify_cell
EXPORTING i_row_id = ps_good_planetype-row_id
i_fieldname = 'BAL_QUANT'
i_value = ls_saplane-sel_quant. -
Run-time error while executing alv grid report
Hi everyone
I m trying to run a alv grid report it is giving a run time error while executing the statement CALL METHOD V_ALV->SET_TOOLBAR_INTERACTIVE.
Actually i added 2 buttons in the toolbar.after that when i execute the report i m getting errors.
<b>Error Analysis</b>
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_SY_REF_IS_INITIAL', was not
caught in
procedure "TOOLBAR_MENUS_INIT" "(METHOD)", nor was it propagated by a RAISING
clause.
Since the caller of the procedure could not have anticipated that the
exception would occur, the current program is terminated.
The reason for the exception is:
You attempted to use a 'NULL' object reference (points to 'nothing')
access a component (variable: "ME->M_CL_MENU_BUTTON_VARIANT").
An object reference must point to an object (an instance of a class)
before it can be used to access components.
Either the reference was never set or it was set to 'NULL' using the
CLEAR statement.Hi Dinesh,
Seems you have not initialised ( Instantiated in OO ) the object and / or the parent container.
Check if you have create object for both the parent as well as the alv object.
So when you instatntiate the object of ALV you pass the object ( instantiated before hand ) in the parent container position.
Also you would have to register the events to the object using method. Then only the buttons will finction.
eg :
IF G_CUSTOM_CONTAINER IS INITIAL.
CREATE OBJECT CUSTOM_CONTAINER_1
EXPORTING CONTAINER_NAME = CONTAINER_1.
CREATE OBJECT GRID1
EXPORTING I_PARENT = CUSTOM_CONTAINER_1.
CALL METHOD ALV_GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING I_STRUCTURE_NAME = 'VBAK
CHANGING IT_OUTTAB = IT_VBAK.
Reward points if useful. -
Run-time error '13' in ALV report
Hello,
In a standard ALV report we are using Excel report layout. The Excel contains a table and a graph. The excel table refreshes with no errors.
In order to refresh the graph data we recorded a VB Macro but when we run the report (which runs the macro) we are getting the error:
run-time error '13'
When we open the excel report from our workstation (not trough the SAP system) we are not getting this error.
Please Advice,
Amirhi
this is a bug(error )in microsoft excel:
Run-time error:'13' Type Mismatch" error message when you click a macro or a function on a menu in Excel 2002
Please chec kthis link for the details:
http://support.microsoft.com/kb/821292
Regards
Neha -
ALV issue: when save list using Local File command will get run time error!
help!!!!
report list using ALV method when to save this list using Local File.
i will get GETWA_NOT_ASSIGNED run time error information.
how resolve it?
source code :
REPORT ZIFT0103.
TABLES : MARA,MARC,CDHDR,CDPOS,MAKT.
******DEVK909212****************
****利用工厂来区分不同的SERVER的FTP ADDRESS ,user ,PASSWORD
DATA: FTP_WERKS LIKE MARC-WERKS.
********定义一个RANGE用来抓取MARC的信息
RANGES:R_MATNR FOR MARA-MATNR OCCURS 0.
********定义一个INTERNAL TABLE 来抓取MARC 的信息
DATA:BEGIN OF IT_MARC OCCURS 0,
MATNR LIKE MARC-MATNR,
WERKS LIKE MARC-WERKS,
USERNAME TYPE CDHDR-USERNAME,
UDATE TYPE CDHDR-UDATE,
FLAG_UI TYPE C,
END OF IT_MARC.
*******定义存放北京的数据的变量
DATA : BEGIN OF FTP_BEIJING OCCURS 0 ,
MATNR(25) ,
MATNR1(25) ,
MAKTX(30) ,
END OF FTP_BEIJING .
******定义福清的数据变量
DATA : BEGIN OF FTP_FUQING OCCURS 0 ,
MATNR(25) ,
MATNR1(25) ,
MAKTX(30) ,
END OF FTP_FUQING .
*******DEVK909212*****************
DATA : BEGIN OF FTP_ITEMDOC1 OCCURS 0 ,
MATNR(25) ,
MAKTX(30) ,
END OF FTP_ITEMDOC1 .
DATA : BEGIN OF FTP_ITEMDOC OCCURS 0 ,
MATNR(25) ,
MATNR1(25) ,
MAKTX(30) ,
END OF FTP_ITEMDOC .
DATA: WA_ZMSGTA TYPE ZMSGTA ,
l_ersda like MARA-ERSDA .
***********DEVK909553********************
****用来决定执行FTP还是显示LIST**********
DATA:g_tcode_flag.
***********DEVK909553********************
Error message process ******************************
DEFINE EXPLAIN_MSG.
break soe_richard.
CALL FUNCTION 'BAPI_MESSAGE_GETDETAIL'
EXPORTING
ID = &1 "SY-MSGID
NUMBER = &2 "SY-MSGNO
LANGUAGE = SY-LANGU
TEXTFORMAT = &3
LINKPATTERN =
MESSAGE_V1 = &4 "SY-MSGV1
MESSAGE_V2 = &5 "SY-MSGV2
MESSAGE_V3 = &6 "SY-MSGV3
MESSAGE_V4 = &7 "SY-MSGV4
IMPORTING
MESSAGE = &8 "WA_ZMSGTA-MSE1
RETURN =
TABLES
TEXT =
END-OF-DEFINITION.
DEFINE ERROR_MSG_UPDATA.
CALL FUNCTION 'ZINSERT_MSG' "IN UPDATE TASK
EXPORTING
XZMSGTA = &1 "WA_ZMSGTA
EXCEPTIONS
UPDATE_ERROR = 1
OTHERS = 2.
END-OF-DEFINITION.
IF SY-TCODE = 'ZIFT103' .
g_tcode_flag = 'L'.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 0
TEXT = '请耐心等候,系统正在抓数据'.
ENDIF.
l_ersda = sy-datum - 1 . "取前一天产生的物料号码。
DATA:BEGIN OF it_change OCCURS 0,
OBJECTID TYPE CDHDR-OBJECTID,
USERNAME TYPE CDHDR-USERNAME,
UDATE TYPE CDHDR-UDATE,
TABKEY TYPE CDPOS-TABKEY,
END OF it_change.
DATA:BEGIN OF it_cDhdr OCCURS 0,
OBJECTID type CDHDR-OBJECTID,
CHANGENR TYPE CDHDR-CHANGENR,
USERNAME TYPE CDHDR-USERNAME,
UDATE TYPE CDHDR-UDATE,
END OF it_cdhdr.
DATA:search_len TYPE I.
DATA:BEGIN of it_insert OCCURS 0,
MATNR TYPE MARA-MATNR,
WERKS TYPE MARC-WERKS,
END OF it_insert.
DATA:BEGIN OF it_MAKT OCCURS 0,
MATNR TYPE MAKT-MATNR,
MAKTX TYPE MAKT-MAKTX,
END OF it_makt.
DATA IT_MARA TYPE TABLE OF MARA WITH HEADER LINE.
DATA:BEGIN OF IT_OUT OCCURS 0,
MATNR TYPE MARA-MATNR,
WERKS TYPE MARC-WERKS,
MTART TYPE MARA-MTART,
MEINS TYPE MARA-MEINS,
MATKL TYPE MARA-MATKL,
MAKTX TYPE MAKT-MAKTX,
PSTAT TYPE MARA-PSTAT,
BRGEW TYPE MARA-BRGEW,
NTGEW TYPE MARA-NTGEW,
GEWEI TYPE MARA-GEWEI,
FERTH TYPE MARA-FERTH,
KZUMW TYPE MARA-KZUMW,
ERNAM TYPE MARA-ERNAM,
ERSDA TYPE MARA-ERSDA,
END OF IT_OUT.
*-- DECLARE DATA FOR ALV
TYPE-POOLS: slis.
DATA : g_variant LIKE disvariant,
g_save(1) TYPE c,
g_exit(1) TYPE c,
gx_variant LIKE disvariant.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE, "
gt_events TYPE slis_t_event,
gt_list_top_of_page TYPE slis_t_listheader,
gs_print TYPE slis_print_alv,
gs_layout TYPE slis_layout_alv .
******只能抓出系统有做更改的数据***************
******而第一次INSERT MARA的数据抓不出来********
START-OF-SELECTION.
SELECT AOBJECTID AUSERNAME AUDATE BTABKEY
INTO TABLE it_change
FROM ( CDPOS AS B INNER JOIN CDHDR AS A ON
AOBJECTCLAS = BOBJECTCLAS AND
AOBJECTID = BOBJECTID AND
ACHANGENR = BCHANGENR )
WHERE A~OBJECTCLAS = 'MATERIAL'
AND A~UDATE = l_ersda
AND B~TABNAME = 'MARC'
AND B~CHNGIND = 'I'.
LOOP AT it_change.
search_len = STRLEN( it_change-TABKEY ).
search_len = search_len - 4.
IF search_len > 0.
IT_MARC-WERKS = it_change-TABKEY+search_len(4).
ENDIF.
IT_MARC-MATNR = it_change-objectid+0(18).
IT_MARC-USERNAME = it_change-username.
IT_MARC-UDATE = It_change-udate.
IT_MARC-FLAG_UI = 'U'.
APPEND IT_MARC.
CLEAR IT_MARC.
CLEAR R_MATNR.
R_MATNR-SIGN = 'I'.
R_MATNR-OPTION = 'EQ'.
R_MATNR-LOW = IT_MARC-MATNR.
APPEND R_MATNR.
ENDLOOP.
****CDPOS is Cluster TABLE 所以没有办法用INNER JOIN******
SELECT OBJECTID CHANGENR USERNAME UDATE
INTO TABLE it_cdhdr
FROM CDHDR
WHERE OBJECTCLAS = 'MATERIAL'
AND UDATE = l_ersda.
AND TCODE = 'MM02'.
LOOP AT IT_cdhdr.
SELECT * FROM CDPOS
WHERE OBJECTCLAS = 'MATERIAL'
AND OBJECTID = IT_CDHDR-OBJECTID
AND CHANGENR = IT_CDHDR-CHANGENR
AND TABNAME = 'MARC'
AND CHNGIND = 'I'.
search_len = STRLEN( CDPOS-TABKEY ).
search_len = search_len - 4.
IF search_len > 0.
IT_MARC-WERKS = CDPOS-TABKEY+search_len(4).
ENDIF.
IT_MARC-MATNR = IT_cdhdr-objectid+0(18).
IT_MARC-USERNAME = IT_cdhdr-username.
IT_MARC-UDATE = IT_cdhdr-udate.
IT_MARC-FLAG_UI = 'U'.
APPEND IT_MARC.
CLEAR IT_MARC.
CLEAR R_MATNR.
R_MATNR-SIGN = 'I'.
R_MATNR-OPTION = 'EQ'.
R_MATNR-LOW = IT_MARC-MATNR.
APPEND R_MATNR.
CLEAR IT_MARC.
ENDSELECT.
ENDLOOP.
IF g_tcode_flag = 'L'.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 20
TEXT = '处理好当天CHANGE的数据'.
ENDIF.
*******抓当天做了INSERT的数据*************
*******不需要***********************
SELECT BMATNR BWERKS INTO TABLE IT_INSERT
FROM MARC AS B JOIN MARA AS A
ON AMATNR = BMATNR
WHERE A~ERSDA = l_ersda.
LOOP AT IT_INSERT.
IT_MARC-MATNR = IT_INSERT-MATNR.
IT_MARC-WERKS = IT_INSERT-WERKS.
IT_MARC-FLAG_UI = 'I'.
APPEND IT_MARC.
CLEAR IT_MARC.
CLEAR R_MATNR.
R_MATNR-SIGN = 'I'.
R_MATNR-OPTION = 'EQ'.
R_MATNR-LOW = IT_MARC-MATNR.
APPEND R_MATNR.
ENDLOOP.
IF g_tcode_flag = 'L'.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 40
TEXT = '处理好当天INSERT的数据'.
ENDIF.
IF g_tcode_flag = 'L'.
PERFORM get_MAKTX.
PERFORM get_mara.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 100
TEXT = '处理好数据,并开始显示数据'.
PERFORM do_data.
PERFORM display_alv.
ELSE.
PERFORM get_MAKTX.
PERFORM do_ftp.
ENDIF.
*& Form get_marktx
text
FORM get_maktx.
SELECT MATNR MAKTX INTO TABLE IT_MAKT FROM MAKT
WHERE MATNR IN R_MATNR AND SPRAS = '1'.
ENDFORM. "get_marktx
*& Form get_mara
text
FORM get_mara.
SELECT * INTO TABLE it_mara FROM MARA
WHERE MATNR IN R_MATNR.
ENDFORM. "get_mara
*& Form do_data
text
FORM do_data.
SORT IT_MARC BY MATNR WERKS.
DELETE ADJACENT DUPLICATES FROM IT_MARC COMPARING MATNR WERKS.
LOOP AT IT_MARC.
CLEAR IT_MAKT.
CLEAR IT_MARA.
READ TABLE IT_MAKT WITH KEY MATNR = IT_MARC-MATNR.
READ TABLE IT_MARA WITH KEY MATNR = IT_MARC-MATNR.
MOVE-CORRESPONDING IT_MARA TO IT_OUT.
IT_OUT-MAKTX = IT_MAKT-MAKTX.
IT_OUT-WERKS = IT_MARC-WERKS.
IF IT_MARC-FLAG_UI = 'U'.
IT_OUT-ERNAM = IT_MARC-USERNAME.
ENDIF.
APPEND IT_OUT.
CLEAR IT_OUT.
ENDLOOP.
ENDFORM. "do_data
*SELECT AMATNR BMAKTX INTO CORRESPONDING
*FIELDS OF FTP_ITEMDOC1 FROM MARA AS A JOIN MAKT AS B
*ON AMATNR = BMATNR WHERE A~ERSDA = l_ersda
*AND B~SPRAS = '1' . "代表为中文说明。
APPEND FTP_ITEMDOC1.
*******DEVK909212****************
*******添加RANGE*****************
CLEAR R_MATNR.
R_MATNR-SIGN = 'I'.
R_MATNR-OPTION = 'EQ'.
R_MATNR-LOW = FTP_ITEMDOC1-MATNR.
APPEND R_MATNR.
CLEAR FTP_ITEMDOC1.
*******DEVK909212****************
*ENDSELECT.
*******DEVK909212****************
****get WERKS information from MARC*******
*SELECT MATNR WERKS INTO TABLE IT_MARC
*FROM MARC
*WHERE MATNR IN R_MATNR.
*******DEVK909212****************
******DEVK909212****************
**MARK**************************
*LOOP AT FTP_ITEMDOC1 .
MOVE : FTP_ITEMDOC1-MATNR TO FTP_ITEMDOC-MATNR,
FTP_ITEMDOC1-MATNR TO FTP_ITEMDOC-MATNR1,
FTP_ITEMDOC1-MAKTX TO FTP_ITEMDOC-MAKTX.
APPEND FTP_ITEMDOC.
CLEAR FTP_ITEMDOC.
*ENDLOOP.
******DEVK909212****************
******DEVK909212***********************************
**根据IT_MARC中信息,往北京和福清的TABLE写数据*****
FORM do_ftp.
LOOP AT IT_MARC.
***福清的
IF IT_MARC-WERKS = '1010' OR IT_MARC-WERKS = '1020'
OR IT_MARC-WERKS = '1023' .
READ TABLE FTP_ITEMDOC1 WITH KEY MATNR = IT_MARC-MATNR.
MOVE : FTP_ITEMDOC1-MATNR TO FTP_FUQING-MATNR,
FTP_ITEMDOC1-MATNR TO FTP_FUQING-MATNR1,
FTP_ITEMDOC1-MAKTX TO FTP_FUQING-MAKTX.
CLEAR IT_MAKT.
READ TABLE IT_MAKT WITH KEY = IT_MARC-MATNR.
MOVE : IT_MARC-MATNR TO FTP_FUQING-MATNR,
IT_MARC-MATNR TO FTP_FUQING-MATNR1,
IT_MAKT-MAKTX TO FTP_FUQING-MAKTX.
APPEND FTP_FUQING.
CLEAR FTP_FUQING.
ENDIF.
***北京的
IF IT_MARC-WERKS = '1041' OR IT_MARC-WERKS = '1042'.
READ TABLE FTP_ITEMDOC1 WITH KEY MATNR = IT_MARC-MATNR.
MOVE : FTP_ITEMDOC1-MATNR TO FTP_BEIJING-MATNR,
FTP_ITEMDOC1-MATNR TO FTP_BEIJING-MATNR1,
FTP_ITEMDOC1-MAKTX TO FTP_BEIJING-MAKTX.
CLEAR IT_MAKT.
READ TABLE IT_MAKT WITH KEY = IT_MARC-MATNR.
MOVE : IT_MARC-MATNR TO FTP_BEIJING-MATNR,
IT_MARC-MATNR TO FTP_BEIJING-MATNR1,
IT_MAKT-MAKTX TO FTP_BEIJING-MAKTX.
APPEND FTP_BEIJING.
CLEAR FTP_BEIJING.
ENDIF.
ENDLOOP.
****清楚重复的数据**********
SORT FTP_FUQING.
DELETE ADJACENT DUPLICATES FROM FTP_FUQING.
SORT FTP_BEIJING.
DELETE ADJACENT DUPLICATES FROM FTP_BEIJING.
***传送数据********
REFRESH FTP_ITEMDOC.
FTP_ITEMDOC[] = FTP_FUQING[].
FTP_WERKS = '1010'.
PERFORM ftp_work.
REFRESH FTP_ITEMDOC.
FTP_ITEMDOC[] = FTP_BEIJING[].
FTP_WERKS = '1041'.
PERFORM ftp_work.
******DEVK909212***********************************
ENDFORM. "do_ftp
*& Form ftp_work
把以前FTP的工作做一个FORM
*******DEVK909212**************************
FORM ftp_work.
*******DEVK909212**************************
CHECK FTP_ITEMDOC[] IS NOT INITIAL.
FTP function *****************************************************
DATA : HDL TYPE I,
L_SLEN TYPE I ,
ERROR,
KEY TYPE I VALUE 26101957,
DEST TYPE RFCDES-RFCDEST VALUE 'SAPFTPA'.
DATA: FTP_RESULT TYPE TABLE OF TEXT.
DATA: P_FILE TYPE RLGRAP-FILENAME.
DATA: L_USER(16) TYPE C VALUE 'SFIS',
L_PWD(16) TYPE C VALUE 'SFIS',
L_HOST(16) TYPE C VALUE '172.16.31.17'.
*******DEVK909212**************************
*****根据不同的工厂来抓FTP的信息
CALL FUNCTION 'Z_FTP_SFIS'
EXPORTING
BLART = 'S'
WERKS = FTP_WERKS
IMPORTING
HOST = L_HOST
USER1 = L_USER
PASS1 = L_PWD.
*******DEVK909212**************************
CONCATENATE l_ersda '.KP' INTO P_FILE.
SET EXTENDED CHECK OFF.
ERROR = 0.
CHECK HDL IS INITIAL.
Connect to server
L_SLEN = STRLEN( L_PWD ).
CALL FUNCTION 'HTTP_SCRAMBLE'
EXPORTING
SOURCE = L_PWD
SOURCELEN = L_SLEN
KEY = KEY
IMPORTING
DESTINATION = L_PWD.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
TEXT = 'Connect to FTP Server'.
CALL FUNCTION 'FTP_CONNECT'
EXPORTING
USER = L_USER
PASSWORD = L_PWD
HOST = L_HOST
RFC_DESTINATION = DEST
IMPORTING
HANDLE = HDL
EXCEPTIONS
NOT_CONNECTED = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MOVE: 'B' TO WA_ZMSGTA-BLART,
l_ersda TO WA_ZMSGTA-REFNUMBER,
SY-MSGTY TO WA_ZMSGTA-MSGTY,
'MARA' TO WA_ZMSGTA-TBMA_VAL.
EXPLAIN_MSG SY-MSGID SY-MSGNO ' ' SY-MSGV1 SY-MSGV2 SY-MSGV3
SY-MSGV4 WA_ZMSGTA-MSE1.
ERROR_MSG_UPDATA WA_ZMSGTA.
EXIT.
ENDIF.
CALL FUNCTION 'FTP_COMMAND'
EXPORTING
HANDLE = HDL
COMMAND = 'ascii'
TABLES
DATA = FTP_RESULT
EXCEPTIONS
TCPIP_ERROR = 1
COMMAND_ERROR = 2
DATA_ERROR = 3.
IF SY-SUBRC <> 0.
EXPLAIN_MSG SY-MSGID SY-MSGNO ' ' SY-MSGV1 SY-MSGV2 SY-MSGV3
SY-MSGV4 WA_ZMSGTA-MSE1.
MOVE: 'B' TO WA_ZMSGTA-BLART,
l_ersda TO WA_ZMSGTA-REFNUMBER,
SY-MSGTY TO WA_ZMSGTA-MSGTY,
'MARA' TO WA_ZMSGTA-TBMA_VAL.
ERROR_MSG_UPDATA WA_ZMSGTA.
EXIT.
ENDIF.
CALL FUNCTION 'FTP_R3_TO_SERVER'
EXPORTING
HANDLE = HDL
FNAME = P_FILE
CHARACTER_MODE = 'X'
TABLES
TEXT = FTP_ITEMDOC
EXCEPTIONS
TCPIP_ERROR = 1
COMMAND_ERROR = 2
DATA_ERROR = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
EXPLAIN_MSG SY-MSGID SY-MSGNO ' ' SY-MSGV1 SY-MSGV2 SY-MSGV3
SY-MSGV4 WA_ZMSGTA-MSE1.
MOVE: 'B' TO WA_ZMSGTA-BLART,
l_ersda TO WA_ZMSGTA-REFNUMBER,
SY-MSGTY TO WA_ZMSGTA-MSGTY,
'MARA' TO WA_ZMSGTA-TBMA_VAL.
ERROR_MSG_UPDATA WA_ZMSGTA.
EXIT.
ENDIF.
*******DEVK909212**************************
*******CLOSE FTP******************
CHECK NOT HDL IS INITIAL.
CALL FUNCTION 'FTP_DISCONNECT'
EXPORTING
HANDLE = HDL.
CALL FUNCTION 'RFC_CONNECTION_CLOSE'
EXPORTING
DESTINATION = DEST
EXCEPTIONS
OTHERS = 1.
CLEAR HDL.
ENDFORM. "ftp_work
*******DEVK909212**************************
FORM DISPLAY_ALV .
*-- PREPARE ALV DATA
PERFORM EVENTTAB_BUILD USING GT_EVENTS[].
PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
*-- LAYOUT SETTING
PERFORM PREPARE_ALV_FIELD USING GT_FIELDCAT[].
*-- ALV DISPLAY
PERFORM CALL_REUSE_ALV_GRID_DISPLAY.
ENDFORM. " display_alv
*& Form eventtab_build
text
-->P_GT_EVENTS[] text
FORM EVENTTAB_BUILD USING PT_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = PT_EVENTS.
READ TABLE PT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
LS_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY PT_EVENTS FROM LS_EVENT INDEX SY-TABIX.
ENDIF.
ENDFORM. " eventtab_build
*& Form comment_build
text
-->P_GT_LIST_TOP_OF_PAGE[] text
FORM COMMENT_BUILD USING PT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: LS_LINE TYPE SLIS_LISTHEADER,
L_DATE(30),
l_v_BWKEY like T001W-BWKEY, "Valuation area
l_v_BUKRS like T001K-BUKRS. "Firm/Company
Listenerschrift: Typ H
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-KEY: not used for this type
select single BWKEY
into l_v_BWKEY
from t001w
where WERKS IN s_WERKS.
select single BUKRS
into l_v_BUKRS
from t001k
where BWKEY = l_v_BWKEY.
SELECT SINGLE butxt INTO LS_LINE-INFO
FROM t001
WHERE bukrs = l_v_BUKRS.
APPEND LS_LINE TO PT_TOP_OF_PAGE.
Kopfinfo: Typ S
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = '报表名称:'.
LS_LINE-INFO = SY-TITLE.
APPEND LS_LINE TO PT_TOP_OF_PAGE.
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = '打印日期:'.
WRITE SY-DATUM TO LS_LINE-INFO.
ls_line-info = sy-datum.
APPEND LS_LINE TO PT_TOP_OF_PAGE.
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = '打印時間:'.
WRITE SY-UZEIT TO LS_LINE-INFO.
ls_line-info = sy-uzeit.
APPEND LS_LINE TO PT_TOP_OF_PAGE.
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = '使用者:'.
LS_LINE-INFO = SY-UNAME.
APPEND LS_LINE TO PT_TOP_OF_PAGE.
ENDFORM. " comment_build
*& Form prepare_alv_field
text
-->P_GT_FIELDCAT[] text
FORM PREPARE_ALV_FIELD USING P_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LS_LINE TYPE SLIS_FIELDCAT_ALV.
*-- DEFINE MARCO
DEFINE APPEND_ALV_FIELD.
CLEAR LS_LINE.
LS_LINE-FIELDNAME = &1.
LS_LINE-TABNAME = &2.
LS_LINE-REPTEXT_DDIC = &3.
LS_LINE-SELTEXT_L = &3.
LS_LINE-SELTEXT_M = &3.
LS_LINE-SELTEXT_S = &3.
LS_LINE-QFIELDNAME = &4.
LS_LINE-QTABNAME = &5.
LS_LINE-NO_OUT = &6.
LS_LINE-NO_ZERO = &7.
LS_LINE-OUTPUTLEN = &8.
APPEND LS_LINE TO P_FIELDCAT.
END-OF-DEFINITION.
APPEND_ALV_FIELD: 'MATNR' 'IT_OUT' '料号'
'O' 'X' ''.
APPEND_ALV_FIELD: 'WERKS' 'IT_OUT' '工厂'
'O' 'X' ''.
APPEND_ALV_FIELD: 'MTART' 'IT_OUT' 'MTyp'
'O' 'X' ''.
APPEND_ALV_FIELD: 'MEINS' 'IT_OUT' 'BUn'
'O' 'X' ''.
APPEND_ALV_FIELD: 'MATKL' 'IT_OUT' '物料组\分群码'
'O' 'X' ''.
APPEND_ALV_FIELD: 'MATKX' 'IT_OUT' '物料描述'
'O' 'X' ''.
APPEND_ALV_FIELD: 'PSTAT' 'IT_OUT' '维护状态'
'O' 'X' ''.
APPEND_ALV_FIELD: 'BRGEW' 'IT_OUT' '毛重'
'O' 'X' ''.
APPEND_ALV_FIELD: 'NTGEW' 'IT_OUT' '净重'
'O' 'X' ''.
APPEND_ALV_FIELD: 'GEWEI' 'IT_OUT' 'WUn'
'O' 'X' ''.
APPEND_ALV_FIELD: 'FERTH' 'IT_OUT' '对外机种名'
'O' 'X' ''.
APPEND_ALV_FIELD: 'KZUMW' 'IT_OUT' '高关税标识'
'O' 'X' ''.
APPEND_ALV_FIELD: 'ERNAM' 'IT_OUT' '创建者'
'O' 'X' ''.
APPEND_ALV_FIELD: 'ERSDA' 'IT_OUT' '创建日期'
'O' 'X' ''.
ENDFORM. " prepare_alv_field
*& Form call_reuse_alv_grid_display
text
--> p1 text
<-- p2 text
FORM CALL_REUSE_ALV_GRID_DISPLAY .
gs_layout-f2code = 'DISPLAY'.
gs_print-no_print_listinfos = 'X'.
gs_layout-colwidth_optimize = 'X'. "列宽度自动根据内容优化
gs_layout-f2code = '&ETA'. "double check弹出详细信息
gs_layout-zebra = 'X'. "清单条纹显示
gs_layout-no_vline = ''. "是否显示列间隔线
gs_layout-box_fieldname = ''. "是否显示checkbox
gs_layout-confirmation_prompt = ''. "推出清单是否提示
gs_layout-detail_titlebar = '详细信息'."详细清单的标题
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-CPROG
I_BACKGROUND_ID = 'ALV_BACKGROUND'
I_CALLBACK_PF_STATUS_SET = 'ALV_PF_STATUS'
I_CALLBACK_USER_COMMAND = 'ALV_USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = GT_LIST_TOP_OF_PAGE[]
IT_FIELDCAT = GT_FIELDCAT[]
IT_EVENTS = GT_EVENTS[]
I_STRUCTURE_NAME = 'IT_OUT'
I_SAVE = 'A'
IS_LAYOUT = GS_LAYOUT
IS_PRINT = GS_PRINT
TABLES
T_OUTTAB = IT_OUT
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. " call_reuse_alv_grid_display
*& Form PREPARE_ALV_FIELD
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM. "TOP_OF_PAGEHi,
Please check your field catalog and refer field names once again.
Check spelling, or Check strucutre properly.
There are something wrong in your catalog definition
aRs. -
ALV GRID Display function module giving Run time error
Hello Experts,
I have ALV report, In which I am using ALV grid dispaly FM to display the report.
But when my out table which I am passing to FM is empty that time ALV grid display shows blank ALV report. but when out table is not empty that time I am getting the Run time error, which shows message "Field symbol has not yet been assigned".
Can any one please help me out in this.
ThanksTYPES: BEGIN OF type_out,
col00 TYPE ytlet-rzzyyproduct,
col01 TYPE ytlet-kslvt,
col02 TYPE ytlet-kslvt,
col03 TYPE ytlet-kslvt,
col04 TYPE ytlet-kslvt,
col05 TYPE ytlet-kslvt,
col06 TYPE ytlet-kslvt,
col07 TYPE ytlet-kslvt,
col08 TYPE ytlet-kslvt,
col09 TYPE ytlet-kslvt,
col10 TYPE ytlet-kslvt,
col11 TYPE ytlet-kslvt,
col12 TYPE ytlet-kslvt,
col13 TYPE ytlet-kslvt,
col14 TYPE ytlet-kslvt,
col15 TYPE ytlet-kslvt,
col16 TYPE ytlet-kslvt,
col17 TYPE ytlet-kslvt,
col18 TYPE ytlet-kslvt,
col19 TYPE ytlet-kslvt,
col20 TYPE ytlet-kslvt,
col21 TYPE ytlet-kslvt,
col22 TYPE ytlet-kslvt,
col23 TYPE ytlet-kslvt,
col24 TYPE ytlet-kslvt,
col25 TYPE ytlet-kslvt,
col26 TYPE ytlet-kslvt,
col27 TYPE ytlet-kslvt,
col28 TYPE ytlet-kslvt,
col29 TYPE ytlet-kslvt,
col30 TYPE ytlet-kslvt,
col31 TYPE ytlet-kslvt,
col32 TYPE ytlet-kslvt,
col33 TYPE ytlet-kslvt,
col34 TYPE ytlet-kslvt,
col35 TYPE ytlet-kslvt,
col36 TYPE ytlet-kslvt,
col37 TYPE ytlet-kslvt,
col38 TYPE ytlet-kslvt,
col39 TYPE ytlet-kslvt,
col40 TYPE ytlet-kslvt,
col41 TYPE ytlet-kslvt,
col42 TYPE ytlet-kslvt,
col43 TYPE ytlet-kslvt,
col44 TYPE ytlet-kslvt,
END OF type_out.
DATA: t_fieldcat TYPE slis_t_fieldcat_alv, "Field catelog table
w_fieldcat TYPE slis_fieldcat_alv, "Field catelog Work area
w_layout TYPE slis_layout_alv, "Layout structure
w_event TYPE slis_alv_event, "Event structure
t_event TYPE slis_t_event, "Event structure
t_sort TYPE STANDARD TABLE OF slis_sortinfo_alv,
t_callback_main_user_command TYPE slis_formname,
v_selfield TYPE slis_selfield.
FIELD-SYMBOLS: <ksl>.
FORM DISPLAY_REPORT .
*Prepare Field Catlog
PERFORM creat_field_catlog.
*Set layout
PERFORM set_layout.
*Get Event
PERFORM get_event.
*Display Report
PERFORM display_alv_report.
ENDFORM. " DISPLAY_REPORT
FORM creat_field_catlog .
PERFORM add_fields_catlog USING:
'01' 'RZZYYPRODUCT' 'IT_OUT' 'MPMs' ' ',
'02' 'KSLVT' 'IT_OUT' 'License Fee' ' ',
'03' 'KSLVT' 'IT_OUT' 'Ad Sales' ' ',
'04' 'KSLVT' 'IT_OUT' 'Promo Fees' ' ',
'05' 'KSLVT' 'IT_OUT' 'Total Ad Sales/Promo' ' ',
'06' 'KSLVT' 'IT_OUT' 'Other' ' ',
'07' 'KSLVT' 'IT_OUT' 'Total' ' ',
'08' 'KSLVT' 'IT_OUT' 'Dom Station' ' ',
'09' 'KSLVT' 'IT_OUT' 'Basic Cable/Free VOD' ' ',
'10' 'KSLVT' 'IT_OUT' 'License Fee' ' ',
'11' 'KSLVT' 'IT_OUT' 'Ad Sales (incl Internet)' ' ',
'12' 'KSLVT' 'IT_OUT' 'Promo Fees' ' ',
'13' 'KSLVT' 'IT_OUT' 'Ad Sales & Promo Fees' ' ',
'14' 'KSLVT' 'IT_OUT' 'Foreign' ' ',
'15' 'KSLVT' 'IT_OUT' 'Pay TV' ' ',
'16' 'KSLVT' 'IT_OUT' 'Other' ' ',
'17' 'KSLVT' 'IT_OUT' 'Total' ' ',
'18' 'KSLVT' 'IT_OUT' 'Home Entertainment' ' ',
'19' 'KSLVT' 'IT_OUT' 'SPTI' ' ',
'20' 'KSLVT' 'IT_OUT' 'All Other Divisions' ' ',
'21' 'KSLVT' 'IT_OUT' 'Total' ' ',
'22' 'KSLVT' 'IT_OUT' 'Total Revenue' ' ',
'23' 'KSLVT' 'IT_OUT' 'PV Net Down & Producers Share' '',
'24' 'KSLVT' 'IT_OUT' 'Total Net Revenue' ' ',
'25' 'KSLVT' 'IT_OUT' 'Development Expense' ' ',
'26' 'KSLVT' 'IT_OUT' 'SOP Deficits' ' ',
'27' 'KSLVT' 'IT_OUT' 'Amortization' ' ',
'28' 'KSLVT' 'IT_OUT' 'Other COS ' ' ',
'29' 'KSLVT' 'IT_OUT' 'Total COS' ' ',
'30' 'KSLVT' 'IT_OUT' 'Profit Before Releasing' ' ',
'31' 'KSLVT' 'IT_OUT' 'Gross Profit %' ' ',
'32' 'KSLVT' 'IT_OUT' 'SPT' ' ',
'33' 'KSLVT' 'IT_OUT' 'Home Entertainment' ' ',
'34' 'KSLVT' 'IT_OUT' 'SPTI' ' ',
'35' 'KSLVT' 'IT_OUT' 'All Other Divisions' ' ',
'36' 'KSLVT' 'IT_OUT' 'Other' ' ',
'37' 'KSLVT' 'IT_OUT' 'Total' ' ',
'38' 'KSLVT' 'IT_OUT' 'Gross Profit' ' ',
'39' 'KSLVT' 'IT_OUT' 'SPT' ' ',
'40' 'KSLVT' 'IT_OUT' 'Home Entertainment' ' ',
'41' 'KSLVT' 'IT_OUT' 'SPTI' ' ',
'42' 'KSLVT' 'IT_OUT' 'All Other Divisions' ' ',
'43' 'KSLVT' 'IT_OUT' 'Other' ' ',
'44' 'KSLVT' 'IT_OUT' 'Total' ' ',
'45' 'KSLVT' 'IT_OUT' 'Net Margin' ' '.
ENDFORM. " CREAT_FIELD_CATLOG
*& Form ADD_FIELDS_CATLOG
Filling of field Catlog
FORM add_fields_catlog USING p_colpos
p_fildname
p_tabname
p_fildtext
p_ndisplay.
w_fieldcat-row_pos = '1'.
w_fieldcat-col_pos = p_colpos.
w_fieldcat-fieldname = p_fildname.
w_fieldcat-tabname = p_tabname.
w_fieldcat-reptext_ddic = p_fildtext.
w_fieldcat-no_out = p_ndisplay.
APPEND w_fieldcat TO t_fieldcat.
CLEAR: w_fieldcat.
ENDFORM. " ADD_FIELDS_CATLOG
*& Form SET_LAYOUT
Set Layout
FORM set_layout .
w_layout-colwidth_optimize = 'X'.
ENDFORM. " SET_LAYOUT
*& Form GET_EVENT
text
FORM get_event .
w_event-name = 'TOP-OF-PAGE'.
w_event-form = 'F_TOP-OF_PAGE'.
APPEND w_event TO t_event.
ENDFORM. " GET_EVENT
*& Form TOP-OF-PAGE
Top of Page
FORM top-of-page.
DATA : t_list_commentry TYPE slis_t_listheader,
w_header TYPE slis_listheader,
lv_text(90) TYPE c,
l_text(90) TYPE c,
lv_rundate(10) TYPE c,
lv_runtime(10) TYPE c.
CONSTANTS: c_space(2) TYPE c VALUE ' ',
c_space2(6) TYPE c VALUE ' '.
w_header-typ = 'S'.
w_header-key = 'Program:'.
w_header-info = sy-repid.
APPEND w_header TO t_list_commentry.
WRITE: sy-datum TO lv_rundate MM/DD/YYYY.
WRITE: sy-uzeit TO lv_runtime USING EDIT MASK '__:__:__'.
CLEAR w_header.
w_header-typ = 'S'.
w_header-key = text-021.
w_header-info = lv_rundate.
APPEND w_header TO t_list_commentry.
CLEAR: w_header.
w_header-typ = 'S'.
w_header-key = 'User Id'.
w_header-info = sy-uname.
APPEND w_header TO t_list_commentry.
CLEAR: w_header.
w_header-typ = 'S'.
w_header-key = 'Run Date'.
w_header-info = lv_rundate.
APPEND w_header TO t_list_commentry.
CLEAR: w_header.
w_header-typ = 'S'.
w_header-key = 'Run Time'.
w_header-info = lv_runtime.
APPEND w_header TO t_list_commentry.
CLEAR: w_header.
w_header-typ = 'H'.
w_header-key = 'order'.
w_header-info = 'MCR Report'.
APPEND w_header TO t_list_commentry.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_list_commentry.
ENDFORM. "TOP-OF-PAGE
FORM display_alv_report .
CONSTANTS : gc_save TYPE c VALUE 'A'. "Save Layout
t_callback_main_user_command = c_user_command.
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 = ' '
i_callback_user_command = t_callback_main_user_command
i_callback_top_of_page = 'TOP-OF-PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
is_layout = w_layout
it_fieldcat = t_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
i_save = gc_save
IS_VARIANT =
IT_EVENTS =
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
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_out
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
ENDIF. -
Herarchial alv gives run time error
Hello experts
this is chitta ranjan mahato new to sap abap try to write a herarchial alv but it gives run time error my code is as follows.
thnaks in advance
REPORT ZCR_TEST_004.
TYPE-POOLS: SLIS.
TABLES: VBAK,VBAP.
TYPES : BEGIN OF TY_VBAK,
VBELN TYPE VBAK-VBELN,
ERDAT TYPE VBAK-ERDAT,
ERZET TYPE VBAK-ERZET,
ERNAM TYPE VBAK-ERNAM,
ANGDT TYPE VBAK-ANGDT,
EXPAND TYPE XFELD,
END OF TY_VBAK.
TYPES : BEGIN OF TY_VBAP,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
MATWA TYPE VBAP-MATWA,
END OF TY_VBAP.
DATA : IT_VBAK TYPE TABLE OF TY_VBAK,
WA_VBAK TYPE TY_VBAK.
DATA : IT_VBAP TYPE TABLE OF TY_VBAP,
WA_VBAP TYPE TY_VBAP.
DATA : IT_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA : WA_KEYINFO TYPE SLIS_KEYINFO_ALV.
DATA : I_PROGRAM TYPE SY-REPID.
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-000.
PARAMETERS: P_VBELN TYPE VBAK-VBELN.
SELECTION-SCREEN: SKIP.
PARAMETERS:P_EXPAND AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK B1.
start-of-selection.
PERFORM SELECT_DATA.
PERFORM BUILD_LAYOUT.
PERFORM BULID_FIELDCATLOG.
PERFORM SHOW_DATA.
FORM SELECT_DATA .
SELECT VBELN
ERDAT
ERZET
ERNAM
ANGDT
INTO TABLE IT_VBAK FROM VBAK WHERE VBELN = P_VBELN .
IF NOT IT_VBAK IS INITIAL.
SELECT VBELN
POSNR
MATNR
MATWA
FROM VBAP
INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
FOR ALL ENTRIES IN IT_VBAK
WHERE VBELN = IT_VBAK-VBELN.
ENDIF.
ENDFORM. " SELECT_DATA
Edited by: chitto123 on Oct 11, 2010 7:11 PMFORM BUILD_LAYOUT .
IF P_EXPAND = 'X'.
IT_LAYOUT-expand_fieldname = 'X'.
ENDIF.
WA_KEYINFO-HEADER01 = 'VBAK'.
WA_KEYINFO-ITEM01 = 'VBAP'.
ENDFORM. " BUILD_LAYOUT
FORM BULID_FIELDCATLOG .
WA_FIELDCAT-col_pos = '1'.
WA_FIELDCAT-fieldname = 'VBELN'.
WA_FIELDCAT-tabname = 'VBAK'.
WA_FIELDCAT-seltext_m = 'SALES DOCUMENT'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-col_pos = '2'.
WA_FIELDCAT-fieldname = 'ERDAT'.
WA_FIELDCAT-tabname = 'VBAK'.
WA_FIELDCAT-seltext_m = 'RECORD CREATION DATE'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-col_pos = '3'.
WA_FIELDCAT-fieldname = 'ERZET'.
WA_FIELDCAT-tabname = 'VBAK'.
WA_FIELDCAT-seltext_m = 'ENTRY TIME'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-col_pos = '4'.
WA_FIELDCAT-fieldname = 'ERNAM'.
WA_FIELDCAT-tabname = 'VBAK'.
WA_FIELDCAT-seltext_m = 'PERSON CREATED'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-col_pos = '5'.
WA_FIELDCAT-fieldname = 'ANGDT'.
WA_FIELDCAT-tabname = 'VBAK'.
WA_FIELDCAT-seltext_m = 'QUOTATION FORM'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-col_pos = '6'.
WA_FIELDCAT-fieldname = 'VBELN'.
WA_FIELDCAT-tabname = 'VBAP'.
WA_FIELDCAT-seltext_m = 'SALES DOCUMENT'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-col_pos = '7'.
WA_FIELDCAT-fieldname = 'POSNR'.
WA_FIELDCAT-tabname = 'VBAP'.
WA_FIELDCAT-seltext_m = 'SALES DOCUMENT ITEM'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-col_pos = '8'.
WA_FIELDCAT-fieldname = 'MATNR'.
WA_FIELDCAT-tabname = 'VBAP'.
WA_FIELDCAT-seltext_m = 'MATERIAL NO'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-col_pos = '9'.
WA_FIELDCAT-fieldname = 'MATWA'.
WA_FIELDCAT-tabname = 'VBAP'.
WA_FIELDCAT-seltext_m = 'MATERIAL ENTERED'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. " BULID_FIELDCATLOG
FORM SHOW_DATA .
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = I_PROGRAM
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
IS_LAYOUT = IT_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
I_TABNAME_HEADER = 'VBAK'
I_TABNAME_ITEM = 'VBAP'
* I_STRUCTURE_NAME_HEADER =
* I_STRUCTURE_NAME_ITEM =
IS_KEYINFO = WA_KEYINFO
* IS_PRINT =
* IS_REPREP_ID =
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB_HEADER = IT_VBAK
T_OUTTAB_ITEM = IT_VBAP
* 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. " SHOW_DATA -
Run-Time error '-2147417848 (80010108) in Crystal Report on SAP BW Query
I have installed Crystal Report 2008 SP1 and the Business Objects Integration kit for 3.1 but when I try to create a report on top of an SAP BW query using the toolbar, after entering the logon parameters for SAP BW, I get a error message :
Run-Time error '-2147417848 (80010108)
Automation error
The object invoked has disconnected from its clients.
CR exits after this error message.
I have tried uninstalling the Kit and CR, cleaning up the registry, and installing it again and still got this error message - It is the same for all my SAP BWs.
Anyone ever had this?
Thank you,
R.Is this still an issue?
-
Run time error while executing Project Info system Reports
Hi,
I would like to inform while running project infosystems reports (CN41/41N / cns41 etc), it is taking long time & most of the time run time errors are coming. I observed due to more objects in projects, run time error is coming. Request you to suggest to fix the issue.
Thank you for your cooperation.
Regards,
Rakesh PradhanHi,
I would like to inform while running project infosystems reports (CN41/41N / cns41 etc), it is taking long time & most of the time run time errors are coming. I observed due to more objects in projects, run time error is coming. Request you to suggest to fix the issue.
Thank you for your cooperation.
Regards,
Rakesh Pradhan -
Run time Error while executing Project Info system Reports (CN41/CN41N)
Hi,
I would like to inform while running project infosystems reports (CN41/41N / cns41 etc), it is taking long time & most of the time run time errors are coming. I observed due to more objects in projects, run time error is coming. Request you to suggest to fix the issue.
Thank you for your cooperation.
Regards,
Rakesh PradhanHi,
I would like to inform while running project infosystems reports (CN41/41N / cns41 etc), it is taking long time & most of the time run time errors are coming. I observed due to more objects in projects, run time error is coming. Request you to suggest to fix the issue.
Thank you for your cooperation.
Regards,
Rakesh Pradhan
Maybe you are looking for
-
Error in CLOB datatype for transfering data from Excel to Oracle database
Am using excel sheet as source and Oracle as target Database. For all tables the operations works smoothly except for tables containing CLOB datatype. Initially i have used SQL Developer to transfer some data into excell sheets, now i want to transfe
-
Does anyone know what the Lock_flag is for the customer item open interface and what it should be set to when creating customer items? It is a required field but it is not explained in the 11.5.9 documentation.
-
How to Print 25page standard text in Adobe form
Hi Form Gurus. My requirement is to print a 25 pages form of standard text. Can any one please help me. Thanks in advance. Regards ASAHA1 Moderator message: please work yourself first on your requirement, post specific problems later if necessary, al
-
Can You Home Sharing Between Two iTunes Accounts
Hi, My Dad has a vast amount of music on his itunes account and my old iPod used to be linked up to his account. But recently I got a iPhone 4 and I created my own iTunes account. I would like to be able to listen to the music on my Dad's account as
-
How to avoid repeatition of axis labels in Graphs in WebI 4.0??
Hello All, I am working with graphs in WebI 4.0. In category axis, the labels are being repeated thrice ,twice and so on based on the filter which I have placed according to my requirement.. I need them to be displayed only once. I have used axis lab