In REUSE_ALV_GRID_DISPLAY, significance of I_BUFFER_ACTIVE !
Hi All,
We have a Report prog, which is shceduled as Batch Job.
Now what happens is this batch job gets cancelled due to lack of memory
Below is the FM used in the prog.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BUFFER_ACTIVE = 'X'
I_CALLBACK_PROGRAM = G_REPID
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
IT_EVENTS = GT_EVENTS[]
TABLES
T_OUTTAB = P_GT_OUTTAB
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.
Now what i noticed is I_BUFFER_ACTIVE is 'X' in the FM REUSE_ALV_GRID_DISPLAY
What is the significance of this parameter ?
Will my problem solve if i set I_BUFFER_ACTIVE to ''.
Any suggestions are invited.
Thanks!
Hi,
Essentially, the ALV uses a two-step buffer concept for performance reasons.
Buffer A:
Complete variants including field catalog, sorting, filter
static field catalog (shared buffer)
Buffer B:
DDIC information for each field of the field catalog (Shared Buffer + Memory)
Optimized access to field catalog (Shared Buffer + Memory)
With parameter I_BUFFER_ACTIVE = 'X', buffer A is activated.If I_BUFFER_ACTIVE remains initial, the contents are nevertheless buffered in buffer B. For dynamic reasons, you have to forgo buffering completely (for example, a constant dynamic creation of structures) so that you have the following options as a developer:
1. Set SET/GET parameters ALVBUFFER to the current date.All report, variant or field catalog buffers are reset until the current date exceeds the date of the SET/GET parameter.
2. Set I_BYPASSING_BUFFER = 'X' on the call interface for the function modules and class methods.
Which type of buffering can I use for which scenario? (=developer view)
1. Activate the statically constant field catalog of buffer A with I_BUFFER_ACTIVE = 'X'
2. Semi-statically constant field catalog, for example different columns are displayed and hidden for each call.Call ALV normally, optimization is carried out implicitly by using buffer B.
3. Dynamically generated structures with field enhancements or text element changes for data elements.
How can I influence or refresh the buffers?
1. Refresh once after the structure change in a system by, for example, importing the transport request:
Set the SET/GET parameter ALVBUFFER to the current date
Execute the affected transaction/report
Delete the SET/GET parameter ALVBUFFER
Restart in a new session ( !)
2. If refreshing over a longer time of development, static scenario should be implemented in production operation
Set the SET/GET parameter ALVBUFFER to a date in the future
3. If buffer A causes problems, it can be deactivated centrally by setting the static class attribute CL_GUI_ALV_GRID=>M_BUFFER_INACTIVE='X'.
4. If you want to reset all buffers (A and B) once and centrally for all ALV applications, then execute report BALVBUFDEL.With the option "Only delete EUINFO(%F)/LTDX", all ALV buffers are reset on the current application.Then execute your report/transaction in a new session.After you have imported note 378021 or the appropriate Support Package, the entries are deleted from the selection screen and the report automatically deletes the ALV area of all active application servers.
Hope, this helps....
Regards,
Vinod
Similar Messages
-
Problem in down loading to excel sheet from ALV report
Hi Experts,
I have used the funtion module REUSE_ALV_GRID_DISPLAY, and for field catalog I have individually written the field catalog as there are not many fields instead of using the funtion module REUSE_ALV_FIELDCATALOG_MERGE.
Report is getting displayed well but while getting down load to xls only numeric fields are appearing and character fields are not appearing.
Have I selected the function module formats correctly.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = 'ZHR_DETAILS'
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 = 'Active ETA Details'
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = RT_FCAT
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
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB
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.
Please advice me.
Thanks in advance.
Regards,
Irfan HussainHi Irfan,
This looks strange !!1
Try to use the layout option also and checkout if it works -
HI,
report zhr2.
tables:pernr.
type-POOLs:slis.
INFOTYPES:0001,0004,0041.
data: begin of itab,
pernr type pernr-pernr,
MASSN type p0000-MASSN,
STAT2 type p0000-STAT2,
STAT3 type p0000-STAT3,
PLANS type p0001-plans,
WERKS type p0001-werks,
PERSG type p0001-PERSG,
PERSK type p0001-PERSK,
end of itab.
data:it_itab type STANDARD TABLE OF itab,
wa_itab like itab.
DATA: alv_fieldcat TYPE slis_t_fieldcat_alv,
alv_layout TYPE slis_layout_alv.
DATA: filled_lines LIKE sy-index,
stru_disvar TYPE disvariant.
select-options:s_pernr for pernr-pernr.
start-of-SELECTION.
get pernr.
describe table p0001 lines filled_lines.
if filled_lines gt 0.
rp_provide_from_last p0001 space pn-begda pn-endda.
clear wa_itab.
move-CORRESPONDING p0001 to wa_itab.
append wa_itab to it_itab.
if pnp-sw-found eq 0.
reject.
endif.
endif.
end-of-SELECTION.
PERFORM fieldcat_init USING alv_fieldcat.
alv_layout-colwidth_optimize = 'X'.
alv_layout-zebra = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = 'ZHR2'
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 = 'ITAB'
I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'Date Specifications'
I_GRID_SETTINGS =
is_layout = alv_layout
it_fieldcat = alv_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT = stru_disvar
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 =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc = 1.
WRITE: 'Program error'(002).
ENDIF.
FORM fieldcat_init USING p_fieldcat
TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PERNR'.
ls_fieldcat-ref_tabname = 'PERNR'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MASSN'.
ls_fieldcat-ref_fieldname = 'MASSN'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'STAT2'.
ls_fieldcat-ref_fieldname = 'STAT2'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'STAT3'.
ls_fieldcat-ref_tabname = 'STAT3'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PLANS'.
ls_fieldcat-ref_fieldname = 'PLANS'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'WERKS'.
ls_fieldcat-ref_fieldname = 'WERKS'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PERSG'.
ls_fieldcat-ref_fieldname = 'PERSG'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PERSK'.
ls_fieldcat-ref_fieldname = 'PERSK'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
ENDFORM.
IT is going dump plz can any one help in this .
Thanks and regards,
VamshiHI,
report zhr2.
tables:pernr.
type-POOLs:slis.
INFOTYPES:0001,0004,0041.
data: begin of itab,
pernr type pernr-pernr,
MASSN type p0000-MASSN,
STAT2 type p0000-STAT2,
STAT3 type p0000-STAT3,
PLANS type p0001-plans,
WERKS type p0001-werks,
PERSG type p0001-PERSG,
PERSK type p0001-PERSK,
end of itab.
data:it_itab type STANDARD TABLE OF itab,
wa_itab like itab.
DATA: alv_fieldcat TYPE slis_t_fieldcat_alv,
alv_layout TYPE slis_layout_alv.
DATA: filled_lines LIKE sy-index,
stru_disvar TYPE disvariant.
select-options:s_pernr for pernr-pernr.
start-of-SELECTION.
get pernr.
describe table p0001 lines filled_lines.
if filled_lines gt 0.
rp_provide_from_last p0001 space pn-begda pn-endda.
clear wa_itab.
move-CORRESPONDING p0001 to wa_itab.
append wa_itab to it_itab.
if pnp-sw-found eq 0.
reject.
endif.
endif.
end-of-SELECTION.
PERFORM fieldcat_init USING alv_fieldcat.
alv_layout-colwidth_optimize = 'X'.
alv_layout-zebra = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = 'ZHR2'
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 = 'ITAB'
I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'Date Specifications'
I_GRID_SETTINGS =
is_layout = alv_layout
it_fieldcat = alv_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT = stru_disvar
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 =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc = 1.
WRITE: 'Program error'(002).
ENDIF.
FORM fieldcat_init USING p_fieldcat
TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PERNR'.
ls_fieldcat-ref_tabname = 'PERNR'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MASSN'.
ls_fieldcat-ref_fieldname = 'MASSN'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'STAT2'.
ls_fieldcat-ref_fieldname = 'STAT2'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'STAT3'.
ls_fieldcat-ref_tabname = 'STAT3'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PLANS'.
ls_fieldcat-ref_fieldname = 'PLANS'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'WERKS'.
ls_fieldcat-ref_fieldname = 'WERKS'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PERSG'.
ls_fieldcat-ref_fieldname = 'PERSG'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PERSK'.
ls_fieldcat-ref_fieldname = 'PERSK'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
ENDFORM.
IT is going dump plz can any one help in this .
Thanks and regards,
Vamshi -
Top-of-page event is not triggered
Hi,
I have a problem with top-of-page event. I have a report that shows the results in ALV grid display. But I use "REUSE_ALV_GRID_DISPLAY" not OO alv and there is only one screen with number 1000. On the menu toolbar there is a button that prints the data of ALV in a list using "write" statement. While writing , "top of page" event is not triggered. I expect that it is triggered at the first "write" statement but isn't. Is there anyone who knows the cause of this problem?
The code is below.
Thanks.
Tables ...
TABLES : mara , makt , ekko , ekpo , zzith_yukh , lfa1 , t001w , lips ,
eket .
global variables
DATA : BEGIN OF list OCCURS 1,
zztahsk LIKE ekko-zztahsk ,
zterm LIKE ekko-zterm ,
txz01 LIKE ekpo-txz01 ,
name1 LIKE lfa1-name1 ,
menge LIKE ekpo-menge ,
meins LIKE ekpo-meins ,
fyukl LIKE zzith_yukh-zzdel_flag ,
" Yüklenmiş miktar var göstergesi ...
inco1 LIKE ekko-inco1 ,
netwr LIKE ekpo-netwr ,
waers LIKE ekko-waers ,
bedat LIKE ekko-bedat ,
zzontar LIKE ekko-zzontar ,
slfdt LIKE eket-slfdt ,
tname1 LIKE t001w-name1 ,
banfn LIKE ekpo-banfn ,
ebeln LIKE ekko-ebeln ,
ebelp LIKE ekpo-ebelp ,
lifnr LIKE ekko-lifnr ,
mtart LIKE mara-mtart ,
matkl LIKE mara-matkl ,
ekgrp LIKE ekko-ekgrp ,
matnr LIKE mara-matnr ,
eknam LIKE t024-eknam,
bukrs LIKE ekko-bukrs,
zzbltur LIKE ekko-zzbltur,
END OF list .
DATA temp LIKE list OCCURS 1 WITH HEADER LINE .
DATA total LIKE list OCCURS 1 WITH HEADER LINE .
ALV fields
TYPE-POOLS : slis.
DATA : gt_fields TYPE slis_fieldcat_alv OCCURS 1 WITH HEADER LINE .
DATA : gt_events TYPE slis_t_event.
DATA : gs_layout TYPE slis_layout_alv.
DATA : gv_title TYPE lvc_title VALUE 'Günlük Depo Sayım Miktarları'.
DATA : gt_top_of_page TYPE slis_t_listheader.
selection screen
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-001 .
*Satınalma organizasyonu
*Satınalma grubu
*Satıcı
*Tarih
*SAS no
*Dosya no
SELECT-OPTIONS:
s_bukrs FOR ekko-bukrs .
SELECTION-SCREEN SKIP .
SELECT-OPTIONS:
s_ekorg FOR ekko-ekorg OBLIGATORY MEMORY ID eko ,
s_ekgrp FOR ekko-ekgrp ,
s_lifnr FOR ekko-lifnr ,
s_ebeln FOR ekko-ebeln .
SELECTION-SCREEN END OF BLOCK a .
Define Katalog
DEFINE fill_catalog .
gt_fields-fieldname = &1.
gt_fields-tabname = &2.
gt_fields-seltext_l = &3.
gt_fields-seltext_m = &3.
gt_fields-seltext_s = &3.
gt_fields-checkbox = &4.
gt_fields-cfieldname = &5.
gt_fields-ref_tabname = &6.
gt_fields-ref_fieldname = &7.
gt_fields-edit = &8.
append gt_fields .
clear gt_fields .
END-OF-DEFINITION.
Modify Catalog
DEFINE modify_catalog .
gt_fields-seltext_m = &1 .
modify gt_fields transporting seltext_m where fieldname = &2 .
END-OF-DEFINITION .
TOP-OF-PAGE.
write 'top of page'.
PERFORM top-of-page.
start-of-selection
START-OF-SELECTION .
PERFORM get_data.
PERFORM listele .
*& Form listele .
FORM listele .
PERFORM get_events .
PERFORM alv_list_header.
PERFORM get_field_catalog USING 'LIST' .
PERFORM display_alv .
ENDFORM. " listele.
*& Form getfield_Catalog
FORM get_field_catalog USING p_tabname .
fill_catalog :
'EBELN' 'LIST' '' '' '' 'EKPO' 'EBELN' '' ,
'ZZTAHSK' 'LIST' '' '' '' 'EKKO' 'ZZTAHSK' '' ,
'ZZBLTUR' 'LIST' '' '' '' 'EKKO' 'ZZBLTUR' '' ,
'MATNR' 'LIST' '' '' '' 'MARA' 'MATNR' '' ,
'MATKL' 'LIST' '' '' '' 'MARA' 'MATKL' '' ,
'TXZ01' 'LIST' '' '' '' 'EKPO' 'TXZ01' '' ,
'NAME1' 'LIST' '' '' '' 'LFA1' 'NAME1' '' ,
'MENGE' 'LIST' '' '' '' 'EKPO' 'MENGE' '' ,
'MEINS' 'LIST' '' '' '' 'EKPO' 'MENGE' '' ,
'FYUKL' 'LIST' '' '' '' 'ZZITH_YUKH' 'ZZDEL_FLAG' '' ,
'INCO1' 'LIST' '' '' '' 'EKKO' 'INCO1' '' ,
'NETWR' 'LIST' '' '' '' 'EKPO' 'NETWR' '' ,
'WAERS' 'LIST' '' '' '' 'EKKO' 'WAERS' '' ,
'BEDAT' 'LIST' '' '' '' 'EKKO' 'BEDAT' '' ,
'ZZONTAR' 'LIST' '' '' '' 'EKKO' 'ZZONTAR' '' ,
'SLFDT' 'LIST' '' '' '' 'EKET' 'SLFDT' '' ,
'TNAME1' 'LIST' '' '' '' 'T001W' 'NAME1' '' ,
'BANFN' 'LIST' '' '' '' 'EKPO' 'BANFN' '' ,
'EKNAM' 'LIST' '' '' '' 'T024' 'EKNAM' '' .
gt_fields-ddictxt = 'M' .
MODIFY gt_fields TRANSPORTING ddictxt WHERE fieldname NE space.
modify_catalog 'Yükleme No' 'VBELN' .
modify_catalog 'Malzeme Türü' 'ZZBLTUR' .
modify_catalog 'Malzeme Tanımı' 'TXZ01' .
modify_catalog 'Satıcı' 'NAME1' .
modify_catalog 'Teslim Şekli' 'INCO1' .
modify_catalog 'Döviz Tutarı' 'ZZTOPLAM'.
modify_catalog 'Döviz Kodu' 'WAERS' .
modify_catalog 'Siparişi Veren' 'TNAME1' .
modify_catalog 'Tahmini İthalat Trh.' 'SLFDT' .
modify_catalog 'İthalata İntikal Trh.' 'BEDAT' .
modify_catalog 'Dosya Onay Tarihi' 'ZZONTAR' .
modify_catalog 'Talep No' 'BANFN' .
modify_catalog 'Dosya Sorumlusu' 'EKNAM' .
modify_catalog 'Yük.Göstergesi' 'FYUKL' .
ENDFORM. " getfield_Catalog
*& Form display_alv
text
--> p1 text
<-- p2 text
FORM display_alv .
DATA lv_repid LIKE sy-repid .
lv_repid = sy-repid .
CLEAR gs_layout.
gs_layout-zebra = 'X'.
gs_layout-colwidth_optimize = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = lv_repid
i_callback_pf_status_set = 'SET_PF_STATUS'
i_callback_user_command = 'USER_COMMAND'
is_layout = gs_layout
it_fieldcat = gt_fields[]
it_events = gt_events[]
TABLES
t_outtab = list[].
ENDFORM. " display_alv
FORM set_pf_status USING iv_nodisplay TYPE slis_t_extab.
SET PF-STATUS 'STANDARD' ."excluding iv_nodisplay.
ENDFORM. " SET_PF_STATUS
FORM user_command USING iv_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE iv_ucomm .
WHEN 'PRINT' . PERFORM print_data .
ENDCASE .
ENDFORM. "USER_COMMAND
FORM get_events .
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_events.
READ TABLE gt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE 'ALV_TOP_OF_PAGE' TO ls_event-form.
APPEND ls_event TO gt_events.
ENDIF.
ENDFORM. " getevents
FORM alv_list_header .
DATA: ls_line TYPE slis_listheader.
CLEAR ls_line.
ls_line-typ = 'S'.
ls_line-key = 'Satınalma Org.:'.
CONCATENATE s_ekorg-low s_ekorg-high
INTO ls_line-info SEPARATED BY '/'.
APPEND ls_line TO gt_top_of_page.
ls_line-key = 'Satınalma Grubu.:'.
CONCATENATE s_ekgrp-low s_ekgrp-high
INTO ls_line-info SEPARATED BY '/'.
APPEND ls_line TO gt_top_of_page.
ls_line-key = 'Satıcı.:'.
CONCATENATE s_lifnr-low s_lifnr-high
INTO ls_line-info SEPARATED BY '/'.
APPEND ls_line TO gt_top_of_page.
ls_line-key = 'SAS No.:'.
CONCATENATE s_ebeln-low s_ebeln-high
INTO ls_line-info SEPARATED BY '/'.
APPEND ls_line TO gt_top_of_page.
ENDFORM. " alv_list_header
FORM alv_top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_top_of_page.
ENDFORM. "TOP_OF_PAGE
FORM get_data .
DATA : BEGIN OF tr ,
menge LIKE eket-menge ,
dabmg LIKE eket-dabmg ,
END OF tr ,
zzfiilytar LIKE zzith_yukh-zzfiilytar .
*- Get data ...
SELECT *
INTO CORRESPONDING FIELDS OF TABLE list
FROM ekpo AS a
INNER JOIN ekko AS b ON bebeln = aebeln
WHERE b~ebeln IN s_ebeln AND
b~bukrs IN s_bukrs AND
b~loekz EQ space AND
b~lifnr IN s_lifnr AND
b~ekorg IN s_ekorg AND
b~ekgrp IN s_ekgrp AND
a~loekz EQ space AND
a~elikz EQ space .
LOOP AT list .
CLEAR tr .
SELECT menge dabmg
INTO tr
FROM eket
WHERE ebeln = list-ebeln AND
ebelp = list-ebelp.
tr-menge = tr-menge - tr-dabmg .
ENDSELECT.
IF tr-menge LE 0 .
DELETE list .
ELSE .
list-menge = tr-menge .
IF tr-dabmg GT 0 .
list-fyukl = '*' .
ENDIF .
SELECT SINGLE butxt INTO list-tname1 FROM t001
WHERE bukrs = list-bukrs .
SELECT SINGLE slfdt INTO list-slfdt FROM eket
WHERE ebeln = list-ebeln AND
ebelp = list-ebelp .
SELECT SINGLE name1 INTO list-name1 FROM lfa1 WHERE lifnr = list-lifnr.
SELECT SINGLE mtart matkl INTO (list-mtart,list-matkl)
FROM mara WHERE matnr = list-matnr .
SELECT SINGLE eknam INTO list-eknam FROM t024 WHERE ekgrp = list-ekgrp .
MODIFY list .
ENDIF .
ENDLOOP .
ENDFORM. " get_data
FORM print_data .
LEAVE TO LIST-PROCESSING .
NEW-PAGE NO-HEADING NO-TITLE LINE-SIZE 229 .
SET PF-STATUS SPACE .
PERFORM top-of-page .
malzeme türü 1005 ler yazdırılır
PERFORM yazdir_1005 .
malzeme türü 1005 olmayanlar yazdırılır
PERFORM yazdir_ne_1005 .
Satınalama grupları bilgisi yazdırılır
PERFORM yazdir_ekgrp .
ENDFORM. " print_data
FORM top-of-page .
WRITE : 'ÜLKER GRUBU KONSOLİDE' .
WRITE AT 40 'Sevkiyat Bekleyen Malzemeler' COLOR COL_HEADING .
WRITE : 180 sy-uname , sy-datum , sy-uzeit.
NEW-LINE .
ULINE 0(229) .
WRITE :/2 'Rapor Kodu..............:' , (10) sy-tcode .
WRITE :/2 'Satınalma Organizasyonu.:' , (10) s_ekorg-low, '/', (10) s_ekorg-high .
WRITE :/2 'Satınalma Grubu.........:' , (10) s_ekgrp-low, '/', (10) s_ekgrp-high .
WRITE :/2 'Satıcı..................:' , (10) s_lifnr-low, '/', (10) s_lifnr-high .
WRITE :/2 'Satınalma Sipariş No....:' , (10) s_ebeln-low, '/', (10) s_ebeln-high .
NEW-LINE .
ULINE 0(229) .
Başlıklar yazılır
FORMAT COLOR COL_HEADING .
WRITE :
/(10) 'SAS NO.' CENTERED,
(6) 'TAHSİS' CENTERED,
(5) 'ÖDEME' CENTERED,
(5) 'Bel.T' CENTERED,
(25) 'MALZEME' CENTERED,
(25) 'SATICI' CENTERED,
(12) 'MİKTAR' CENTERED,
(3) 'BRM' CENTERED,
(3) 'G' ,
(7) 'TES.ŞK.' CENTERED,
(16) 'DÖVİZ TUTARI' CENTERED,
(3) 'DB.' CENTERED,
(13) 'İTH.İNTK.TRH.' CENTERED,
(13) 'DOSYA ON.TRH.' CENTERED,
(10) 'TAHMİN.İTH.TRH.' CENTERED,
(20) 'SİPARİŞ VEREN' CENTERED,
(10) 'TALEP NO.' CENTERED,
(18) 'DOSYA SORUMLUSU' CENTERED.
ULINE 0(229) .
FORMAT RESET .
ENDFORM. " top-of-page
FORM yazdir_1005 .
DATA ebeln LIKE list-ebeln .
SORT list BY zzbltur matnr .
temp[] = list[] .
DELETE temp WHERE mtart <> '1005' .
LOOP AT list WHERE mtart = '1005' .
CLEAR list-netwr .
IF ebeln NE list-ebeln OR ebeln EQ space .
REFRESH total . CLEAR total .
ebeln = list-ebeln .
LOOP AT temp WHERE ebeln = list-ebeln .
list-netwr = list-netwr + temp-netwr .
CLEAR total .
total-txz01 = '*** TKNK.MLZ. TOPLAMI ****' .
total-meins = temp-meins .
total-menge = temp-menge .
COLLECT total .
ENDLOOP .
PERFORM write_list USING '1' .
LOOP AT total .
PERFORM write_list USING '2' .
ENDLOOP .
AT END OF zzbltur .
ULINE 0(229) .
ENDAT .
ENDIF .
ENDLOOP .
ENDFORM. " yazdir_1005
FORM write_list USING flag .
flag 1 1005 için yazdırma
flag 2 ise ara toplam
IF flag = '1' .
FORMAT COLOR COL_NORMAL .
WRITE :
/(10) list-ebeln ,
(6) list-zztahsk,
(5) list-zterm,
(5) list-zzbltur ,
(25) list-txz01,
(25) list-name1,
(12) list-menge,
(3) list-meins,
(3) list-fyukl,
(7) list-inco1,
(16) list-netwr,
(3) list-waers,
(13) list-bedat,
(13) list-zzontar,
(10) list-slfdt ,
(20) list-tname1,
(10) list-banfn ,
(18) list-eknam .
FORMAT RESET .
ELSEIF flag = '2' .
FORMAT COLOR COL_TOTAL .
WRITE :
/(10) '' ,
(6) '' ,
(5) '' ,
(5) '' ,
(25) total-txz01,
(25) '' ,
(12) total-menge,
(3) total-meins,
(3) '' ,
(7) '' ,
(16) '' ,
(3) '' ,
(13) '' ,
(13) '' ,
(10) '' ,
(20) '' ,
(10) '' ,
(18) '' .
FORMAT RESET .
ELSEIF flag = '3' .
FORMAT COLOR COL_TOTAL .
WRITE :
/(10) '' ,
(6) '' ,
(5) '' ,
(5) '' ,
(25) total-txz01,
(25) '' ,
(12) total-menge,
(3) '' ,
(3) '' ,
(7) '' ,
(16) total-netwr ,
(3) '' ,
(13) '' ,
(13) '' ,
(10) '' ,
(20) '' ,
(10) '' ,
(18) '' .
FORMAT RESET .
ENDIF .
ENDFORM. " write_list
FORM yazdir_ne_1005 .
DATA matnr LIKE list-matnr .
SORT list BY zzbltur matkl matnr .
temp[] = list[] .
DELETE temp WHERE mtart = '1005' .
LOOP AT list WHERE mtart <> '1005' .
Her yeni Malzeme için ara toplam yazılır
IF matnr NE list-matnr AND matnr NE space .
REFRESH total . CLEAR total .
Toplamlar alınır
LOOP AT temp WHERE matnr = matnr .
CLEAR total .
total-netwr = temp-netwr .
total-menge = temp-menge .
total-txz01 = '*** TOPLAM ****' .
COLLECT total .
ENDLOOP .
LOOP AT total . .
PERFORM write_list USING '3' .
ENDLOOP .
ULINE 0(229) .
ENDIF .
PERFORM write_list USING '1' .
matnr = list-matnr .
ENDLOOP .
Toplamlar alınır
LOOP AT temp WHERE matnr = matnr .
REFRESH total . CLEAR total .
total-netwr = temp-netwr .
total-menge = temp-menge .
total-txz01 = '*** TOPLAM ****' .
COLLECT total .
ENDLOOP .
LOOP AT total .
PERFORM write_list USING '3' .
ENDLOOP .
ULINE 0(229) .
ENDFORM. " yazdir_ne_1005
FORM yazdir_ekgrp .
DATA: BEGIN OF total OCCURS 1 ,
eknam LIKE list-eknam ,
zzbltur LIKE list-zzbltur ,
sayi TYPE i ,
END OF total .
DATA: BEGIN OF gtotal OCCURS 1 ,
eknam LIKE list-eknam ,
zzbltur LIKE list-zzbltur ,
sayi TYPE i ,
END OF gtotal .
DATA: bltur LIKE zzith_bltur OCCURS 1 WITH HEADER LINE .
DATA: len TYPE i .
DATA: wa LIKE total.
REFRESH temp .
SELECT * INTO TABLE bltur FROM zzith_bltur .
CLEAR bltur .
MOVE : 'ZZZZ' TO bltur-zzbltur , " Satır toplamı için ...
text-002 TO bltur-zztanim .
APPEND bltur .
CLEAR list .
SORT list BY eknam ebeln .
DELETE ADJACENT DUPLICATES FROM list COMPARING eknam ebeln .
LOOP AT list .
CLEAR : total, gtotal .
total-eknam = list-eknam .
total-zzbltur = list-zzbltur .
total-sayi = 1 .
COLLECT total .
total-eknam = list-eknam .
total-zzbltur = 'ZZZZ' .
total-sayi = 1 .
COLLECT total .
gtotal-eknam = text-001 .
gtotal-zzbltur = list-zzbltur .
gtotal-sayi = 1 .
COLLECT gtotal .
gtotal-eknam = text-001 .
gtotal-zzbltur = 'ZZZZ' .
gtotal-sayi = 1 .
COLLECT gtotal .
ENDLOOP .
FORMAT COLOR COL_HEADING.
ULINE AT /1(145).
WRITE :/
sy-vline , (15) 'Dosya Sorumlusu' , sy-vline .
LOOP AT bltur .
WRITE :(15) bltur-zztanim , sy-vline .
ENDLOOP .
ULINE AT /1(145).
FORMAT RESET .
total-zzbltur = '0001' .
MODIFY total TRANSPORTING zzbltur WHERE zzbltur = space .
gtotal-zzbltur = '0001' .
MODIFY gtotal TRANSPORTING zzbltur WHERE zzbltur = space .
SORT total BY eknam .
LOOP AT total .
AT NEW eknam .
WRITE :/
sy-vline , (15) total-eknam COLOR COL_HEADING ,
sy-vline .
LOOP AT bltur .
len = sy-tabix * 18 .
len = len + 3 .
CLEAR wa .
READ TABLE total INTO wa WITH KEY zzbltur = bltur-zzbltur
eknam = total-eknam .
WRITE AT len(15) wa-sayi NO-ZERO.
WRITE sy-vline .
ENDLOOP .
ENDAT .
ENDLOOP .
LOOP AT gtotal .
AT NEW eknam .
FORMAT COLOR COL_TOTAL .
WRITE :/
sy-vline , (15) gtotal-eknam ,
sy-vline .
LOOP AT bltur .
len = sy-tabix * 18 .
len = len + 3 .
CLEAR wa .
READ TABLE gtotal INTO wa WITH KEY zzbltur = bltur-zzbltur
eknam = text-001 .
WRITE AT len(15) wa-sayi NO-ZERO.
WRITE sy-vline .
ENDLOOP .
ENDAT .
ENDLOOP .
ULINE AT /1(145).
FORMAT RESET .
ENDFORM. " yazdir_ekgrpHi,
In the function use the top-of-page event as follows:
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = 'ZRPMSLM'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
<b> I_CALLBACK_TOP_OF_PAGE = 'TOP'</b>
Define whatever to appear in top-of page in a subroutine named TOP.
Hope this helps.
Reward if helpful.
Regards,
Sipra -
Problem with ALV Grid Display screen Back Button
Dear Friends ,
I have an ALV Grid Display,Here am facing a problem for my 'Back' button,i haven't defined any PF Status and is using the standard one.But after the Display when i press Back Button a blank Screen is appearing n then again i have to press back button to go to my Selection Screen.
Please Suggest if i have to take care of something else.
I want my Selection Screen when i press Back on my Display Screen.
DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
FIELDCAT TYPE SLIS_FIELDCAT_ALV.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = 'ZRMMPD01A'
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 = I_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
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
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_FINAL
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
Thanks and Regards,
AshwiniHi Vijay ,
No i dont have any write statement in my proggram.
Here it is
REPORT ZRMMPD01A NO STANDARD PAGE HEADING.
TABLES : EQUI,SER03,MKPF,OBJK.
TYPE-POOLS : SLIS.
DATA IT_EQUI LIKE EQUI OCCURS 0 WITH HEADER LINE.
DATA IT_OBJK LIKE OBJK OCCURS 0 WITH HEADER LINE..
DATA IT_SER03 LIKE SER03 OCCURS 0 WITH HEADER LINE.
DATA IT_MKPF LIKE MKPF OCCURS 0 WITH HEADER LINE .
DATA : BEGIN OF IT_DISPLAY OCCURS 0,
MATNR LIKE EQUI-MATNR,
SERNR LIKE EQUI-SERNR,
BWART LIKE SER03-BWART,
WERK LIKE SER03-WERK,
CHARGE LIKE SER03-CHARGE,
LAGERORT LIKE SER03-LAGERORT,
MBLNR LIKE SER03-MBLNR,
MJAHR LIKE SER03-MJAHR,
ZEILE LIKE SER03-ZEILE,
BUDAT LIKE MKPF-BUDAT,
BKTXT LIKE MKPF-BKTXT,
USNAM LIKE MKPF-USNAM,
XBLNR LIKE MKPF-XBLNR,
END OF IT_DISPLAY.
DATA : WA_DISPLAY LIKE IT_DISPLAY.
DATA IT_FINAL LIKE IT_DISPLAY OCCURS 0 WITH HEADER LINE.
DATA IT_TEMP LIKE IT_DISPLAY OCCURS 0 WITH HEADER LINE.
DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA :I_LAYOUT TYPE SLIS_LAYOUT_ALV,
I_EVENTS TYPE SLIS_T_EVENT.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_MATNR FOR EQUI-MATNR MATCHCODE OBJECT MCD,"OBLIGATORY
S_SERNR FOR EQUI-SERNR, "MATCHCODE OBJECT MCD OBLIGATORY
S_MBLNR FOR SER03-MBLNR MATCHCODE OBJECT MCD,
S_BWART FOR SER03-BWART MATCHCODE OBJECT MCD,
S_WERK FOR SER03-WERK MATCHCODE OBJECT MCD,
S_LAGET FOR SER03-LAGERORT MATCHCODE OBJECT MCD,
S_BUDAT FOR MKPF-BUDAT MATCHCODE OBJECT MCD,
S_XBLNR FOR MKPF-XBLNR MATCHCODE OBJECT MCD.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
PARAMETERS : R1 RADIOBUTTON GROUP G1 DEFAULT 'X',
R2 RADIOBUTTON GROUP G1.
SELECTION-SCREEN END OF BLOCK B2.
START-OF-SELECTION.
*Fetch Data.
PERFORM GET_DATA.
*Fill Display Fields.
PERFORM FILL_TABLE.
*Segregate data according to radio button selection.
PERFORM SELECT_CONDITION.
*Fill The Feild catalog.
PERFORM FIELD_CATALOG.
*Display Output.
PERFORM OUTPUT_DISPLAY..
*& Form GET_DATA
text
--> p1 text
<-- p2 text
FORM GET_DATA.
SELECT * FROM EQUI INTO TABLE IT_EQUI
WHERE MATNR IN S_MATNR
AND SERNR IN S_SERNR.
SELECT * FROM OBJK INTO TABLE IT_OBJK
FOR ALL ENTRIES IN IT_EQUI
WHERE EQUNR = IT_EQUI-EQUNR.
SELECT * FROM SER03 INTO TABLE IT_SER03
FOR ALL ENTRIES IN IT_OBJK
WHERE OBKNR = IT_OBJK-OBKNR
AND MBLNR IN S_MBLNR
AND BWART IN S_BWART
AND WERK IN S_WERK
AND LAGERORT IN S_LAGET.
SELECT * FROM MKPF INTO TABLE IT_MKPF
FOR ALL ENTRIES IN IT_SER03
WHERE MBLNR = IT_SER03-MBLNR
AND BUDAT IN S_BUDAT
AND XBLNR IN S_XBLNR.
ENDFORM. " GET_DATA
*& Form FILL_TABLE
text
--> p1 text
<-- p2 text
FORM FILL_TABLE.
LOOP AT IT_EQUI.
LOOP AT IT_OBJK.
IF IT_OBJK-EQUNR <> IT_EQUI-EQUNR.
SKIP.
ELSE.
READ TABLE IT_SER03 WITH KEY OBKNR = IT_OBJK-OBKNR.
IF SY-SUBRC = 0.
WA_DISPLAY-MATNR = IT_EQUI-MATNR.
WA_DISPLAY-SERNR = IT_EQUI-SERNR.
WA_DISPLAY-BWART = IT_SER03-BWART.
WA_DISPLAY-WERK = IT_SER03-WERK.
WA_DISPLAY-CHARGE = IT_SER03-CHARGE.
WA_DISPLAY-LAGERORT = IT_SER03-LAGERORT.
WA_DISPLAY-MBLNR = IT_SER03-MBLNR.
WA_DISPLAY-MJAHR = IT_SER03-MJAHR.
WA_DISPLAY-ZEILE = IT_SER03-ZEILE.
READ TABLE IT_MKPF WITH KEY MBLNR = IT_SER03-MBLNR.
IF SY-SUBRC = 0.
WA_DISPLAY-BUDAT = IT_MKPF-BUDAT.
WA_DISPLAY-BKTXT = IT_MKPF-BKTXT.
WA_DISPLAY-USNAM = IT_MKPF-USNAM.
WA_DISPLAY-XBLNR = IT_MKPF-XBLNR.
ENDIF.
ENDIF.
ENDIF.
IF NOT WA_DISPLAY IS INITIAL.
APPEND WA_DISPLAY TO IT_DISPLAY.
CLEAR WA_DISPLAY.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDFORM. " FILL_TABLE
*& Form FIELD_CATALOG
text
--> p1 text
<-- p2 text
FORM FIELD_CATALOG.
FIELDCAT-TABNAME = 'IT_DISPLAY'.
FIELDCAT-FIELDNAME = 'MATNR'.
FIELDCAT-SELTEXT_M = 'Material Number'.
FIELDCAT-OUTPUTLEN = 18.
APPEND FIELDCAT TO IT_FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-TABNAME = 'IT_DISPLAY'.
FIELDCAT-FIELDNAME = 'SERNR'.
FIELDCAT-SELTEXT_M = 'Serial number'.
FIELDCAT-OUTPUTLEN = 18.
APPEND FIELDCAT TO IT_FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-TABNAME = 'IT_DISPLAY'.
FIELDCAT-FIELDNAME = 'MBLNR'.
FIELDCAT-SELTEXT_L = 'Number of material document'.
FIELDCAT-OUTPUTLEN = 18.
APPEND FIELDCAT TO IT_FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-TABNAME = 'IT_DISPLAY'.
FIELDCAT-FIELDNAME = 'BWART'.
FIELDCAT-SELTEXT_M = 'Movement type'.
FIELDCAT-OUTPUTLEN = 18.
APPEND FIELDCAT TO IT_FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-TABNAME = 'IT_DISPLAY'.
FIELDCAT-FIELDNAME = 'WERK'.
FIELDCAT-SELTEXT_M = 'Plant'.
FIELDCAT-OUTPUTLEN = 5.
APPEND FIELDCAT TO IT_FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-TABNAME = 'IT_DISPLAY'.
FIELDCAT-FIELDNAME = 'CHARGE'.
FIELDCAT-SELTEXT_M = 'Batch number'.
FIELDCAT-OUTPUTLEN = 18.
APPEND FIELDCAT TO IT_FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-TABNAME = 'IT_DISPLAY'.
FIELDCAT-FIELDNAME = 'LAGERORT'.
FIELDCAT-SELTEXT_M = 'Storage Location'.
FIELDCAT-OUTPUTLEN = 18.
APPEND FIELDCAT TO IT_FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-TABNAME = 'IT_DISPLAY'.
FIELDCAT-FIELDNAME = 'MJAHR'.
FIELDCAT-SELTEXT_M = 'Material doc. year'.
FIELDCAT-OUTPUTLEN = 18.
APPEND FIELDCAT TO IT_FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-TABNAME = 'IT_DISPLAY'.
FIELDCAT-FIELDNAME = 'ZEILE'.
FIELDCAT-SELTEXT_L = 'Item in material document'.
FIELDCAT-OUTPUTLEN = 18.
APPEND FIELDCAT TO IT_FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-TABNAME = 'IT_DISPLAY'.
FIELDCAT-FIELDNAME = 'BUDAT'.
FIELDCAT-SELTEXT_L = 'Posting date in the document'.
FIELDCAT-OUTPUTLEN = 10.
APPEND FIELDCAT TO IT_FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-TABNAME = 'IT_DISPLAY'.
FIELDCAT-FIELDNAME = 'BKTXT'.
FIELDCAT-SELTEXT_L = 'Document header text'.
FIELDCAT-OUTPUTLEN = 25.
APPEND FIELDCAT TO IT_FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-TABNAME = 'IT_DISPLAY'.
FIELDCAT-FIELDNAME = 'USNAM'.
FIELDCAT-SELTEXT_M = 'User name'.
FIELDCAT-OUTPUTLEN = 15.
APPEND FIELDCAT TO IT_FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-TABNAME = 'IT_DISPLAY'.
FIELDCAT-FIELDNAME = 'XBLNR'.
FIELDCAT-SELTEXT_L = 'Reference document number'.
FIELDCAT-OUTPUTLEN = 25.
APPEND FIELDCAT TO IT_FIELDCAT.
CLEAR FIELDCAT.
ENDFORM. " FIELD_CATALOG
*& Form DISPLAY_OUTPUT
text
--> p1 text
<-- p2 text
FORM OUTPUT_DISPLAY.
IF R1 = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = 'ZRMMPD01A'
IS_LAYOUT = I_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
TABLES
T_OUTTAB = IT_DISPLAY
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.
REFRESH IT_DISPLAY.
CLEAR IT_DISPLAY.
ELSEIF R2 = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = 'ZRMMPD01A'
IS_LAYOUT = I_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
TABLES
T_OUTTAB = IT_FINAL
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.
REFRESH IT_DISPLAY.
CLEAR IT_DISPLAY.
ENDIF.
ENDFORM. " DISPLAY_OUTPUT
*& Form SELECT_CONDITION
text
--> p1 text
<-- p2 text
FORM SELECT_CONDITION.
IF R2 = 'X'.
CLEAR WA_DISPLAY.
SORT IT_DISPLAY BY MATNR SERNR MBLNR ZEILE.
DELETE ADJACENT DUPLICATES FROM IT_DISPLAY.
LOOP AT IT_DISPLAY WHERE ZEILE = '0002'.
READ TABLE IT_DISPLAY WITH KEY MATNR = IT_DISPLAY-MATNR
SERNR = IT_DISPLAY-SERNR ZEILE = '0001'.
IF SY-SUBRC = 0.
DELETE IT_DISPLAY.
ENDIF.
ENDLOOP.
SORT IT_DISPLAY BY MATNR SERNR BWART MBLNR.
DELETE ADJACENT DUPLICATES FROM IT_DISPLAY.
LOOP AT IT_DISPLAY.
IF WA_DISPLAY IS INITIAL.
WA_DISPLAY = IT_DISPLAY.
ENDIF.
LOOP AT IT_DISPLAY WHERE MATNR = WA_DISPLAY-MATNR
AND SERNR = WA_DISPLAY-SERNR.
IF IT_DISPLAY-BUDAT > WA_DISPLAY-BUDAT.
WA_DISPLAY = IT_DISPLAY.
ELSE.
DELETE IT_DISPLAY.
ENDIF.
ENDLOOP.
APPEND WA_DISPLAY TO IT_TEMP.
CLEAR WA_DISPLAY.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM IT_TEMP.
IF NOT IT_TEMP[] IS INITIAL.
IT_FINAL[] = IT_TEMP[].
ENDIF.
ENDIF.
ENDFORM. " SELECT_CONDITION
Regards,
Ashwini -
Missing columns in print preview of ALV Grid
In a report using ALV grid the output is ok in ALV grid when press print preview the 1st column is always missing and the 1st row shift by 1 character. Why is it happening. The same is happening in print out or when list saved in excel also.
the coding is like
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_interface_check = ' '
i_buffer_active = ' '
i_callback_program = i_repname
i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
i_callback_pf_status_set = ' '
i_callback_user_command = 'FRM_ALV_USER_COMMAND'
i_structure_name = 'IT_REPORT'
i_background_id = ' '
is_layout = i_layout
it_fieldcat = i_fieldtab[]
it_sort = i_sort[]
i_default = 'X'
i_save = 'A'
is_variant = i_variant
it_events = i_events[]
is_print = i_print
tables
t_outtab = it_report.
Kindly resolve.
thanks
anyaSample code:
REPORT ZALV_DISPLAY_CHANGE.
TABLES :T247.
TYPE-POOLS SLIS. "Type definitions for alv report
DATA: IT_FIELDCAT TYPE LVC_T_FCAT,
WA_FIELDCAT TYPE LVC_S_FCAT.
DATA: WA_LAYOUT TYPE LVC_S_LAYO.
DATA : BEGIN OF IT_FINAL OCCURS 0,
CHECK(1),
CELLTAB TYPE LVC_T_STYL, " Switch between display/change
MNR LIKE T247-MNR,
LTX LIKE T247-LTX,
END OF IT_FINAL.
DATA : WA_FINAL LIKE IT_FINAL.
DATA : W_REPID LIKE SY-REPID.
W_REPID = SY-REPID.
REFRESH IT_FINAL.
SELECT MNR LTX
FROM T247
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL
WHERE SPRAS EQ 'E'.
WA_FIELDCAT-FIELDNAME = 'CHECK'.
WA_FIELDCAT-TABNAME = 'IT_FINAL'.
WA_FIELDCAT-CHECKBOX = 'X'.
WA_FIELDCAT-EDIT = 'X'..
WA_FIELDCAT-OUTPUTLEN = '3'.
WA_FIELDCAT-COL_POS = '1'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'MNR'.
WA_FIELDCAT-TABNAME = 'IT_FINAL'.
WA_FIELDCAT-OUTPUTLEN = '8'.
WA_FIELDCAT-COL_POS = '2'.
WA_FIELDCAT-REPTEXT = 'Month'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'LTX'.
WA_FIELDCAT-TABNAME = 'IT_FINAL'.
WA_FIELDCAT-OUTPUTLEN = '20'.
WA_FIELDCAT-COL_POS = '3'.
WA_FIELDCAT-REPTEXT = 'Month Desc'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
DATA: WA_CELLTAB TYPE LVC_S_STYL,
IT_CELLTAB TYPE LVC_T_STYL,
L_INDEX TYPE I.
CLEAR : WA_CELLTAB,WA_FINAL,IT_CELLTAB.
REFRESH IT_CELLTAB.
*Initialize the celltab table
LOOP AT IT_FINAL INTO WA_FINAL.
L_INDEX = SY-TABIX.
WA_CELLTAB-FIELDNAME = 'CHECK'.
WA_CELLTAB-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_ENABLED.
INSERT WA_CELLTAB INTO TABLE IT_CELLTAB.
INSERT LINES OF IT_CELLTAB INTO TABLE WA_FINAL-CELLTAB.
MODIFY IT_FINAL FROM WA_FINAL INDEX L_INDEX.
ENDLOOP.
*Make the first five 5 rows as disabled
CLEAR L_INDEX.
LOOP AT IT_FINAL INTO WA_FINAL.
L_INDEX = SY-TABIX.
IF SY-TABIX LE 5.
LOOP AT WA_FINAL-CELLTAB INTO WA_CELLTAB.
IF WA_CELLTAB-FIELDNAME EQ 'CHECK' .
WA_CELLTAB-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
MODIFY WA_FINAL-CELLTAB FROM WA_CELLTAB.
MODIFY IT_FINAL INDEX L_INDEX FROM WA_FINAL TRANSPORTING CELLTAB.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
WA_LAYOUT-BOX_FNAME = 'CHECK'.
WA_LAYOUT-NO_ROWMARK = 'X'.
WA_LAYOUT-STYLEFNAME = 'CELLTAB'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = W_REPID
I_GRID_TITLE = 'GRID DISPLAY'
IS_LAYOUT_LVC = WA_LAYOUT
IT_FIELDCAT_LVC = IT_FIELDCAT
TABLES
T_OUTTAB = IT_FINAL
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
Please give me reward point If it is useful
Thanks
Murali Poli -
Several browsers perfect, Navigator shows only top 1/3 of page
Opera, Firefox, Safari, Seamonkey, Camino and IE all displpay iWeb-=created pages perfectly, but Netscape shows only the top third of pages. Somehow, too, the "Made on a Mac" logo appears at the bottom of the pat that IS diaplayed (i.e., it's "shifted" to show (behid??) the last text Netscape condescends to show.
Site (still under construction, but at a viewable stage (except in Navigator!)) is at http://www.levencomco.org/default.html
The default page was done in Freeway as it allowed me to hide the QT controls, which iWeb doesn't seem able to allow, but that page auto-redirects to the main site, which is all done in iWeb.
Any suggestions, please?
TIA.
iMac G5 17" "iSight" Mac OS X (10.4.5)Hi,
In the function use the top-of-page event as follows:
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = 'ZRPMSLM'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
<b> I_CALLBACK_TOP_OF_PAGE = 'TOP'</b>
Define whatever to appear in top-of page in a subroutine named TOP.
Hope this helps.
Reward if helpful.
Regards,
Sipra -
PROGRAM_ERROR in ALV Exceptions
Hi All,
Can any one Please tell me when the 'PROGRAM_ERROR' Exception is handled in REUSE_ALV_GRID_DISPLAY.
What are the conditions to get this exception when we use FM 'REUSE_ALV_GRID_DISPLAY'. I read the documentation i got some thing but i want to know where it is handled in program.
Thanks& Regards,
KiranHello,
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = ' '
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB =
<b> 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.</b>
Regards,
Naimesh -
Hi ,
I am trying to print the alv output ,but i dont want the popup screen which comes before the print,how can i supress the screen,please suggest.below is my code.
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
mode = 'CURRENT'
immediately = ''
line_size = '' "#EC *
new_list_id = l_new_list_id
no_dialog = 'X'
in_parameters = mstr_print_parms
in_archive_parameters = t_arc_params
IMPORTING
out_archive_parameters = t_arc_params
out_parameters = mstr_print_parms
valid = l_valid
EXCEPTIONS
archive_info_not_found = 1
invalid_print_params = 2
invalid_archive_params = 3
OTHERS = 4.
CLEAR variant-handle.
variant-variant = p_vari.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
i_buffer_active = space "c_x "ALRK241034
i_callback_program = 'Report Name'
i_callback_pf_status_set = 'PF_STATUS_SET'
i_callback_user_command = 'HANDLE_USER_COMMAND'
I_STRUCTURE_NAME = 'BSEG'
is_layout = layout
it_fieldcat = fieldcat
i_default = 'X'
(del) i_save = 'A' "Note 319936
i_save = l_save "Note 319936
is_variant = variant
is_print = gs_print
it_events = events
it_event_exit = it_event_exit
TABLES
t_outtab = xbseg
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.i think the length of table exeeds the layout length,,,
in ur fieldcatalog,assign some fixedlength for all fields,
there is one valiable wa_fcat-outputlen = '0004'.
u have to pass some fixed length and try d out put.
regards,
ramesh. -
Handle variants in ALV.
Hi,
I am creating an interactive ALV lists.The basic list has default variant.
when I dbl click contract in basic ALV the second ALV display the details.
Both ALVs r created using REUSE_ALV_GRID_DISPLAY.
in first FM I gave like
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_interface_check = ' '
i_buffer_active = ' '
i_callback_program = g_repid
i_callback_user_command = 'DO_MESSAGE' "form
i_grid_title = l_header
is_layout = layt
it_fieldcat = tcat
i_save = 'X'
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
CHECK NOT sy-subrc IS INITIAL.
Then the second ALV FM
fieldcat:
1 'VBELN' 'CHAR' 10 'CONTRACT'(089) '' '' '',
2 'BELNR' 'CHAR' 10 'DOCUMENT NUMBER'(090) 'X' '' '',
3 'BLDAT' 'DATS' 10 'DOC.DATE'(091) ' ' '' '',
8 'L_WTGBTR' 'CURR' 15 'AMOUNT'(092) ' ' 'R' 'X',
5 'KEY' 'NUMC' 15 'KEY'(093) ' ' '' '',
6 'LTEXT' 'CHAR' 28 'DESCRIPTION'(094) ' ' '' '',
7 'CTGY' 'CHAR' 4 'CTGY'(095) ' ' '' ''.
ENDIF.
gw_sort-fieldname = 'VBELN'.
gw_sort-up = 'X'.
gw_sort-spos = 1.
gw_sort-subtot = 'X'.
APPEND gw_sort TO gt_sort.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_buffer_active = ' '
i_callback_program = pgm
i_callback_user_command = 'DISP_ITEM'
is_layout = gt_layout
it_fieldcat = gt_fieldcat
it_sort = gt_sort
TABLES
t_outtab = gt_covp
EXCEPTIONS
program_error = 1
OTHERS = 2.
when I pass I_SAVE = 'A' or 'U' or 'X' then the result will be displayed with
single field.the other fields r hidden.That single field is displayed with length of 111ch.but its actual size is 10.
without this its working fine.but I can't enable variants save button in second ALV.
how to enable it.
Regards,
balaThe problem is with the IS_VARIANT parameter. You must be passing the same values / no values to both the list.
You should be using this parameter and differentiate between these list by passing different values to the HANDLE field for the different lists. Then you will have separate variants for each of the list.
The value could be anything, as simple as FIRST and SECOND.
Regards,
Ravi
Note - Please mark all the helpful answers -
Retrive open order and open delivery value x custome
Hi,
how can i obtain a list of open order value and open delivery value per customer?
10x
byeCheck the following code which give details of pending orders & values and it can be modified as per ur requirement.
REPORT ZPEND_ORDER no standard page heading line-size 255.
*& Purpose : Details of Sale order having pending deliveries *
*& ( For Rake order handling ) *
tables : vbak, vbap, likp, lips, kna1, vbuk, vbpa, vepvg, vbfa, vbup.
data : pend_qty like vbap-kwmeng,
dlv_qty like vbap-kwmeng,
ord_qty like vbap-kwmeng.
data: begin of itab_vbak occurs 0,
vbeln like vbak-vbeln, "sales order no
audat like vbak-audat, " created date
auart like vbak-auart, " Sales Document Type
vkorg like vbak-vkorg, "Sales Organization
vtweg like vbak-vtweg, " distribution channel
spart like vbak-spart, " Division
vkgrp like vbak-vkgrp, " Sales group
vkbur like vbak-vkbur, " Sales office
kunnr like vbak-kunnr, " sold to party
kunag like vbak-kunnr, " ship to party
cust like vbak-kunnr, " sold to party
ship like kna1-name1, " ship to party
city like kna1-ort01, " ship to party location
deliv like likp-vbeln, " delivery
matnr like vbap-matnr,
arktx like vbap-arktx, " mat description
kwmeng like vbap-kwmeng,
kbmeng like vbap-kbmeng,
fkrel like vbap-matnr,
vstel like vbap-vstel,
route like vbap-route,
chln_no like likp-xabln,
grn_no like likp-bolnr,
truck_no like likp-traid,
dlv_dt like vbfa-erdat, "dlvy date
ord_qty like vbap-kwmeng,
dlvd_qty like vbap-kwmeng,
pend_qty like vbap-kwmeng,
kzwi5 like vbap-kzwi5,
posnr like vbap-posnr,
end of itab_vbak.
data posnr like vbap-posnr.
*FOR ALV DISPLAY
type-pools: slis.
constants: formname_top_of_page type slis_formname value 'TOP_OF_PAGE'.
*Data Decelararion for alv display
data: i_fieldtab type slis_t_fieldcat_alv,
i_heading type slis_t_listheader,
i_layout type slis_layout_alv,
i_sort type slis_t_sortinfo_alv,
i_print type slis_print_alv,
i_events type slis_t_event,
i_repname like sy-repid,
f2code like sy-ucomm value '&ETA',
i_save(1) type c,
i_exit(1) type c,
i_variant like disvariant,
h_text(50).
start-of-selection.
selection-screen skip 1.
selection-screen begin of block v1 with frame title text-001.
selection-screen skip 1.
select-options:
ord_no for vepvg-vbeln,
audat for vbak-audat obligatory,
matnr for vbap-matnr,
spart for vbap-spart obligatory,
vstel for vepvg-vstel obligatory,
sale_org for vbak-vkorg obligatory,
sale_off for vbak-vkbur.
selection-screen skip 1.
check box for ALV display
parameters p_alv as checkbox.
selection-screen end of block v1.
selection-screen skip 1.
data: ftab(72) occurs 5 with header line.
refresh ftab.
ftab = 'VBELN'. append ftab.
refresh itab_vbak.
initialization.
i_repname = sy-repid.
start-of-selection.
select vbeln audat vkorg vtweg spart vkbur kunnr from vbak
into
(itab_vbak-vbeln, itab_vbak-audat,
vbak-vkorg, vbak-vtweg, vbak-spart,
itab_vbak-vkbur, itab_vbak-kunnr)
where vbeln in ord_no
and audat in audat
and vbtyp = 'C'
and vkorg in sale_org
and spart in spart
and vkbur in sale_off.
if sy-subrc = 0.
select posnr kwmeng kbmeng matnr arktx "added for mat description
fkrel vstel route kzwi5 spart
from vbap into corresponding fields of itab_vbak
where vbeln = itab_vbak-vbeln .
check ( itab_vbak-fkrel = 'A' or "Delivery-related billing document
itab_vbak-fkrel = 'D' ) "Relevant for pro forma
and itab_vbak-vstel in vstel
and itab_vbak-matnr in matnr
and itab_vbak-spart in spart.
select single * from vbup where vbeln = itab_vbak-vbeln
and posnr = itab_vbak-posnr.
check vbup-gbsta ne 'C'.
dlv_qty = 0.
select single kunnr from vbpa into itab_vbak-kunnr
where vbeln = itab_vbak-vbeln
and parvw = 'WE'.
select single name1 ort01 from kna1 into
(itab_vbak-cust, itab_vbak-city)
where kunnr = itab_vbak-kunnr.
in case of partially processed sale order get delivery details
clear : dlv_qty, itab_vbak-dlv_dt, itab_vbak-dlvd_qty, itab_vbak-chln_no,
itab_vbak-grn_no, itab_vbak-truck_no.
if vbup-gbsta eq 'B'. "partially processed
dlv_qty = 0.
get details from delivery
select vbfavbeln vbfarfmng vbfavbtyp_n vbfaerdat
into (vbfa-vbeln, vbfa-rfmng, vbfa-vbtyp_n, vbfa-erdat)
from vbfa
where vbelv = itab_vbak-vbeln
and posnv = itab_vbak-posnr.
check vbfa-vbtyp_n = 'J'.
clear : dlv_qty, itab_vbak-dlv_dt, itab_vbak-dlvd_qty, itab_vbak-chln_no,
itab_vbak-grn_no, itab_vbak-truck_no.
select single erdat xabln bolnr traid kunag
into (itab_vbak-dlv_dt, itab_vbak-chln_no, itab_vbak-grn_no,
itab_vbak-truck_no, itab_vbak-kunag)
from likp
where vbeln = vbfa-vbeln.
if sy-subrc = 0.
dlv_qty = dlv_qty + vbfa-rfmng.
itab_vbak-dlv_dt = vbfa-erdat.
itab_vbak-dlvd_qty = dlv_qty.
itab_vbak-deliv = vbfa-vbeln.
endif.
append itab_vbak.
endselect.
elseif vbup-gbsta eq 'A'.
for unprocessed sale order
ship to party details
itab_vbak-kunag = itab_vbak-kunnr.
itab_vbak-ship = itab_vbak-cust.
append itab_vbak.
endif.
endselect.
endif.
clear itab_vbak.
endselect.
loop at itab_vbak.
clear with change in document / item no
on change of itab_vbak-vbeln or itab_vbak-posnr.
clear: dlv_qty,ord_qty,pend_qty.
endon.
at new posnr.
In case full qty not delivered
if itab_vbak-kwmeng > itab_vbak-dlvd_qty.
select single vbpa~kunnr into vbpa-kunnr
from vbpa
where vbeln = itab_vbak-vbeln
and posnr = itab_vbak-posnr
and parvw = 'WE'.
if sy-subrc eq 0.
itab_vbak-kunag = vbpa-kunnr.
select single name1 ort01 from kna1 into
(itab_vbak-ship, itab_vbak-city)
where kunnr = itab_vbak-kunag.
if sy-subrc ne 0.
select single vbpa~kunnr into vbpa-kunnr
from vbpa
where vbeln = itab_vbak-vbeln
and parvw = 'WE'.
itab_vbak-kunag = vbpa-kunnr.
if sy-subrc ne 0 and p_alv ne 'X'.
write :/ 'vbpadetls' , itab_vbak-vbeln, itab_vbak-posnr, itab_vbak-vbeln.
endif.
endif.
endif.
endif.
itab_vbak-ord_qty = itab_vbak-kwmeng.
Delivered Qty & Pending qty
dlv_qty = dlv_qty + itab_vbak-dlvd_qty.
itab_vbak-pend_qty = itab_vbak-kwmeng - dlv_qty.
modify itab_vbak transporting kunag ship city dlvd_qty ord_qty pend_qty .
endat.
endloop.
end-of-selection.
sort itab_vbak by vbeln posnr audat kunnr matnr.
if p_alv ne 'X'.
loop at itab_vbak.
select single kna1name1 kna1ort01
into
(kna1-name1, kna1-ort01)
from kna1
where kunnr = itab_vbak-kunnr.
pend_qty = itab_vbak-ord_qty - itab_vbak-dlvd_qty.
format color col_normal.
write : /01(10) itab_vbak-vbeln,
12(10) itab_vbak-audat,
24(8) itab_vbak-kunag no-zero,
34(6) itab_vbak-posnr no-zero,
42(10) itab_vbak-matnr no-zero,
54(15) itab_vbak-arktx,
72(25) itab_vbak-ship,
100(15) itab_vbak-city,
118(8) itab_vbak-ord_qty,
128(10) itab_vbak-route,
140(10) itab_vbak-dlv_dt,
152(10) itab_vbak-dlvd_qty,
164(10) itab_vbak-chln_no,
176(10) itab_vbak-grn_no,
188(10) itab_vbak-truck_no,
200(10) itab_vbak-pend_qty,
218(15) itab_vbak-kzwi5 left-justified.
format reset.
at end of audat.
sum.
pend_qty = itab_vbak-ord_qty - itab_vbak-dlvd_qty.
format color col_background.
write: /118(8) itab_vbak-ord_qty,
152(10) itab_vbak-dlvd_qty,
200(10) pend_qty,
218 itab_vbak-kzwi5 left-justified.
format reset.
endat.
at last.
sum.
pend_qty = itab_vbak-ord_qty - itab_vbak-dlvd_qty.
format color col_total.
write : /5 'Grand Total : '.
write: /118(8) itab_vbak-ord_qty,
152(10) itab_vbak-dlvd_qty,
200(10) pend_qty,
218 itab_vbak-kzwi5 left-justified.
format reset.
endat.
endloop.
else.
for ALV Display
i_repname = sy-repid.
perform fieldcat using i_fieldtab[].
perform eventtab using i_events[].
perform comment using i_heading[].
perform call_alv.
perform build_layout using i_layout.
endif.
top-of-page.
if p_alv ne 'X'.
format color col_heading.
write: /01 'Ord No',
12 'Ord Date',
24 'Sold to Party',
34 'Item No',
42 'Mat No',
54 'Mat Descp',
72 'Ship to Party',
100 'City',
118 'Qty',
128 'Route',
140 'Dlv Date',
152 'Dlv Qty',
164 'Challan No',
176 'GRN No',
188 'Truck No',
200 'Pend Qty',
218 'Total Value'.
format reset.
endif.
*& Form fieldcat
text
-->P_I_FIELDTAB[] text
form fieldcat using p_fieldtab type slis_t_fieldcat_alv.
data: l_fieldcat type slis_fieldcat_alv.
clear l_fieldcat.
l_fieldcat-tabname = 'ITAB_VBAK'.
l_fieldcat-fix_column = 'X'.
l_fieldcat-no_out = ' '.
l_fieldcat-fieldname = 'VKBUR'.
l_fieldcat-outputlen = 6.
l_fieldcat-seltext_l = 'Sales Office'.
l_fieldcat-no_zero = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'VSTEL'.
l_fieldcat-outputlen = 5.
l_fieldcat-seltext_l = 'Shipping Point'.
l_fieldcat-no_zero = ' '.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'VBELN'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Order No.'.
l_fieldcat-no_zero = 'X'.
l_fieldcat-hotspot = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'AUDAT'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Doc Date'.
l_fieldcat-hotspot = ''.
l_fieldcat-no_zero = ' '.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'POSNR'.
l_fieldcat-outputlen = 5.
l_fieldcat-seltext_l = 'Item'.
l_fieldcat-no_zero = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'MATNR'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Material No'.
l_fieldcat-no_zero = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'ARKTX'.
l_fieldcat-outputlen = 15.
l_fieldcat-seltext_l = 'Mat. Description'.
l_fieldcat-no_zero = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'KUNNR'.
l_fieldcat-outputlen = 8.
l_fieldcat-seltext_l = 'Sold to Party'.
l_fieldcat-no_zero = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'CUST'.
l_fieldcat-outputlen = 15.
l_fieldcat-seltext_l = 'Sold to Party Descp.'.
l_fieldcat-no_zero = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'KUNAG'.
l_fieldcat-outputlen = 8.
l_fieldcat-seltext_l = 'Ship to Party'.
l_fieldcat-no_zero = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'SHIP'.
l_fieldcat-outputlen = 15.
l_fieldcat-seltext_l = 'Ship to Party Descp'.
l_fieldcat-no_zero = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'CITY'.
l_fieldcat-outputlen = 13.
l_fieldcat-seltext_l = 'City'.
l_fieldcat-no_zero = ' '.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'DELIV'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Delivery No.'.
l_fieldcat-no_zero = 'X'.
l_fieldcat-hotspot = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'ORD_QTY'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Qty'.
l_fieldcat-no_zero = ' '.
l_fieldcat-hotspot = ' '.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'ROUTE'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Route'.
l_fieldcat-no_zero = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'DLV_DT'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Delivered date'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'DLVD_QTY'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Delivered Qty'.
l_fieldcat-no_zero = ' '.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'CHLN_NO'.
l_fieldcat-outputlen = 15.
l_fieldcat-seltext_l = 'Challan No'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'GRN_NO'.
l_fieldcat-outputlen = 15.
l_fieldcat-seltext_l = 'GR Number'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'TRUCK_NO'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Truck No'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'PEND_QTY'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Pending Qty'.
l_fieldcat-no_zero = ' '.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'KZWI5'.
l_fieldcat-outputlen = 13.
l_fieldcat-seltext_l = 'Value'.
append l_fieldcat to p_fieldtab.
clear l_fieldcat.
endform. " FIELDCAT
*& Form EVENTTAB
text
-->P_I_EVENTS[] text
form eventtab using p_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 = p_events.
read table p_events with key name = slis_ev_top_of_page
into ls_event.
if sy-subrc = 0.
move formname_top_of_page to ls_event-form.
append ls_event to p_events.
endif.
endform. " EVENTTAB
*& Form BUILD_LAYOUT
text
-->P_LAYOUT text
form build_layout using p_layout type slis_layout_alv.
p_layout-f2code = f2code.
p_layout-zebra = 'X'.
p_layout-detail_popup = 'X'.
endform. " BUILD_LAYOUT
*& Form COMMENT
text
-->P_I_HEADING[] text
form comment using p_i_heading type slis_t_listheader.
data: hline type slis_listheader,
text(60) type c,
sep(20) type c.
clear: hline, text.
hline-typ = 'H'.
write : 'Pending Sale Order Details' to hline-info.
append hline to i_heading.
endform. " COMMENT
*& Form TOP_OF_PAGE
text
form top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = i_heading
i_logo = 'ALV_REPORT'.
endform. " TOP_OF_PAGE
*& Form call_alv
text
--> p1 text
<-- p2 text
form call_alv .
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_interface_check = ' '
i_buffer_active = ' '
i_callback_program = i_repname
i_callback_pf_status_set = ' '
i_callback_user_command = 'FRM_ALV_USER_COMMAND'
i_structure_name = 'ITAB_VBAK'
i_background_id = ' '
is_layout = i_layout
it_fieldcat = i_fieldtab
it_sort = i_sort[]
i_default = 'X'
i_save = 'A'
is_variant = i_variant
it_events = i_events[]
is_print = i_print
tables
t_outtab = itab_vbak.
if sy-subrc <> 0.
write: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_LIST_DISPLAY'.
endif.
endform. " call_alv
*& Form frm_alv_user_command
text
-->UCOMM text
-->SELFIELD text
form frm_alv_user_command using ucomm like sy-ucomm
selfield type slis_selfield.
case ucomm.
when '&IC1'.
if selfield-tabname = 'ITAB_VBAK'.
if selfield-fieldname = 'VBELN'.
read table itab_vbak index selfield-tabindex.
if sy-subrc = 0.
set parameter id 'AUN' field itab_vbak-vbeln.
call transaction 'VA03' and skip first screen.
endif.
elseif selfield-fieldname = 'DELIV'.
read table itab_vbak index selfield-tabindex.
if sy-subrc = 0.
set parameter id 'VL' field itab_vbak-deliv.
call transaction 'VL03N' and skip first screen.
endif.
endif.
endif.
endcase.
endform. "frm_alv_user_command -
Button in ALV toolbar with REUSE_ALV_GRID_DISPLAY
Hello friends,
I am Displaying ALV using REUSE_ALV_GRID_IDSPLAY. i need to add a button in grid toolbar.
i am doing it by adding a new ZSTATUS in SET PF_STATUS. but the problem is that it is removing the standard buttons.
i want to add button without removing the standard butttons.
Please help.
thanx in advance.
Krishan Kumarhai friends.......
i had tried to add custom button to the reuse_alv_grid_display.please send the coding...
REPORT ZHAJI_SAMPLE.
tables:lfa1.
TYPE-POOLS : slis.
SELECT-OPTIONS: lifnr FOR lfa1-lifnr.
types:begin of fs,
flag type c,
lifnr type lfa1-lifnr,
land1 type lfa1-land1,
name1 type lfa1-name1,
end of fs.
data: itab type table of fs,
wa type fs.
data: fcat type slis_t_fieldcat_alv,
fcat1 type slis_fieldcat_alv.
data: rt_extab type slis_t_extab.
*CONSTANTS : c_check(1) VALUE 'X'.
select lifnr land1 name1 from lfa1 into corresponding FIELDS OF table
itab where lifnr IN
lifnr.
perform sub.
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 = 'PF'
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 = 'vendor details'
I_GRID_SETTINGS =
IS_LAYOUT = LAYOUT
IT_FIELDCAT = fcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = I_EVENT
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_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = itab
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.
form sub.
fcat1-fieldname = 'FLAG'.
fcat1-tabname = 'TAB'.
*fcat1-COL_POS = 1.
fcat1-checkbox = 'X'.
fcat1-edit = 'X'.
append fcat1 to fcat.
CLEAR FCAT1.
fcat1-fieldname = 'LIFNR'.
fcat1-ref_tabname = 'LFA1'.
fcat1-ref_fieldname = 'LIFNR'.
FCAT1-outputlen = 10.
append fcat1 to fcat.
CLEAR FCAT1.
fcat1-fieldname = 'NAME1'.
fcat1-ref_tabname = 'LFA1'.
fcat1-ref_fieldname = 'NAME1'.
append fcat1 to fcat.
CLEAR FCAT1.
fcat1-fieldname = 'LAND1'.
fcat1-ref_tabname = 'LFA1'.
fcat1-ref_fieldname = 'LAND1'.
append fcat1 to fcat.
CLEAR FCAT1.
endform.
form PF USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'ZHAJI_P1' .
ENDFORM.
just give the fine coding -
Button in alv grid cell using REUSE_ALV_GRID_DISPLAY
Hi all,
I want to make the contents of 2 columns of my alv grid as push button with values as text on it. I am not using classes or methods but alv grid fm. On clicking the button one dialog box has to pop up which gives edit option for the values in that coloumn, my question is how to introduce button in alv grid cell? if i can use t_fieldcatalog-icon, then please give me the complete steps for that.
Thanks.this may helps u
u need to copy stadard screen elemetn to MARATAB1(at PF -STATUS)
You should copy the 'STANDARD' GUI status from program <b>SAPLSLVC_FULLSCREEN</b>
type this one in SE41 program name is:<b>SAPLSLVC_FULLSCREEN</b>
status : <b>STANDARD_FULLSCREEN</b>
and copy it ...
Type-pool
type-pools slis.
Tables
tables: mara,sscrfields.
Selection screen
select-options: s_matnr for mara-matnr.
PARAMETERS: p_email TYPE somlreci1-receiver.
TYPES: BEGIN OF t_charmara,
matnr(18) TYPE c, " Material Number
ernam(12) TYPE c, " Person Credited
aenam(12) TYPE c, " Person Changed Object
pstat(15) TYPE c, " Maintenance Status
END OF t_charmara.
Data Declarations
data: rt_extab type slis_t_extab, " Table of inactive function
codes
wa_charmara TYPE t_charmara, " work area of mara Table
fs_fieldcat type slis_t_fieldcat_alv,
" Field catalog with field
descriptions
t_fieldcat like line of fs_fieldcat,
" Table of Field catalog
r_ucomm like sy-ucomm, " User Command
rs_selfield TYPE slis_selfield. " cursor position ALV
data: filedlayout type slis_layout_alv,
heading type slis_t_listheader with header line,
t_event type slis_t_event.
data: fs_event like line of t_event.
data: fs_sort type slis_sortinfo_alv,
t_sort type slis_t_sortinfo_alv.
data: w_char(200) type c,
w_matnr type mara-matnr.
fs_sort-fieldname = 'MATNR'.
fs_sort-up = 'X'.
fs_sort-group = '*'.
append fs_sort to t_sort.
clear fS_sort.
DATA: t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
t_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
t_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE,
w_cnt TYPE i,
w_sent_all(1) TYPE c,
w_doc_data LIKE sodocchgi1,
gd_error TYPE sy-subrc,
gd_reciever TYPE sy-subrc.
Internal Tables
data: begin of it_mara occurs 0,
matnr like mara-matnr, " Material Number
ernam like mara-ernam, " Person Credited
aenam like mara-aenam, " Person Changed Object
pstat like mara-pstat, " Maintenance Status
end of it_mara.
DATA: it_message TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
WITH HEADER LINE.
DATA: it_attach TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
WITH HEADER LINE.
*at selection-screen on field event
AT SELECTION-SCREEN on s_matnr.
PERFORM f0100_VALIDATE_MATERIAL_NUMBER.
start-of-selection.
retrive Data from the data base table Mara
perform retrive_data_from_mara.
end-of-selection.
*Field catalog with field descriptions
perform fieldcat.
*perform top_of_page.
PERFORM EVENT_LIST.
*ALV Grid Display
perform alv_display.
Creating one Push button ENTER
perform maratab1 USING RT_EXTAB.
*& Form f0100_VALIDATE_MATERIAL_NUMBER
text
There are no interface parameters to be passed to this subroutine
FORM F0100_VALIDATE_MATERIAL_NUMBER .
select matnr " Material Number
from mara
up to 1 rows
into mara-matnr
where matnr in s_matnr.
endselect.
IF sy-subrc NE 0.
clear sscrfields-ucomm.
MESSAGE e000 WITH 'Enter valid Material number'(003).
ENDIF. " IF sy-subrc NE 0
ENDFORM. " f0100_VALIDATE_MATERIAL_NUMBER
*& Form retrive_data_from_mara
text
*There are no interface parameters to be passed to this subroutine
FORM retrive_data_from_mara .
select matnr " Material Number
ernam " Person Credited
aenam " Person Changed Object
pstat " Maintenance Status
from mara
into table It_mara
where matnr in s_matnr.
IF sy-subrc NE 0.
MESSAGE i001 WITH 'Records are not found'.
exit.
stop.
ENDIF. " IF sy-subrc NE 0
ENDFORM. " retrive_data_from_mara
*& Form fieldcat
text
*There are no interface parameters to be passed to this subroutine
FORM fieldcat .
*field catalog for MATNR
t_FIELDCAT-REF_TABNAME = 'MARA'.
t_fieldcat-fieldname = 'MATNR'.
t_fieldcat-col_pos = 1.
append t_fieldcat to fs_fieldcat.
clear t_fieldcat.
*field catalog for ERNAM
t_FIELDCAT-REF_TABNAME = 'MARA'.
t_fieldcat-fieldname = 'ERNAM'.
t_fieldcat-col_pos = 2.
append t_fieldcat to fs_fieldcat.
clear t_fieldcat.
*field catalog for AENAM
t_FIELDCAT-REF_TABNAME = 'MARA'.
t_fieldcat-fieldname = 'AENAM'.
t_fieldcat-col_pos = 3.
append t_fieldcat to fs_fieldcat.
clear t_fieldcat.
*field catalog for PSTAT
t_FIELDCAT-REF_TABNAME = 'MARA'.
t_fieldcat-fieldname = 'PSTAT'.
t_fieldcat-col_pos = 4.
append t_fieldcat to fs_fieldcat.
clear t_fieldcat.
ENDFORM. " fieldcat
*& Form EVENT_LIST
text
*There are no interface parameters to be passed to this subroutine
FORM EVENT_LIST .
fs_event-name ='TOP_OF_PAGE'.
fs_event-form = 'TOP_PAGE'.
append fs_event TO t_EVENT.
CLEAR FS_EVENT.
fs_event-name ='END_OF_PAGE'.
fs_event-form = 'END_PAGE'.
append fs_event TO t_EVENT.
CLEAR FS_EVENT.
fs_event-name ='END_OF_LIST'.
fs_event-form = 'LIST_END'.
append fs_event TO t_EVENT.
CLEAR FS_EVENT.
ENDFORM. " EVENT_LIST
*& Form alv_display
text
*There are no interface parameters to be passed to this subroutine
FORM alv_display .
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 = 'MARATAB1'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_STRUCTURE_NAME =
IS_LAYOUT =
IT_FIELDCAT = FS_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = T_SORT
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = T_EVENT
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
IR_SALV_LIST_ADAPTER =
IT_EXCEPT_QINFO =
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_MARA[]
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. " alv_display
form TOP_PAGE.
data:tbl_listheader type slis_t_listheader,
wa_listheader type slis_listheader .
wa_listheader-typ = 'S'.
wa_listheader-info = 'Created by : Vijay Pawar'.
append wa_listheader to tbl_listheader.
wa_listheader-typ = 'S'.
concatenate ' Date ' sy-datum into
wa_listheader-info separated by space.
append wa_listheader to tbl_listheader.
wa_listheader-typ = 'S'.
concatenate ' From ' s_matnr-low ' To ' s_matnr-high into
wa_listheader-info separated by space.
append wa_listheader to tbl_listheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = tbl_listheader
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
endform. " form TOP_PAGE.
form END_PAGE.
STATICS W_PAGE TYPE I .
data:tbl_listheader type slis_t_listheader,
wa_listheader type slis_listheader .
wa_listheader-typ = 'S'.
wa_listheader-info = W_PAGE.
append wa_listheader to tbl_listheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = tbl_listheader
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
add 1 to w_page.
endform. " form END_PAGE.
form list_end.
data:tbl_listheader type slis_t_listheader,
wa_listheader type slis_listheader .
wa_listheader-typ = 'S'.
wa_listheader-info = '......................................Last Page'
append wa_listheader to tbl_listheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = tbl_listheader
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
endform. " form list_end.
*& Form maratab1
text
-->P_RT_EXTAB text
FORM maratab1 USING P_RT_EXTAB.
SET PF-STATUS 'MARATAB1' EXCLUDING rt_extab.
ENDFORM. " maratab1
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
case r_ucomm.
when 'ENTER'.
perform bulid_xls_data_table.
PERFORM send_file_as_email_attachment
tables it_message
it_attach
using p_email "'[email protected]'
'Example .xls documnet attachment'
'XLS'
'filename'
changing gd_error
gd_reciever.
perform populate_email_message_body.
PERFORM initiate_mail_execute_program.
endcase. " case r_ucomm.
endform. " FORM user_command
perform populate_email_message_body.
PERFORM initiate_mail_execute_program.
CALL FUNCTION 'RH_START_EXCEL_WITH_DATA'
EXPORTING
DATA_FILENAME = 'MARA.XLS'
DATA_PATH_FLAG = 'W'
DATA_ENVIRONMENT =
DATA_TABLE = ITAB[]
MACRO_FILENAME =
MACRO_PATH_FLAG = 'E'
MACRO_ENVIRONMENT =
WAIT = 'X'
DELETE_FILE = 'X'
EXCEPTIONS
NO_BATCH = 1
EXCEL_NOT_INSTALLED = 2
INTERNAL_ERROR = 3
CANCELLED = 4
DOWNLOAD_ERROR = 5
NO_AUTHORITY = 6
FILE_NOT_DELETED = 7
OTHERS = 8
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
leave to list-processing.
endcase.
*& Form bulid_xls_data_table
text
*There are no interface parameters to be passed to this subroutine
FORM bulid_xls_data_table .
CONSTANTS: con_cret TYPE x VALUE '0D', "OK for non Unicode
con_tab TYPE x VALUE '09'. "OK for non Unicode
*If you have Unicode check active in program attributes thnen you will
*need to declare constants as follows
*class cl_abap_char_utilities definition load.
constants:
con_tab type c value cl_abap_char_utilities=>HORIZONTAL_TAB,
con_cret type c value cl_abap_char_utilities=>CR_LF.
CONCATENATE 'matnr' 'ernam' 'aenam' 'pstat'
INTO it_attach SEPARATED BY con_tab.
CONCATENATE con_cret it_attach INTO it_attach.
APPEND it_attach.
LOOP AT It_mara INTO wa_charmara.
CONCATENATE wa_charmara-matnr wa_charmara-ernam
wa_charmara-aenam wa_charmara-pstat
INTO it_attach SEPARATED BY con_tab.
CONCATENATE con_cret it_attach INTO it_attach.
APPEND it_attach.
ENDLOOP. " LOOP AT it_mara INTO...
ENDFORM. " bulid_xls_data_table
*& Form send_file_as_email_attachment
Send email
-->P_IT_MESSAGE text
-->P_IT_ATTACH text
-->P_P_EMAIL text
-->P_0387 text
-->P_0388 text
-->P_0389 text
-->P_0390 text
-->P_0391 text
-->P_0392 text
<--P_GD_ERROR text
<--P_GD_RECIEVER text
FORM send_file_as_email_attachment tables pit_message
pit_attach
using p_email
p_mtitle
p_format
p_filename
p_attdescription
p_sender_address
p_sender_addres_type
changing p_error
p_reciever.
DATA: ld_error TYPE sy-subrc,
ld_reciever TYPE sy-subrc,
ld_mtitle LIKE sodocchgi1-obj_descr,
ld_email LIKE somlreci1-receiver,
ld_format TYPE so_obj_tp ,
ld_attdescription TYPE so_obj_nam ,
ld_attfilename TYPE so_obj_des ,
ld_sender_address LIKE soextreci1-receiver,
ld_sender_address_type LIKE soextreci1-adr_typ,
ld_receiver LIKE sy-subrc.
ld_email = p_email.
ld_mtitle = p_mtitle.
ld_format = p_format.
ld_attdescription = p_attdescription.
ld_attfilename = p_filename.
ld_sender_address = p_sender_address.
ld_sender_address_type = p_sender_addres_type.
Fill the document data.
w_doc_data-doc_size = 1.
Populate the subject/generic message attributes
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle .
w_doc_data-sensitivty = 'F'.
Fill the document data and get size of attachment
CLEAR w_doc_data.
READ TABLE it_attach INDEX w_cnt.
w_doc_data-doc_size =
( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle.
w_doc_data-sensitivty = 'F'.
CLEAR t_attachment.
REFRESH t_attachment.
t_attachment[] = pit_attach[].
Describe the body of the message
CLEAR t_packing_list.
REFRESH t_packing_list.
t_packing_list-transf_bin = space.
t_packing_list-head_start = 1.
t_packing_list-head_num = 0.
t_packing_list-body_start = 1.
DESCRIBE TABLE it_message LINES t_packing_list-body_num.
t_packing_list-doc_type = 'RAW'.
APPEND t_packing_list.
Create attachment notification
t_packing_list-transf_bin = 'X'.
t_packing_list-head_start = 1.
t_packing_list-head_num = 1.
t_packing_list-body_start = 1.
DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
t_packing_list-doc_type = ld_format.
t_packing_list-obj_descr = ld_attdescription.
t_packing_list-obj_name = ld_attfilename.
t_packing_list-doc_size = t_packing_list-body_num * 255.
APPEND t_packing_list.
Add the recipients email address
CLEAR t_receivers.
REFRESH t_receivers.
t_receivers-receiver = ld_email.
t_receivers-rec_type = 'U'.
t_receivers-com_type = 'INT'.
t_receivers-notif_del = 'X'.
t_receivers-notif_ndel = 'X'.
APPEND t_receivers.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = w_doc_data
put_in_outbox = 'X'
sender_address = ld_sender_address
sender_address_type = ld_sender_address_type
commit_work = 'X'
IMPORTING
sent_to_all = w_sent_all
TABLES
packing_list = t_packing_list
contents_bin = t_attachment
contents_txt = it_message
receivers = t_receivers
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8.
Populate zerror return code
ld_error = sy-subrc.
Populate zreceiver return code
LOOP AT t_receivers.
ld_receiver = t_receivers-retrn_code.
ENDLOOP.
ENDFORM. " send_file_as_email_attachment
*& Form INITIATE_MAIL_EXECUTE_PROGRAM
Instructs mail send program for SAPCONNECT to send email.
FORM initiate_mail_execute_program.
WAIT UP TO 2 SECONDS.
SUBMIT rsconn01 WITH mode = 'INT'
WITH output = 'X'
AND RETURN.
ENDFORM. " INITIATE_MAIL_EXECUTE_PROGRAM
*& Form POPULATE_EMAIL_MESSAGE_BODY
Populate message body text
form populate_email_message_body.
REFRESH it_message.
it_message = 'Please find attached a list test mara records'.
APPEND it_message.
endform. "form populate_email_message_bod
rewards if it helps u -
FM REUSE_ALV_GRID_DISPLAY - runtime error
I get the following error when I use FM REUSE_ALV_GRID_DISPLAY:
"Field catalog not found".
I realize that it is looking for the parameter it_fieldcat but I don't remember ever passing that parameter before; it also says that it is optional. Below is my call to the FM. Does the addition of it_sort mean that I must pass it_fieldcat?
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
* I_CALLBACK_PROGRAM = ' '
* 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 =
* it_fieldcat = it_fieldcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
it_sort = it_sort
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* is_print = 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
DavisDavis,
I dont know how much it will be of help to you. But this is how I used in one of my programs.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BACKGROUND_ID = 'ALV_BACKGROUND'
I_CALLBACK_PROGRAM = G_REPID
* I_STRUCTURE_NAME = 'SFLIGHT'
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = f_cat[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS = GT_SP_GROUP[]
* IT_SORT = GT_SORT[]
* IT_FILTER =
* IS_SEL_HIDE =
* i_default = g_default
I_SAVE = G_SAVE
IS_VARIANT = G_VARIANT
IT_EVENTS = GT_xEVENTS
* IT_EVENT_EXIT =
* IS_PRINT = GS_PRINT
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
TABLES
T_OUTTAB = bestand.
Regards
Aneesh. -
How to SUM in REUSE_ALV_GRID_DISPLAY ?
Hi,
I have below the code that I use to sort 1 column and sum 3 columns;
PERFORM sort_item USING 'ARBPL' 'X' 'X'.
PERFORM sum_item USING 'NO_OPR' 'X' 'X'.
PERFORM sum_item USING 'LMNGA' 'X' 'X'.
PERFORM sum_item USING 'QTY_MTRS' 'X' 'X'.
FORM sort_item USING fieldname up subtot.
DATA: ls_sort TYPE slis_sortinfo_alv .
CLEAR ls_sort.
ls_sort-fieldname = fieldname.
ls_sort-up = up.
ls_sort-subtot = subtot.
APPEND ls_sort TO g_sort.
ENDFORM.
FORM sum_item USING fieldname group subtot.
DATA: ls_sum TYPE slis_sortinfo_alv .
CLEAR ls_sum.
ls_sum-fieldname = fieldname.
ls_sum-group = group.
ls_sum-subtot = subtot.
APPEND ls_sum TO g_sort.
ENDFORM.
The g_sort is attached to the REUSE_ALV_GRID_DISPLAY as follows;
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = ' '
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 = g_layout
IT_FIELDCAT = g_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = g_sort
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'U'
IS_VARIANT = ls_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 = ittab
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
The 1st column get sorted but sum does not work at all, why?
Thanks,
KishanFor that particular field in the field catalog, please try adding this line when building the catalog.
i_fieldcat-datatype = 'QUAN'.
or try this
*& Form DEFINE_LAYOUT
text
FORM DEFINE_LAYOUT.
LAYOUT-ZEBRA = 'X'.
LAYOUT-SUBTOTALS_TEXT = 'SUBTOTAL SUM'.
LAYOUT-WINDOW_TITLEBAR = 'EXERCISE 2'.
LAYOUT-TOTALS_TEXT = 'TOTAL'.
ENDFORM. "DEFINE_LAYOUT
*& Form SORT_LIST
text
FORM SORT_LIST.
WA_SORT-FIELDNAME = 'VBELN'.
WA_SORT-TABNAME = 'IT_VBAK'.
WA_SORT-SPOS = 1.
WA_SORT-UP = 'X'.
WA_SORT-SUBTOT = 'X'.
APPEND WA_SORT TO IT_SORT.
CLEAR WA_SORT.
WA_SORT-FIELDNAME = 'NETWR'.
WA_SORT-TABNAME = 'IT_VBAK'.
WA_SORT-UP = 'X'.
WA_SORT-SPOS = 2.
WA_SORT-SUBTOT = 'X'.
APPEND WA_SORT TO IT_SORT.
CLEAR WA_SORT.
ENDFORM. "SORT_LIST&----
*& Form LIST_DISP
text
FORM LIST_DISP.
PERFORM DEFINE_LAYOUT.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT = IT_FIELDCAT
IS_LAYOUT = LAYOUT
IT_SORT = IT_SORT
I_CALLBACK_PF_STATUS_SET = 'STATUS'
IT_EXCLUDING = I_FCODE_EXTAB
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_EVENTS = IT_EVENTS[]
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_VBAK
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. "LIST_DISP
*& Form GRID_DISP
text
FORM GRID_DISP.
PERFORM DEFINE_LAYOUT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_SORT = IT_SORT
I_CALLBACK_PF_STATUS_SET = 'STATUS'
IT_EXCLUDING = I_FCODE_EXTAB
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_EVENTS = IT_EVENTS[]
TABLES
T_OUTTAB = IT_VBAK.
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. "GRID_DISP
Maybe you are looking for
-
I am trying to add links, either text or graphic to my regular mail signature. In both cases, textual or graphical, after added they work for one or 2 emails, then go inactive (unclickable). What gives? It'd be great to add a small graphical LinkedIn
-
How WebLogic7.0 & 8.1 JMS connect to MSMQ?
Hi Sir, Is it possible that i use WebLogic JMS connect to MSMQ(Microsoft)? If it possible, how can i configure/implement ? Do I have to create adapter class for MSMQ? Thanks Yos
-
Macbook Pro - No Wi-Fi Hardware or Bluetooth
I have a late 2011 Macbook Pro 13". I had it repaired after water spillage on the laptop. Got everything working and returned to me and then when I turn it on I get 'No Wi-Fi Hardware Installed' and No bluetooth now! I just did a RAM reset, Hardware
-
Adjustment brush not showing correction options
I am in the Develop module trying to use the Adjustment Brush. After selecting the brush I am not seeing the window below that allows me to apply the corrections (exposure, contrast, etc.) I want. This window does show up if I select Graduated or Rad
-
Macbook Pro disc drive failing to burn DVD-R.
I am using a 2007, 17" Macbook Pro with 10.6.8. My drive information in System Profiler reads as follows: MATSHITA DVD-R UJ-85J: Firmware Revision: FBZ8 Interconnect: ATAPI Burn Support: Yes (Apple Shipping Drive)