Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Run time error in ALV editable

Former Member
0 Kudos

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

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Do you have any custom tables ? if not then paste your code

Thanks

Seshu

9 REPLIES 9

Former Member
0 Kudos

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.

Former Member
0 Kudos

Do you have any custom tables ? if not then paste your code

Thanks

Seshu

0 Kudos

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.

**--


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.

0 Kudos

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

0 Kudos

I tried it with 'ITAB' and the error continues to show.

0 Kudos

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

former_member583013
Active Contributor
0 Kudos

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.

Former Member
0 Kudos

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.

0 Kudos

Thank you Seshu , it is working fine now..

thanks a lot. I appreciate ur help .