‎2009 Jan 13 7:38 AM
hi,
i am developing a reort for GR Equipment Creation and using an ALV which has some editable fields.
In that ALV for example i have 5 rows but when i copy data from EXCEL having more than 5 rows and paste those in those editable fields, the number of rows in the ALV is increased.
Is there any process or method by which i can restrict the number of rows in ALV?
Thanx in Advance
Sunil Sharma
‎2009 Jan 19 12:35 PM
Hi sunil,
I think what you are trying to convey is that when u copy paste more than 5 entries in the editable ALV it accomodates more than 5 entries.
Actually when u insert more than 5 entries the alv becomes scrollable hence allows more than 5 entries.
If you want to accomodate only then may be you can delete the entries exceeding 5, But having alv static ( Only 5 )is not possible i guess..
Regards,
Navin.
‎2009 Jan 13 7:47 AM
the better way is to pass only the needed 5 rows from excel to alv , rather than restricting the rows..
‎2009 Jan 13 8:15 AM
Hi, Sunil
Following Code will help you to create editable field in ALV,
tables:makt, mara,mbew.
data: begin of itab_alv1 occurs 10,
maktx like makt-maktx ,
matfi like mara-matfi ,
matnr like mara-matnr ,
mfrpn like mara-mfrpn ,
verpr like mbew-verpr,
end of itab_alv1.
type-pools: slis.
data: afield type slis_fieldcat_alv.
data:fieldcat type slis_t_fieldcat_alv.
clear afield.
afield-col_pos = 1 .
afield-fieldname = 'MATNR'.
afield-seltext_m = 'Matnr'.
append afield to fieldcat.
afield-col_pos = 2 .
afield-fieldname = 'MAKTX'.
afield-seltext_m = 'Desc'.
append afield to fieldcat.
afield-col_pos = 3 .
afield-fieldname = 'VERPR'.
afield-seltext_m = 'Price'.
afield-edit = 'X'. " here is the soloution of the problem i think
afield-do_sum = 'X'.
append afield to fieldcat.
select * from mara.
select single * from makt where
matnr = mara-matnr.
itab_alv1-matnr = mara-matnr.
itab_alv1-maktx = makt-maktx.
select single * from mbew client specified
where mandt = sy-mandt
and matnr = makt-matnr.
itab_alv1-verpr = mbew-verpr.
append itab_alv1.
endselect.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_grid_title = 'hello'
it_fieldcat = fieldcat
tables
t_outtab = itab_alv1
.Kind Regards,
Faisal
‎2009 Jan 16 5:17 AM
hi Faisal,
You havnt read my question properly
i am already using editable fields in ALV
plz go thru my ques once again if possible
thanx again
sunil
‎2009 Jan 16 5:24 AM
hi,
yes, this can be full filled by dynamic internal tables, follwoing is the code. for your requirement you have to read the excel sheet first into an internal table and based on that you can create dynamic internal tables.
REPORT ZREPORT.
************************************************************************
* CONSTANTS *
************************************************************************
CONSTANTS : c_werkz(4) TYPE c VALUE '12345'.
************************************************************************
* Tables Workarea *
************************************************************************
TABLES: marc,
ekpo,
eket,
t001w,
mara.
************************************************************************
* Field Strings *
************************************************************************
TYPES : BEGIN OF marc_tab,
werks TYPE marc-werks,
matnr TYPE marc-matnr,
disgr TYPE marc-disgr,
dispo TYPE marc-dispo,
sobsl TYPE marc-sobsl,
miskz TYPE marc-miskz,
strgr TYPE marc-strgr,
END OF marc_tab.
TYPES : BEGIN OF ekpo_tab,
matnr TYPE ekpo-matnr,
werks TYPE ekpo-werks,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
loekz TYPE ekpo-loekz,
elikz TYPE ekpo-elikz,
END OF ekpo_tab.
TYPES : BEGIN OF eket_tab,
ebeln TYPE eket-ebeln,
ebelp TYPE eket-ebelp,
dat01 TYPE eket-dat01,
menge TYPE eket-menge,
glmng TYPE eket-glmng,
END OF eket_tab.
TYPES : BEGIN OF sort_tab,
matnr TYPE marc-matnr,
ebeln TYPE eket-ebeln,
ebelp TYPE eket-ebelp,
dat01 TYPE eket-dat01,
menge TYPE eket-menge,
glmng TYPE eket-glmng,
END OF sort_tab.
TYPES : BEGIN OF final_tab,
werks TYPE marc-werks,
matnr TYPE marc-matnr,
disgr TYPE marc-disgr,
dispo TYPE marc-dispo,
sobsl TYPE marc-sobsl,
miskz TYPE marc-miskz,
strgr TYPE marc-strgr,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
dat01 TYPE eket-dat01,
rest(13) TYPE p DECIMALS 3,
datez(6) TYPE c,
END OF final_tab.
TYPES : BEGIN OF date_tab,
werks TYPE marc-werks,
matnr TYPE marc-matnr,
dat01 TYPE eket-dat01,
END OF date_tab.
************************************************************************
* Internal Table Work Area *
************************************************************************
DATA wa_marc_tab TYPE marc_tab.
DATA wa_ekpo_tab TYPE ekpo_tab.
DATA wa_eket_tab TYPE eket_tab.
DATA wa_sort_tab TYPE sort_tab.
DATA wa_final_tab TYPE final_tab.
DATA wa_date_tab TYPE date_tab.
************************************************************************
* Internal Table Body *
************************************************************************
DATA it_marc_tab TYPE STANDARD TABLE OF marc_tab WITH HEADER LINE.
DATA it_ekpo_tab TYPE STANDARD TABLE OF ekpo_tab WITH HEADER LINE.
DATA it_eket_tab TYPE STANDARD TABLE OF eket_tab WITH HEADER LINE.
DATA it_sort_tab TYPE STANDARD TABLE OF sort_tab WITH HEADER LINE.
DATA it_final_tab TYPE STANDARD TABLE OF final_tab WITH HEADER LINE.
DATA it_date_tab TYPE STANDARD TABLE OF date_tab WITH HEADER LINE.
type-pools slis.
DATA : ws_alvfield TYPE slis_fieldcat_alv ,
wt_fieldcat TYPE slis_t_fieldcat_alv ,
ws_layout TYPE slis_layout_alv.
FIELD-SYMBOLS: <F> type any,
<TAB> TYPE STANDARD TABLE,
<WA> type any.
DATA: INTERN TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE,
FCAT TYPE SLIS_T_FIELDCAT_ALV,
IT_FIELDCAT TYPE LVC_T_FCAT.
data wt_test like it_final_tab occurs 0 with header line.
data wlv_index1 like sy-tabix.
data wlv_index like sy-tabix.
DATA: IS_FIELDCAT LIKE LINE OF IT_FIELDCAT,
WCAT LIKE LINE OF FCAT,
INDEX(3) TYPE N,
MAXCOL LIKE konv-kschl.
DATA: IST LIKE LINE OF IT_FIELDCAT.
data POS TYPE I.
************************************************************************
* Selection Screen *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK abc WITH FRAME TITLE text-T01.
SELECT-OPTIONS :
s_werks FOR marc-werks
NO INTERVALS
OBLIGATORY, "Plant
s_dat01 FOR eket-dat01 "Committed date
OBLIGATORY,
s_matnr FOR marc-matnr, "Material Number
s_werkz FOR ekpo-werks "Order plant
OBLIGATORY
no intervals
DEFAULT c_werkz,
s_disgr FOR marc-disgr, "MRP group
s_dispo FOR marc-dispo, "MRP controller
s_sobsl FOR marc-sobsl "Special procurement type
no intervals,
s_miskz FOR marc-miskz "Mixed MRP
no intervals,
s_strgr FOR marc-strgr, "Strategy group
s_loekz FOR ekpo-loekz "Deletion indicator
no intervals,
s_elikz FOR ekpo-elikz "Delivery completed ind
no intervals.
parameters : p_chk as checkbox.
SELECTION-SCREEN END OF BLOCK abc.
RANGES : r_date FOR eket-dat01.
************************************************************************
* INITIALIZATION. *
************************************************************************
INITIALIZATION.
PERFORM init_ranges.
************************************************************************
* AT SELECTION-SCREEN. *
************************************************************************
AT SELECTION-SCREEN.
PERFORM validate_input.
************************************************************************
* TOP-OF-PAGE *
************************************************************************
TOP-OF-PAGE.
************************************************************************
* START-OF-SELECTION. *
************************************************************************
START-OF-SELECTION.
perform get_marc_data.
perform get_ekpo_data.
perform get_eket_data.
perform sort_data.
perform create_table.
END-OF-SELECTION.
PERFORM grid_disply.
*&---------------------------------------------------------------------*
*& Form get_marc_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_marc_data .
IF it_marc_tab[] IS INITIAL.
select werks
matnr
disgr
dispo
sobsl
miskz
strgr
INTO TABLE it_marc_tab
FROM marc
WHERE werks IN s_werks
AND matnr IN s_matnr
AND disgr IN s_disgr
AND dispo IN s_dispo
AND sobsl IN s_sobsl
AND miskz IN s_miskz
AND strgr IN s_strgr.
ENDIF.
IF sy-subrc EQ 0.
sort it_marc_tab by werks matnr.
ENDIF.
ENDFORM. " get_marc_data
*&---------------------------------------------------------------------*
*& Form get_ekpo_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_ekpo_data .
IF NOT it_marc_tab[] IS INITIAL.
select matnr
werks
ebeln
ebelp
loekz
elikz
INTO TABLE it_ekpo_tab
FROM ekpo
FOR ALL ENTRIES IN it_marc_tab
WHERE matnr = it_marc_tab-matnr
AND werks IN s_werkz
AND loekz IN s_loekz
AND elikz IN s_elikz.
ELSE.
MESSAGE I000(0) WITH text-er1.
EXIT.
ENDIF.
IF sy-subrc EQ 0.
sort it_ekpo_tab by matnr ebeln ebelp.
ENDIF.
ENDFORM. " get_ekpo_data
*&---------------------------------------------------------------------*
*& Form get_eket_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_eket_data .
IF NOT it_ekpo_tab[] IS INITIAL.
select ebeln
ebelp
dat01
menge
glmng
INTO TABLE it_eket_tab
FROM eket
FOR ALL ENTRIES IN it_ekpo_tab
WHERE ebeln = it_ekpo_tab-ebeln
AND ebelp = it_ekpo_tab-ebelp
AND dat01 IN s_dat01.
ELSE.
MESSAGE I000(0) WITH text-er1.
EXIT.
ENDIF.
IF sy-subrc EQ 0.
sort it_eket_tab by ebeln ebelp dat01.
ENDIF.
ENDFORM. " get_eket_data
*&---------------------------------------------------------------------*
*& Form sort_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM sort_data .
DATA : sum(13) TYPE p decimals 3.
LOOP AT it_ekpo_tab INTO wa_ekpo_tab.
READ TABLE it_eket_tab INTO wa_eket_tab WITH KEY ebeln = wa_ekpo_tab-ebeln
ebelp = wa_ekpo_tab-ebelp
BINARY SEARCH.
IF sy-subrc EQ 0.
wa_sort_tab-matnr = wa_ekpo_tab-matnr.
wa_sort_tab-ebeln = wa_ekpo_tab-ebeln.
wa_sort_tab-ebelp = wa_ekpo_tab-ebelp.
wa_sort_tab-dat01 = wa_eket_tab-dat01.
wa_sort_tab-menge = wa_eket_tab-menge.
wa_sort_tab-glmng = wa_eket_tab-glmng.
append wa_sort_tab to it_sort_tab.
ENDIF.
ENDLOOP.
if sy-subrc eq 0.
sort it_sort_tab by matnr ebeln ebelp dat01.
endif.
LOOP AT it_sort_tab INTO wa_sort_tab.
READ TABLE it_marc_tab INTO wa_marc_tab WITH KEY matnr = wa_sort_tab-matnr
BINARY SEARCH.
IF sy-subrc eq 0.
wa_final_tab-werks = wa_marc_tab-werks.
wa_final_tab-matnr = wa_marc_tab-matnr.
wa_final_tab-disgr = wa_marc_tab-disgr.
wa_final_tab-dispo = wa_marc_tab-dispo.
wa_final_tab-sobsl = wa_marc_tab-sobsl.
wa_final_tab-miskz = wa_marc_tab-miskz.
wa_final_tab-strgr = wa_marc_tab-strgr.
wa_final_tab-ebeln = wa_sort_tab-ebeln.
wa_final_tab-ebelp = wa_sort_tab-ebelp.
wa_final_tab-dat01 = wa_sort_tab-dat01.
sum = wa_sort_tab-menge - wa_sort_tab-glmng.
wa_final_tab-rest = sum.
wa_final_tab-datez = wa_sort_tab-dat01+0(6).
append wa_final_tab to it_final_tab.
clear : it_sort_tab, it_marc_tab , sum ,it_final_tab.
ENDIF.
ENDLOOP.
IF sy-subrc eq 0.
sort it_final_tab by matnr dat01.
delete adjacent duplicates from it_final_tab comparing matnr datez.
perform delete_from_final_tab.
ENDIF.
IF sy-subrc eq 0.
sort it_final_tab by matnr.
ENDIF.
ENDFORM. " sort_data
*&---------------------------------------------------------------------*
*& Form delete_from_final_tab
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM delete_from_final_tab .
LOOP At it_final_tab INTO wa_final_tab.
if wa_final_tab-rest LE 0.
delete it_final_tab.
endif.
endloop.
ENDFORM. " delete_from_final_tab
*&---------------------------------------------------------------------*
*& Form validate_input
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM validate_input .
*Check for the Plant
IF NOT s_werks[] IS INITIAL.
SELECT SINGLE werks
INTO t001w-werks FROM t001w
WHERE werks IN s_werks.
IF sy-subrc NE 0.
MESSAGE e000(0k) WITH text-pl1.
ENDIF.
ENDIF.
*Check for the Plant
IF NOT s_werkz[] IS INITIAL.
SELECT SINGLE werks
INTO t001w-werks FROM t001w
WHERE werks IN s_werkz.
IF sy-subrc NE 0.
MESSAGE e000(0k) WITH text-pl1.
ENDIF.
ENDIF.
ENDFORM. " validate_input
*&---------------------------------------------------------------------*
*& Form grid_disply
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM grid_disply .
DATA wls_layout TYPE slis_layout_alv.
DATA wlv_repid LIKE sy-repid.
DATA wlt_events TYPE slis_t_event .
DATA wls_events TYPE slis_alv_event.
CLEAR wlt_events.
wls_events-name = 'TOP_OF_PAGE' . "name.
wls_events-form = 'TOP-OF-PAGE' . "form.
APPEND wls_events TO wlt_events.
**************** FILL THE LAYOUT***************************************
wlv_repid = sy-repid.
wls_layout-colwidth_optimize = 'X'.
wls_layout-zebra = 'X'.
wls_layout-detail_initial_lines = 'X'.
wls_layout-detail_popup = 'X'.
wls_layout-get_selinfos = 'X'.
wls_layout-group_change_edit = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = wlv_repid
is_layout = wls_layout
it_fieldcat = FCAT[]
i_default = 'X'
i_save = 'X'
* it_events = wlt_events
TABLES
t_outtab = <TAB>
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE e003(zm).
ENDIF.
ENDFORM. " grid_disply
*&---------------------------------------------------------------------*
*& Form TOP-OF-PAGE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM TOP-OF-PAGE . "#EC CALLED
* DATA : li_header TYPE slis_t_listheader,
* w_header LIKE LINE OF li_header.
*
* DATA: l_date TYPE char10.
*
*
* w_header-typ = 'H'.
* w_header-info = sy-title.
* APPEND w_header TO li_header.
* CLEAR w_header.
*
* WRITE sy-datum TO l_date.
* w_header-typ = 'S'.
*
* CONCATENATE sy-repid ':' 'From Date' l_date INTO w_header-info SEPARATED BY space.
* APPEND w_header TO li_header.
* CLEAR w_header.
*
* w_header-typ = 'A'.
* w_header-info = sy-uname.
* APPEND w_header TO li_header.
* CLEAR w_header.
*
* CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
* EXPORTING
* it_list_commentary = li_header.
ENDFORM. " TOP_OF_PAGE
*&---------------------------------------------------------------------*
*& Form init_ranges
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM init_ranges .
MOVE : 'L' TO s_loekz-low,
'NE' TO s_loekz-option.
append s_loekz.
MOVE : 'X' TO s_elikz-low,
'NE' TO s_elikz-option.
append s_elikz.
ENDFORM. " init_ranges
*&---------------------------------------------------------------------*
*& Form create_table
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_table .
sort it_final_tab by dat01.
clear ist.
IST-INTTYPE = 'C'.
IST-INTLEN = '50'.
IST-FIELDNAME = 'WERKS'.
APPEND IST TO IT_FIELDCAT.
clear ist.
IST-INTTYPE = 'C'.
IST-INTLEN = '50'.
IST-FIELDNAME = 'MATNR'.
APPEND IST TO IT_FIELDCAT.
clear ist.
IST-INTTYPE = 'C'.
IST-INTLEN = '50'.
IST-FIELDNAME = 'DISGR'.
if p_chk = 'X'.
IST-no_out = 'X'.
endif.
APPEND IST TO IT_FIELDCAT.
clear ist.
IST-INTTYPE = 'C'.
IST-INTLEN = '50'.
IST-FIELDNAME = 'DISPO'.
if p_chk = 'X'.
IST-no_out = 'X'.
endif.
APPEND IST TO IT_FIELDCAT.
clear ist.
IST-INTTYPE = 'C'.
IST-INTLEN = '50'.
IST-FIELDNAME = 'SOBSL'.
if p_chk = 'X'.
IST-no_out = 'X'.
endif.
APPEND IST TO IT_FIELDCAT.
clear ist.
IST-INTTYPE = 'C'.
IST-INTLEN = '50'.
IST-FIELDNAME = 'MISKZ'.
if p_chk = 'X'.
IST-no_out = 'X'.
endif.
APPEND IST TO IT_FIELDCAT.
clear ist.
IST-INTTYPE = 'C'.
IST-INTLEN = '50'.
IST-FIELDNAME = 'STRGR'.
if p_chk = 'X'.
IST-no_out = 'X'.
endif.
APPEND IST TO IT_FIELDCAT.
clear ist.
IST-INTTYPE = 'C'.
IST-INTLEN = '50'.
IST-FIELDNAME = 'EBELN'.
if p_chk = 'X'.
IST-no_out = 'X'.
endif.
APPEND IST TO IT_FIELDCAT.
clear ist.
IST-INTTYPE = 'C'.
IST-INTLEN = '50'.
IST-FIELDNAME = 'EBELP'.
if p_chk = 'X'.
IST-no_out = 'X'.
endif.
APPEND IST TO IT_FIELDCAT.
*--- FIELD CATALOG FOR ALV GRID
clear wcat.
WCAT-COL_POS = 1.
WCAT-FIELDNAME = 'WERKS'.
WCAT-SELTEXT_l = 'Plant'.
APPEND WCAT TO FCAT.
clear wcat.
WCAT-COL_POS = 2.
WCAT-FIELDNAME = 'MATNR'.
WCAT-SELTEXT_l = 'Material Number'.
WCAT-outputlen = 20.
* WCAT-no_zero = 'X'.
APPEND WCAT TO FCAT.
clear wcat.
WCAT-COL_POS = 3.
WCAT-FIELDNAME = 'DISGR'.
WCAT-SELTEXT_l = 'MRP Group'.
WCAT-outputlen = 4.
if p_chk = 'X'.
wcat-no_out = 'X'.
endif.
APPEND WCAT TO FCAT.
clear wcat.
WCAT-COL_POS = 4.
WCAT-FIELDNAME = 'DISPO'.
WCAT-SELTEXT_l = 'MRP Controller'.
if p_chk = 'X'.
wcat-no_out = 'X'.
endif.
APPEND WCAT TO FCAT.
clear wcat.
WCAT-COL_POS = 5.
WCAT-FIELDNAME = 'SOBSL'.
if p_chk = 'X'.
wcat-no_out = 'X'.
endif.
WCAT-SELTEXT_l = 'Special procurement type'.
APPEND WCAT TO FCAT.
clear wcat.
WCAT-COL_POS = 6.
WCAT-FIELDNAME = 'MISKZ'.
if p_chk = 'X'.
wcat-no_out = 'X'.
endif.
WCAT-SELTEXT_l = 'Mixed MRP'.
APPEND WCAT TO FCAT.
clear wcat.
WCAT-COL_POS = 7.
WCAT-FIELDNAME = 'STRGR'.
if p_chk = 'X'.
wcat-no_out = 'X'.
endif.
WCAT-SELTEXT_l = 'Strategy group'.
APPEND WCAT TO FCAT.
clear wcat.
WCAT-COL_POS = 8.
WCAT-FIELDNAME = 'EBELN'.
if p_chk = 'X'.
wcat-no_out = 'X'.
endif.
WCAT-SELTEXT_l = 'Purchasing document'.
APPEND WCAT TO FCAT.
clear wcat.
WCAT-COL_POS = 9.
WCAT-FIELDNAME = 'EBELP'.
if p_chk = 'X'.
wcat-no_out = 'X'.
endif.
WCAT-SELTEXT_l = 'Purchasing item'.
APPEND WCAT TO FCAT.
clear wcat.
* WCAT-COL_POS = 10.
* WCAT-FIELDNAME = 'ENTLI'.
* WCAT-SELTEXT_l = 'Date type'.
* wcat-no_out = 'X'.
* APPEND WCAT TO FCAT.
* clear wcat.
POS = 10.
LOOP AT it_final_tab.
IST-INTTYPE = 'C'.
IST-INTLEN = '50'.
ON CHANGE OF it_final_tab-datez.
MOVE it_final_tab-datez TO IST-FIELDNAME.
APPEND IST TO IT_FIELDCAT.
*--- field catalog for alv grid
WCAT-COL_POS = POS.
WCAT-FIELDNAME = IST-FIELDNAME.
WCAT-SELTEXT_l = IST-FIELDNAME.
APPEND WCAT TO FCAT.
POS = POS + 1.
ENDON.
ENDLOOP.
*********************************************************************
* CREATE DYNAMIC TABLE
*********************************************************************
DATA: NEW_TABLE TYPE REF TO DATA,
NEW_LINE TYPE REF TO DATA.
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = IT_FIELDCAT
IMPORTING
EP_TABLE = NEW_TABLE.
ASSIGN NEW_TABLE->* TO <TAB>.
CREATE DATA NEW_LINE LIKE LINE OF <TAB>.
ASSIGN NEW_LINE->* TO <WA>.
DATA: text1 TYPE string,
off TYPE i,
len TYPE i.
sort it_final_tab by matnr.
wt_test[] = it_final_tab[].
delete adjacent duplicates from it_final_tab comparing matnr.
CLEAR <WA>.
loop at it_final_tab.
ASSIGN COMPONENT 1 OF STRUCTURE <WA> TO <F>.
<F> = it_final_tab-werks.
ASSIGN COMPONENT 2 OF STRUCTURE <WA> TO <F>.
<F> = it_final_tab-matnr.
ASSIGN COMPONENT 3 OF STRUCTURE <WA> TO <F>.
<F> = it_final_tab-disgr.
ASSIGN COMPONENT 4 OF STRUCTURE <WA> TO <F>.
<F> = it_final_tab-dispo.
ASSIGN COMPONENT 5 OF STRUCTURE <WA> TO <F>.
<F> = it_final_tab-SOBSL.
ASSIGN COMPONENT 6 OF STRUCTURE <WA> TO <F>.
<F> = it_final_tab-MISKZ.
ASSIGN COMPONENT 7 OF STRUCTURE <WA> TO <F>.
<F> = it_final_tab-STRGR.
ASSIGN COMPONENT 8 OF STRUCTURE <WA> TO <F>.
<F> = it_final_tab-EBELN.
ASSIGN COMPONENT 9 OF STRUCTURE <WA> TO <F>.
<F> = it_final_tab-EBELP.
loop at wt_test where matnr = it_final_tab-matnr.
ASSIGN COMPONENT wt_test-DAtez OF STRUCTURE <WA> TO <F>.
if not wt_test-REST is initial.
text1 = wt_test-REST.
FIND '.' IN text1 MATCH OFFSET off
MATCH LENGTH len.
IF SY-SUBRC = 0.
REPLACE SECTION OFFSET off LENGTH len OF:
text1 WITH ','.
IF SY-SUBRC = 0.
<F> = text1.
endif.
endif.
endif.
endloop.
APPEND <WA> TO <TAB>.
CLEAR <WA>.
clear wa_final_tab.
endloop.
ENDFORM. " create_tablethanks,
anupama.
‎2009 Jan 19 12:16 PM
hi,
i am not able to clarify my question clearly i guess.
can u send me ur mail id so that i can send u some screenshots so that u can understand my query better.
thanx
sunil
‎2009 Jan 19 12:35 PM
Hi sunil,
I think what you are trying to convey is that when u copy paste more than 5 entries in the editable ALV it accomodates more than 5 entries.
Actually when u insert more than 5 entries the alv becomes scrollable hence allows more than 5 entries.
If you want to accomodate only then may be you can delete the entries exceeding 5, But having alv static ( Only 5 )is not possible i guess..
Regards,
Navin.
‎2009 Jan 20 4:39 AM
Hi Naveen,
U understood me correctly.
thanx for helping me.
If anytime u get any solution plz let me know also.
Regards,
Sunil