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.
Similar Messages
-
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 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. -
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 -
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 -
Hi Experts,
While opening a web template in web application designer, I am getting following error,
Run-time Error '432' :
File name or class name not found during automated operation.
If i press ok, exist from WAD.
I have uninstalled the GUI and installed SAP GUI 6.4 with the latest patch, still getting the error.
It would be a great help if you could provide a solution for this.
Thanks,
KaushikWe are talking about a small .dll.
No need of installing the OS again. I will say, ask your Windows administrator to look for it. He might look for it on MSDN or may be he will contact Microsoft for it.
Most probably it might be 10 minutes job.
Why don't You look for runtime error 432 in microsoft(MSDN) website.
and even if you reinstall Windows XP, I guess it won't resolve the issue. there are couple of issues I heard with XP and SAP applications.
Tnks
Message was edited by:
Keerti Vemulapalli -
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. -
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. -
ALV tree - run time error.
I'm trying to creat an ALV tree with the format exactly the same as BCalv_tree_simple_demo program, except adding one more node. I create a database table in se11 and exporting this table to ALV. However when i run it, it showed run time error that "Field symbol has not yet been assigned".
Trigger Location of Runtime Error
Program CL_GUI_ALV_TREE_SIMPLE========CP
Include CL_GUI_ALV_TREE_SIMPLE========CM01G
Row 13
Module type (METHOD)
Module Name SET_HIERARCHY_DATA
This is a part of my code
FORM build_fieldcatalog.
* get fieldcatalog
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'ZTRANG' """
CHANGING
ct_fieldcat = gt_fieldcatalog.
* change fieldcatalog
DATA: ls_fieldcatalog TYPE lvc_s_fcat.
LOOP AT gt_fieldcatalog INTO ls_fieldcatalog.
CASE ls_fieldcatalog-fieldname.
WHEN 'ZTELCO' OR 'ZVP' OR 'ZDEPT' OR 'ZKOSTL'.
ls_fieldcatalog-no_out = 'X'.
ls_fieldcatalog-key = ''.
WHEN 'ZDESC' OR 'ZMONTH1' OR 'ZMONTH2' OR 'ZMONTH3'.
ls_fieldcatalog-do_sum = 'X'.
ENDCASE.
MODIFY gt_fieldcatalog FROM ls_fieldcatalog.
ENDLOOP.
ENDFORM. " BUILD_FIELDCATALOG
*& Form BUILD_OUTTAB
* text
* --> p1 text
* <-- p2 text
FORM build_outtab.
SELECT * FROM ztrang INTO TABLE gt_tree.
* up to 1 rows.
ENDFORM. " BUILD_OUTTAB
*& Form BUILD_SORT_TABLE
* text
* --> p1 text
* <-- p2 text
FORM build_sort_table.
DATA ls_sort_wa TYPE lvc_s_sort.
* create sort-table
ls_sort_wa-spos = 1.
ls_sort_wa-fieldname = 'ZTELCO'.
ls_sort_wa-up = 'X'.
ls_sort_wa-subtot = 'X'.
APPEND ls_sort_wa TO gt_sort.
ls_sort_wa-spos = 2.
ls_sort_wa-fieldname = 'ZVP'.
ls_sort_wa-up = 'X'.
ls_sort_wa-subtot = 'X'.
APPEND ls_sort_wa TO gt_sort.
ls_sort_wa-spos = 3.
ls_sort_wa-fieldname = 'ZDEPT'.
ls_sort_wa-up = 'X'.
ls_sort_wa-subtot = 'X'.
APPEND ls_sort_wa TO gt_sort.
ls_sort_wa-spos = 4.
ls_sort_wa-fieldname = 'ZKOSTL'.
ls_sort_wa-up = 'X'.
* ls_sort_wa-subtot = 'X'.
APPEND ls_sort_wa TO gt_sort.
ENDFORM. " BUILD_SORT_TABLE
Do you have any clues for this? Thanks.
Edited by: trangie on Apr 13, 2009 5:13 PMHello,
Please check the dumps in ST22 and search for applicable notes based on your version of installation.
Regards,
Gowrinadh -
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 while using Class gcl_error
Hi All,
I am getting run time error while using class gcl_error
type REF to zsreport_error_handling:
'' Attempt to access a component using 'NULL' object reference (points to nothing).
An object reference must point to an object ( an instance of a class) before you can use it to access components ( variable : ''GCL_ERROR'').
Either the reference point has not yet been set or it has been reset to 'NULL' by a clear statement."
Can you please suggest any solution for this ?
Thanks in advance.Dear All
Its Resolved Thanks For your Valuable time Support
INCLUDE LV03VFB4 inside below code trigger error.
PERFORM VVBBD_AUFBAUEN USING WA_AVBBD
WA_AVBBD-APOMOBILE
DA_SUBRC
DA_UPDKZ
DA_VVBBD_TABIX
0.
This Was the Error some how 0 was there we are removed the 0 now it is working fine
Rgds
Thomson -
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. -
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 -
While doing SO, im getting run time error - reg;
Hi,
While doing sales order and whenever im doing save its getting runtime error.
Runtime Errors MESSAGE_TYPE_X
Date and Time 14.12.2011 10:55:26
Short dump has not been completely stored (too big)
Short text
The current application triggered a termination with a short dump.
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).
What can you do?
Note down which actions and inputs caused the error.
To process the problem further, contact you SAP system
administrator.
Using Transaction ST22 for ABAP Dump Analysis, you can look
at and manage termination messages, and you can also
keep them for a long time.
Error analysis
Short text of error message:
Maintain the current CRM release (table CRMPAROLTP)
Long text of error message:
Diagnosis
Various transfer errors occur when transferring SAP sales orders to
CRM or there is no status update or the status update has errors
when transferring from CRM to the SAP system. This is caused by an
incorrect entry for the CRM release in the SAP table CRMPAROLTP, or
no entry is maintained at all.
System Response
To avoid data inconsistencies, this message causes a short dump.
Procedure
Maintain table CRMPAROLTP in your SAP system as is described in SAP
Note 691710 and then repeat the process again.
Procedure for System Administration
Technical information about the message:
Message class....... "V3"
Number.............. 302
Variable 1.......... " "
Variable 2.......... " "
Variable 3.......... " "
Variable 4.......... " "
How to correct the error
Probably the only way to eliminate the error is to correct the program.
If the error occures in a non-modified SAP program, you may be able to
find an interim solution in an SAP Note.
Runtime Errors MESSAGE_TYPE_X
Date and Time 14.12.2011 10:55:26
hort dump has not been completely stored (too big)
If you have access to SAP Notes, carry out a search with the following
keywords:
"MESSAGE_TYPE_X" " "
"SAPMV45A" or "MV45AF0B_BAPIDATEN_ERMITTELN"
"BAPIDATEN_ERMITTELN"
If you cannot solve the problem yourself and want to send an error
notification to SAP, include the following information:
1. The description of the current problem (short dump)
To save the description, choose "System->List->Save->Local File
(Unconverted)".
2. Corresponding system log
Display the system log by calling transaction SM21.
Restrict the time interval to 10 minutes before and five minutes
after the short dump. Then choose "System->List->Save->Local File
(Unconverted)".
3. If the problem occurs in a problem of your own or a modified SAP
program: The source code of the program
In the editor, choose "Utilities->More
Utilities->Upload/Download->Download".
4. Details about the conditions under which the error occurred or which
actions and input led to the error.
System environment
SAP-Release 700
Application server... "personal"
Network address...... "192.168.2.11"
Operating system..... "Windows NT"
Release.............. "5.2"
Hardware type........ "4x Intel 80686"
Character length.... 16 Bits
Pointer length....... 32 Bits
Work process number.. 1
Shortdump setting.... "full"
Database server... "PERSONAL"
Database type..... "ORACLE"
Database name..... "GCU"
Database user ID.. "SAPSR3"
Char.set.... "C"
SAP kernel....... 700
created (date)... "Aug 29 2006 00:18:21"
create on........ "NT 5.0 2195 Service Pack 4 x86 MS VC++ 13.10"
Database version. "OCI_10201_SHARE (10.2.0.1.0) "
Patch level. 75
Patch text.. " "
Runtime Errors MESSAGE_TYPE_X
Date and Time 14.12.2011 10:55:26
hort dump has not been completely stored (too big)
Database............. "ORACLE 9.2.0.., ORACLE 10.1.0.., ORACLE 10.2.0.."
SAP database version. 700
Operating system..... "Windows NT 5.0, Windows NT 5.1, Windows NT 5.2"
Memory consumption
Roll.... 8176
EM...... 30311496
Heap.... 0
Page.... 139264
MM Used. 14538320
MM Free. 91952
User and Transaction
Client.............. 100
User................ "INFO_SD"
Language key........ "E"
Transaction......... "VA01 "
Program............. "SAPMV45A"
Screen.............. "SAPMV45A 4001"
Screen line......... 65
Information on where terminated
Termination occurred in the ABAP program "SAPMV45A" - in "BAPIDATEN_ERMITTELN".
The main program was "SAPMV45A ".
In the source code you have the termination point in line 338
of the (Include) program "MV45AF0B_BAPIDATEN_ERMITTELN".
Edited by: kiran35086 on Dec 14, 2011 6:30 AMDear kiran,
This might be many reasons.If you have not done configuration properly system will take you to dump(Run time error).
Try read the diagnosis possibly you may understand the problem.
If not You coordinate with your technical team.
Thanks&Regards
Raghu.k -
I am using FM - F4IF_INT_TABLE_VALUE_REQUEST on a selection screenf field. After that I do some validation and throw an error message in the at selection screen event.
But this results in DYNPRO_MSG_IN_HELP error.
I need to have the error message. I cannot change it to Info or Success message. (Program doesn't give run time error if i change the message to S or I or W ). How do I get around this ? What is wrong with F4IF_INT_TABLE_VALUE_REQUEST .
Am I not calling it correctly ?
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'CLASS' "Field from it_class
dynpprog = sy-cprog "Program
dynpnr = sy-dynnr "Dynpro number
dynprofield = 'P_FOLD' "Select-options field
value_org = 'S' "Value return: C: cell by cell, "S: structured
display = 'F' "Override readiness for input
TABLES
value_tab = it_class "table with selection values
return_tab = t_return "Return value
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
Error Message: The program attempted to issue a " " message during "F4" processing.
This is an illegal operation.
The program was terminated.
Screen name.............. "ZMMR0010_INFORECORD_UPDT"
Screen number............ 0200
Edited by: Shareen Hegde on Mar 29, 2011 1:47 AMHi,
ther are 3 things you can change.
Parameter dynpprog shouldn't be sy-cprog or sy-repid. Please decalre a variable where you can pass the value of sy-cprog to and give it to that parameter.
Parameter dynpnr shouldn't be sy-dynnr. Please decalre a variable where you can pass the value of sy-dynnr to and give it to that parameter.
Parameter display is of type DDBOOL_D and can have value 'X' or SPACE (see fix values of domain DDBOOL!).
Regards,
Klaus
Maybe you are looking for
-
My HP-Pavilion dv6 web cam is not working properly, fluctuating always
My HP-Pavilion dv6 web cam is not working properly, it is fluctuating always
-
How do I share Itunes between two ipods useing same account?
My mom and I want to share my itunes. I have an Ipod shuffle and she have an Ipod nano. My mom just got her first Ipod. I'v had mine years before her. So I already have my itunes account and everything. I know how to share the music and create playli
-
Which Results Analysis Method is good for LOSS Projects?
Dear Experts, Our client have Loss projects scenario. for Eg. Plan Revenue_: 100, Plan Cost__________: 120 Loss______________: = -20 Loss 20 should post in accounts at first period end closing time itself for that which Results Analysis Method can he
-
Getting roles in encrypted format
Hi, I am trying to read all the roles present in WAS through a EJB. Somehow the return values for roles (the ones created by a user) I am fetching are in encrypted format (here the roles which were created at the time of installation can be seen prop
-
Process Orders and Planned Orders data
Hi, I am working on extracting process order and Planned Orders data into BW. I could not find any standard DataSources available for my req, so I want to develop generic extractor. the main key figures are Actual Labor and Machine Hours, Target Labo