09-10-2007 5:37 PM
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 useful
09-10-2007 5:54 PM
Do you have any custom tables ? if not then paste your code
Thanks
Seshu
09-10-2007 5:52 PM
Check the following example they may help u
BCALV_EDIT_01 This report illustrates the simplest case of using an editable/noneditable ALV Grid Control.
BCALV_EDIT_02 This report illustrates how to set chosen cells of an ALV Grid Control editable.
09-10-2007 5:54 PM
Do you have any custom tables ? if not then paste your code
Thanks
Seshu
09-10-2007 5:56 PM
Yes , 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.
**--
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 .
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.
*--
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.
09-10-2007 6:20 PM
Hello Krish,
Issue would be at Structure
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
IS_LAYOUT = t_layout
<b> i_structure_name = 'ITABT' -> use ITAB Here</b> IT_TOOLBAR_EXCLUDING = t_toolbar[]
CHANGING
it_outtab = ITAB[]
IT_FIELDCATALOG = fcat[]
Modified :
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
IS_LAYOUT = t_layout
<b> i_structure_name = 'ITAB' </b>
IT_TOOLBAR_EXCLUDING = t_toolbar[]
CHANGING
it_outtab = ITAB[]
IT_FIELDCATALOG = fcat[]
Thanks
Seshu
09-10-2007 6:25 PM
09-10-2007 7:17 PM
Hello Krish,
See the below code ,now you will not get any dump ( Modified fieldcatlog)
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
IS_LAYOUT = t_layout
i_structure_name = 'ITABT' -> commented
IT_TOOLBAR_EXCLUDING = t_toolbar[]
CHANGING
it_outtab = ITAB[]
IT_FIELDCATALOG = fcat[]
.
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-tabname = '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-tabname = '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-tabname = '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-tabname = '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-tabname = '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-tabname = 'ITAB'.
wa_fieldcat-ref_table = 'VBAP'.
wa_fieldcat-ref_field = 'VRKME'.
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-tabname = '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-tabname = 'ITAB'.
wa_fieldcat-ref_table = 'VBAP'.
wa_fieldcat-ref_field = 'VRKME'.
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-tabname = '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-tabname = '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-tabname = '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-tabname = '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-tabname = 'ITAB'.
wa_fieldcat-ref_table = 'VBAP'.
wa_fieldcat-ref_field = 'VRKME'.
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.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'SEL_QUANT'.
wa_fieldcat-col_pos = 13.
wa_FIELDCAT-tabname = 'ITAB'.
wa_fieldcat-ref_table = 'VBAP'.
wa_fieldcat-ref_field = 'VRKME'.
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.
Commented :
WA_FIELDCAT-QUANTITY = 'VRKME'.
WA_FIELDCAT-QFIELDNAME = 'VRKME'.
Thanks
Seshu
09-10-2007 5:56 PM
That of errors arise when for example you got this on your Internal Table...
FIELD1 TYPE STRING.
But you also have this on you field catalog...
LS_FIELDCATALOG-FIELDNAME = "FIELD".
The editor doesn't check for that...So you better check you catalog -;)
Greetings,
Blag.
09-10-2007 8:28 PM
Thank you seshu, You are a genius , the run time error is gone now. However , all quantity fields are not displaying. and when I enter a numeric value inthe sel_quant field , I get three error messages
1) selected qty : Description does not match target field.
2)selected qty : Entry *00 does not exist - check your entry
3)selected qty : Entry *00 does not exist - check your entry.
My task is simple , What ever "numeric" value the user enters in the Sel_Quant field , it needs to be subtracted from the Bal_Quant field and the Remaining Bal quant needs to be displayed.
09-10-2007 8:59 PM
Thank you Seshu , it is working fine now..
thanks a lot. I appreciate ur help .