2006 Jul 11 1:57 PM
When I use REUSE_ALV_BLOCK_APPEND & REUSE_ALV_BLOCK__list_display i am not able to give subtotal and also not able to sort.
Please help me,,iam stuck with my program.can anyone explain with example?
thankss
2006 Jul 11 2:02 PM
Hi,
it is possible...i made it ,
i changed the standard code,.just look for bold one...
report zzbalvbt01 no standard page heading.
* Type-pool enthält Feldkatalogstruktur
type-pools: slis.
* Includes
include <icon>.
include <symbol>.
* Interne Tabelle für Feldkatalog
data: lfield type slis_t_fieldcat_alv.
data: xfield type slis_t_fieldcat_alv.
data: yfield type slis_t_fieldcat_alv.
data: zfield type slis_t_fieldcat_alv.
data: hfield type slis_t_fieldcat_alv.
* Kopfzeile zum Feldkatalog
data: afield type slis_fieldcat_alv.
* Special Groups
data: gt_sp_groups type slis_t_sp_group_alv with header line.
* Zwischensummen und Sortierung
data: gt_zsum type slis_t_sortinfo_alv with header line.
* Filterbedingungen
data: gt_filter type slis_t_filter_alv with header line.
* iTab für Kopfinformationen zur Liste
data: xheader type slis_t_listheader with header line.
* Layoutstruktur
data: gs_layout type slis_layout_alv.
data: x_layout type slis_layout_alv.
data: y_layout type slis_layout_alv.
data: z_layout type slis_layout_alv.
data: h_layout type slis_layout_alv.
data: l_layout type slis_layout_alv.
* Keyinfo
data: gs_keyinfo type slis_keyinfo_alv.
* Excludingtabelle
data: gt_extab type slis_t_extab with header line.
* Layoutstruktur
data: xisetab type slis_seldis_alv.
* Events
data: gt_xevents type slis_t_event.
data: gt_yevents type slis_t_event.
data: gt_zevents type slis_t_event.
data: gt_hevents type slis_t_event.
data: gt_levents type slis_t_event.
data: gt_print type slis_print_alv.
* OK_Code für Layoutpopup
data: ok_code like sy-ucomm.
data: flg_exit(1) type c. " Abbruch des Layoutpopups.
* Farbtabelle für Zelleneinfärbungen
data: gt_color type slis_t_specialcol_alv with header line.
tables: scarr, spfli, sbook.
* Interne Struktur mit Obermenge der möglichen Ausgabefelder
data: begin of xdata occurs 1,
carrid like scarr-carrid,
carrname like scarr-carrname,
currcode like scarr-currcode,
blubber like ltdxt-text,
numc(3) type n, " ohne DDIC-Bezug!
icons(30) type c, " ohne DDIC-Bezug!
symbols(30) type c,
ampel(1) type c,
box(1) type c,
listinfo(3) type c,
* COLINFO TYPE SLIS_T_SPECIALCOL_ALV,
end of xdata.
* Interne Struktur mit Obermenge der möglichen Ausgabefelder
data: begin of ydata occurs 1.
include structure spfli.
data: blubber like ltdxt-text,
numc(3) type n, " ohne DDIC-Bezug!
icons(30) type c, " ohne DDIC-Bezug!
symbols(30) type c,
ampel(1) type c,
box(1) type c,
listinfo(3) type c,
colinfo type slis_t_specialcol_alv,
end of ydata.
data: begin of zdata occurs 1.
include structure sbook.
data: blubber like ltdxt-text,
numc(3) type n, " ohne DDIC-Bezug!
icons(30) type c, " ohne DDIC-Bezug!
symbols(30) type c,
ampel(1) type c,
box(1) type c,
listinfo(3) type c,
colinfo type slis_t_specialcol_alv,
end of zdata.
data: hdata like xdata occurs 0 with header line.
data: ldata like xdata occurs 0 with header line.
data: idata like ydata occurs 0 with header line.
data:
g_exit,
x_save,
default,
x_variant like disvariant,
xs_layout like gs_layout,
xs_event type slis_alv_event,
gt_spfli like spfli occurs 0 with header line,
g_variant like disvariant.
* Report selection
select-options carrid for scarr-carrid.
data: repid like sy-repid.
parameters: pfstatus type slis_formname default 'PF_STATUS_SET'.
parameters: hiersequ as checkbox default 'X'.
parameters: box_tabl(5) default 'IDATA'.
parameters: max_data as checkbox default ' '.
*-----------------------------------------------------------------------
initialization.
repid = sy-repid.
start-of-selection.
perform selection.
perform xevents.
perform levents.
perform yevents.
perform zevents.
perform hevents.
perform fields.
*
call function 'REUSE_ALV_BLOCK_LIST_INIT'
exporting
i_callback_program = repid
i_callback_user_command = 'USER_COMMAND'
i_callback_pf_status_set = pfstatus.
*
x_layout-box_fieldname = 'BOX'.
x_layout-box_tabname = 'XDATA'.
x_layout-lights_fieldname = 'AMPEL'.
x_layout-info_fieldname = 'LISTINFO'.
*
call function 'REUSE_ALV_BLOCK_LIST_APPEND'
exporting
it_fieldcat = xfield
is_layout = x_layout
i_tabname = 'XDATA'
it_events = gt_xevents
i_text = text-0b1
tables
t_outtab = xdata.
*
if hiersequ = space.
* y_layout-no_zebra = 'X'.
y_layout-box_fieldname = 'BOX'.
y_layout-box_tabname = 'YDATA'.
y_layout-info_fieldname = 'LISTINFO'.
call function 'REUSE_ALV_BLOCK_LIST_APPEND'
exporting
it_fieldcat = yfield
is_layout = y_layout
i_tabname = 'YDATA'
it_events = gt_yevents
i_text = text-0b2
tables
t_outtab = ydata.
else.
* h_layout-no_zebra = 'X'.
h_layout-box_fieldname = 'BOX'.
h_layout-box_tabname = box_tabl.
h_layout-info_fieldname = 'LISTINFO'.
gs_keyinfo-header01 = 'CARRID'.
gs_keyinfo-item01 = 'CARRID'.
gs_keyinfo-item02 = 'CONNID'.
call function 'REUSE_ALV_BLOCK_LIST_HS_APPEND'
exporting
is_layout = h_layout
it_fieldcat = hfield
is_keyinfo = gs_keyinfo
i_header_tabname = 'HDATA'
i_item_tabname = 'IDATA'
it_events = gt_hevents
i_text = text-0b2
tables
t_outtab_header = hdata
t_outtab_item = idata.
endif.
<b>data: it_sort type slis_t_sortinfo_alv,
x_sort type slis_sortinfo_alv.
x_sort-fieldname = 'CARRID'.
x_sort-tabname = 'ZDATA'.
x_sort-up = 'X'.
x_sort-subtot = 'X'.
append x_sort to it_sort.</b>
* z_layout-no_zebra = 'X'.
call function 'REUSE_ALV_BLOCK_LIST_APPEND'
exporting
it_fieldcat = zfield
is_layout = z_layout
i_tabname = 'ZDATA'
it_events = gt_zevents
i_text = text-0b3
it_sort = it_sort
tables
t_outtab = zdata.
*
call function 'REUSE_ALV_BLOCK_LIST_APPEND'
exporting
it_fieldcat = lfield
is_layout = l_layout
i_tabname = 'LDATA'
it_events = gt_levents
i_text = text-0b4
tables
t_outtab = ldata.
*
gt_print-reserve_lines = 2.
call function 'REUSE_ALV_BLOCK_LIST_DISPLAY'
exporting
is_print = gt_print.
*---------------------------------------------------------------------*
* FORM FIELDS *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form fields.
data: l_count type i.
*
clear afield.
l_count = l_count + 1.
afield-col_pos = l_count.
afield-fieldname = 'CARRID'.
* AFIELD-TABNAME = 'XDATA'.
afield-ref_tabname = 'SCARR'.
afield-key = 'X'. "define field as key
append afield to xfield.
afield-tabname = 'HDATA'.
append afield to hfield.
afield-tabname = 'LDATA'.
append afield to lfield.
*
clear afield.
l_count = l_count + 1.
afield-col_pos = l_count.
* AFIELD-TABNAME = 'XDATA'.
afield-fieldname = 'CARRNAME'.
afield-ref_tabname = 'SCARR'.
append afield to xfield.
afield-tabname = 'HDATA'.
append afield to hfield.
afield-tabname = 'LDATA'.
append afield to lfield.
*
clear afield.
l_count = l_count + 1.
* AFIELD-TABNAME = 'XDATA'.
afield-col_pos = l_count.
afield-fieldname = 'CURRCODE'.
afield-ref_tabname = 'SCARR'.
* AFIELD-INPUT = INPUT.
append afield to xfield.
afield-tabname = 'HDATA'.
append afield to hfield.
afield-tabname = 'LDATA'.
append afield to lfield.
*
clear afield.
l_count = l_count + 1.
* AFIELD-TABNAME = 'XDATA'.
afield-col_pos = l_count.
afield-fieldname = 'NUMC'.
afield-datatype = 'NUMC'.
afield-reptext_ddic = text-001.
* AFIELD-INPUT = INPUT.
afield-do_sum = 'X'.
append afield to xfield.
afield-tabname = 'HDATA'.
append afield to hfield.
afield-tabname = 'LDATA'.
append afield to lfield.
*
clear afield.
l_count = 0.
l_count = l_count + 1.
afield-col_pos = l_count.
afield-tabname = space.
afield-fieldname = 'CARRID'.
afield-ref_tabname = 'SPFLI'.
afield-key = 'X'. "define field as key
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
*
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-col_pos = l_count.
afield-fieldname = 'CONNID'.
afield-ref_tabname = 'SPFLI'.
afield-key = 'X'. "define field as key
afield-key_sel = 'X'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
*
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-col_pos = l_count.
afield-fieldname = 'CITYFROM'.
afield-ref_tabname = 'SPFLI'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
*
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-col_pos = l_count.
afield-fieldname = 'AIRPFROM'.
afield-ref_tabname = 'SPFLI'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
*
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-col_pos = l_count.
afield-fieldname = 'CITYTO'.
afield-ref_tabname = 'SPFLI'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
*
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-col_pos = l_count.
afield-fieldname = 'AIRPTO'.
afield-ref_tabname = 'SPFLI'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
*
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-col_pos = l_count.
afield-fieldname = 'DEPTIME'.
afield-ref_tabname = 'SPFLI'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
*
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-col_pos = l_count.
afield-fieldname = 'ARRTIME'.
afield-ref_tabname = 'SPFLI'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
*
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-col_pos = l_count.
afield-fieldname = 'FLTIME'.
afield-ref_tabname = 'SPFLI'.
afield-no_out = 'X'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
*
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-col_pos = l_count.
afield-fieldname = 'FLTYPE'.
afield-ref_tabname = 'SPFLI'.
afield-no_out = 'X'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
* Ikonen
l_count = l_count + 1.
clear afield.
afield-col_pos = l_count.
afield-tabname = space.
afield-fieldname = 'ICONS'.
afield-ref_tabname = ' '.
afield-sp_group = 'B'.
afield-reptext_ddic = 'Gpk?'(045).
afield-no_out = 'X'.
afield-icon = 'X'.
afield-datatype = 'CHAR'.
afield-outputlen = '4'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
* Symbole
l_count = l_count + 1.
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-fieldname = 'SYMBOLS'.
afield-ref_tabname = ' '.
afield-col_pos = l_count.
afield-reptext_ddic = 'Prs?'(040).
afield-sp_group = 'B'.
afield-no_out = 'X'.
afield-symbol = 'X'.
afield-datatype = 'CHAR'.
afield-outputlen = '4'.
afield-just = 'C'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
* Gepäckgewicht
l_count = l_count + 1.
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-sp_group = 'A'.
afield-no_out = space.
afield-fieldname = 'DISTANCE'.
afield-ref_tabname = 'SPFLI'.
afield-col_pos = l_count.
afield-no_sign = 'X'.
afield-qfieldname = 'DISTID'.
afield-outputlen = '10'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
* Mengeneinheit
l_count = l_count + 1.
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-sp_group = 'A'.
afield-no_out = space.
afield-fieldname = 'DISTID'.
afield-ref_tabname = 'SPFLI'.
afield-col_pos = l_count.
afield-outputlen = '4'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
* Numc
l_count = l_count + 1.
clear afield.
afield-col_pos = l_count.
afield-tabname = space.
afield-fieldname = 'NUMC'.
afield-col_pos = l_count.
afield-do_sum = 'X'.
afield-sp_group = 'S'.
afield-seltext_s = 'NUMC'.
afield-seltext_m = 'NUMC_U'.
afield-seltext_l = 'NUMC_USER'(041).
afield-datatype = 'NUMC'.
afield-outputlen = '10'.
afield-no_out = space.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
* Blubber
l_count = l_count + 1.
clear afield.
afield-col_pos = l_count.
afield-tabname = space.
afield-fieldname = 'BLUBBER'.
afield-ref_tabname = 'LTDXT'.
afield-ref_fieldname = 'TEXT'.
afield-col_pos = l_count.
afield-hotspot = 'X'.
afield-sp_group = 'S'.
afield-reptext_ddic = 'Kommentar'(043).
afield-datatype = 'CHAR'.
afield-outputlen = '20'.
afield-no_out = 'X'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
* Key
l_count = 0.
clear afield.
afield-fieldname = 'CARRID'.
afield-outputlen = '3'.
afield-key = 'X'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
* AFIELD-OFFSET = '4'.
append afield to zfield.
l_count = l_count + 1.
clear afield.
afield-fieldname = 'FLDATE'.
afield-key = 'X'.
afield-key_sel = 'X'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
append afield to zfield.
l_count = l_count + 1.
clear afield.
afield-fieldname = 'CONNID'.
afield-key = 'X'.
afield-key_sel = 'X'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
append afield to zfield.
l_count = l_count + 1.
clear afield.
afield-fieldname = 'BOOKID'.
afield-key_sel = 'X'.
afield-key = 'X'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
append afield to zfield.
* Ikonen
l_count = l_count + 1.
clear afield.
afield-fieldname = 'ICONS'.
afield-ref_tabname = ' '.
afield-sp_group = 'B'.
afield-col_pos = l_count.
afield-reptext_ddic = 'Gpk?'(045).
afield-no_out = 'X'.
afield-icon = 'X'.
afield-datatype = 'CHAR'.
afield-outputlen = '4'.
append afield to zfield.
* Buchungsdatum
l_count = l_count + 1.
clear afield.
afield-fieldname = 'ORDER_DATE'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-sp_group = 'S'.
append afield to zfield.
* Kundentyp
l_count = l_count + 1.
clear afield.
afield-fieldname = 'CUSTTYPE'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-sp_group = 'S'.
append afield to zfield.
* Kundennummer
l_count = l_count + 1.
clear afield.
afield-fieldname = 'CUSTOMID'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-sp_group = 'S'.
afield-outputlen = '3'.
append afield to zfield.
* Raucher
l_count = l_count + 1.
clear afield.
afield-fieldname = 'SMOKER'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-sp_group = 'S'.
append afield to zfield.
* Flugklasse
l_count = l_count + 1.
clear afield.
afield-fieldname = 'CLASS'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-sp_group = 'S'.
append afield to zfield.
* Rechnungsstellung ja/nein
l_count = l_count + 1.
clear afield.
afield-fieldname = 'INVOICE'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-sp_group = 'S'.
afield-no_out = 'X'.
append afield to zfield.
* Symbole
l_count = l_count + 1.
clear afield.
afield-fieldname = 'SYMBOLS'.
afield-ref_tabname = ' '.
afield-col_pos = l_count.
afield-reptext_ddic = 'Prs?'(040).
afield-sp_group = 'B'.
afield-no_out = 'X'.
afield-symbol = 'X'.
afield-datatype = 'CHAR'.
afield-outputlen = '4'.
afield-just = 'C'.
append afield to zfield.
* Betrag
l_count = l_count + 1.
clear afield.
afield-fieldname = 'LOCCURAM'.
afield-ref_tabname = 'SBOOK'.
afield-sp_group = 'H'.
afield-col_pos = l_count.
afield-cfieldname = 'LOCCURKEY'.
afield-datatype = 'CURR'.
afield-do_sum = 'X'.
afield-outputlen = '10'.
append afield to zfield.
* Währung
l_count = l_count + 1.
clear afield.
afield-fieldname = 'LOCCURKEY'.
afield-tech = ' '.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-outputlen = '4'.
afield-sp_group = 'H'.
append afield to zfield.
* BetragFW
l_count = l_count + 1.
clear afield.
afield-fieldname = 'FORCURAM'.
afield-ref_tabname = 'SBOOK'.
afield-sp_group = 'F'.
afield-col_pos = l_count.
afield-no_out = 'X'.
afield-do_sum = 'X'.
afield-cfieldname = 'FORCURKEY'.
afield-datatype = 'CURR'.
afield-outputlen = '10'.
append afield to zfield.
* Währung
l_count = l_count + 1.
clear afield.
afield-fieldname = 'FORCURKEY'.
afield-sp_group = 'F'.
afield-tech = ' '.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-no_out = 'X'.
afield-outputlen = '4'.
append afield to zfield.
* Gepäckgewicht
l_count = l_count + 1.
clear afield.
afield-sp_group = 'A'.
afield-no_out = 'X'.
afield-fieldname = 'LUGGWEIGHT'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-no_sign = 'X'.
afield-qfieldname = 'WUNIT'.
afield-outputlen = '10'.
append afield to zfield.
* Mengeneinheit
l_count = l_count + 1.
clear afield.
afield-sp_group = 'A'.
afield-no_out = 'X'.
afield-fieldname = 'WUNIT'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-outputlen = '4'.
append afield to zfield.
* Numc
l_count = l_count + 1.
clear afield.
afield-fieldname = 'NUMC'.
afield-col_pos = l_count.
afield-sp_group = 'S'.
afield-seltext_s = 'NUMC'.
afield-seltext_m = 'NUMC_U'.
afield-seltext_l = 'NUMC_USER'(041).
afield-datatype = 'NUMC'.
afield-outputlen = '10'.
afield-no_out = 'X'.
append afield to zfield.
* Blubber
l_count = l_count + 1.
clear afield.
afield-fieldname = 'BLUBBER'.
afield-ref_tabname = 'LTDXT'.
afield-ref_fieldname = 'TEXT'.
afield-col_pos = l_count.
afield-hotspot = 'X'.
afield-sp_group = 'S'.
afield-reptext_ddic = 'Kommentar'(043).
afield-datatype = 'CHAR'.
afield-outputlen = '20'.
afield-no_out = 'X'.
append afield to zfield.
endform. " FIELDS
*&---------------------------------------------------------------------*
*& Form SELECTION
*&---------------------------------------------------------------------*
* Selektion von Beispieldaten *
*----------------------------------------------------------------------*
* <-> XDATA Globale Datentabelle für Listausgabe
*----------------------------------------------------------------------*
form selection.
data: l_tabix like sy-tabix.
data: lt_sbook like sbook occurs 1 with header line.
data: l_tabix2 like sy-tabix.
* Read Data
select * from scarr into corresponding fields of
table xdata where carrid in carrid.
select * from spfli into table gt_spfli for all entries in xdata
where carrid = xdata-carrid.
loop at gt_spfli.
ydata-numc = sy-tabix div 5.
move-corresponding gt_spfli to ydata.
append ydata.
endloop.
loop at xdata.
xdata-numc = sy-tabix div 4.
l_tabix = sy-tabix.
refresh gt_color.
clear gt_color.
if l_tabix > 5.
xdata-ampel = '1'.
elseif xdata-currcode = 'USD'.
xdata-ampel = '2'.
else.
xdata-ampel = '3'.
endif.
if xdata-currcode = 'LIT'.
gt_color-fieldname = 'CURRCODE'.
gt_color-color-col = 6.
gt_color-color-int = 0.
append gt_color.
xdata-symbols = sym_plus_circle.
elseif xdata-currcode = 'DEM'.
gt_color-color-col = 5.
gt_color-color-int = 0.
append gt_color.
xdata-symbols = sym_filled_square.
else.
gt_color-fieldname = 'CURRCODE'.
gt_color-color-col = 7.
gt_color-color-int = 1.
gt_color-color-inv = 1.
append gt_color.
xdata-symbols = sym_filled_diamond.
endif.
modify xdata.
endloop.
*
hdata[] = xdata[].
ldata[] = xdata[].
idata[] = ydata[].
*
select * from sbook up to 50 rows.
l_tabix = l_tabix + 1.
l_tabix2 = l_tabix2 + 1.
move-corresponding sbook to zdata.
if l_tabix > 20.
zdata-carrid = 'LH'.
zdata-connid = '47'.
endif.
if l_tabix > 14 and l_tabix <= 20 or
l_tabix > 25.
zdata-fldate = zdata-fldate + 1.
endif.
if l_tabix2 > 7 and l_tabix <= 20.
zdata-connid = 49.
elseif l_tabix >= 26.
zdata-connid = 51.
endif.
if l_tabix2 >= 14 and l_tabix <= 20 .
clear l_tabix2.
endif.
append zdata.
endselect.
loop at zdata.
l_tabix = sy-tabix.
if l_tabix = 1.
zdata-loccuram = 520.
endif.
refresh gt_color.
clear gt_color.
if zdata-loccuram < 500.
zdata-ampel = '1'.
elseif zdata-loccuram < 530.
zdata-ampel = '2'.
else.
zdata-ampel = '3'.
endif.
if zdata-loccuram > 600.
gt_color-fieldname = 'LOCCURAM'.
gt_color-color-col = 6.
gt_color-color-int = 0.
append gt_color.
zdata-symbols = sym_plus_circle.
elseif zdata-loccuram > 500.
gt_color-color-col = 5.
gt_color-color-int = 0.
append gt_color.
zdata-symbols = sym_filled_square.
else.
gt_color-fieldname = 'LOCCURAM'.
gt_color-color-col = 7.
gt_color-color-int = 1.
gt_color-color-inv = 1.
append gt_color.
zdata-symbols = sym_filled_diamond.
endif.
if zdata-luggweight = 0.
zdata-icons = icon_incomplete.
gt_color-fieldname = 'LUGGWEIGHT'.
gt_color-color-col = 4.
gt_color-color-int = 1.
gt_color-color-inv = 1.
append gt_color.
elseif zdata-luggweight < 45.
zdata-icons = icon_checked.
gt_color-fieldname = 'LUGGWEIGHT'.
gt_color-color-col = 6.
gt_color-color-int = 1.
gt_color-color-inv = 1.
append gt_color.
else.
zdata-icons = icon_failure.
gt_color-fieldname = 'LUGGWEIGHT'.
gt_color-color-col = 5.
gt_color-color-int = 1.
gt_color-color-inv = 1.
append gt_color.
endif.
zdata-numc = ( l_tabix div 10 ) * 10.
zdata-colinfo = gt_color[].
if not zdata-luggweight is initial.
move '??' to zdata-wunit.
endif.
modify zdata.
endloop.
if max_data = 'X'.
do 100 times.
append xdata.
append ydata.
append zdata.
* append hdata.
* append idata.
enddo.
endif.
endform. " SELECTION
*---------------------------------------------------------------------*
* FORM EVENTS *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form levents.
endform.
form xevents.
clear xs_event.
xs_event-name = slis_ev_end_of_page.
xs_event-form = 'XEND_OF_PAGE'.
append xs_event to gt_xevents.
clear xs_event.
xs_event-name = slis_ev_top_of_page.
xs_event-form = 'XTOP_OF_PAGE'.
append xs_event to gt_xevents.
clear xs_event.
xs_event-name = slis_ev_top_of_list.
xs_event-form = 'XTOP_OF_LIST'.
append xs_event to gt_xevents.
clear xs_event.
xs_event-name = slis_ev_end_of_list.
xs_event-form = 'XEND_OF_LIST'.
append xs_event to gt_xevents.
clear xs_event.
* XS_EVENT-NAME = SLIS_EV_BEFORE_LINE_OUTPUT.
* XS_EVENT-FORM = 'XBEFORE_LINE_OUTPUT'.
* APPEND XS_EVENT TO GT_XEVENTS.
endform.
*---------------------------------------------------------------------*
* FORM YEVENTS *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form yevents.
clear xs_event.
xs_event-name = slis_ev_end_of_page.
xs_event-form = 'YEND_OF_PAGE'.
append xs_event to gt_yevents.
clear xs_event.
xs_event-name = slis_ev_top_of_page.
xs_event-form = 'YTOP_OF_PAGE'.
append xs_event to gt_yevents.
clear xs_event.
xs_event-name = slis_ev_top_of_list.
xs_event-form = 'YTOP_OF_LIST'.
append xs_event to gt_yevents.
clear xs_event.
xs_event-name = slis_ev_end_of_list.
xs_event-form = 'YEND_OF_LIST'.
append xs_event to gt_yevents.
endform.
form hevents.
clear xs_event.
xs_event-name = slis_ev_top_of_page.
xs_event-form = 'HTOP_OF_PAGE'.
append xs_event to gt_hevents.
clear xs_event.
xs_event-name = slis_ev_top_of_list.
xs_event-form = 'HTOP_OF_LIST'.
append xs_event to gt_hevents.
clear xs_event.
xs_event-name = slis_ev_end_of_list.
xs_event-form = 'HEND_OF_LIST'.
append xs_event to gt_hevents.
endform.
form zevents.
* CLEAR XS_EVENT.
* XS_EVENT-NAME = SLIS_EV_BEFORE_LINE_OUTPUT.
* XS_EVENT-FORM = 'ZBEFORE_LINE_OUTPUT'.
* APPEND XS_EVENT TO GT_ZEVENTS.
endform.
*
form zbefore_line_output using lineinfo type slis_lineinfo.
write at /20 'HalloZ'.
endform.
form xbefore_line_output using lineinfo type slis_lineinfo.
write at /20 'HalloX'.
endform.
form xtop_of_page.
* BREAK-POINT.
write: / 'X_TOP_OF_PAGE'.
endform.
*---------------------------------------------------------------------*
* FORM XTOP_OF_LIST *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form xtop_of_list.
* BREAK-POINT.
write: / 'X_TOP_OF_LIST'.
endform.
*---------------------------------------------------------------------*
* FORM XEND_OF_PAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form xend_of_page.
* BREAK-POINT.
write: / 'X_END_OF_PAGE'.
endform.
*---------------------------------------------------------------------*
* FORM XEND_OF_LIST *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form xend_of_list.
* BREAK-POINT.
write: / 'X_END_OF_LIST'.
endform.
*
form ytop_of_page.
* BREAK-POINT.
write: / 'Y_TOP_OF_PAGE'.
endform.
*---------------------------------------------------------------------*
* FORM YTOP_OF_LIST *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form ytop_of_list.
* BREAK-POINT.
write: / 'Y_TOP_OF_LIST'.
endform.
*---------------------------------------------------------------------*
* FORM YEND_OF_PAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form yend_of_page.
* BREAK-POINT.
write: / 'Y_END_OF_PAGE'.
endform.
*---------------------------------------------------------------------*
* FORM YEND_OF_LIST *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form yend_of_list.
* BREAK-POINT.
write: / 'Y_END_OF_LIST'.
endform.
*
*---------------------------------------------------------------------*
* FORM YTOP_OF_LIST *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form htop_of_list.
* BREAK-POINT.
write: / 'h_TOP_OF_LIST'.
endform.
*---------------------------------------------------------------------*
* FORM YEND_OF_PAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form hend_of_page.
* BREAK-POINT.
write: / 'h_END_OF_PAGE'.
endform.
*---------------------------------------------------------------------*
* FORM YEND_OF_LIST *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form hend_of_list.
* BREAK-POINT.
write: / 'h_END_OF_LIST'.
endform.
*
form user_command using r_ucomm like sy-ucomm
rs_selfield type slis_selfield.
case r_ucomm.
when 'REFR'.
loop at xdata.
if xdata-box = 'X'.
xdata-listinfo = 'C50'.
else.
xdata-listinfo = space.
endif.
modify xdata.
endloop.
loop at ydata.
if ydata-box = 'X'.
ydata-listinfo = 'C50'.
else.
ydata-listinfo = space.
endif.
modify ydata.
endloop.
loop at idata.
if idata-box = 'X'.
idata-listinfo = 'C50'.
else.
idata-listinfo = space.
endif.
modify idata.
endloop.
* LOOP AT HDATA.
* IF HDATA-BOX = 'X'.
* HDATA-LISTINFO = 'C50'.
* ELSE.
* HDATA-LISTINFO = SPACE.
* ENDIF.
* MODIFY HDATA.
* ENDLOOP.
rs_selfield-refresh = 'X'.
when others.
endcase.
endform.
*---------------------------------------------------------------------*
* FORM PF_STATUS_SET *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> EXTAB *
*---------------------------------------------------------------------*
form pf_status_set using extab type slis_t_extab.
* BREAK-POINT.
set pf-status 'STANDARD' excluding extab.
endform.Just copy the BALVBT01 program(copy all components) and place the BOLD code exactly the same place. and see..
Regards
vijay
When I use REUSE_ALV_BLOCK_APPEND & REUSE_ALV_BLOCK__list_display i am not able to give subtotal and also not able to sort.
Please help me,,iam stuck with my program.can anyone explain with example?
thankss
2006 Jul 11 1:59 PM
Hi
You should try to use the REUSE_ALV__list_display and break the page by sorted table.
In this case you cna create several blocks, but every block is write on new page.
Max
2006 Jul 11 2:02 PM
Hi,
it is possible...i made it ,
i changed the standard code,.just look for bold one...
report zzbalvbt01 no standard page heading.
* Type-pool enthält Feldkatalogstruktur
type-pools: slis.
* Includes
include <icon>.
include <symbol>.
* Interne Tabelle für Feldkatalog
data: lfield type slis_t_fieldcat_alv.
data: xfield type slis_t_fieldcat_alv.
data: yfield type slis_t_fieldcat_alv.
data: zfield type slis_t_fieldcat_alv.
data: hfield type slis_t_fieldcat_alv.
* Kopfzeile zum Feldkatalog
data: afield type slis_fieldcat_alv.
* Special Groups
data: gt_sp_groups type slis_t_sp_group_alv with header line.
* Zwischensummen und Sortierung
data: gt_zsum type slis_t_sortinfo_alv with header line.
* Filterbedingungen
data: gt_filter type slis_t_filter_alv with header line.
* iTab für Kopfinformationen zur Liste
data: xheader type slis_t_listheader with header line.
* Layoutstruktur
data: gs_layout type slis_layout_alv.
data: x_layout type slis_layout_alv.
data: y_layout type slis_layout_alv.
data: z_layout type slis_layout_alv.
data: h_layout type slis_layout_alv.
data: l_layout type slis_layout_alv.
* Keyinfo
data: gs_keyinfo type slis_keyinfo_alv.
* Excludingtabelle
data: gt_extab type slis_t_extab with header line.
* Layoutstruktur
data: xisetab type slis_seldis_alv.
* Events
data: gt_xevents type slis_t_event.
data: gt_yevents type slis_t_event.
data: gt_zevents type slis_t_event.
data: gt_hevents type slis_t_event.
data: gt_levents type slis_t_event.
data: gt_print type slis_print_alv.
* OK_Code für Layoutpopup
data: ok_code like sy-ucomm.
data: flg_exit(1) type c. " Abbruch des Layoutpopups.
* Farbtabelle für Zelleneinfärbungen
data: gt_color type slis_t_specialcol_alv with header line.
tables: scarr, spfli, sbook.
* Interne Struktur mit Obermenge der möglichen Ausgabefelder
data: begin of xdata occurs 1,
carrid like scarr-carrid,
carrname like scarr-carrname,
currcode like scarr-currcode,
blubber like ltdxt-text,
numc(3) type n, " ohne DDIC-Bezug!
icons(30) type c, " ohne DDIC-Bezug!
symbols(30) type c,
ampel(1) type c,
box(1) type c,
listinfo(3) type c,
* COLINFO TYPE SLIS_T_SPECIALCOL_ALV,
end of xdata.
* Interne Struktur mit Obermenge der möglichen Ausgabefelder
data: begin of ydata occurs 1.
include structure spfli.
data: blubber like ltdxt-text,
numc(3) type n, " ohne DDIC-Bezug!
icons(30) type c, " ohne DDIC-Bezug!
symbols(30) type c,
ampel(1) type c,
box(1) type c,
listinfo(3) type c,
colinfo type slis_t_specialcol_alv,
end of ydata.
data: begin of zdata occurs 1.
include structure sbook.
data: blubber like ltdxt-text,
numc(3) type n, " ohne DDIC-Bezug!
icons(30) type c, " ohne DDIC-Bezug!
symbols(30) type c,
ampel(1) type c,
box(1) type c,
listinfo(3) type c,
colinfo type slis_t_specialcol_alv,
end of zdata.
data: hdata like xdata occurs 0 with header line.
data: ldata like xdata occurs 0 with header line.
data: idata like ydata occurs 0 with header line.
data:
g_exit,
x_save,
default,
x_variant like disvariant,
xs_layout like gs_layout,
xs_event type slis_alv_event,
gt_spfli like spfli occurs 0 with header line,
g_variant like disvariant.
* Report selection
select-options carrid for scarr-carrid.
data: repid like sy-repid.
parameters: pfstatus type slis_formname default 'PF_STATUS_SET'.
parameters: hiersequ as checkbox default 'X'.
parameters: box_tabl(5) default 'IDATA'.
parameters: max_data as checkbox default ' '.
*-----------------------------------------------------------------------
initialization.
repid = sy-repid.
start-of-selection.
perform selection.
perform xevents.
perform levents.
perform yevents.
perform zevents.
perform hevents.
perform fields.
*
call function 'REUSE_ALV_BLOCK_LIST_INIT'
exporting
i_callback_program = repid
i_callback_user_command = 'USER_COMMAND'
i_callback_pf_status_set = pfstatus.
*
x_layout-box_fieldname = 'BOX'.
x_layout-box_tabname = 'XDATA'.
x_layout-lights_fieldname = 'AMPEL'.
x_layout-info_fieldname = 'LISTINFO'.
*
call function 'REUSE_ALV_BLOCK_LIST_APPEND'
exporting
it_fieldcat = xfield
is_layout = x_layout
i_tabname = 'XDATA'
it_events = gt_xevents
i_text = text-0b1
tables
t_outtab = xdata.
*
if hiersequ = space.
* y_layout-no_zebra = 'X'.
y_layout-box_fieldname = 'BOX'.
y_layout-box_tabname = 'YDATA'.
y_layout-info_fieldname = 'LISTINFO'.
call function 'REUSE_ALV_BLOCK_LIST_APPEND'
exporting
it_fieldcat = yfield
is_layout = y_layout
i_tabname = 'YDATA'
it_events = gt_yevents
i_text = text-0b2
tables
t_outtab = ydata.
else.
* h_layout-no_zebra = 'X'.
h_layout-box_fieldname = 'BOX'.
h_layout-box_tabname = box_tabl.
h_layout-info_fieldname = 'LISTINFO'.
gs_keyinfo-header01 = 'CARRID'.
gs_keyinfo-item01 = 'CARRID'.
gs_keyinfo-item02 = 'CONNID'.
call function 'REUSE_ALV_BLOCK_LIST_HS_APPEND'
exporting
is_layout = h_layout
it_fieldcat = hfield
is_keyinfo = gs_keyinfo
i_header_tabname = 'HDATA'
i_item_tabname = 'IDATA'
it_events = gt_hevents
i_text = text-0b2
tables
t_outtab_header = hdata
t_outtab_item = idata.
endif.
<b>data: it_sort type slis_t_sortinfo_alv,
x_sort type slis_sortinfo_alv.
x_sort-fieldname = 'CARRID'.
x_sort-tabname = 'ZDATA'.
x_sort-up = 'X'.
x_sort-subtot = 'X'.
append x_sort to it_sort.</b>
* z_layout-no_zebra = 'X'.
call function 'REUSE_ALV_BLOCK_LIST_APPEND'
exporting
it_fieldcat = zfield
is_layout = z_layout
i_tabname = 'ZDATA'
it_events = gt_zevents
i_text = text-0b3
it_sort = it_sort
tables
t_outtab = zdata.
*
call function 'REUSE_ALV_BLOCK_LIST_APPEND'
exporting
it_fieldcat = lfield
is_layout = l_layout
i_tabname = 'LDATA'
it_events = gt_levents
i_text = text-0b4
tables
t_outtab = ldata.
*
gt_print-reserve_lines = 2.
call function 'REUSE_ALV_BLOCK_LIST_DISPLAY'
exporting
is_print = gt_print.
*---------------------------------------------------------------------*
* FORM FIELDS *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form fields.
data: l_count type i.
*
clear afield.
l_count = l_count + 1.
afield-col_pos = l_count.
afield-fieldname = 'CARRID'.
* AFIELD-TABNAME = 'XDATA'.
afield-ref_tabname = 'SCARR'.
afield-key = 'X'. "define field as key
append afield to xfield.
afield-tabname = 'HDATA'.
append afield to hfield.
afield-tabname = 'LDATA'.
append afield to lfield.
*
clear afield.
l_count = l_count + 1.
afield-col_pos = l_count.
* AFIELD-TABNAME = 'XDATA'.
afield-fieldname = 'CARRNAME'.
afield-ref_tabname = 'SCARR'.
append afield to xfield.
afield-tabname = 'HDATA'.
append afield to hfield.
afield-tabname = 'LDATA'.
append afield to lfield.
*
clear afield.
l_count = l_count + 1.
* AFIELD-TABNAME = 'XDATA'.
afield-col_pos = l_count.
afield-fieldname = 'CURRCODE'.
afield-ref_tabname = 'SCARR'.
* AFIELD-INPUT = INPUT.
append afield to xfield.
afield-tabname = 'HDATA'.
append afield to hfield.
afield-tabname = 'LDATA'.
append afield to lfield.
*
clear afield.
l_count = l_count + 1.
* AFIELD-TABNAME = 'XDATA'.
afield-col_pos = l_count.
afield-fieldname = 'NUMC'.
afield-datatype = 'NUMC'.
afield-reptext_ddic = text-001.
* AFIELD-INPUT = INPUT.
afield-do_sum = 'X'.
append afield to xfield.
afield-tabname = 'HDATA'.
append afield to hfield.
afield-tabname = 'LDATA'.
append afield to lfield.
*
clear afield.
l_count = 0.
l_count = l_count + 1.
afield-col_pos = l_count.
afield-tabname = space.
afield-fieldname = 'CARRID'.
afield-ref_tabname = 'SPFLI'.
afield-key = 'X'. "define field as key
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
*
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-col_pos = l_count.
afield-fieldname = 'CONNID'.
afield-ref_tabname = 'SPFLI'.
afield-key = 'X'. "define field as key
afield-key_sel = 'X'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
*
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-col_pos = l_count.
afield-fieldname = 'CITYFROM'.
afield-ref_tabname = 'SPFLI'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
*
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-col_pos = l_count.
afield-fieldname = 'AIRPFROM'.
afield-ref_tabname = 'SPFLI'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
*
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-col_pos = l_count.
afield-fieldname = 'CITYTO'.
afield-ref_tabname = 'SPFLI'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
*
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-col_pos = l_count.
afield-fieldname = 'AIRPTO'.
afield-ref_tabname = 'SPFLI'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
*
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-col_pos = l_count.
afield-fieldname = 'DEPTIME'.
afield-ref_tabname = 'SPFLI'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
*
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-col_pos = l_count.
afield-fieldname = 'ARRTIME'.
afield-ref_tabname = 'SPFLI'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
*
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-col_pos = l_count.
afield-fieldname = 'FLTIME'.
afield-ref_tabname = 'SPFLI'.
afield-no_out = 'X'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
*
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-col_pos = l_count.
afield-fieldname = 'FLTYPE'.
afield-ref_tabname = 'SPFLI'.
afield-no_out = 'X'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
* Ikonen
l_count = l_count + 1.
clear afield.
afield-col_pos = l_count.
afield-tabname = space.
afield-fieldname = 'ICONS'.
afield-ref_tabname = ' '.
afield-sp_group = 'B'.
afield-reptext_ddic = 'Gpk?'(045).
afield-no_out = 'X'.
afield-icon = 'X'.
afield-datatype = 'CHAR'.
afield-outputlen = '4'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
* Symbole
l_count = l_count + 1.
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-fieldname = 'SYMBOLS'.
afield-ref_tabname = ' '.
afield-col_pos = l_count.
afield-reptext_ddic = 'Prs?'(040).
afield-sp_group = 'B'.
afield-no_out = 'X'.
afield-symbol = 'X'.
afield-datatype = 'CHAR'.
afield-outputlen = '4'.
afield-just = 'C'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
* Gepäckgewicht
l_count = l_count + 1.
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-sp_group = 'A'.
afield-no_out = space.
afield-fieldname = 'DISTANCE'.
afield-ref_tabname = 'SPFLI'.
afield-col_pos = l_count.
afield-no_sign = 'X'.
afield-qfieldname = 'DISTID'.
afield-outputlen = '10'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
* Mengeneinheit
l_count = l_count + 1.
clear afield.
l_count = l_count + 1.
afield-tabname = space.
afield-sp_group = 'A'.
afield-no_out = space.
afield-fieldname = 'DISTID'.
afield-ref_tabname = 'SPFLI'.
afield-col_pos = l_count.
afield-outputlen = '4'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
* Numc
l_count = l_count + 1.
clear afield.
afield-col_pos = l_count.
afield-tabname = space.
afield-fieldname = 'NUMC'.
afield-col_pos = l_count.
afield-do_sum = 'X'.
afield-sp_group = 'S'.
afield-seltext_s = 'NUMC'.
afield-seltext_m = 'NUMC_U'.
afield-seltext_l = 'NUMC_USER'(041).
afield-datatype = 'NUMC'.
afield-outputlen = '10'.
afield-no_out = space.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
* Blubber
l_count = l_count + 1.
clear afield.
afield-col_pos = l_count.
afield-tabname = space.
afield-fieldname = 'BLUBBER'.
afield-ref_tabname = 'LTDXT'.
afield-ref_fieldname = 'TEXT'.
afield-col_pos = l_count.
afield-hotspot = 'X'.
afield-sp_group = 'S'.
afield-reptext_ddic = 'Kommentar'(043).
afield-datatype = 'CHAR'.
afield-outputlen = '20'.
afield-no_out = 'X'.
append afield to yfield.
afield-tabname = 'IDATA'.
append afield to hfield.
* Key
l_count = 0.
clear afield.
afield-fieldname = 'CARRID'.
afield-outputlen = '3'.
afield-key = 'X'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
* AFIELD-OFFSET = '4'.
append afield to zfield.
l_count = l_count + 1.
clear afield.
afield-fieldname = 'FLDATE'.
afield-key = 'X'.
afield-key_sel = 'X'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
append afield to zfield.
l_count = l_count + 1.
clear afield.
afield-fieldname = 'CONNID'.
afield-key = 'X'.
afield-key_sel = 'X'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
append afield to zfield.
l_count = l_count + 1.
clear afield.
afield-fieldname = 'BOOKID'.
afield-key_sel = 'X'.
afield-key = 'X'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
append afield to zfield.
* Ikonen
l_count = l_count + 1.
clear afield.
afield-fieldname = 'ICONS'.
afield-ref_tabname = ' '.
afield-sp_group = 'B'.
afield-col_pos = l_count.
afield-reptext_ddic = 'Gpk?'(045).
afield-no_out = 'X'.
afield-icon = 'X'.
afield-datatype = 'CHAR'.
afield-outputlen = '4'.
append afield to zfield.
* Buchungsdatum
l_count = l_count + 1.
clear afield.
afield-fieldname = 'ORDER_DATE'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-sp_group = 'S'.
append afield to zfield.
* Kundentyp
l_count = l_count + 1.
clear afield.
afield-fieldname = 'CUSTTYPE'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-sp_group = 'S'.
append afield to zfield.
* Kundennummer
l_count = l_count + 1.
clear afield.
afield-fieldname = 'CUSTOMID'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-sp_group = 'S'.
afield-outputlen = '3'.
append afield to zfield.
* Raucher
l_count = l_count + 1.
clear afield.
afield-fieldname = 'SMOKER'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-sp_group = 'S'.
append afield to zfield.
* Flugklasse
l_count = l_count + 1.
clear afield.
afield-fieldname = 'CLASS'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-sp_group = 'S'.
append afield to zfield.
* Rechnungsstellung ja/nein
l_count = l_count + 1.
clear afield.
afield-fieldname = 'INVOICE'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-sp_group = 'S'.
afield-no_out = 'X'.
append afield to zfield.
* Symbole
l_count = l_count + 1.
clear afield.
afield-fieldname = 'SYMBOLS'.
afield-ref_tabname = ' '.
afield-col_pos = l_count.
afield-reptext_ddic = 'Prs?'(040).
afield-sp_group = 'B'.
afield-no_out = 'X'.
afield-symbol = 'X'.
afield-datatype = 'CHAR'.
afield-outputlen = '4'.
afield-just = 'C'.
append afield to zfield.
* Betrag
l_count = l_count + 1.
clear afield.
afield-fieldname = 'LOCCURAM'.
afield-ref_tabname = 'SBOOK'.
afield-sp_group = 'H'.
afield-col_pos = l_count.
afield-cfieldname = 'LOCCURKEY'.
afield-datatype = 'CURR'.
afield-do_sum = 'X'.
afield-outputlen = '10'.
append afield to zfield.
* Währung
l_count = l_count + 1.
clear afield.
afield-fieldname = 'LOCCURKEY'.
afield-tech = ' '.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-outputlen = '4'.
afield-sp_group = 'H'.
append afield to zfield.
* BetragFW
l_count = l_count + 1.
clear afield.
afield-fieldname = 'FORCURAM'.
afield-ref_tabname = 'SBOOK'.
afield-sp_group = 'F'.
afield-col_pos = l_count.
afield-no_out = 'X'.
afield-do_sum = 'X'.
afield-cfieldname = 'FORCURKEY'.
afield-datatype = 'CURR'.
afield-outputlen = '10'.
append afield to zfield.
* Währung
l_count = l_count + 1.
clear afield.
afield-fieldname = 'FORCURKEY'.
afield-sp_group = 'F'.
afield-tech = ' '.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-no_out = 'X'.
afield-outputlen = '4'.
append afield to zfield.
* Gepäckgewicht
l_count = l_count + 1.
clear afield.
afield-sp_group = 'A'.
afield-no_out = 'X'.
afield-fieldname = 'LUGGWEIGHT'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-no_sign = 'X'.
afield-qfieldname = 'WUNIT'.
afield-outputlen = '10'.
append afield to zfield.
* Mengeneinheit
l_count = l_count + 1.
clear afield.
afield-sp_group = 'A'.
afield-no_out = 'X'.
afield-fieldname = 'WUNIT'.
afield-ref_tabname = 'SBOOK'.
afield-col_pos = l_count.
afield-outputlen = '4'.
append afield to zfield.
* Numc
l_count = l_count + 1.
clear afield.
afield-fieldname = 'NUMC'.
afield-col_pos = l_count.
afield-sp_group = 'S'.
afield-seltext_s = 'NUMC'.
afield-seltext_m = 'NUMC_U'.
afield-seltext_l = 'NUMC_USER'(041).
afield-datatype = 'NUMC'.
afield-outputlen = '10'.
afield-no_out = 'X'.
append afield to zfield.
* Blubber
l_count = l_count + 1.
clear afield.
afield-fieldname = 'BLUBBER'.
afield-ref_tabname = 'LTDXT'.
afield-ref_fieldname = 'TEXT'.
afield-col_pos = l_count.
afield-hotspot = 'X'.
afield-sp_group = 'S'.
afield-reptext_ddic = 'Kommentar'(043).
afield-datatype = 'CHAR'.
afield-outputlen = '20'.
afield-no_out = 'X'.
append afield to zfield.
endform. " FIELDS
*&---------------------------------------------------------------------*
*& Form SELECTION
*&---------------------------------------------------------------------*
* Selektion von Beispieldaten *
*----------------------------------------------------------------------*
* <-> XDATA Globale Datentabelle für Listausgabe
*----------------------------------------------------------------------*
form selection.
data: l_tabix like sy-tabix.
data: lt_sbook like sbook occurs 1 with header line.
data: l_tabix2 like sy-tabix.
* Read Data
select * from scarr into corresponding fields of
table xdata where carrid in carrid.
select * from spfli into table gt_spfli for all entries in xdata
where carrid = xdata-carrid.
loop at gt_spfli.
ydata-numc = sy-tabix div 5.
move-corresponding gt_spfli to ydata.
append ydata.
endloop.
loop at xdata.
xdata-numc = sy-tabix div 4.
l_tabix = sy-tabix.
refresh gt_color.
clear gt_color.
if l_tabix > 5.
xdata-ampel = '1'.
elseif xdata-currcode = 'USD'.
xdata-ampel = '2'.
else.
xdata-ampel = '3'.
endif.
if xdata-currcode = 'LIT'.
gt_color-fieldname = 'CURRCODE'.
gt_color-color-col = 6.
gt_color-color-int = 0.
append gt_color.
xdata-symbols = sym_plus_circle.
elseif xdata-currcode = 'DEM'.
gt_color-color-col = 5.
gt_color-color-int = 0.
append gt_color.
xdata-symbols = sym_filled_square.
else.
gt_color-fieldname = 'CURRCODE'.
gt_color-color-col = 7.
gt_color-color-int = 1.
gt_color-color-inv = 1.
append gt_color.
xdata-symbols = sym_filled_diamond.
endif.
modify xdata.
endloop.
*
hdata[] = xdata[].
ldata[] = xdata[].
idata[] = ydata[].
*
select * from sbook up to 50 rows.
l_tabix = l_tabix + 1.
l_tabix2 = l_tabix2 + 1.
move-corresponding sbook to zdata.
if l_tabix > 20.
zdata-carrid = 'LH'.
zdata-connid = '47'.
endif.
if l_tabix > 14 and l_tabix <= 20 or
l_tabix > 25.
zdata-fldate = zdata-fldate + 1.
endif.
if l_tabix2 > 7 and l_tabix <= 20.
zdata-connid = 49.
elseif l_tabix >= 26.
zdata-connid = 51.
endif.
if l_tabix2 >= 14 and l_tabix <= 20 .
clear l_tabix2.
endif.
append zdata.
endselect.
loop at zdata.
l_tabix = sy-tabix.
if l_tabix = 1.
zdata-loccuram = 520.
endif.
refresh gt_color.
clear gt_color.
if zdata-loccuram < 500.
zdata-ampel = '1'.
elseif zdata-loccuram < 530.
zdata-ampel = '2'.
else.
zdata-ampel = '3'.
endif.
if zdata-loccuram > 600.
gt_color-fieldname = 'LOCCURAM'.
gt_color-color-col = 6.
gt_color-color-int = 0.
append gt_color.
zdata-symbols = sym_plus_circle.
elseif zdata-loccuram > 500.
gt_color-color-col = 5.
gt_color-color-int = 0.
append gt_color.
zdata-symbols = sym_filled_square.
else.
gt_color-fieldname = 'LOCCURAM'.
gt_color-color-col = 7.
gt_color-color-int = 1.
gt_color-color-inv = 1.
append gt_color.
zdata-symbols = sym_filled_diamond.
endif.
if zdata-luggweight = 0.
zdata-icons = icon_incomplete.
gt_color-fieldname = 'LUGGWEIGHT'.
gt_color-color-col = 4.
gt_color-color-int = 1.
gt_color-color-inv = 1.
append gt_color.
elseif zdata-luggweight < 45.
zdata-icons = icon_checked.
gt_color-fieldname = 'LUGGWEIGHT'.
gt_color-color-col = 6.
gt_color-color-int = 1.
gt_color-color-inv = 1.
append gt_color.
else.
zdata-icons = icon_failure.
gt_color-fieldname = 'LUGGWEIGHT'.
gt_color-color-col = 5.
gt_color-color-int = 1.
gt_color-color-inv = 1.
append gt_color.
endif.
zdata-numc = ( l_tabix div 10 ) * 10.
zdata-colinfo = gt_color[].
if not zdata-luggweight is initial.
move '??' to zdata-wunit.
endif.
modify zdata.
endloop.
if max_data = 'X'.
do 100 times.
append xdata.
append ydata.
append zdata.
* append hdata.
* append idata.
enddo.
endif.
endform. " SELECTION
*---------------------------------------------------------------------*
* FORM EVENTS *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form levents.
endform.
form xevents.
clear xs_event.
xs_event-name = slis_ev_end_of_page.
xs_event-form = 'XEND_OF_PAGE'.
append xs_event to gt_xevents.
clear xs_event.
xs_event-name = slis_ev_top_of_page.
xs_event-form = 'XTOP_OF_PAGE'.
append xs_event to gt_xevents.
clear xs_event.
xs_event-name = slis_ev_top_of_list.
xs_event-form = 'XTOP_OF_LIST'.
append xs_event to gt_xevents.
clear xs_event.
xs_event-name = slis_ev_end_of_list.
xs_event-form = 'XEND_OF_LIST'.
append xs_event to gt_xevents.
clear xs_event.
* XS_EVENT-NAME = SLIS_EV_BEFORE_LINE_OUTPUT.
* XS_EVENT-FORM = 'XBEFORE_LINE_OUTPUT'.
* APPEND XS_EVENT TO GT_XEVENTS.
endform.
*---------------------------------------------------------------------*
* FORM YEVENTS *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form yevents.
clear xs_event.
xs_event-name = slis_ev_end_of_page.
xs_event-form = 'YEND_OF_PAGE'.
append xs_event to gt_yevents.
clear xs_event.
xs_event-name = slis_ev_top_of_page.
xs_event-form = 'YTOP_OF_PAGE'.
append xs_event to gt_yevents.
clear xs_event.
xs_event-name = slis_ev_top_of_list.
xs_event-form = 'YTOP_OF_LIST'.
append xs_event to gt_yevents.
clear xs_event.
xs_event-name = slis_ev_end_of_list.
xs_event-form = 'YEND_OF_LIST'.
append xs_event to gt_yevents.
endform.
form hevents.
clear xs_event.
xs_event-name = slis_ev_top_of_page.
xs_event-form = 'HTOP_OF_PAGE'.
append xs_event to gt_hevents.
clear xs_event.
xs_event-name = slis_ev_top_of_list.
xs_event-form = 'HTOP_OF_LIST'.
append xs_event to gt_hevents.
clear xs_event.
xs_event-name = slis_ev_end_of_list.
xs_event-form = 'HEND_OF_LIST'.
append xs_event to gt_hevents.
endform.
form zevents.
* CLEAR XS_EVENT.
* XS_EVENT-NAME = SLIS_EV_BEFORE_LINE_OUTPUT.
* XS_EVENT-FORM = 'ZBEFORE_LINE_OUTPUT'.
* APPEND XS_EVENT TO GT_ZEVENTS.
endform.
*
form zbefore_line_output using lineinfo type slis_lineinfo.
write at /20 'HalloZ'.
endform.
form xbefore_line_output using lineinfo type slis_lineinfo.
write at /20 'HalloX'.
endform.
form xtop_of_page.
* BREAK-POINT.
write: / 'X_TOP_OF_PAGE'.
endform.
*---------------------------------------------------------------------*
* FORM XTOP_OF_LIST *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form xtop_of_list.
* BREAK-POINT.
write: / 'X_TOP_OF_LIST'.
endform.
*---------------------------------------------------------------------*
* FORM XEND_OF_PAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form xend_of_page.
* BREAK-POINT.
write: / 'X_END_OF_PAGE'.
endform.
*---------------------------------------------------------------------*
* FORM XEND_OF_LIST *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form xend_of_list.
* BREAK-POINT.
write: / 'X_END_OF_LIST'.
endform.
*
form ytop_of_page.
* BREAK-POINT.
write: / 'Y_TOP_OF_PAGE'.
endform.
*---------------------------------------------------------------------*
* FORM YTOP_OF_LIST *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form ytop_of_list.
* BREAK-POINT.
write: / 'Y_TOP_OF_LIST'.
endform.
*---------------------------------------------------------------------*
* FORM YEND_OF_PAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form yend_of_page.
* BREAK-POINT.
write: / 'Y_END_OF_PAGE'.
endform.
*---------------------------------------------------------------------*
* FORM YEND_OF_LIST *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form yend_of_list.
* BREAK-POINT.
write: / 'Y_END_OF_LIST'.
endform.
*
*---------------------------------------------------------------------*
* FORM YTOP_OF_LIST *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form htop_of_list.
* BREAK-POINT.
write: / 'h_TOP_OF_LIST'.
endform.
*---------------------------------------------------------------------*
* FORM YEND_OF_PAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form hend_of_page.
* BREAK-POINT.
write: / 'h_END_OF_PAGE'.
endform.
*---------------------------------------------------------------------*
* FORM YEND_OF_LIST *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form hend_of_list.
* BREAK-POINT.
write: / 'h_END_OF_LIST'.
endform.
*
form user_command using r_ucomm like sy-ucomm
rs_selfield type slis_selfield.
case r_ucomm.
when 'REFR'.
loop at xdata.
if xdata-box = 'X'.
xdata-listinfo = 'C50'.
else.
xdata-listinfo = space.
endif.
modify xdata.
endloop.
loop at ydata.
if ydata-box = 'X'.
ydata-listinfo = 'C50'.
else.
ydata-listinfo = space.
endif.
modify ydata.
endloop.
loop at idata.
if idata-box = 'X'.
idata-listinfo = 'C50'.
else.
idata-listinfo = space.
endif.
modify idata.
endloop.
* LOOP AT HDATA.
* IF HDATA-BOX = 'X'.
* HDATA-LISTINFO = 'C50'.
* ELSE.
* HDATA-LISTINFO = SPACE.
* ENDIF.
* MODIFY HDATA.
* ENDLOOP.
rs_selfield-refresh = 'X'.
when others.
endcase.
endform.
*---------------------------------------------------------------------*
* FORM PF_STATUS_SET *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> EXTAB *
*---------------------------------------------------------------------*
form pf_status_set using extab type slis_t_extab.
* BREAK-POINT.
set pf-status 'STANDARD' excluding extab.
endform.Just copy the BALVBT01 program(copy all components) and place the BOLD code exactly the same place. and see..
Regards
vijay
2006 Jul 12 8:15 AM
I have tried it but i am not able to proceed...
iam pasting my code plss have a look and help me out.
REPORT zcmsr047 MESSAGE-ID zz
NO STANDARD PAGE HEADING
LINE-SIZE 350.
TABLES: likp,
lips,
vbak,
vbpa,
vbuk,
vbrk,
vbrp,
vttk,
vttp,
vbfa,
stxh, "pmp 13.01.01
t001k, "pmp 13.01.01
j_1iexchdr,
j_1iexcdtl,
adrc,
ZTRMT,
kna1, zraildet. "AA 100501
type-pools : slis.
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, "mara
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA : IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV, "makt
WA_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV.
DATA : IT_FIELDCAT2 TYPE SLIS_T_FIELDCAT_ALV, "marc
WA_FIELDCAT2 TYPE SLIS_FIELDCAT_ALV.
DATA : IT_FIELDCAT3 TYPE SLIS_T_FIELDCAT_ALV, "marc
WA_FIELDCAT3 TYPE SLIS_FIELDCAT_ALV.
DATA: GT_PRINT TYPE SLIS_PRINT_ALV,
WA_LAYOUT TYPE SLIS_LAYOUT_ALV,
XS_EVENT TYPE SLIS_ALV_EVENT,
GT_XEVENTS TYPE SLIS_T_EVENT,
GT_YEVENTS TYPE SLIS_T_EVENT,
GT_ZEVENTS TYPE SLIS_T_EVENT,
WA_SORT TYPE SLIS_SORTINFO_ALV,
IT_SORT TYPE SLIS_T_SORTINFO_ALV.
*---------------------------------
*PARAMETERS : a TYPE c.
DATA: ship_doc LIKE vttk-tknum,
bill LIKE vbrp-vbeln,
c_vbeln LIKE likp-vbeln,
s_vbeln LIKE vbfa-vbeln.
DATA: BEGIN OF itab1 OCCURS 0,
vbeln LIKE likp-vbeln,
wadat_ist LIKE likp-wadat_ist,
erdat LIKE likp-erdat,
kunag LIKE likp-kunag,
lfart LIKE likp-lfart,
kunnr LIKE likp-kunnr,
werks LIKE likp-werks,
vstel LIKE likp-vstel,
bolnr LIKE likp-bolnr, "Added by AA 27/04/01.
exti1 LIKE vttk-exti1,
tdlnr LIKE vttk-tdlnr,
vtweg LIKE vbak-vtweg, "AA 100501.
vgbel LIKE lips-vgbel, "AA 100501
kzwi6 LIKE vbrp-kzwi6, " R002 added
OWNCAT LIKE ZTRMT-OWNCAT,
CAPITN LIKE ZTRMT-CAPITN.
DATA: END OF itab1.
DATA : BEGIN OF it_vbfa1 OCCURS 0,
vbeln LIKE vbfa-vbeln,
vbelv LIKE vbfa-vbeln,
END OF it_vbfa1.
DATA : BEGIN OF it_vbfa2 OCCURS 0,
vbeln LIKE vbfa-vbeln,
vbelv LIKE vbfa-vbeln,
posnv LIKE vbfa-posnv,
END OF it_vbfa2.
DATA : BEGIN OF it_vbrp OCCURS 0,
vbeln LIKE vbrp-vbeln,
kzwi6 LIKE vbrp-kzwi6,
posnr LIKE vbrp-posnr,
END OF it_vbrp.
DATA : BEGIN OF it_vbak OCCURS 0,
vbeln LIKE vbfa-vbeln,
vtweg LIKE vbak-vtweg,
auart LIKE vbak-auart,
END OF it_vbak.
DATA : BEGIN OF it_vttp OCCURS 0,
vbeln LIKE vttp-vbeln,
tknum LIKE vttp-tknum,
END OF it_vttp.
DATA : BEGIN OF it_vttk OCCURS 0,
tknum LIKE vttk-tknum,
exti1 LIKE vttk-exti1,
tdlnr LIKE vttk-tdlnr,
END OF it_vttk.
DATA : BEGIN OF it_vbuk OCCURS 0,
vbeln LIKE vbuk-vbeln,
wbstk LIKE vbuk-wbstk,
END OF it_vbuk.
DATA : BEGIN OF it_zrail OCCURS 0,
zzdelivery LIKE zraildet-zzdelivery,
zzwagon LIKE zraildet-zzwagon,
END OF it_zrail.
DATA: BEGIN OF itab2 OCCURS 0,
vbeln LIKE likp-vbeln,
wadat_ist LIKE likp-wadat_ist,
erdat LIKE likp-erdat,
lfart LIKE likp-lfart,
kunag LIKE likp-kunag,
kunnr LIKE likp-kunnr,
r_plant LIKE likp-werks,
vstel LIKE likp-vstel,
vkgrp LIKE lips-vkgrp,
auart LIKE vbak-auart,
matnr LIKE lips-matnr,
lfimg LIKE lips-lfimg,
werks LIKE lips-werks,
name1 LIKE adrc-name1,
city1 LIKE adrc-city1,
preprn LIKE j_1iexchdr-preprn,
vgbel LIKE lips-vgbel, " Order No. SC
exti1 LIKE vttk-exti1, "Truck Number
exti2 LIKE vttk-exti2, "LR Number
tdlnr LIKE vttk-tdlnr, "Transporter
exbed LIKE j_1iexchdr-exbed,
** R004
ecs LIKE j_1iexchdr-ecs,
totexcamt LIKE j_1iexchdr-exbed,
** end R004
exnum LIKE j_1iexchdr-exnum,
exdat LIKE j_1iexchdr-exdat,
status LIKE j_1iexchdr-status,
sales_ord LIKE vbak-vbeln,
wpreprn(10), "pmp 020401
kname1 LIKE kna1-name1, "AA 100501.
vtweg LIKE vbak-vtweg, "AA 100501
kzwi6 LIKE vbrp-kzwi6, " R002 added
***** CHANGE ON 07-07-06
OWNCAT LIKE ZTRMT-OWNCAT,
CAPITN LIKE ZTRMT-CAPITN,
slno type i,
rnew(18),
END OF itab2.
data:begin of it_ztrmt occurs 0,
truckno like ztrmt-truckno,
OWNCAT LIKE ZTRMT-OWNCAT,
CAPITN LIKE ZTRMT-CAPITN,
end of it_ztrmt.
DATA: BEGIN OF itab3 OCCURS 0,
bukrs LIKE t001k-bukrs, "pmp 13.01.01
matnr LIKE lips-matnr,
werks LIKE lips-werks, "pmp 13.01.01
lfimg LIKE lips-lfimg,
exbed LIKE j_1iexchdr-exbed,
** R004
totexcamt LIKE j_1iexchdr-exbed,
ecs LIKE j_1iexchdr-ecs.
** end R004
DATA : END OF itab3.
DATA: BEGIN OF itab4 OCCURS 0, "pmp 13.01.01
matnr LIKE lips-matnr,
lfimg LIKE lips-lfimg,
exbed LIKE j_1iexchdr-exbed,
** R004
totexcamt LIKE j_1iexchdr-exbed,
ecs LIKE j_1iexchdr-ecs.
** end R004
DATA: END OF itab4.
DATA: BEGIN OF itab7 OCCURS 0, "pmp 13.01.01
matnr LIKE lips-matnr,
lfimg LIKE lips-lfimg,
exbed LIKE j_1iexchdr-exbed,
** R004
totexcamt LIKE j_1iexchdr-exbed,
ecs LIKE j_1iexchdr-ecs.
** end R004
DATA: END OF itab7.
DATA : BEGIN OF itab5 OCCURS 0,
kunnr LIKE kna1-kunnr,
name1 LIKE kna1-name1,
END OF itab5. " +R007
DATA: wtline LIKE tline OCCURS 0 WITH HEADER LINE. "PMP 13.01.01
DATA: wname LIKE thead-tdname. "PMP 13.01.01
DATA slno TYPE i.
**** change/002 by rs on 08.10.2002
DATA: BEGIN OF iexcdtl OCCURS 0,
docno LIKE j_1iexcdtl-docno,
docno1 LIKE j_1iexcdtl-docno,
rdoc1 LIKE j_1iexcdtl-rdoc1,
exnum LIKE j_1iexcdtl-exnum,
exnum1 LIKE j_1iexcdtl-exnum,
werks LIKE j_1iexcdtl-werks,
docyr LIKE j_1iexcdtl-docyr,
END OF iexcdtl.
DATA: BEGIN OF iexchdr OCCURS 0,
bukrs LIKE j_1iexchdr-bukrs,
werks LIKE j_1iexchdr-werks, " VBK 090402
docyr LIKE j_1iexchdr-docyr,
preprn LIKE j_1iexchdr-preprn,
exnum LIKE j_1iexchdr-exnum,
exdat LIKE j_1iexchdr-exdat,
status LIKE j_1iexchdr-status,
exbed LIKE j_1iexchdr-exbed,
totexcamt LIKE j_1iexchdr-exbed,
ecs LIKE j_1iexchdr-ecs,
END OF iexchdr.
DATA n TYPE i.
DATA : w_kzwi6 LIKE vbrp-kzwi6.
" R002 added
*-- +R009 --*
DATA v_diff TYPE i.
*-- +R009 --*
DATA: BEGIN OF itab6 OCCURS 0,
bukrs LIKE t001k-bukrs, "pmp 13.01.01
matnr LIKE lips-matnr,
werks LIKE lips-werks, "pmp 13.01.01
lfimg LIKE lips-lfimg,
exbed LIKE j_1iexchdr-exbed,
** R004
totexcamt LIKE j_1iexchdr-exbed,
ecs LIKE j_1iexchdr-ecs.
** end R004
DATA : END OF itab6.
***------------------------------------------------------------------***
***------------------------------------------------------------------***
SELECTION-SCREEN : BEGIN OF BLOCK abc WITH FRAME TITLE text-001.
SELECT-OPTIONS:
vstel FOR likp-vstel OBLIGATORY, " NO INTERVALS ,
date FOR likp-wadat_ist OBLIGATORY,
erdat FOR likp-erdat,
kunag FOR likp-kunag NO INTERVALS,
smatnr FOR lips-matnr,
werks FOR likp-werks NO INTERVALS NO-EXTENSION,
pvtweg FOR lips-vtweg .
PARAMETERS: PFSTATUS TYPE SLIS_FORMNAME DEFAULT 'PF_STATUS_SET'.
SELECTION-SCREEN : END OF BLOCK abc.
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-002.
SELECT-OPTIONS: ptdlnr FOR vttk-tdlnr NO INTERVALS,
pexti1 FOR vttk-exti1 NO INTERVALS,
pkunnr FOR likp-kunnr NO INTERVALS.
SELECTION-SCREEN END OF BLOCK b.
SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE text-003.
PARAMETERS : sorticdn RADIOBUTTON GROUP b1 DEFAULT 'X',
sortdelv RADIOBUTTON GROUP b1,
sortstat RADIOBUTTON GROUP b1,
sortamt RADIOBUTTON GROUP b1,
sortdest RADIOBUTTON GROUP b1.
SELECTION-SCREEN END OF BLOCK c.
***------------------------------------------------------------------***
***------------------------------------------------------------------***
AT SELECTION-SCREEN.
IF vstel CA '*'.
MESSAGE e034 WITH 'Give specific value!!'.
ENDIF.
v_diff = date-high - date-low .
IF v_diff GT 31.
MESSAGE e034 WITH 'Kindly Run This Report For 31 days or less!!'.
ENDIF.
***------------------------------------------------------------------***
***------------------------------------------------------------------***
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = 100
text = 'Wait, Your Job Is Under Progress!!!'.
***------------------------------------------------------------------***
***------------------------------------------------------------------***
START-OF-SELECTION.
CLEAR : it_vbfa1, it_vbfa1[],
it_vbak, it_vbak[],
it_vbfa2, it_vbfa2[],
it_vbrp, it_vbrp[],
it_vttp, it_vttp[],
it_vttk, it_vttk[],
it_vbuk, it_vbuk[],
it_zrail, it_zrail[].
**-- Initial population of data from LIKP --**
* Population of ITAB1
IF NOT kunag IS INITIAL AND
NOT pkunnr IS INITIAL AND
NOT werks IS INITIAL AND
NOT erdat IS INITIAL.
SELECT vbeln wadat_ist erdat kunag lfart kunnr werks vstel bolnr
INTO TABLE itab1 FROM likp
WHERE wadat_ist IN date
AND vstel IN vstel
AND kunnr IN pkunnr
AND werks IN werks
AND erdat IN erdat
AND kunag IN kunag
%_HINTS ORACLE 'INDEX("LIKP" "LIKP~Z3")'.
ELSEIF
kunag IS INITIAL AND
pkunnr IS INITIAL AND
werks IS INITIAL AND
erdat IS INITIAL.
SELECT vbeln wadat_ist erdat kunag lfart kunnr werks vstel bolnr
INTO TABLE itab1 FROM likp
WHERE
vstel IN vstel
AND wadat_ist IN date
%_HINTS ORACLE 'INDEX("LIKP" "LIKP~Z4")'.
ELSEIF
kunag IS INITIAL AND
erdat IS INITIAL.
SELECT vbeln wadat_ist erdat kunag lfart kunnr werks vstel bolnr
INTO TABLE itab1 FROM likp
WHERE wadat_ist IN date
AND vstel IN vstel
AND kunnr IN pkunnr
AND werks IN werks
%_HINTS ORACLE 'INDEX("LIKP" "LIKP~Z3")'.
ELSE.
SELECT vbeln wadat_ist erdat kunag lfart kunnr werks vstel bolnr
INTO TABLE itab1 FROM likp
WHERE wadat_ist IN date
AND vstel IN vstel
AND kunnr IN pkunnr
AND werks IN werks
AND erdat IN erdat
AND kunag IN kunag
%_HINTS ORACLE 'INDEX("LIKP" "LIKP~Z3")'.
ENDIF.
*- very important condition was missing -*
IF itab1[] IS INITIAL.
MESSAGE e034 WITH 'No suitable records found!!'.
ENDIF.
*--PDS_OPT--*
**-- Fetching data from VBFA --*
*-- Distribution Channel --*
break abap.
SELECT vbeln vbelv FROM vbfa INTO TABLE it_vbfa1 "OK Z11
FOR ALL ENTRIES IN itab1
WHERE
vbeln EQ itab1-vbeln AND
vbtyp_n EQ 'J' AND
vbtyp_v EQ 'C'.
IF NOT it_vbfa1[] IS INITIAL.
**-- Fetching data from VBAK --*
SELECT vbeln vtweg FROM vbak INTO TABLE it_vbak
FOR ALL ENTRIES IN it_vbfa1
WHERE
vbeln EQ it_vbfa1-vbelv
AND
vtweg IN pvtweg.
ENDIF.
*-- if shipping point eq ÁCW --*
**-- Fetching data from VBFA --*
*-- Subtotal 6 from pricing procedure KZWI6 --*
IF vstel-low EQ 'ACW'.
SELECT vbeln vbelv posnv FROM vbfa INTO TABLE it_vbfa2 "OK Z3
FOR ALL ENTRIES IN itab1
WHERE
vbelv EQ itab1-vbeln AND
vbtyp_n EQ 'M' AND
vbtyp_v EQ 'J'.
IF NOT it_vbfa2[] IS INITIAL.
SELECT vbeln kzwi6 posnr FROM vbrp INTO TABLE it_vbrp "OK Z1
FOR ALL ENTRIES IN it_vbfa2
WHERE
vbeln EQ it_vbfa2-vbeln
%_HINTS ORACLE 'index("VBRP" "VBRP~Z1")'.
ENDIF.
ELSE.
*-- if shipping point ne ÁCW --*
SELECT vbeln vbelv posnv FROM vbfa INTO TABLE it_vbfa2 "OK Z3
FOR ALL ENTRIES IN itab1
WHERE
vbelv EQ itab1-vbeln AND
vbtyp_n EQ 'U' AND
vbtyp_v EQ 'J'.
IF NOT it_vbfa2[] IS INITIAL.
SELECT vbeln kzwi6 posnr FROM vbrp INTO TABLE it_vbrp "OK Z1
FOR ALL ENTRIES IN it_vbfa2
WHERE
vbeln EQ it_vbfa2-vbeln
%_HINTS ORACLE 'index("VBRP" "VBRP~Z1")'.
ENDIF.
ENDIF.
*-- External ID --*
*-- no. of forwarding agent --*
**-- Fetching data from VTTP --*
SELECT vbeln tknum FROM vttp INTO TABLE it_vttp "OK VBL
FOR ALL ENTRIES IN itab1
WHERE
vbeln EQ itab1-vbeln.
IF sy-dbcnt NE 0.
**-- Fetching data from VTTK --*
*- 16/05/2006 -*
SELECT tknum exti1 tdlnr FROM vttk INTO TABLE it_vttk "OK PRIMARY
FOR ALL ENTRIES IN it_vttp
WHERE
tknum EQ it_vttp-tknum
AND
tdlnr IN ptdlnr AND
exti1 IN pexti1.
ENDIF.
**********************************CHANGE ON 07-07-06
SELECT * FROM ZTRMT INTO corresponding fields of
TABLE IT_ztrmt .
**-- Fetching data from VBUK --*
*-- Total goods movement status --*
SELECT vbeln wbstk FROM vbuk INTO TABLE it_vbuk "OK Z1
FOR ALL ENTRIES IN itab1
WHERE
vbeln EQ itab1-vbeln AND
wbstk EQ 'C'.
**-- Moving required flds to ITAB1 --*
*- ITAB1 processing -*
SORT itab1 BY vbeln.
SORT it_vbfa1 BY vbeln.
SORT it_vbak BY vbeln.
SORT it_vttp BY vbeln.
SORT it_vttk BY tknum.
SORT it_vbuk BY vbeln.
SORT PTDLNR BY LOW.
SORT PEXTI1 BY LOW.
LOOP AT itab1.
**-------------------**
* condition problem
**-------------------**
* moving VTWEG to itab1.
READ TABLE it_vbfa1 WITH KEY vbeln = itab1-vbeln BINARY SEARCH.
IF sy-subrc EQ 0.
READ TABLE it_vbak WITH KEY vbeln = it_vbfa1-vbelv BINARY SEARCH.
IF sy-subrc EQ 0.
MOVE it_vbak-vtweg TO itab1-vtweg.
MODIFY itab1 TRANSPORTING vtweg.
ELSE.
* problem *
DELETE itab1.
CONTINUE.
ENDIF.
ENDIF.
* moving KZWI6 to itab1.
LOOP AT it_vbfa2 WHERE vbelv EQ itab1-vbeln.
CLEAR w_kzwi6. "20042006
LOOP AT it_vbrp WHERE vbeln = it_vbfa2-vbeln.
w_kzwi6 = w_kzwi6 + it_vbrp-kzwi6.
ENDLOOP.
EXIT.
ENDLOOP.
MOVE w_kzwi6 TO itab1-kzwi6.
MODIFY itab1 TRANSPORTING kzwi6.
* moving EXTI1 TDLNR to itab1
READ TABLE it_vttp WITH KEY vbeln = itab1-vbeln BINARY SEARCH.
IF sy-subrc EQ 0.
READ TABLE it_vttk WITH KEY tknum = it_vttp-tknum BINARY SEARCH.
*******************************************CHANGE ON 07-07-06.
IF sy-subrc EQ 0.
MOVE it_vttk-tdlnr TO itab1-tdlnr.
MOVE it_vttk-exti1 TO itab1-exti1.
MODIFY itab1 TRANSPORTING tdlnr exti1.
ENDIF.
ENDIF.
* checking for goods movement status
READ TABLE it_vbuk WITH KEY vbeln = itab1-vbeln BINARY SEARCH.
IF sy-subrc NE 0.
DELETE itab1.
CONTINUE. "16052006
ENDIF.
IF ptdlnr NE space. "16052006
READ TABLE ptdlnr WITH KEY low = itab1-tdlnr BINARY SEARCH.
IF sy-subrc NE 0.
DELETE itab1.
continue.
ENDIF.
ENDIF.
IF pexti1 NE space . "16052006
* ENDIF. "-16052006
* ELSE. "-16052006
READ TABLE pexti1 WITH KEY low = itab1-exti1 BINARY SEARCH.
IF sy-subrc NE 0.
DELETE itab1.
ENDIF.
ENDIF.
* ENDIF. "-16052006
* ENDIF. "-16052006
* ENDIF. "-16052006
ENDLOOP.
*--PDS_OPT--*
* releasing memory occupied by these tables
FREE : it_vbfa1,
it_vbak,
it_vbfa2,
it_vbrp,
it_vttp,
it_vttk,
it_vbuk,
it_zrail.
**-- fetching from KNA1 --**
* Population of ITAB5
*- very important condition was missing -*
*- 24042006 -*
IF itab1[] IS INITIAL.
MESSAGE e034 WITH 'No suitable records found!!'.
ENDIF.
SELECT kunnr name1 FROM kna1
INTO TABLE itab5
FOR ALL ENTRIES IN itab1
WHERE kunnr = itab1-kunag
%_HINTS ORACLE 'INDEX("KNA1" "KNA1~0")'.
DELETE ADJACENT DUPLICATES FROM itab5.
**-- fetching from LIPS --**
* Population of ITAB2
SELECT vbeln vkgrp matnr lfimg werks vgbel FROM lips
INTO CORRESPONDING FIELDS OF TABLE itab2
FOR ALL ENTRIES IN itab1
WHERE vbeln = itab1-vbeln
AND pstyv NE 'ZREC'
AND matnr IN smatnr
%_HINTS ORACLE 'INDEX("LIPS" "LIPS~Z14")'.
**-- fetching from ZRAILDET --**
SELECT zzdelivery zzwagon FROM zraildet INTO TABLE it_zrail"OK Z1
FOR ALL ENTRIES IN itab1
WHERE
zzdelivery = itab1-vbeln.
*-- 20042006 --*
SORT itab1 BY vbeln.
SORT itab5 BY kunnr.
SORT it_zrail BY zzdelivery.
*-- 20042006 --*
LOOP AT itab2.
READ TABLE itab1 WITH KEY vbeln = itab2-vbeln BINARY SEARCH.
IF sy-subrc = 0.
MOVE itab1-wadat_ist TO itab2-wadat_ist.
MOVE itab1-erdat TO itab2-erdat.
MOVE itab1-kunag TO itab2-kunag.
MOVE itab1-lfart TO itab2-lfart.
MOVE itab1-kunnr TO itab2-kunnr.
MOVE itab1-vstel TO itab2-vstel.
MOVE itab1-werks TO itab2-r_plant.
MOVE itab1-vtweg TO itab2-vtweg.
MOVE itab1-kzwi6 TO itab2-kzwi6.
MOVE itab1-tdlnr TO itab2-tdlnr.
MOVE itab1-exti1 TO itab2-exti1.
* ************************* change on 07-07-06
IF itab2-tdlnr IS INITIAL.
READ TABLE it_zrail WITH KEY zzdelivery = itab1-vbeln BINARY
SEARCH.
IF sy-subrc = 0.
itab2-tdlnr = 'RAILWAY'.
itab2-exti1 = zraildet-zzwagon.
ENDIF.
ENDIF.
*
READ TABLE IT_ZTRMT WITH KEY TRUCKNO = itab1-exti1 .
IF SY-SUBRC = 0.
MOVE IT_ZTRMT-OWNCAT TO ITAB2-OWNCAT.
MOVE IT_ZTRMT-CAPITN TO ITAB2-CAPITN.
MODIFY itab2 TRANSPORTING OWNCAT CAPITN.
ENDIF.
clear it_ztrmt.
READ TABLE itab5 WITH KEY kunnr = itab1-kunag BINARY SEARCH
TRANSPORTING name1 .
MOVE itab5-name1 TO itab2-kname1.
ELSE.
CONTINUE.
ENDIF.
MODIFY itab2 .
CLEAR : itab1,itab2,itab5.
ENDLOOP.
DESCRIBE TABLE itab2 LINES n .
IF n = 0.
MESSAGE e034 WITH 'No records found for the selection'.
ENDIF.
SELECT docno "OK Z2
rdoc1
exnum
docyr
werks INTO CORRESPONDING
FIELDS OF TABLE iexcdtl FROM j_1iexcdtl
FOR ALL ENTRIES IN itab2
WHERE rdoc1 = itab2-vbeln AND
trntyp = 'DLFC' AND
werks IN vstel AND
status NE 'R' "+R007
*-- +R009 --*
%_HINTS ORACLE 'INDEX("J_1IEXCDTL" "J_1IEXCDTL~Z2")'. " +R009
*-- +R009 --*
* IF NOT iexcdtl[] IS INITIAL.
LOOP AT iexcdtl.
UNPACK iexcdtl-docno TO iexcdtl-docno1.
UNPACK iexcdtl-exnum TO iexcdtl-exnum1.
MODIFY iexcdtl.
ENDLOOP.
IF NOT iexcdtl[] IS INITIAL.
SELECT docyr "OK Z05
bukrs
werks
preprn
exnum
exdat
status
exbed
ecs
INTO CORRESPONDING FIELDS OF TABLE iexchdr FROM
j_1iexchdr FOR ALL ENTRIES IN iexcdtl
WHERE
docno = iexcdtl-docno1
AND trntyp = 'DLFC'
AND docyr = iexcdtl-docyr
AND exnum = iexcdtl-exnum1
AND werks = iexcdtl-werks
AND status NE 'R'
*-- +R009 --*
%_HINTS ORACLE 'INDEX("J_1IEXCHDR" "J_1IEXCHDR~Z05")'. " +R009
*-- +R009 --*
ENDIF.
* DATA : BEGIN OF a_itab OCCURS 0,
* vbeln LIKE vbfa-vbelv,
* END OF a_itab.
*--done---*
SELECT vbeln auart "OK PRIMARY
INTO CORRESPONDING FIELDS OF TABLE it_vbak
FROM vbak
FOR ALL ENTRIES IN itab2
WHERE
vbeln EQ itab2-vgbel.
SORT iexcdtl BY rdoc1.
SORT iexchdr BY exnum werks.
SORT it_vbak BY vbeln.
LOOP AT itab2.
READ TABLE iexcdtl WITH KEY rdoc1 = itab2-vbeln BINARY SEARCH.
IF sy-subrc = 0.
READ TABLE iexchdr WITH KEY exnum = iexcdtl-exnum
werks = itab2-werks
BINARY SEARCH.
IF sy-subrc = 0.
itab2-preprn = iexchdr-preprn.
itab2-exnum = iexchdr-exnum.
itab2-exdat = iexchdr-exdat.
itab2-status = iexchdr-status.
itab2-exbed = iexchdr-exbed.
itab2-ecs = iexchdr-ecs.
ENDIF.
ENDIF.
IF itab2-preprn EQ space.
MOVE itab2-vbeln TO wname.
SELECT SINGLE * FROM stxh CLIENT SPECIFIED
WHERE mandt = sy-mandt
AND tdobject = 'VBBK'
AND tdname = wname
AND tdid = 'Z805'
AND tdspras = sy-langu.
IF sy-subrc EQ 0.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = 'Z805'
language = sy-langu
name = wname
object = 'VBBK'
TABLES
lines = wtline.
READ TABLE wtline INDEX 1.
itab2-preprn = wtline-tdline+0(12) .
ENDIF.
ENDIF.
READ TABLE it_vbak WITH KEY vbeln = itab2-vgbel BINARY SEARCH.
IF sy-subrc IS INITIAL.
MOVE it_vbak-auart TO itab2-auart.
ENDIF.
WRITE: itab2-preprn TO itab2-wpreprn RIGHT-JUSTIFIED.
CLEAR itab2-totexcamt.
itab2-totexcamt = itab2-exbed + itab2-ecs.
CALL FUNCTION 'J_1I6_ROUND_TO_NEAREST_AMT'
EXPORTING
i_amount = itab2-totexcamt
* I_AMOUNT1 =
* I_AMOUNT2 =
* I_AMOUNT3 =
* I_AMOUNT5 =
IMPORTING
e_amount = itab2-totexcamt
* E_AMOUNT1 =
* E_AMOUNT2 =
* E_AMOUNT3 =
* E_AMOUNT5 =
.
** End R005
MODIFY itab2.
ENDLOOP.
END-OF-SELECTION.
IF sortdelv EQ 'X'.
SORT itab2 BY vbeln.
ELSEIF sorticdn EQ 'X'.
SORT itab2 BY wpreprn. "preprn. "pmp 020401
ELSEIF sortamt EQ 'X'.
SORT itab2 BY exbed .
ELSEIF sortstat EQ 'X'.
SORT itab2 BY status.
ELSEIF sortdest EQ 'X'.
SORT itab2 BY kunnr.
ENDIF.
CLEAR slno.
FORMAT INTENSIFIED OFF.
LOOP AT itab2.
slno = slno + 1.
itab2-slno = slno.
IF itab2-preprn EQ space.
READ TABLE itab1 WITH KEY vbeln = itab2-vbeln BINARY SEARCH.
IF sy-subrc = 0.
itab2-preprn = itab1-bolnr.
ENDIF.
modify itab2 transporting preprn where vbeln = itab2-vbeln.
ENDIF.
IF itab2-lfart EQ 'NL'.
itab2-rnew = itab2-r_plant.
ELSE.
itab2-rnew = itab2-kunag.
ENDIF.
modify itab2 .
ENDLOOP.
loop at itab2.
select single OWNCAT CAPITN into (itab2-OWNCAT, ITAB2-CAPITN) from
ztrmt where truckno = itab2-exti1.
if sy-subrc = 0.
modify itab2 index sy-tabix.
endif.
endloop.
LOOP AT itab2.
CLEAR itab3. "pmp 13.01.01
MOVE-CORRESPONDING itab2 TO itab3.
**pmp 13.01.01
MOVE-CORRESPONDING itab2 TO itab4.
APPEND itab4.
SELECT SINGLE * FROM t001k WHERE bwkey = itab2-werks.
IF sy-subrc EQ 0.
MOVE t001k-bukrs TO itab3-bukrs.
ENDIF.
APPEND itab3.
ENDLOOP.
SORT itab3 BY bukrs matnr. "pmp 13.01.01
CLEAR: itab3. "pmp 13.01.01
LOOP AT itab3.
AT NEW bukrs.
itab6-bukrs = itab3-bukrs.
ENDAT.
AT END OF matnr.
SUM.
itab6-matnr = itab3-matnr.
itab6-lfimg = itab3-lfimg.
* 52 itab3-exbed color 3.
** R004
itab6-totexcamt = itab3-totexcamt.
** end R004
ENDAT.
append itab6.
ENDLOOP.
delete itab6 where matnr = ''.
delete adjacent duplicates from itab6.
LOOP AT itab4.
AT END OF matnr.
SUM.
itab7-matnr = itab4-matnr .
itab7-lfimg = itab4-lfimg .
* 52 itab4-exbed color 3.
**R004
itab7-totexcamt = itab4-totexcamt .
**end R004
collect itab7.
ENDAT.
ENDLOOP.
delete adjacent duplicates from itab7.
delete adjacent duplicates from itab6.
perform sort_list.
perform modify_fieldcat.
PERFORM EVENT_LIST.
*PERFORM BLOCK_LIST.
perform display_alv.
*&---------------------------------------------------------------------*
*& Form GET_CANCEL_DOC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_cancel_doc.
IF itab2-status = 'R'.
SELECT SINGLE * FROM j_1iexchdr
WHERE
rdoc EQ bill
AND exnum NE space AND status EQ 'C'.
IF sy-subrc EQ 0.
MOVE-CORRESPONDING j_1iexchdr TO itab2.
ENDIF.
ENDIF.
ENDFORM. " GET_CANCEL_DOC
*&---------------------------------------------------------------------*
*& Form GET_KUNAG_NAME
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_kunag_name.
CLEAR itab2-kname1.
SELECT SINGLE name1 INTO itab2-kname1
FROM kna1
WHERE kunnr = itab1-kunag
*-- +R009 --*
%_HINTS ORACLE 'INDEX("KNA1" "KNA1~0")'.
*-- +R009 --*
.
ENDFORM. " GET_KUNAG_NAME
*&---------------------------------------------------------------------*
*& Form display_alv
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display_alv .
CLEAR WA_LAYOUT.
WA_LAYOUT-ZEBRA = 'X'.
WA_LAYOUT-TOTALS_TEXT = 'TOTAL'.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = sy-repid
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
* I_CALLBACK_PF_STATUS_SET = PFSTATUS.
.
*CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
* EXPORTING
* I_PROGRAM_NAME = SY-REPID
* I_INTERNAL_TABNAME = 'ITAB2'
* I_INCLNAME = SY-REPID
* CHANGING
* CT_FIELDCAT = ALVFC.
DATA: IT_SORT TYPE SLIS_T_SORTINFO_ALV, "<b>
X_SORT TYPE SLIS_SORTINFO_ALV.
X_SORT-FIELDNAME = 'MATNR'.
X_SORT-TABNAME = 'ITAB2'.
X_SORT-UP = 'X'.
X_SORT-SUBTOT = 'X'.
APPEND X_SORT TO IT_SORT. "</b>
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = WA_LAYOUT
it_fieldcat = it_fieldcat1
i_tabname = 'ITAB2'
IT_SORT = IT_SORT
it_events = GT_XEVENTS
IT_SAVE = 'A'
TABLES
t_outtab = ITAB2
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = WA_LAYOUT
it_fieldcat = it_fieldcat2
i_tabname = 'ITAB6'
it_events = GT_YEVENTS
* IT_SORT = IT_SORT
IT_SAVE = 'A'
TABLES
t_outtab = itab6
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
*------------------- ADD INTERNAL TABLE PTAB
* REFRESH ALVFC[].
*
* CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
* EXPORTING
* I_PROGRAM_NAME = SY-REPID
* I_INTERNAL_TABNAME = 'ITAB6'
* I_INCLNAME = SY-REPID
* CHANGING
* CT_FIELDCAT = ALVFC.
*------------------- ADD INTERNAL TABLE PTAB
* REFRESH ALVFC[].
*
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = WA_LAYOUT
it_fieldcat = IT_FIELDCAT3
i_tabname = 'ITAB7'
it_events = GT_ZEVENTS
* IT_SORT = IT_SORT
IT_SAVE = 'X'
TABLES
t_outtab = itab7
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
*--------------- DISPLAY
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " display_alv
*&---------------------------------------------------------------------*
*& Form sort_list
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM sort_list .
* CLEAR WA_SORT.
* WA_SORT-FIELDNAME = 'MATNR'.
* WA_SORT-SUBTOT = 'X'.
* WA_SORT-SPOS = 1.
* APPEND WA_SORT TO IT_SORT.
ENDFORM. " sort_list
*&---------------------------------------------------------------------*
*& Form modify_fieldcat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM modify_fieldcat .
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '1'.
wa_fieldcat-key = 'X'.
wa_fieldcat-seltext_l = 'MATERIAL'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SLNO'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '2'.
wa_fieldcat-seltext_l = 'Sr No'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'WADAT_IST'.
wa_fieldcat-tabname = 'IATB2'.
wa_fieldcat-col_pos = '3'.
wa_fieldcat-seltext_l = 'G.I.DATE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PREPRN'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '4'.
wa_fieldcat-seltext_l = 'ICDN/DC NO.'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'VBELN'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '5'.
wa_fieldcat-seltext_l = 'dELIVERY NO.'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'AUART'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '6'.
wa_fieldcat-seltext_l = 'ORDER TYPE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
*wa_fieldcat-fieldname = 'MATNR'.
*wa_fieldcat-tabname = 'ITAB2'.
*wa_fieldcat-col_pos = '6'.
*wa_fieldcat-seltext_l = 'MATERIAL'.
*wa_fieldcat-emphasize = 'X'.
*append wa_fieldcat to it_fieldcat1.
*clear wa_fieldcat.
wa_fieldcat-fieldname = 'LFIMG'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '7'.
wa_fieldcat-seltext_l = 'QUANTITY'.
wa_fieldcat-DO_SUM = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'RNEW'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '8'.
wa_fieldcat-seltext_l = 'CUSTOMER'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'KUNNR'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '9'.
wa_fieldcat-seltext_l = 'DESTINATION'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'EXNUM'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '10'.
wa_fieldcat-seltext_l = 'EXCISE NO'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'EXDAT'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '11'.
wa_fieldcat-seltext_l = 'EXCISE DATE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TOTEXCAMT'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '12'.
wa_fieldcat-seltext_l = 'EXCISE AMOUNT'.
wa_fieldcat-DO_SUM = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'STATUS'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '13'.
wa_fieldcat-seltext_l = 'EXCISE STATUS'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TDLNR'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '14'.
wa_fieldcat-seltext_l = 'TRANSPORTER'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'EXTI1'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '15'.
wa_fieldcat-seltext_l = 'TRUCK NO'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'OWNCAT'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '16'.
wa_fieldcat-seltext_l = 'TRUCK CATEGORY'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'CAPITN'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '17'.
wa_fieldcat-seltext_l = 'TRUCK TYPE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '18'.
wa_fieldcat-seltext_l = 'PLANT'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'KNAME1'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '19'.
wa_fieldcat-seltext_l = 'SOLD TO PARTY'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'VTWEG'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '20'.
wa_fieldcat-seltext_l = 'DISTRIBUTION CHANNEL'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'KZWI6'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '21'.
wa_fieldcat-seltext_l = 'INVOICE VALUE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'BUKRS'.
wa_fieldcat-tabname = 'ITAB6'.
wa_fieldcat-col_pos = '1'.
wa_fieldcat-seltext_l = 'COMPANY CODE'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat2.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-tabname = 'ITAB6'.
wa_fieldcat-col_pos = '2'.
wa_fieldcat-seltext_l = 'MATERIAL'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat2.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'LFIMG'.
wa_fieldcat-tabname = 'ITAB6'.
wa_fieldcat-col_pos = '3'.
wa_fieldcat-seltext_l = 'QUANTITY'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat2.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TOTEXCAMT'.
wa_fieldcat-tabname = 'ITAB6'.
wa_fieldcat-col_pos = '4'.
wa_fieldcat-seltext_l = 'EXCISE VALUE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat2.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-tabname = 'ITAB7'.
wa_fieldcat-col_pos = '1'.
wa_fieldcat-seltext_l = 'MATERIAL'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat3.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'LFIMG'.
wa_fieldcat-tabname = 'ITAB7'.
wa_fieldcat-col_pos = '2'.
wa_fieldcat-seltext_l = 'QUANTITY'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat3.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TOTEXCAMT'.
wa_fieldcat-tabname = 'ITAB7'.
wa_fieldcat-col_pos = '3'.
wa_fieldcat-seltext_l = 'EXCISE VALUE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat3.
clear wa_fieldcat.
ENDFORM. " modify_fieldcat
*&---------------------------------------------------------------------*
*& Form EVENT_LIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM EVENT_LIST .
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'XTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
XS_EVENT-FORM = 'XEND_OF_PAGE'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
XS_EVENT-FORM = 'XTOP_OF_LIST'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
XS_EVENT-FORM = 'XEND_OF_LIST'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
XS_EVENT-FORM = 'YEND_OF_PAGE'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'YTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
XS_EVENT-FORM = 'YTOP_OF_LIST'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
XS_EVENT-FORM = 'YEND_OF_LIST'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
XS_EVENT-FORM = 'ZEND_OF_PAGE'.
APPEND XS_EVENT TO GT_ZEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'ZTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_ZEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
XS_EVENT-FORM = 'ZTOP_OF_LIST'.
APPEND XS_EVENT TO GT_ZEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
XS_EVENT-FORM = 'ZEND_OF_LIST'.
APPEND XS_EVENT TO GT_ZEVENTS.
CLEAR XS_EVENT.
ENDFORM. " EVENT_LIST
FORM XTOP_OF_PAGE.
WRITE:/15(30) 'ICDN / DC wise Dispatch Report For The Period' COLOR 3,
47 DATE-LOW , 58 'TO', 62 DATE-HIGH.
ENDFORM.
FORM YTOP_OF_PAGE.
WRITE:/ 'TOTAL BY COMPANY CODE' COLOR 3.
ENDFORM.
FORM ZTOP_OF_PAGE.
WRITE:/ 'TOTAL BY MATERIAL' COLOR 3.
ENDFORM.
FORM XEND_OF_PAGE.
*WRITE:/ 'END OF PAGE FOR MARA'.
ENDFORM.
FORM YEND_OF_PAGE.
*WRITE:/ 'END OF PAGE FOR MAKT'.
ENDFORM.
FORM ZEND_OF_PAGE.
*WRITE:/ 'END OF PAGE FOR MARC'.
ENDFORM.
FORM XTOP_OF_LIST.
WRITE:/40(30) 'ULTRATECH CEMENT LTD.' COLOR 6 INTENSIFIED OFF.
SKIP 1.
ENDFORM.
FORM YTOP_OF_LIST.
*WRITE:/ 'TOP OF LIST FOR MAKT'.
ENDFORM.
FORM ZTOP_OF_LIST.
*WRITE:/ 'TOP OF LIST FOR MARC'.
ENDFORM.
FORM XEND_OF_LIST.
*WRITE:/ 'END OF LIST FOR MARA'.
ENDFORM.
FORM YEND_OF_LIST.
*WRITE:/ 'END OF LIST FOR MAKT'.
ENDFORM.
FORM ZEND_OF_LIST.
*WRITE:/ 'END OF LIST FOR MARC'.
ENDFORM. " EVENT_LISTMessage was edited by: Abhaykumar Chauhan
2006 Jul 12 8:47 AM
DATA: wa_fcat5 TYPE slis_fieldcat_alv.
DATA: fcat5 TYPE slis_t_fieldcat_alv.
wa_fcat5-DO_SUM = 'X'.
APPEND wa_fcat5 TO fcat5.
like that u can do sum.
daclare itab_sort type SLIS_SORTINFO_ALV
pass to parameter IT_SORT in 'REUSE_ALV_BLOCK_LIST_APPEND'
and assign valus for below fields as ur req. mets.
SPOS NUMC 2
FIELDNAME CHARACTER 30
TABNAME CHARACTER 30
UP CHARACTER 1
DOWN CHARACTER 1
GROUP CHARACTER 2
SUBTOT CHARACTER 1
COMP CHARACTER 1
EXPA CHARACTER 1
OBLIGATORY CHARACTER 1
Ramesh.
2006 Jul 12 9:33 AM
I have done do_sum.
U can see my code and plss tell where I went wrong?
2006 Jul 12 10:16 AM
Hi Abhaykumar,
you want only subtotals rite,every thing is fine in your code, what problem you are facing.
Regards
vijay
2006 Jul 12 10:57 AM
Yes I want subtotal on material only, but its not coming..Iwant to see the total of quantity of material.
2006 Jul 12 11:09 AM
hi,
since your program has custom tables,i m not able to test. but see my sample code to cross check what went wrong.are you able to see atleast in that program.
Regards
vijay
2006 Jul 12 11:40 AM
IF you will delete the custom tables and the corresponding codes...u can work...custom tables dnt have much effect on report.
Please help me I tried to find out the diffrence but i couldnt...
Thanks
2006 Jul 12 11:48 AM
hi,
ok can you remove the code comments to your code in the above post, i am unable to copy it.
code
remove these , then i can copy it easily.
and i will get back to you after checking it.
Regards
vijay
2006 Jul 13 4:42 AM
I am posting the code again without the custom tables.
please have alook at this and help me...
REPORT zcmsr047 MESSAGE-ID zz
NO STANDARD PAGE HEADING
LINE-SIZE 350.
TABLES: likp,
lips,
vbak,
vbpa,
vbuk,
vbrk,
vbrp,
vttk,
vttp,
vbfa,
stxh, "pmp 13.01.01
t001k, "pmp 13.01.01
j_1iexchdr,
j_1iexcdtl,
adrc,
ZTRMT,
kna1.
<zraildet. "AA 100501
type-pools : slis.
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, "mara
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA : IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV, "makt
WA_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV.
DATA : IT_FIELDCAT2 TYPE SLIS_T_FIELDCAT_ALV, "marc
WA_FIELDCAT2 TYPE SLIS_FIELDCAT_ALV.
DATA : IT_FIELDCAT3 TYPE SLIS_T_FIELDCAT_ALV, "marc
WA_FIELDCAT3 TYPE SLIS_FIELDCAT_ALV.
DATA: GT_PRINT TYPE SLIS_PRINT_ALV,
WA_LAYOUT TYPE SLIS_LAYOUT_ALV,
XS_EVENT TYPE SLIS_ALV_EVENT,
GT_XEVENTS TYPE SLIS_T_EVENT,
GT_YEVENTS TYPE SLIS_T_EVENT,
GT_ZEVENTS TYPE SLIS_T_EVENT,
WA_SORT TYPE SLIS_SORTINFO_ALV,
IT_SORT TYPE SLIS_T_SORTINFO_ALV.
*----
-
*PARAMETERS : a TYPE c.
DATA: ship_doc LIKE vttk-tknum,
bill LIKE vbrp-vbeln,
c_vbeln LIKE likp-vbeln,
s_vbeln LIKE vbfa-vbeln.
DATA: BEGIN OF itab1 OCCURS 0,
vbeln LIKE likp-vbeln,
wadat_ist LIKE likp-wadat_ist,
erdat LIKE likp-erdat,
kunag LIKE likp-kunag,
lfart LIKE likp-lfart,
kunnr LIKE likp-kunnr,
werks LIKE likp-werks,
vstel LIKE likp-vstel,
bolnr LIKE likp-bolnr, "Added by AA 27/04/01.
exti1 LIKE vttk-exti1,
tdlnr LIKE vttk-tdlnr,
vtweg LIKE vbak-vtweg, "AA 100501.
vgbel LIKE lips-vgbel, "AA 100501
kzwi6 LIKE vbrp-kzwi6. " R002 added
OWNCAT LIKE .
DATA: END OF itab1.
DATA : BEGIN OF it_vbfa1 OCCURS 0,
vbeln LIKE vbfa-vbeln,
vbelv LIKE vbfa-vbeln,
END OF it_vbfa1.
DATA : BEGIN OF it_vbfa2 OCCURS 0,
vbeln LIKE vbfa-vbeln,
vbelv LIKE vbfa-vbeln,
posnv LIKE vbfa-posnv,
END OF it_vbfa2.
DATA : BEGIN OF it_vbrp OCCURS 0,
vbeln LIKE vbrp-vbeln,
kzwi6 LIKE vbrp-kzwi6,
posnr LIKE vbrp-posnr,
END OF it_vbrp.
DATA : BEGIN OF it_vbak OCCURS 0,
vbeln LIKE vbfa-vbeln,
vtweg LIKE vbak-vtweg,
auart LIKE vbak-auart,
END OF it_vbak.
DATA : BEGIN OF it_vttp OCCURS 0,
vbeln LIKE vttp-vbeln,
tknum LIKE vttp-tknum,
END OF it_vttp.
DATA : BEGIN OF it_vttk OCCURS 0,
tknum LIKE vttk-tknum,
exti1 LIKE vttk-exti1,
tdlnr LIKE vttk-tdlnr,
END OF it_vttk.
DATA : BEGIN OF it_vbuk OCCURS 0,
vbeln LIKE vbuk-vbeln,
wbstk LIKE vbuk-wbstk,
END OF it_vbuk.
*DATA : BEGIN OF it_zrail OCCURS 0,
zzdelivery LIKE zraildet-zzdelivery,
zzwagon LIKE zraildet-zzwagon,
END OF it_zrail.
DATA: BEGIN OF itab2 OCCURS 0,
vbeln LIKE likp-vbeln,
wadat_ist LIKE likp-wadat_ist,
erdat LIKE likp-erdat,
lfart LIKE likp-lfart,
kunag LIKE likp-kunag,
kunnr LIKE likp-kunnr,
r_plant LIKE likp-werks,
vstel LIKE likp-vstel,
vkgrp LIKE lips-vkgrp,
auart LIKE vbak-auart,
matnr LIKE lips-matnr,
lfimg LIKE lips-lfimg,
werks LIKE lips-werks,
name1 LIKE adrc-name1,
city1 LIKE adrc-city1,
preprn LIKE j_1iexchdr-preprn,
vgbel LIKE lips-vgbel, " Order No. SC
exti1 LIKE vttk-exti1, "Truck Number
exti2 LIKE vttk-exti2, "LR Number
tdlnr LIKE vttk-tdlnr, "Transporter
exbed LIKE j_1iexchdr-exbed,
R004
ecs LIKE j_1iexchdr-ecs,
totexcamt LIKE j_1iexchdr-exbed,
end R004
exnum LIKE j_1iexchdr-exnum,
exdat LIKE j_1iexchdr-exdat,
status LIKE j_1iexchdr-status,
sales_ord LIKE vbak-vbeln,
wpreprn(10), "pmp 020401
kname1 LIKE kna1-name1, "AA 100501.
vtweg LIKE vbak-vtweg, "AA 100501
kzwi6 LIKE vbrp-kzwi6, " R002 added
CHANGE ON 07-07-06
OWNCAT LIKE ZTRMT-OWNCAT,
CAPITN LIKE ZTRMT-CAPITN,
slno type i,
rnew(18),
END OF itab2.
*data:begin of it_ztrmt occurs 0,
truckno like ztrmt-truckno,
OWNCAT LIKE ZTRMT-OWNCAT,
CAPITN LIKE ZTRMT-CAPITN,
end of it_ztrmt.
DATA: BEGIN OF itab3 OCCURS 0,
bukrs LIKE t001k-bukrs, "pmp 13.01.01
matnr LIKE lips-matnr,
werks LIKE lips-werks, "pmp 13.01.01
lfimg LIKE lips-lfimg,
exbed LIKE j_1iexchdr-exbed,
R004
totexcamt LIKE j_1iexchdr-exbed,
ecs LIKE j_1iexchdr-ecs.
end R004
DATA : END OF itab3.
DATA: BEGIN OF itab4 OCCURS 0, "pmp 13.01.01
matnr LIKE lips-matnr,
lfimg LIKE lips-lfimg,
exbed LIKE j_1iexchdr-exbed,
R004
totexcamt LIKE j_1iexchdr-exbed,
ecs LIKE j_1iexchdr-ecs.
end R004
DATA: END OF itab4.
DATA: BEGIN OF itab7 OCCURS 0, "pmp 13.01.01
matnr LIKE lips-matnr,
lfimg LIKE lips-lfimg,
exbed LIKE j_1iexchdr-exbed,
R004
totexcamt LIKE j_1iexchdr-exbed,
ecs LIKE j_1iexchdr-ecs.
end R004
DATA: END OF itab7.
DATA : BEGIN OF itab5 OCCURS 0,
kunnr LIKE kna1-kunnr,
name1 LIKE kna1-name1,
END OF itab5. " +R007
DATA: wtline LIKE tline OCCURS 0 WITH HEADER LINE. "PMP 13.01.01
DATA: wname LIKE thead-tdname. "PMP 13.01.01
DATA slno TYPE i.
change/002 by rs on 08.10.2002
DATA: BEGIN OF iexcdtl OCCURS 0,
docno LIKE j_1iexcdtl-docno,
docno1 LIKE j_1iexcdtl-docno,
rdoc1 LIKE j_1iexcdtl-rdoc1,
exnum LIKE j_1iexcdtl-exnum,
exnum1 LIKE j_1iexcdtl-exnum,
werks LIKE j_1iexcdtl-werks,
docyr LIKE j_1iexcdtl-docyr,
END OF iexcdtl.
DATA: BEGIN OF iexchdr OCCURS 0,
bukrs LIKE j_1iexchdr-bukrs,
werks LIKE j_1iexchdr-werks, " VBK 090402
docyr LIKE j_1iexchdr-docyr,
preprn LIKE j_1iexchdr-preprn,
exnum LIKE j_1iexchdr-exnum,
exdat LIKE j_1iexchdr-exdat,
status LIKE j_1iexchdr-status,
exbed LIKE j_1iexchdr-exbed,
totexcamt LIKE j_1iexchdr-exbed,
ecs LIKE j_1iexchdr-ecs,
END OF iexchdr.
DATA n TYPE i.
DATA : w_kzwi6 LIKE vbrp-kzwi6.
" R002 added
*-- +R009 --*
DATA v_diff TYPE i.
*-- +R009 --*
DATA: BEGIN OF itab6 OCCURS 0,
bukrs LIKE t001k-bukrs, "pmp 13.01.01
matnr LIKE lips-matnr,
werks LIKE lips-werks, "pmp 13.01.01
lfimg LIKE lips-lfimg,
exbed LIKE j_1iexchdr-exbed,
R004
totexcamt LIKE j_1iexchdr-exbed,
ecs LIKE j_1iexchdr-ecs.
end R004
DATA : END OF itab6.
***----
***
***----
***
SELECTION-SCREEN : BEGIN OF BLOCK abc WITH FRAME TITLE text-001.
SELECT-OPTIONS:
vstel FOR likp-vstel OBLIGATORY, " NO INTERVALS ,
date FOR likp-wadat_ist OBLIGATORY,
erdat FOR likp-erdat,
kunag FOR likp-kunag NO INTERVALS,
smatnr FOR lips-matnr,
werks FOR likp-werks NO INTERVALS NO-EXTENSION,
pvtweg FOR lips-vtweg .
PARAMETERS: PFSTATUS TYPE SLIS_FORMNAME DEFAULT 'PF_STATUS_SET'.
SELECTION-SCREEN : END OF BLOCK abc.
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-002.
SELECT-OPTIONS: ptdlnr FOR vttk-tdlnr NO INTERVALS,
pexti1 FOR vttk-exti1 NO INTERVALS,
pkunnr FOR likp-kunnr NO INTERVALS.
SELECTION-SCREEN END OF BLOCK b.
SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE text-003.
PARAMETERS : sorticdn RADIOBUTTON GROUP b1 DEFAULT 'X',
sortdelv RADIOBUTTON GROUP b1,
sortstat RADIOBUTTON GROUP b1,
sortamt RADIOBUTTON GROUP b1,
sortdest RADIOBUTTON GROUP b1.
SELECTION-SCREEN END OF BLOCK c.
***----
***
***----
***
AT SELECTION-SCREEN.
IF vstel CA '*'.
MESSAGE e034 WITH 'Give specific value!!'.
ENDIF.
v_diff = date-high - date-low .
IF v_diff GT 31.
MESSAGE e034 WITH 'Kindly Run This Report For 31 days or less!!'.
ENDIF.
***----
***
***----
***
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = 100
text = 'Wait, Your Job Is Under Progress!!!'.
***----
***
***----
***
START-OF-SELECTION.
CLEAR : it_vbfa1, it_vbfa1[],
it_vbak, it_vbak[],
it_vbfa2, it_vbfa2[],
it_vbrp, it_vbrp[],
it_vttp, it_vttp[],
it_vttk, it_vttk[],
it_vbuk, it_vbuk[].
it_zrail, it_zrail[].
**-- Initial population of data from LIKP --**
Population of ITAB1
IF NOT kunag IS INITIAL AND
NOT pkunnr IS INITIAL AND
NOT werks IS INITIAL AND
NOT erdat IS INITIAL.
SELECT vbeln wadat_ist erdat kunag lfart kunnr werks vstel bolnr
INTO TABLE itab1 FROM likp
WHERE wadat_ist IN date
AND vstel IN vstel
AND kunnr IN pkunnr
AND werks IN werks
AND erdat IN erdat
AND kunag IN kunag
%_HINTS ORACLE 'INDEX("LIKP" "LIKP~Z3")'.
ELSEIF
kunag IS INITIAL AND
pkunnr IS INITIAL AND
werks IS INITIAL AND
erdat IS INITIAL.
SELECT vbeln wadat_ist erdat kunag lfart kunnr werks vstel bolnr
INTO TABLE itab1 FROM likp
WHERE
vstel IN vstel
AND wadat_ist IN date
%_HINTS ORACLE 'INDEX("LIKP" "LIKP~Z4")'.
ELSEIF
kunag IS INITIAL AND
erdat IS INITIAL.
SELECT vbeln wadat_ist erdat kunag lfart kunnr werks vstel bolnr
INTO TABLE itab1 FROM likp
WHERE wadat_ist IN date
AND vstel IN vstel
AND kunnr IN pkunnr
AND werks IN werks
%_HINTS ORACLE 'INDEX("LIKP" "LIKP~Z3")'.
ELSE.
SELECT vbeln wadat_ist erdat kunag lfart kunnr werks vstel bolnr
INTO TABLE itab1 FROM likp
WHERE wadat_ist IN date
AND vstel IN vstel
AND kunnr IN pkunnr
AND werks IN werks
AND erdat IN erdat
AND kunag IN kunag
%_HINTS ORACLE 'INDEX("LIKP" "LIKP~Z3")'.
ENDIF.
- very important condition was missing -
IF itab1[] IS INITIAL.
MESSAGE e034 WITH 'No suitable records found!!'.
ENDIF.
PDS_OPT
**-- Fetching data from VBFA --*
*-- Distribution Channel --*
break abap.
SELECT vbeln vbelv FROM vbfa INTO TABLE it_vbfa1 "OK Z11
FOR ALL ENTRIES IN itab1
WHERE
vbeln EQ itab1-vbeln AND
vbtyp_n EQ 'J' AND
vbtyp_v EQ 'C'.
IF NOT it_vbfa1[] IS INITIAL.
**-- Fetching data from VBAK --*
SELECT vbeln vtweg FROM vbak INTO TABLE it_vbak
FOR ALL ENTRIES IN it_vbfa1
WHERE
vbeln EQ it_vbfa1-vbelv
AND
vtweg IN pvtweg.
ENDIF.
*-- if shipping point eq ÁCW --*
**-- Fetching data from VBFA --*
*-- Subtotal 6 from pricing procedure KZWI6 --*
IF vstel-low EQ 'ACW'.
SELECT vbeln vbelv posnv FROM vbfa INTO TABLE it_vbfa2 "OK Z3
FOR ALL ENTRIES IN itab1
WHERE
vbelv EQ itab1-vbeln AND
vbtyp_n EQ 'M' AND
vbtyp_v EQ 'J'.
IF NOT it_vbfa2[] IS INITIAL.
SELECT vbeln kzwi6 posnr FROM vbrp INTO TABLE it_vbrp "OK Z1
FOR ALL ENTRIES IN it_vbfa2
WHERE
vbeln EQ it_vbfa2-vbeln
%_HINTS ORACLE 'index("VBRP" "VBRP~Z1")'.
ENDIF.
ELSE.
*-- if shipping point ne ÁCW --*
SELECT vbeln vbelv posnv FROM vbfa INTO TABLE it_vbfa2 "OK Z3
FOR ALL ENTRIES IN itab1
WHERE
vbelv EQ itab1-vbeln AND
vbtyp_n EQ 'U' AND
vbtyp_v EQ 'J'.
IF NOT it_vbfa2[] IS INITIAL.
SELECT vbeln kzwi6 posnr FROM vbrp INTO TABLE it_vbrp "OK Z1
FOR ALL ENTRIES IN it_vbfa2
WHERE
vbeln EQ it_vbfa2-vbeln
%_HINTS ORACLE 'index("VBRP" "VBRP~Z1")'.
ENDIF.
ENDIF.
*-- External ID --*
*-- no. of forwarding agent --*
**-- Fetching data from VTTP --*
SELECT vbeln tknum FROM vttp INTO TABLE it_vttp "OK VBL
FOR ALL ENTRIES IN itab1
WHERE
vbeln EQ itab1-vbeln.
IF sy-dbcnt NE 0.
**-- Fetching data from VTTK --*
*- 16/05/2006 -*
SELECT tknum exti1 tdlnr FROM vttk INTO TABLE it_vttk "OK PRIMARY
FOR ALL ENTRIES IN it_vttp
WHERE
tknum EQ it_vttp-tknum
AND
tdlnr IN ptdlnr AND
exti1 IN pexti1.
ENDIF.
**********************************CHANGE ON 07-07-06
SELECT * FROM ZTRMT INTO corresponding fields of
TABLE IT_ztrmt .
**-- Fetching data from VBUK --*
*-- Total goods movement status --*
SELECT vbeln wbstk FROM vbuk INTO TABLE it_vbuk "OK Z1
FOR ALL ENTRIES IN itab1
WHERE
vbeln EQ itab1-vbeln AND
wbstk EQ 'C'.
**-- Moving required flds to ITAB1 --*
- ITAB1 processing -
SORT itab1 BY vbeln.
SORT it_vbfa1 BY vbeln.
SORT it_vbak BY vbeln.
SORT it_vttp BY vbeln.
SORT it_vttk BY tknum.
SORT it_vbuk BY vbeln.
SORT PTDLNR BY LOW.
SORT PEXTI1 BY LOW.
LOOP AT itab1.
**----
**
condition problem
**----
**
moving VTWEG to itab1.
READ TABLE it_vbfa1 WITH KEY vbeln = itab1-vbeln BINARY SEARCH.
IF sy-subrc EQ 0.
READ TABLE it_vbak WITH KEY vbeln = it_vbfa1-vbelv BINARY SEARCH.
IF sy-subrc EQ 0.
MOVE it_vbak-vtweg TO itab1-vtweg.
MODIFY itab1 TRANSPORTING vtweg.
ELSE.
problem *
DELETE itab1.
CONTINUE.
ENDIF.
ENDIF.
moving KZWI6 to itab1.
LOOP AT it_vbfa2 WHERE vbelv EQ itab1-vbeln.
CLEAR w_kzwi6. "20042006
LOOP AT it_vbrp WHERE vbeln = it_vbfa2-vbeln.
w_kzwi6 = w_kzwi6 + it_vbrp-kzwi6.
ENDLOOP.
EXIT.
ENDLOOP.
MOVE w_kzwi6 TO itab1-kzwi6.
MODIFY itab1 TRANSPORTING kzwi6.
moving EXTI1 TDLNR to itab1
READ TABLE it_vttp WITH KEY vbeln = itab1-vbeln BINARY SEARCH.
IF sy-subrc EQ 0.
READ TABLE it_vttk WITH KEY tknum = it_vttp-tknum BINARY SEARCH.
*******************************************CHANGE ON 07-07-06.
IF sy-subrc EQ 0.
MOVE it_vttk-tdlnr TO itab1-tdlnr.
MOVE it_vttk-exti1 TO itab1-exti1.
MODIFY itab1 TRANSPORTING tdlnr exti1.
ENDIF.
ENDIF.
checking for goods movement status
READ TABLE it_vbuk WITH KEY vbeln = itab1-vbeln BINARY SEARCH.
IF sy-subrc NE 0.
DELETE itab1.
CONTINUE. "16052006
ENDIF.
IF ptdlnr NE space. "16052006
READ TABLE ptdlnr WITH KEY low = itab1-tdlnr BINARY SEARCH.
IF sy-subrc NE 0.
DELETE itab1.
continue.
ENDIF.
ENDIF.
IF pexti1 NE space . "16052006
ENDIF. "-16052006
ELSE. "-16052006
READ TABLE pexti1 WITH KEY low = itab1-exti1 BINARY SEARCH.
IF sy-subrc NE 0.
DELETE itab1.
ENDIF.
ENDIF.
ENDIF. "-16052006
ENDIF. "-16052006
ENDIF. "-16052006
ENDLOOP.
PDS_OPT
releasing memory occupied by these tables
FREE : it_vbfa1,
it_vbak,
it_vbfa2,
it_vbrp,
it_vttp,
it_vttk,
it_vbuk.
it_zrail.
**-- fetching from KNA1 --**
Population of ITAB5
*- very important condition was missing -*
*- 24042006 -*
IF itab1[] IS INITIAL.
MESSAGE e034 WITH 'No suitable records found!!'.
ENDIF.
SELECT kunnr name1 FROM kna1
INTO TABLE itab5
FOR ALL ENTRIES IN itab1
WHERE kunnr = itab1-kunag
%_HINTS ORACLE 'INDEX("KNA1" "KNA1~0")'.
DELETE ADJACENT DUPLICATES FROM itab5.
**-- fetching from LIPS --**
Population of ITAB2
SELECT vbeln vkgrp matnr lfimg werks vgbel FROM lips
INTO CORRESPONDING FIELDS OF TABLE itab2
FOR ALL ENTRIES IN itab1
WHERE vbeln = itab1-vbeln
AND pstyv NE 'ZREC'
AND matnr IN smatnr
%_HINTS ORACLE 'INDEX("LIPS" "LIPS~Z14")'.
***-- fetching from ZRAILDET --**
SELECT zzdelivery zzwagon FROM zraildet INTO TABLE it_zrail"OK Z1
FOR ALL ENTRIES IN itab1
WHERE
zzdelivery = itab1-vbeln.
*-- 20042006 --*
SORT itab1 BY vbeln.
SORT itab5 BY kunnr.
SORT it_zrail BY zzdelivery.
*-- 20042006 --*
LOOP AT itab2.
READ TABLE itab1 WITH KEY vbeln = itab2-vbeln BINARY SEARCH.
IF sy-subrc = 0.
MOVE itab1-wadat_ist TO itab2-wadat_ist.
MOVE itab1-erdat TO itab2-erdat.
MOVE itab1-kunag TO itab2-kunag.
MOVE itab1-lfart TO itab2-lfart.
MOVE itab1-kunnr TO itab2-kunnr.
MOVE itab1-vstel TO itab2-vstel.
MOVE itab1-werks TO itab2-r_plant.
MOVE itab1-vtweg TO itab2-vtweg.
MOVE itab1-kzwi6 TO itab2-kzwi6.
MOVE itab1-tdlnr TO itab2-tdlnr.
MOVE itab1-exti1 TO itab2-exti1.
************************* change on 07-07-06
IF itab2-tdlnr IS INITIAL.
READ TABLE it_zrail WITH KEY zzdelivery = itab1-vbeln BINARY
SEARCH.
IF sy-subrc = 0.
itab2-tdlnr = 'RAILWAY'.
itab2-exti1 = zraildet-zzwagon.
ENDIF.
ENDIF.
*
READ TABLE IT_ZTRMT WITH KEY TRUCKNO = itab1-exti1 .
IF SY-SUBRC = 0.
MOVE IT_ZTRMT-OWNCAT TO ITAB2-OWNCAT.
MOVE IT_ZTRMT-CAPITN TO ITAB2-CAPITN.
MODIFY itab2 TRANSPORTING OWNCAT CAPITN.
*
ENDIF.
*
clear it_ztrmt.
READ TABLE itab5 WITH KEY kunnr = itab1-kunag BINARY SEARCH
TRANSPORTING name1 .
MOVE itab5-name1 TO itab2-kname1.
ELSE.
CONTINUE.
ENDIF.
MODIFY itab2 .
CLEAR : itab1,itab2,itab5.
ENDLOOP.
DESCRIBE TABLE itab2 LINES n .
IF n = 0.
MESSAGE e034 WITH 'No records found for the selection'.
ENDIF.
SELECT docno "OK Z2
rdoc1
exnum
docyr
werks INTO CORRESPONDING
FIELDS OF TABLE iexcdtl FROM j_1iexcdtl
FOR ALL ENTRIES IN itab2
WHERE rdoc1 = itab2-vbeln AND
trntyp = 'DLFC' AND
werks IN vstel AND
status NE 'R' "+R007
*-- +R009 --*
%_HINTS ORACLE 'INDEX("J_1IEXCDTL" "J_1IEXCDTL~Z2")'. " +R009
*-- +R009 --*
IF NOT iexcdtl[] IS INITIAL.
LOOP AT iexcdtl.
UNPACK iexcdtl-docno TO iexcdtl-docno1.
UNPACK iexcdtl-exnum TO iexcdtl-exnum1.
MODIFY iexcdtl.
ENDLOOP.
IF NOT iexcdtl[] IS INITIAL.
SELECT docyr "OK Z05
bukrs
werks
preprn
exnum
exdat
status
exbed
ecs
INTO CORRESPONDING FIELDS OF TABLE iexchdr FROM
j_1iexchdr FOR ALL ENTRIES IN iexcdtl
WHERE
docno = iexcdtl-docno1
AND trntyp = 'DLFC'
AND docyr = iexcdtl-docyr
AND exnum = iexcdtl-exnum1
AND werks = iexcdtl-werks
AND status NE 'R'
*-- +R009 --*
%_HINTS ORACLE 'INDEX("J_1IEXCHDR" "J_1IEXCHDR~Z05")'. " +R009
*-- +R009 --*
ENDIF.
DATA : BEGIN OF a_itab OCCURS 0,
vbeln LIKE vbfa-vbelv,
END OF a_itab.
done-
SELECT vbeln auart "OK PRIMARY
INTO CORRESPONDING FIELDS OF TABLE it_vbak
FROM vbak
FOR ALL ENTRIES IN itab2
WHERE
vbeln EQ itab2-vgbel.
SORT iexcdtl BY rdoc1.
SORT iexchdr BY exnum werks.
SORT it_vbak BY vbeln.
LOOP AT itab2.
READ TABLE iexcdtl WITH KEY rdoc1 = itab2-vbeln BINARY SEARCH.
IF sy-subrc = 0.
READ TABLE iexchdr WITH KEY exnum = iexcdtl-exnum
werks = itab2-werks
BINARY SEARCH.
IF sy-subrc = 0.
itab2-preprn = iexchdr-preprn.
itab2-exnum = iexchdr-exnum.
itab2-exdat = iexchdr-exdat.
itab2-status = iexchdr-status.
itab2-exbed = iexchdr-exbed.
itab2-ecs = iexchdr-ecs.
ENDIF.
ENDIF.
IF itab2-preprn EQ space.
MOVE itab2-vbeln TO wname.
SELECT SINGLE * FROM stxh CLIENT SPECIFIED
WHERE mandt = sy-mandt
AND tdobject = 'VBBK'
AND tdname = wname
AND tdid = 'Z805'
AND tdspras = sy-langu.
IF sy-subrc EQ 0.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = 'Z805'
language = sy-langu
name = wname
object = 'VBBK'
TABLES
lines = wtline.
READ TABLE wtline INDEX 1.
itab2-preprn = wtline-tdline+0(12) .
ENDIF.
ENDIF.
READ TABLE it_vbak WITH KEY vbeln = itab2-vgbel BINARY SEARCH.
IF sy-subrc IS INITIAL.
MOVE it_vbak-auart TO itab2-auart.
ENDIF.
WRITE: itab2-preprn TO itab2-wpreprn RIGHT-JUSTIFIED.
CLEAR itab2-totexcamt.
itab2-totexcamt = itab2-exbed + itab2-ecs.
CALL FUNCTION 'J_1I6_ROUND_TO_NEAREST_AMT'
EXPORTING
i_amount = itab2-totexcamt
I_AMOUNT1 =
I_AMOUNT2 =
I_AMOUNT3 =
I_AMOUNT5 =
IMPORTING
e_amount = itab2-totexcamt
E_AMOUNT1 =
E_AMOUNT2 =
E_AMOUNT3 =
E_AMOUNT5 =
.
End R005
MODIFY itab2.
ENDLOOP.
END-OF-SELECTION.
IF sortdelv EQ 'X'.
SORT itab2 BY vbeln.
ELSEIF sorticdn EQ 'X'.
SORT itab2 BY wpreprn. "preprn. "pmp 020401
ELSEIF sortamt EQ 'X'.
SORT itab2 BY exbed .
ELSEIF sortstat EQ 'X'.
SORT itab2 BY status.
ELSEIF sortdest EQ 'X'.
SORT itab2 BY kunnr.
ENDIF.
CLEAR slno.
FORMAT INTENSIFIED OFF.
LOOP AT itab2.
slno = slno + 1.
itab2-slno = slno.
IF itab2-preprn EQ space.
READ TABLE itab1 WITH KEY vbeln = itab2-vbeln BINARY SEARCH.
IF sy-subrc = 0.
itab2-preprn = itab1-bolnr.
ENDIF.
modify itab2 transporting preprn where vbeln = itab2-vbeln.
ENDIF.
IF itab2-lfart EQ 'NL'.
itab2-rnew = itab2-r_plant.
ELSE.
itab2-rnew = itab2-kunag.
ENDIF.
modify itab2 .
ENDLOOP.
loop at itab2.
select single OWNCAT CAPITN into (itab2-OWNCAT, ITAB2-CAPITN) from
*ztrmt where truckno = itab2-exti1.
*if sy-subrc = 0.
*modify itab2 index sy-tabix.
*endif.
*endloop.
LOOP AT itab2.
CLEAR itab3. "pmp 13.01.01
MOVE-CORRESPONDING itab2 TO itab3.
**pmp 13.01.01
MOVE-CORRESPONDING itab2 TO itab4.
APPEND itab4.
SELECT SINGLE * FROM t001k WHERE bwkey = itab2-werks.
IF sy-subrc EQ 0.
MOVE t001k-bukrs TO itab3-bukrs.
ENDIF.
APPEND itab3.
ENDLOOP.
SORT itab3 BY bukrs matnr. "pmp 13.01.01
CLEAR: itab3. "pmp 13.01.01
LOOP AT itab3.
AT NEW bukrs.
itab6-bukrs = itab3-bukrs.
ENDAT.
AT END OF matnr.
SUM.
itab6-matnr = itab3-matnr.
itab6-lfimg = itab3-lfimg.
52 itab3-exbed color 3.
R004
itab6-totexcamt = itab3-totexcamt.
end R004
ENDAT.
append itab6.
ENDLOOP.
delete itab6 where matnr = ''.
delete adjacent duplicates from itab6.
LOOP AT itab4.
AT END OF matnr.
SUM.
itab7-matnr = itab4-matnr .
itab7-lfimg = itab4-lfimg .
52 itab4-exbed color 3.
**R004
itab7-totexcamt = itab4-totexcamt .
**end R004
collect itab7.
ENDAT.
ENDLOOP.
delete adjacent duplicates from itab7.
delete adjacent duplicates from itab6.
perform sort_list.
perform modify_fieldcat.
PERFORM EVENT_LIST.
*PERFORM BLOCK_LIST.
perform display_alv.
*&----
*
*& Form GET_CANCEL_DOC
*&----
*
text
*----
*
--> p1 text
<-- p2 text
*----
*
FORM get_cancel_doc.
IF itab2-status = 'R'.
SELECT SINGLE * FROM j_1iexchdr
WHERE
rdoc EQ bill
AND exnum NE space AND status EQ 'C'.
IF sy-subrc EQ 0.
MOVE-CORRESPONDING j_1iexchdr TO itab2.
ENDIF.
ENDIF.
ENDFORM. " GET_CANCEL_DOC
*&----
*
*& Form GET_KUNAG_NAME
*&----
*
text
*----
*
--> p1 text
<-- p2 text
*----
*
FORM get_kunag_name.
CLEAR itab2-kname1.
SELECT SINGLE name1 INTO itab2-kname1
FROM kna1
WHERE kunnr = itab1-kunag
*-- +R009 --*
%_HINTS ORACLE 'INDEX("KNA1" "KNA1~0")'.
*-- +R009 --*
.
ENDFORM. " GET_KUNAG_NAME
*&----
*
*& Form display_alv
*&----
*
text
*----
*
--> p1 text
<-- p2 text
*----
*
FORM display_alv .
CLEAR WA_LAYOUT.
WA_LAYOUT-ZEBRA = 'X'.
WA_LAYOUT-TOTALS_TEXT = 'TOTAL'.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = sy-repid
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_PF_STATUS_SET = PFSTATUS.
.
*CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'ITAB2'
I_INCLNAME = SY-REPID
CHANGING
CT_FIELDCAT = ALVFC.
DATA: IT_SORT TYPE SLIS_T_SORTINFO_ALV, "
X_SORT TYPE SLIS_SORTINFO_ALV.
X_SORT-FIELDNAME = 'MATNR'.
X_SORT-TABNAME = 'ITAB2'.
X_SORT-UP = 'X'.
X_SORT-SUBTOT = 'X'.
APPEND X_SORT TO IT_SORT. "
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = WA_LAYOUT
it_fieldcat = it_fieldcat1
i_tabname = 'ITAB2'
IT_SORT = IT_SORT
it_events = GT_XEVENTS
IT_SAVE = 'A'
TABLES
t_outtab = ITAB2
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = WA_LAYOUT
it_fieldcat = it_fieldcat2
i_tabname = 'ITAB6'
it_events = GT_YEVENTS
IT_SORT = IT_SORT
IT_SAVE = 'A'
TABLES
t_outtab = itab6
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
*----
-
ADD INTERNAL TABLE PTAB
REFRESH ALVFC[].
*
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'ITAB6'
I_INCLNAME = SY-REPID
CHANGING
CT_FIELDCAT = ALVFC.
*----
-
ADD INTERNAL TABLE PTAB
REFRESH ALVFC[].
*
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = WA_LAYOUT
it_fieldcat = IT_FIELDCAT3
i_tabname = 'ITAB7'
it_events = GT_ZEVENTS
IT_SORT = IT_SORT
IT_SAVE = 'X'
TABLES
t_outtab = itab7
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
*----
-
DISPLAY
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " display_alv
*&----
*
*& Form sort_list
*&----
*
text
*----
*
--> p1 text
<-- p2 text
*----
*
FORM sort_list .
CLEAR WA_SORT.
WA_SORT-FIELDNAME = 'MATNR'.
WA_SORT-SUBTOT = 'X'.
WA_SORT-SPOS = 1.
APPEND WA_SORT TO IT_SORT.
ENDFORM. " sort_list
*&----
*
*& Form modify_fieldcat
*&----
*
text
*----
*
--> p1 text
<-- p2 text
*----
*
FORM modify_fieldcat .
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '1'.
wa_fieldcat-key = 'X'.
wa_fieldcat-seltext_l = 'MATERIAL'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SLNO'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '2'.
wa_fieldcat-seltext_l = 'Sr No'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'WADAT_IST'.
wa_fieldcat-tabname = 'IATB2'.
wa_fieldcat-col_pos = '3'.
wa_fieldcat-seltext_l = 'G.I.DATE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PREPRN'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '4'.
wa_fieldcat-seltext_l = 'ICDN/DC NO.'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'VBELN'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '5'.
wa_fieldcat-seltext_l = 'dELIVERY NO.'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'AUART'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '6'.
wa_fieldcat-seltext_l = 'ORDER TYPE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
*wa_fieldcat-fieldname = 'MATNR'.
*wa_fieldcat-tabname = 'ITAB2'.
*wa_fieldcat-col_pos = '6'.
*wa_fieldcat-seltext_l = 'MATERIAL'.
*wa_fieldcat-emphasize = 'X'.
*append wa_fieldcat to it_fieldcat1.
*clear wa_fieldcat.
wa_fieldcat-fieldname = 'LFIMG'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '7'.
wa_fieldcat-seltext_l = 'QUANTITY'.
wa_fieldcat-DO_SUM = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'RNEW'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '8'.
wa_fieldcat-seltext_l = 'CUSTOMER'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'KUNNR'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '9'.
wa_fieldcat-seltext_l = 'DESTINATION'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'EXNUM'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '10'.
wa_fieldcat-seltext_l = 'EXCISE NO'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'EXDAT'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '11'.
wa_fieldcat-seltext_l = 'EXCISE DATE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TOTEXCAMT'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '12'.
wa_fieldcat-seltext_l = 'EXCISE AMOUNT'.
wa_fieldcat-DO_SUM = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'STATUS'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '13'.
wa_fieldcat-seltext_l = 'EXCISE STATUS'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TDLNR'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '14'.
wa_fieldcat-seltext_l = 'TRANSPORTER'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'EXTI1'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '15'.
wa_fieldcat-seltext_l = 'TRUCK NO'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'OWNCAT'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '16'.
wa_fieldcat-seltext_l = 'TRUCK CATEGORY'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'CAPITN'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '17'.
wa_fieldcat-seltext_l = 'TRUCK TYPE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '18'.
wa_fieldcat-seltext_l = 'PLANT'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'KNAME1'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '19'.
wa_fieldcat-seltext_l = 'SOLD TO PARTY'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'VTWEG'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '20'.
wa_fieldcat-seltext_l = 'DISTRIBUTION CHANNEL'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'KZWI6'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '21'.
wa_fieldcat-seltext_l = 'INVOICE VALUE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'BUKRS'.
wa_fieldcat-tabname = 'ITAB6'.
wa_fieldcat-col_pos = '1'.
wa_fieldcat-seltext_l = 'COMPANY CODE'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat2.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-tabname = 'ITAB6'.
wa_fieldcat-col_pos = '2'.
wa_fieldcat-seltext_l = 'MATERIAL'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat2.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'LFIMG'.
wa_fieldcat-tabname = 'ITAB6'.
wa_fieldcat-col_pos = '3'.
wa_fieldcat-seltext_l = 'QUANTITY'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat2.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TOTEXCAMT'.
wa_fieldcat-tabname = 'ITAB6'.
wa_fieldcat-col_pos = '4'.
wa_fieldcat-seltext_l = 'EXCISE VALUE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat2.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-tabname = 'ITAB7'.
wa_fieldcat-col_pos = '1'.
wa_fieldcat-seltext_l = 'MATERIAL'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat3.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'LFIMG'.
wa_fieldcat-tabname = 'ITAB7'.
wa_fieldcat-col_pos = '2'.
wa_fieldcat-seltext_l = 'QUANTITY'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat3.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TOTEXCAMT'.
wa_fieldcat-tabname = 'ITAB7'.
wa_fieldcat-col_pos = '3'.
wa_fieldcat-seltext_l = 'EXCISE VALUE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat3.
clear wa_fieldcat.
ENDFORM. " modify_fieldcat
*&----
*
*& Form EVENT_LIST
*&----
*
text
*----
*
--> p1 text
<-- p2 text
*----
*
FORM EVENT_LIST .
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'XTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
XS_EVENT-FORM = 'XEND_OF_PAGE'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
XS_EVENT-FORM = 'XTOP_OF_LIST'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
XS_EVENT-FORM = 'XEND_OF_LIST'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
XS_EVENT-FORM = 'YEND_OF_PAGE'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'YTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
XS_EVENT-FORM = 'YTOP_OF_LIST'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
XS_EVENT-FORM = 'YEND_OF_LIST'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
XS_EVENT-FORM = 'ZEND_OF_PAGE'.
APPEND XS_EVENT TO GT_ZEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'ZTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_ZEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
XS_EVENT-FORM = 'ZTOP_OF_LIST'.
APPEND XS_EVENT TO GT_ZEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
XS_EVENT-FORM = 'ZEND_OF_LIST'.
APPEND XS_EVENT TO GT_ZEVENTS.
CLEAR XS_EVENT.
ENDFORM. " EVENT_LIST
FORM XTOP_OF_PAGE.
WRITE:/15(30) 'ICDN / DC wise Dispatch Report For The Period' COLOR 3,
47 DATE-LOW , 58 'TO', 62 DATE-HIGH.
ENDFORM.
FORM YTOP_OF_PAGE.
WRITE:/ 'TOTAL BY COMPANY CODE' COLOR 3.
ENDFORM.
FORM ZTOP_OF_PAGE.
WRITE:/ 'TOTAL BY MATERIAL' COLOR 3.
ENDFORM.
FORM XEND_OF_PAGE.
*WRITE:/ 'END OF PAGE FOR MARA'.
ENDFORM.
FORM YEND_OF_PAGE.
*WRITE:/ 'END OF PAGE FOR MAKT'.
ENDFORM.
FORM ZEND_OF_PAGE.
*WRITE:/ 'END OF PAGE FOR MARC'.
ENDFORM.
FORM XTOP_OF_LIST.
WRITE:/40(30) 'ULTRATECH CEMENT LTD.' COLOR 6 INTENSIFIED OFF.
SKIP 1.
ENDFORM.
FORM YTOP_OF_LIST.
*WRITE:/ 'TOP OF LIST FOR MAKT'.
ENDFORM.
FORM ZTOP_OF_LIST.
*WRITE:/ 'TOP OF LIST FOR MARC'.
ENDFORM.
FORM XEND_OF_LIST.
*WRITE:/ 'END OF LIST FOR MARA'.
ENDFORM.
FORM YEND_OF_LIST.
*WRITE:/ 'END OF LIST FOR MAKT'.
ENDFORM.
FORM ZEND_OF_LIST.
*WRITE:/ 'END OF LIST FOR MARC'.
ENDFORM. " EVENT_LIST
2006 Jul 13 4:51 AM
hi
check the below links may be helpful for u
http://www.sapfans.com/forums/viewtopic.php?t=20386
http://www.sapfans.com/forums/viewtopic.php?t=85191
http://www.sapfans.com/forums/viewtopic.php?t=88401
http://www.sapfans.com/forums/viewtopic.php?t=17335
Regards,
Naveen
2006 Jul 13 8:06 AM
REPORT zcmsr047 MESSAGE-ID zz
NO STANDARD PAGE HEADING
LINE-SIZE 350.
TABLES: likp,
lips,
vbak,
vbpa,
vbuk,
vbrk,
vbrp,
vttk,
vttp,
vbfa,
stxh, "pmp 13.01.01
t001k, "pmp 13.01.01
j_1iexchdr,
j_1iexcdtl,
adrc,
* ZTRMT,
kna1.
* <zraildet. "AA 100501
type-pools : slis.
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, "mara
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA : IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV, "makt
WA_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV.
DATA : IT_FIELDCAT2 TYPE SLIS_T_FIELDCAT_ALV, "marc
WA_FIELDCAT2 TYPE SLIS_FIELDCAT_ALV.
DATA : IT_FIELDCAT3 TYPE SLIS_T_FIELDCAT_ALV, "marc
WA_FIELDCAT3 TYPE SLIS_FIELDCAT_ALV.
DATA: GT_PRINT TYPE SLIS_PRINT_ALV,
WA_LAYOUT TYPE SLIS_LAYOUT_ALV,
XS_EVENT TYPE SLIS_ALV_EVENT,
GT_XEVENTS TYPE SLIS_T_EVENT,
GT_YEVENTS TYPE SLIS_T_EVENT,
GT_ZEVENTS TYPE SLIS_T_EVENT,
WA_SORT TYPE SLIS_SORTINFO_ALV,
IT_SORT TYPE SLIS_T_SORTINFO_ALV.
*---------------------------------
*PARAMETERS : a TYPE c.
DATA: ship_doc LIKE vttk-tknum,
bill LIKE vbrp-vbeln,
c_vbeln LIKE likp-vbeln,
s_vbeln LIKE vbfa-vbeln.
DATA: BEGIN OF itab1 OCCURS 0,
vbeln LIKE likp-vbeln,
wadat_ist LIKE likp-wadat_ist,
erdat LIKE likp-erdat,
kunag LIKE likp-kunag,
lfart LIKE likp-lfart,
kunnr LIKE likp-kunnr,
werks LIKE likp-werks,
vstel LIKE likp-vstel,
bolnr LIKE likp-bolnr, "Added by AA 27/04/01.
exti1 LIKE vttk-exti1,
tdlnr LIKE vttk-tdlnr,
vtweg LIKE vbak-vtweg, "AA 100501.
vgbel LIKE lips-vgbel, "AA 100501
kzwi6 LIKE vbrp-kzwi6. " R002 added
* OWNCAT LIKE .
DATA: END OF itab1.
DATA : BEGIN OF it_vbfa1 OCCURS 0,
vbeln LIKE vbfa-vbeln,
vbelv LIKE vbfa-vbeln,
END OF it_vbfa1.
DATA : BEGIN OF it_vbfa2 OCCURS 0,
vbeln LIKE vbfa-vbeln,
vbelv LIKE vbfa-vbeln,
posnv LIKE vbfa-posnv,
END OF it_vbfa2.
DATA : BEGIN OF it_vbrp OCCURS 0,
vbeln LIKE vbrp-vbeln,
kzwi6 LIKE vbrp-kzwi6,
posnr LIKE vbrp-posnr,
END OF it_vbrp.
DATA : BEGIN OF it_vbak OCCURS 0,
vbeln LIKE vbfa-vbeln,
vtweg LIKE vbak-vtweg,
auart LIKE vbak-auart,
END OF it_vbak.
DATA : BEGIN OF it_vttp OCCURS 0,
vbeln LIKE vttp-vbeln,
tknum LIKE vttp-tknum,
END OF it_vttp.
DATA : BEGIN OF it_vttk OCCURS 0,
tknum LIKE vttk-tknum,
exti1 LIKE vttk-exti1,
tdlnr LIKE vttk-tdlnr,
END OF it_vttk.
DATA : BEGIN OF it_vbuk OCCURS 0,
vbeln LIKE vbuk-vbeln,
wbstk LIKE vbuk-wbstk,
END OF it_vbuk.
*DATA : BEGIN OF it_zrail OCCURS 0,
* zzdelivery LIKE zraildet-zzdelivery,
* zzwagon LIKE zraildet-zzwagon,
* END OF it_zrail.
DATA: BEGIN OF itab2 OCCURS 0,
vbeln LIKE likp-vbeln,
wadat_ist LIKE likp-wadat_ist,
erdat LIKE likp-erdat,
lfart LIKE likp-lfart,
kunag LIKE likp-kunag,
kunnr LIKE likp-kunnr,
r_plant LIKE likp-werks,
vstel LIKE likp-vstel,
vkgrp LIKE lips-vkgrp,
auart LIKE vbak-auart,
matnr LIKE lips-matnr,
lfimg LIKE lips-lfimg,
werks LIKE lips-werks,
name1 LIKE adrc-name1,
city1 LIKE adrc-city1,
preprn LIKE j_1iexchdr-preprn,
vgbel LIKE lips-vgbel, " Order No. SC
exti1 LIKE vttk-exti1, "Truck Number
exti2 LIKE vttk-exti2, "LR Number
tdlnr LIKE vttk-tdlnr, "Transporter
exbed LIKE j_1iexchdr-exbed,
** R004
ecs LIKE j_1iexchdr-ecs,
totexcamt LIKE j_1iexchdr-exbed,
** end R004
exnum LIKE j_1iexchdr-exnum,
exdat LIKE j_1iexchdr-exdat,
status LIKE j_1iexchdr-status,
sales_ord LIKE vbak-vbeln,
wpreprn(10), "pmp 020401
kname1 LIKE kna1-name1, "AA 100501.
vtweg LIKE vbak-vtweg, "AA 100501
kzwi6 LIKE vbrp-kzwi6, " R002 added
***** CHANGE ON 07-07-06
* OWNCAT LIKE ZTRMT-OWNCAT,
* CAPITN LIKE ZTRMT-CAPITN,
slno type i,
rnew(18),
END OF itab2.
*data:begin of it_ztrmt occurs 0,
* truckno like ztrmt-truckno,
* OWNCAT LIKE ZTRMT-OWNCAT,
* CAPITN LIKE ZTRMT-CAPITN,
* end of it_ztrmt.
DATA: BEGIN OF itab3 OCCURS 0,
bukrs LIKE t001k-bukrs, "pmp 13.01.01
matnr LIKE lips-matnr,
werks LIKE lips-werks, "pmp 13.01.01
lfimg LIKE lips-lfimg,
exbed LIKE j_1iexchdr-exbed,
** R004
totexcamt LIKE j_1iexchdr-exbed,
ecs LIKE j_1iexchdr-ecs.
** end R004
DATA : END OF itab3.
DATA: BEGIN OF itab4 OCCURS 0, "pmp 13.01.01
matnr LIKE lips-matnr,
lfimg LIKE lips-lfimg,
exbed LIKE j_1iexchdr-exbed,
** R004
totexcamt LIKE j_1iexchdr-exbed,
ecs LIKE j_1iexchdr-ecs.
** end R004
DATA: END OF itab4.
DATA: BEGIN OF itab7 OCCURS 0, "pmp 13.01.01
matnr LIKE lips-matnr,
lfimg LIKE lips-lfimg,
exbed LIKE j_1iexchdr-exbed,
** R004
totexcamt LIKE j_1iexchdr-exbed,
ecs LIKE j_1iexchdr-ecs.
** end R004
DATA: END OF itab7.
DATA : BEGIN OF itab5 OCCURS 0,
kunnr LIKE kna1-kunnr,
name1 LIKE kna1-name1,
END OF itab5. " +R007
DATA: wtline LIKE tline OCCURS 0 WITH HEADER LINE. "PMP 13.01.01
DATA: wname LIKE thead-tdname. "PMP 13.01.01
DATA slno TYPE i.
**** change/002 by rs on 08.10.2002
DATA: BEGIN OF iexcdtl OCCURS 0,
docno LIKE j_1iexcdtl-docno,
docno1 LIKE j_1iexcdtl-docno,
rdoc1 LIKE j_1iexcdtl-rdoc1,
exnum LIKE j_1iexcdtl-exnum,
exnum1 LIKE j_1iexcdtl-exnum,
werks LIKE j_1iexcdtl-werks,
docyr LIKE j_1iexcdtl-docyr,
END OF iexcdtl.
DATA: BEGIN OF iexchdr OCCURS 0,
bukrs LIKE j_1iexchdr-bukrs,
werks LIKE j_1iexchdr-werks, " VBK 090402
docyr LIKE j_1iexchdr-docyr,
preprn LIKE j_1iexchdr-preprn,
exnum LIKE j_1iexchdr-exnum,
exdat LIKE j_1iexchdr-exdat,
status LIKE j_1iexchdr-status,
exbed LIKE j_1iexchdr-exbed,
totexcamt LIKE j_1iexchdr-exbed,
ecs LIKE j_1iexchdr-ecs,
END OF iexchdr.
DATA n TYPE i.
DATA : w_kzwi6 LIKE vbrp-kzwi6.
" R002 added
*-- +R009 --*
DATA v_diff TYPE i.
*-- +R009 --*
DATA: BEGIN OF itab6 OCCURS 0,
bukrs LIKE t001k-bukrs, "pmp 13.01.01
matnr LIKE lips-matnr,
werks LIKE lips-werks, "pmp 13.01.01
lfimg LIKE lips-lfimg,
exbed LIKE j_1iexchdr-exbed,
** R004
totexcamt LIKE j_1iexchdr-exbed,
ecs LIKE j_1iexchdr-ecs.
** end R004
DATA : END OF itab6.
***------------------------------------------------------------------***
***------------------------------------------------------------------***
SELECTION-SCREEN : BEGIN OF BLOCK abc WITH FRAME TITLE text-001.
SELECT-OPTIONS:
vstel FOR likp-vstel OBLIGATORY, " NO INTERVALS ,
date FOR likp-wadat_ist OBLIGATORY,
erdat FOR likp-erdat,
kunag FOR likp-kunag NO INTERVALS,
smatnr FOR lips-matnr,
werks FOR likp-werks NO INTERVALS NO-EXTENSION,
pvtweg FOR lips-vtweg .
PARAMETERS: PFSTATUS TYPE SLIS_FORMNAME DEFAULT 'PF_STATUS_SET'.
SELECTION-SCREEN : END OF BLOCK abc.
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-002.
SELECT-OPTIONS: ptdlnr FOR vttk-tdlnr NO INTERVALS,
pexti1 FOR vttk-exti1 NO INTERVALS,
pkunnr FOR likp-kunnr NO INTERVALS.
SELECTION-SCREEN END OF BLOCK b.
SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE text-003.
PARAMETERS : sorticdn RADIOBUTTON GROUP b1 DEFAULT 'X',
sortdelv RADIOBUTTON GROUP b1,
sortstat RADIOBUTTON GROUP b1,
sortamt RADIOBUTTON GROUP b1,
sortdest RADIOBUTTON GROUP b1.
SELECTION-SCREEN END OF BLOCK c.
***------------------------------------------------------------------***
***------------------------------------------------------------------***
AT SELECTION-SCREEN.
IF vstel CA '*'.
MESSAGE e034 WITH 'Give specific value!!'.
ENDIF.
v_diff = date-high - date-low .
IF v_diff GT 31.
MESSAGE e034 WITH 'Kindly Run This Report For 31 days or less!!'.
ENDIF.
***------------------------------------------------------------------***
***------------------------------------------------------------------***
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = 100
text = 'Wait, Your Job Is Under Progress!!!'.
***------------------------------------------------------------------***
***------------------------------------------------------------------***
START-OF-SELECTION.
CLEAR : it_vbfa1, it_vbfa1[],
it_vbak, it_vbak[],
it_vbfa2, it_vbfa2[],
it_vbrp, it_vbrp[],
it_vttp, it_vttp[],
it_vttk, it_vttk[],
it_vbuk, it_vbuk[].
* it_zrail, it_zrail[].
**-- Initial population of data from LIKP --**
* Population of ITAB1
IF NOT kunag IS INITIAL AND
NOT pkunnr IS INITIAL AND
NOT werks IS INITIAL AND
NOT erdat IS INITIAL.
SELECT vbeln wadat_ist erdat kunag lfart kunnr werks vstel bolnr
INTO TABLE itab1 FROM likp
WHERE wadat_ist IN date
AND vstel IN vstel
AND kunnr IN pkunnr
AND werks IN werks
AND erdat IN erdat
AND kunag IN kunag
%_HINTS ORACLE 'INDEX("LIKP" "LIKP~Z3")'.
ELSEIF
kunag IS INITIAL AND
pkunnr IS INITIAL AND
werks IS INITIAL AND
erdat IS INITIAL.
SELECT vbeln wadat_ist erdat kunag lfart kunnr werks vstel bolnr
INTO TABLE itab1 FROM likp
WHERE
vstel IN vstel
AND wadat_ist IN date
%_HINTS ORACLE 'INDEX("LIKP" "LIKP~Z4")'.
ELSEIF
kunag IS INITIAL AND
erdat IS INITIAL.
SELECT vbeln wadat_ist erdat kunag lfart kunnr werks vstel bolnr
INTO TABLE itab1 FROM likp
WHERE wadat_ist IN date
AND vstel IN vstel
AND kunnr IN pkunnr
AND werks IN werks
%_HINTS ORACLE 'INDEX("LIKP" "LIKP~Z3")'.
ELSE.
SELECT vbeln wadat_ist erdat kunag lfart kunnr werks vstel bolnr
INTO TABLE itab1 FROM likp
WHERE wadat_ist IN date
AND vstel IN vstel
AND kunnr IN pkunnr
AND werks IN werks
AND erdat IN erdat
AND kunag IN kunag
%_HINTS ORACLE 'INDEX("LIKP" "LIKP~Z3")'.
ENDIF.
*- very important condition was missing -*
IF itab1[] IS INITIAL.
MESSAGE e034 WITH 'No suitable records found!!'.
ENDIF.
*--PDS_OPT--*
**-- Fetching data from VBFA --*
*-- Distribution Channel --*
break abap.
SELECT vbeln vbelv FROM vbfa INTO TABLE it_vbfa1 "OK Z11
FOR ALL ENTRIES IN itab1
WHERE
vbeln EQ itab1-vbeln AND
vbtyp_n EQ 'J' AND
vbtyp_v EQ 'C'.
IF NOT it_vbfa1[] IS INITIAL.
**-- Fetching data from VBAK --*
SELECT vbeln vtweg FROM vbak INTO TABLE it_vbak
FOR ALL ENTRIES IN it_vbfa1
WHERE
vbeln EQ it_vbfa1-vbelv
AND
vtweg IN pvtweg.
ENDIF.
*-- if shipping point eq ÁCW --*
**-- Fetching data from VBFA --*
*-- Subtotal 6 from pricing procedure KZWI6 --*
IF vstel-low EQ 'ACW'.
SELECT vbeln vbelv posnv FROM vbfa INTO TABLE it_vbfa2 "OK Z3
FOR ALL ENTRIES IN itab1
WHERE
vbelv EQ itab1-vbeln AND
vbtyp_n EQ 'M' AND
vbtyp_v EQ 'J'.
IF NOT it_vbfa2[] IS INITIAL.
SELECT vbeln kzwi6 posnr FROM vbrp INTO TABLE it_vbrp "OK Z1
FOR ALL ENTRIES IN it_vbfa2
WHERE
vbeln EQ it_vbfa2-vbeln
%_HINTS ORACLE 'index("VBRP" "VBRP~Z1")'.
ENDIF.
ELSE.
*-- if shipping point ne ÁCW --*
SELECT vbeln vbelv posnv FROM vbfa INTO TABLE it_vbfa2 "OK Z3
FOR ALL ENTRIES IN itab1
WHERE
vbelv EQ itab1-vbeln AND
vbtyp_n EQ 'U' AND
vbtyp_v EQ 'J'.
IF NOT it_vbfa2[] IS INITIAL.
SELECT vbeln kzwi6 posnr FROM vbrp INTO TABLE it_vbrp "OK Z1
FOR ALL ENTRIES IN it_vbfa2
WHERE
vbeln EQ it_vbfa2-vbeln
%_HINTS ORACLE 'index("VBRP" "VBRP~Z1")'.
ENDIF.
ENDIF.
*-- External ID --*
*-- no. of forwarding agent --*
**-- Fetching data from VTTP --*
SELECT vbeln tknum FROM vttp INTO TABLE it_vttp "OK VBL
FOR ALL ENTRIES IN itab1
WHERE
vbeln EQ itab1-vbeln.
IF sy-dbcnt NE 0.
**-- Fetching data from VTTK --*
*- 16/05/2006 -*
SELECT tknum exti1 tdlnr FROM vttk INTO TABLE it_vttk "OK PRIMARY
FOR ALL ENTRIES IN it_vttp
WHERE
tknum EQ it_vttp-tknum
AND
tdlnr IN ptdlnr AND
exti1 IN pexti1.
ENDIF.
**********************************CHANGE ON 07-07-06
* SELECT * FROM ZTRMT INTO corresponding fields of
* TABLE IT_ztrmt .
**-- Fetching data from VBUK --*
*-- Total goods movement status --*
SELECT vbeln wbstk FROM vbuk INTO TABLE it_vbuk "OK Z1
FOR ALL ENTRIES IN itab1
WHERE
vbeln EQ itab1-vbeln AND
wbstk EQ 'C'.
**-- Moving required flds to ITAB1 --*
*- ITAB1 processing -*
SORT itab1 BY vbeln.
SORT it_vbfa1 BY vbeln.
SORT it_vbak BY vbeln.
SORT it_vttp BY vbeln.
SORT it_vttk BY tknum.
SORT it_vbuk BY vbeln.
SORT PTDLNR BY LOW.
SORT PEXTI1 BY LOW.
LOOP AT itab1.
**-------------------**
* condition problem
**-------------------**
* moving VTWEG to itab1.
READ TABLE it_vbfa1 WITH KEY vbeln = itab1-vbeln BINARY SEARCH.
IF sy-subrc EQ 0.
READ TABLE it_vbak WITH KEY vbeln = it_vbfa1-vbelv BINARY SEARCH.
IF sy-subrc EQ 0.
MOVE it_vbak-vtweg TO itab1-vtweg.
MODIFY itab1 TRANSPORTING vtweg.
ELSE.
* problem *
DELETE itab1.
CONTINUE.
ENDIF.
ENDIF.
* moving KZWI6 to itab1.
LOOP AT it_vbfa2 WHERE vbelv EQ itab1-vbeln.
CLEAR w_kzwi6. "20042006
LOOP AT it_vbrp WHERE vbeln = it_vbfa2-vbeln.
w_kzwi6 = w_kzwi6 + it_vbrp-kzwi6.
ENDLOOP.
EXIT.
ENDLOOP.
MOVE w_kzwi6 TO itab1-kzwi6.
MODIFY itab1 TRANSPORTING kzwi6.
* moving EXTI1 TDLNR to itab1
READ TABLE it_vttp WITH KEY vbeln = itab1-vbeln BINARY SEARCH.
IF sy-subrc EQ 0.
READ TABLE it_vttk WITH KEY tknum = it_vttp-tknum BINARY SEARCH.
*******************************************CHANGE ON 07-07-06.
IF sy-subrc EQ 0.
MOVE it_vttk-tdlnr TO itab1-tdlnr.
MOVE it_vttk-exti1 TO itab1-exti1.
MODIFY itab1 TRANSPORTING tdlnr exti1.
ENDIF.
ENDIF.
* checking for goods movement status
READ TABLE it_vbuk WITH KEY vbeln = itab1-vbeln BINARY SEARCH.
IF sy-subrc NE 0.
DELETE itab1.
CONTINUE. "16052006
ENDIF.
IF ptdlnr NE space. "16052006
READ TABLE ptdlnr WITH KEY low = itab1-tdlnr BINARY SEARCH.
IF sy-subrc NE 0.
DELETE itab1.
continue.
ENDIF.
ENDIF.
IF pexti1 NE space . "16052006
* ENDIF. "-16052006
* ELSE. "-16052006
READ TABLE pexti1 WITH KEY low = itab1-exti1 BINARY SEARCH.
IF sy-subrc NE 0.
DELETE itab1.
ENDIF.
ENDIF.
* ENDIF. "-16052006
* ENDIF. "-16052006
* ENDIF. "-16052006
ENDLOOP.
*--PDS_OPT--*
* releasing memory occupied by these tables
FREE : it_vbfa1,
it_vbak,
it_vbfa2,
it_vbrp,
it_vttp,
it_vttk,
it_vbuk.
* it_zrail.
**-- fetching from KNA1 --**
* Population of ITAB5
*- very important condition was missing -*
*- 24042006 -*
IF itab1[] IS INITIAL.
MESSAGE e034 WITH 'No suitable records found!!'.
ENDIF.
SELECT kunnr name1 FROM kna1
INTO TABLE itab5
FOR ALL ENTRIES IN itab1
WHERE kunnr = itab1-kunag
%_HINTS ORACLE 'INDEX("KNA1" "KNA1~0")'.
DELETE ADJACENT DUPLICATES FROM itab5.
**-- fetching from LIPS --**
* Population of ITAB2
SELECT vbeln vkgrp matnr lfimg werks vgbel FROM lips
INTO CORRESPONDING FIELDS OF TABLE itab2
FOR ALL ENTRIES IN itab1
WHERE vbeln = itab1-vbeln
AND pstyv NE 'ZREC'
AND matnr IN smatnr
%_HINTS ORACLE 'INDEX("LIPS" "LIPS~Z14")'.
***-- fetching from ZRAILDET --**
* SELECT zzdelivery zzwagon FROM zraildet INTO TABLE it_zrail"OK Z1
* FOR ALL ENTRIES IN itab1
* WHERE
* zzdelivery = itab1-vbeln.
*-- 20042006 --*
SORT itab1 BY vbeln.
SORT itab5 BY kunnr.
* SORT it_zrail BY zzdelivery.
*-- 20042006 --*
LOOP AT itab2.
READ TABLE itab1 WITH KEY vbeln = itab2-vbeln BINARY SEARCH.
IF sy-subrc = 0.
MOVE itab1-wadat_ist TO itab2-wadat_ist.
MOVE itab1-erdat TO itab2-erdat.
MOVE itab1-kunag TO itab2-kunag.
MOVE itab1-lfart TO itab2-lfart.
MOVE itab1-kunnr TO itab2-kunnr.
MOVE itab1-vstel TO itab2-vstel.
MOVE itab1-werks TO itab2-r_plant.
MOVE itab1-vtweg TO itab2-vtweg.
MOVE itab1-kzwi6 TO itab2-kzwi6.
MOVE itab1-tdlnr TO itab2-tdlnr.
MOVE itab1-exti1 TO itab2-exti1.
* ************************* change on 07-07-06
* IF itab2-tdlnr IS INITIAL.
* READ TABLE it_zrail WITH KEY zzdelivery = itab1-vbeln BINARY
* SEARCH.
* IF sy-subrc = 0.
* itab2-tdlnr = 'RAILWAY'.
* itab2-exti1 = zraildet-zzwagon.
* ENDIF.
* ENDIF.
*
* READ TABLE IT_ZTRMT WITH KEY TRUCKNO = itab1-exti1 .
* IF SY-SUBRC = 0.
* MOVE IT_ZTRMT-OWNCAT TO ITAB2-OWNCAT.
* MOVE IT_ZTRMT-CAPITN TO ITAB2-CAPITN.
* MODIFY itab2 TRANSPORTING OWNCAT CAPITN.
*
* ENDIF.
*
* clear it_ztrmt.
READ TABLE itab5 WITH KEY kunnr = itab1-kunag BINARY SEARCH
TRANSPORTING name1 .
MOVE itab5-name1 TO itab2-kname1.
ELSE.
CONTINUE.
ENDIF.
MODIFY itab2 .
CLEAR : itab1,itab2,itab5.
ENDLOOP.
DESCRIBE TABLE itab2 LINES n .
IF n = 0.
MESSAGE e034 WITH 'No records found for the selection'.
ENDIF.
SELECT docno "OK Z2
rdoc1
exnum
docyr
werks INTO CORRESPONDING
FIELDS OF TABLE iexcdtl FROM j_1iexcdtl
FOR ALL ENTRIES IN itab2
WHERE rdoc1 = itab2-vbeln AND
trntyp = 'DLFC' AND
werks IN vstel AND
status NE 'R' "+R007
*-- +R009 --*
%_HINTS ORACLE 'INDEX("J_1IEXCDTL" "J_1IEXCDTL~Z2")'. " +R009
*-- +R009 --*
* IF NOT iexcdtl[] IS INITIAL.
LOOP AT iexcdtl.
UNPACK iexcdtl-docno TO iexcdtl-docno1.
UNPACK iexcdtl-exnum TO iexcdtl-exnum1.
MODIFY iexcdtl.
ENDLOOP.
IF NOT iexcdtl[] IS INITIAL.
SELECT docyr "OK Z05
bukrs
werks
preprn
exnum
exdat
status
exbed
ecs
INTO CORRESPONDING FIELDS OF TABLE iexchdr FROM
j_1iexchdr FOR ALL ENTRIES IN iexcdtl
WHERE
docno = iexcdtl-docno1
AND trntyp = 'DLFC'
AND docyr = iexcdtl-docyr
AND exnum = iexcdtl-exnum1
AND werks = iexcdtl-werks
AND status NE 'R'
*-- +R009 --*
%_HINTS ORACLE 'INDEX("J_1IEXCHDR" "J_1IEXCHDR~Z05")'. " +R009
*-- +R009 --*
ENDIF.
* DATA : BEGIN OF a_itab OCCURS 0,
* vbeln LIKE vbfa-vbelv,
* END OF a_itab.
*--done---*
SELECT vbeln auart "OK PRIMARY
INTO CORRESPONDING FIELDS OF TABLE it_vbak
FROM vbak
FOR ALL ENTRIES IN itab2
WHERE
vbeln EQ itab2-vgbel.
SORT iexcdtl BY rdoc1.
SORT iexchdr BY exnum werks.
SORT it_vbak BY vbeln.
LOOP AT itab2.
READ TABLE iexcdtl WITH KEY rdoc1 = itab2-vbeln BINARY SEARCH.
IF sy-subrc = 0.
READ TABLE iexchdr WITH KEY exnum = iexcdtl-exnum
werks = itab2-werks
BINARY SEARCH.
IF sy-subrc = 0.
itab2-preprn = iexchdr-preprn.
itab2-exnum = iexchdr-exnum.
itab2-exdat = iexchdr-exdat.
itab2-status = iexchdr-status.
itab2-exbed = iexchdr-exbed.
itab2-ecs = iexchdr-ecs.
ENDIF.
ENDIF.
IF itab2-preprn EQ space.
MOVE itab2-vbeln TO wname.
SELECT SINGLE * FROM stxh CLIENT SPECIFIED
WHERE mandt = sy-mandt
AND tdobject = 'VBBK'
AND tdname = wname
AND tdid = 'Z805'
AND tdspras = sy-langu.
IF sy-subrc EQ 0.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = 'Z805'
language = sy-langu
name = wname
object = 'VBBK'
TABLES
lines = wtline.
READ TABLE wtline INDEX 1.
itab2-preprn = wtline-tdline+0(12) .
ENDIF.
ENDIF.
READ TABLE it_vbak WITH KEY vbeln = itab2-vgbel BINARY SEARCH.
IF sy-subrc IS INITIAL.
MOVE it_vbak-auart TO itab2-auart.
ENDIF.
WRITE: itab2-preprn TO itab2-wpreprn RIGHT-JUSTIFIED.
CLEAR itab2-totexcamt.
itab2-totexcamt = itab2-exbed + itab2-ecs.
CALL FUNCTION 'J_1I6_ROUND_TO_NEAREST_AMT'
EXPORTING
i_amount = itab2-totexcamt
* I_AMOUNT1 =
* I_AMOUNT2 =
* I_AMOUNT3 =
* I_AMOUNT5 =
IMPORTING
e_amount = itab2-totexcamt
* E_AMOUNT1 =
* E_AMOUNT2 =
* E_AMOUNT3 =
* E_AMOUNT5 =
.
** End R005
MODIFY itab2.
ENDLOOP.
END-OF-SELECTION.
IF sortdelv EQ 'X'.
SORT itab2 BY vbeln.
ELSEIF sorticdn EQ 'X'.
SORT itab2 BY wpreprn. "preprn. "pmp 020401
ELSEIF sortamt EQ 'X'.
SORT itab2 BY exbed .
ELSEIF sortstat EQ 'X'.
SORT itab2 BY status.
ELSEIF sortdest EQ 'X'.
SORT itab2 BY kunnr.
ENDIF.
CLEAR slno.
FORMAT INTENSIFIED OFF.
LOOP AT itab2.
slno = slno + 1.
itab2-slno = slno.
IF itab2-preprn EQ space.
READ TABLE itab1 WITH KEY vbeln = itab2-vbeln BINARY SEARCH.
IF sy-subrc = 0.
itab2-preprn = itab1-bolnr.
ENDIF.
modify itab2 transporting preprn where vbeln = itab2-vbeln.
ENDIF.
IF itab2-lfart EQ 'NL'.
itab2-rnew = itab2-r_plant.
ELSE.
itab2-rnew = itab2-kunag.
ENDIF.
modify itab2 .
ENDLOOP.
* loop at itab2.
* select single OWNCAT CAPITN into (itab2-OWNCAT, ITAB2-CAPITN) from
*ztrmt where truckno = itab2-exti1.
*if sy-subrc = 0.
*modify itab2 index sy-tabix.
*endif.
*endloop.
LOOP AT itab2.
CLEAR itab3. "pmp 13.01.01
MOVE-CORRESPONDING itab2 TO itab3.
**pmp 13.01.01
MOVE-CORRESPONDING itab2 TO itab4.
APPEND itab4.
SELECT SINGLE * FROM t001k WHERE bwkey = itab2-werks.
IF sy-subrc EQ 0.
MOVE t001k-bukrs TO itab3-bukrs.
ENDIF.
APPEND itab3.
ENDLOOP.
SORT itab3 BY bukrs matnr. "pmp 13.01.01
CLEAR: itab3. "pmp 13.01.01
LOOP AT itab3.
AT NEW bukrs.
itab6-bukrs = itab3-bukrs.
ENDAT.
AT END OF matnr.
SUM.
itab6-matnr = itab3-matnr.
itab6-lfimg = itab3-lfimg.
* 52 itab3-exbed color 3.
** R004
itab6-totexcamt = itab3-totexcamt.
** end R004
ENDAT.
append itab6.
ENDLOOP.
delete itab6 where matnr = ''.
delete adjacent duplicates from itab6.
LOOP AT itab4.
AT END OF matnr.
SUM.
itab7-matnr = itab4-matnr .
itab7-lfimg = itab4-lfimg .
* 52 itab4-exbed color 3.
**R004
itab7-totexcamt = itab4-totexcamt .
**end R004
collect itab7.
ENDAT.
ENDLOOP.
delete adjacent duplicates from itab7.
delete adjacent duplicates from itab6.
perform sort_list.
perform modify_fieldcat.
PERFORM EVENT_LIST.
*PERFORM BLOCK_LIST.
perform display_alv.
*&---------------------------------------------------------------------*
*& Form GET_CANCEL_DOC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_cancel_doc.
IF itab2-status = 'R'.
SELECT SINGLE * FROM j_1iexchdr
WHERE
rdoc EQ bill
AND exnum NE space AND status EQ 'C'.
IF sy-subrc EQ 0.
MOVE-CORRESPONDING j_1iexchdr TO itab2.
ENDIF.
ENDIF.
ENDFORM. " GET_CANCEL_DOC
*&---------------------------------------------------------------------*
*& Form GET_KUNAG_NAME
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_kunag_name.
CLEAR itab2-kname1.
SELECT SINGLE name1 INTO itab2-kname1
FROM kna1
WHERE kunnr = itab1-kunag
*-- +R009 --*
%_HINTS ORACLE 'INDEX("KNA1" "KNA1~0")'.
*-- +R009 --*
.
ENDFORM. " GET_KUNAG_NAME
*&---------------------------------------------------------------------*
*& Form display_alv
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display_alv .
CLEAR WA_LAYOUT.
WA_LAYOUT-ZEBRA = 'X'.
WA_LAYOUT-TOTALS_TEXT = 'TOTAL'.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = sy-repid
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
* I_CALLBACK_PF_STATUS_SET = PFSTATUS.
.
*CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
* EXPORTING
* I_PROGRAM_NAME = SY-REPID
* I_INTERNAL_TABNAME = 'ITAB2'
* I_INCLNAME = SY-REPID
* CHANGING
* CT_FIELDCAT = ALVFC.
DATA: IT_SORT TYPE SLIS_T_SORTINFO_ALV, "<b>
X_SORT TYPE SLIS_SORTINFO_ALV.
X_SORT-FIELDNAME = 'MATNR'.
X_SORT-TABNAME = 'ITAB2'.
X_SORT-UP = 'X'.
X_SORT-SUBTOT = 'X'.
APPEND X_SORT TO IT_SORT. "</b>
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = WA_LAYOUT
it_fieldcat = it_fieldcat1
i_tabname = 'ITAB2'
IT_SORT = IT_SORT
it_events = GT_XEVENTS
* IT_SAVE = 'A'
TABLES
t_outtab = ITAB2
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = WA_LAYOUT
it_fieldcat = it_fieldcat2
i_tabname = 'ITAB6'
it_events = GT_YEVENTS
* IT_SORT = IT_SORT
* IT_SAVE = 'A'
TABLES
t_outtab = itab6
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
*------------------- ADD INTERNAL TABLE PTAB
* REFRESH ALVFC[].
*
* CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
* EXPORTING
* I_PROGRAM_NAME = SY-REPID
* I_INTERNAL_TABNAME = 'ITAB6'
* I_INCLNAME = SY-REPID
* CHANGING
* CT_FIELDCAT = ALVFC.
*------------------- ADD INTERNAL TABLE PTAB
* REFRESH ALVFC[].
*
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = WA_LAYOUT
it_fieldcat = IT_FIELDCAT3
i_tabname = 'ITAB7'
it_events = GT_ZEVENTS
* IT_SORT = IT_SORT
* IT_SAVE = 'X'
TABLES
t_outtab = itab7
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
*--------------- DISPLAY
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " display_alv
*&---------------------------------------------------------------------*
*& Form sort_list
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM sort_list .
* CLEAR WA_SORT.
* WA_SORT-FIELDNAME = 'MATNR'.
* WA_SORT-SUBTOT = 'X'.
* WA_SORT-SPOS = 1.
* APPEND WA_SORT TO IT_SORT.
ENDFORM. " sort_list
*&---------------------------------------------------------------------*
*& Form modify_fieldcat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM modify_fieldcat .
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '1'.
wa_fieldcat-key = 'X'.
wa_fieldcat-seltext_l = 'MATERIAL'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SLNO'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '2'.
wa_fieldcat-seltext_l = 'Sr No'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'WADAT_IST'.
wa_fieldcat-tabname = 'IATB2'.
wa_fieldcat-col_pos = '3'.
wa_fieldcat-seltext_l = 'G.I.DATE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PREPRN'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '4'.
wa_fieldcat-seltext_l = 'ICDN/DC NO.'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'VBELN'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '5'.
wa_fieldcat-seltext_l = 'dELIVERY NO.'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'AUART'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '6'.
wa_fieldcat-seltext_l = 'ORDER TYPE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
*wa_fieldcat-fieldname = 'MATNR'.
*wa_fieldcat-tabname = 'ITAB2'.
*wa_fieldcat-col_pos = '6'.
*wa_fieldcat-seltext_l = 'MATERIAL'.
*wa_fieldcat-emphasize = 'X'.
*append wa_fieldcat to it_fieldcat1.
*clear wa_fieldcat.
wa_fieldcat-fieldname = 'LFIMG'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '7'.
wa_fieldcat-seltext_l = 'QUANTITY'.
<b>wa_fieldcat-inttype = 'P'.</b>
wa_fieldcat-DO_SUM = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'RNEW'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '8'.
wa_fieldcat-seltext_l = 'CUSTOMER'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'KUNNR'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '9'.
wa_fieldcat-seltext_l = 'DESTINATION'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'EXNUM'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '10'.
wa_fieldcat-seltext_l = 'EXCISE NO'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'EXDAT'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '11'.
wa_fieldcat-seltext_l = 'EXCISE DATE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TOTEXCAMT'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '12'.
<b>wa_fieldcat-inttype = 'P'.</b>
wa_fieldcat-seltext_l = 'EXCISE AMOUNT'.
wa_fieldcat-DO_SUM = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'STATUS'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '13'.
wa_fieldcat-seltext_l = 'EXCISE STATUS'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TDLNR'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '14'.
wa_fieldcat-seltext_l = 'TRANSPORTER'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'EXTI1'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '15'.
wa_fieldcat-seltext_l = 'TRUCK NO'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'OWNCAT'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '16'.
wa_fieldcat-seltext_l = 'TRUCK CATEGORY'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'CAPITN'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '17'.
wa_fieldcat-seltext_l = 'TRUCK TYPE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '18'.
wa_fieldcat-seltext_l = 'PLANT'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'KNAME1'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '19'.
wa_fieldcat-seltext_l = 'SOLD TO PARTY'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'VTWEG'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '20'.
wa_fieldcat-seltext_l = 'DISTRIBUTION CHANNEL'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'KZWI6'.
wa_fieldcat-tabname = 'ITAB2'.
wa_fieldcat-col_pos = '21'.
wa_fieldcat-seltext_l = 'INVOICE VALUE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat1.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'BUKRS'.
wa_fieldcat-tabname = 'ITAB6'.
wa_fieldcat-col_pos = '1'.
wa_fieldcat-seltext_l = 'COMPANY CODE'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat2.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-tabname = 'ITAB6'.
wa_fieldcat-col_pos = '2'.
wa_fieldcat-seltext_l = 'MATERIAL'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat2.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'LFIMG'.
wa_fieldcat-tabname = 'ITAB6'.
wa_fieldcat-col_pos = '3'.
wa_fieldcat-seltext_l = 'QUANTITY'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat2.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TOTEXCAMT'.
wa_fieldcat-tabname = 'ITAB6'.
wa_fieldcat-col_pos = '4'.
wa_fieldcat-seltext_l = 'EXCISE VALUE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat2.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-tabname = 'ITAB7'.
wa_fieldcat-col_pos = '1'.
wa_fieldcat-seltext_l = 'MATERIAL'.
wa_fieldcat-emphasize = 'X'.
append wa_fieldcat to it_fieldcat3.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'LFIMG'.
wa_fieldcat-tabname = 'ITAB7'.
wa_fieldcat-col_pos = '2'.
wa_fieldcat-seltext_l = 'QUANTITY'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat3.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TOTEXCAMT'.
wa_fieldcat-tabname = 'ITAB7'.
wa_fieldcat-col_pos = '3'.
wa_fieldcat-seltext_l = 'EXCISE VALUE'.
*wa_fieldcat-emphasize = ''.
append wa_fieldcat to it_fieldcat3.
clear wa_fieldcat.
ENDFORM. " modify_fieldcat
*&---------------------------------------------------------------------*
*& Form EVENT_LIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM EVENT_LIST .
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'XTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
XS_EVENT-FORM = 'XEND_OF_PAGE'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
XS_EVENT-FORM = 'XTOP_OF_LIST'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
XS_EVENT-FORM = 'XEND_OF_LIST'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
XS_EVENT-FORM = 'YEND_OF_PAGE'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'YTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
XS_EVENT-FORM = 'YTOP_OF_LIST'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
XS_EVENT-FORM = 'YEND_OF_LIST'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
XS_EVENT-FORM = 'ZEND_OF_PAGE'.
APPEND XS_EVENT TO GT_ZEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'ZTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_ZEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
XS_EVENT-FORM = 'ZTOP_OF_LIST'.
APPEND XS_EVENT TO GT_ZEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
XS_EVENT-FORM = 'ZEND_OF_LIST'.
APPEND XS_EVENT TO GT_ZEVENTS.
CLEAR XS_EVENT.
ENDFORM. " EVENT_LIST
FORM XTOP_OF_PAGE.
WRITE:/15(30) 'ICDN / DC wise Dispatch Report For The Period' COLOR 3,
47 DATE-LOW , 58 'TO', 62 DATE-HIGH.
ENDFORM.
FORM YTOP_OF_PAGE.
WRITE:/ 'TOTAL BY COMPANY CODE' COLOR 3.
ENDFORM.
FORM ZTOP_OF_PAGE.
WRITE:/ 'TOTAL BY MATERIAL' COLOR 3.
ENDFORM.
FORM XEND_OF_PAGE.
*WRITE:/ 'END OF PAGE FOR MARA'.
ENDFORM.
FORM YEND_OF_PAGE.
*WRITE:/ 'END OF PAGE FOR MAKT'.
ENDFORM.
FORM ZEND_OF_PAGE.
*WRITE:/ 'END OF PAGE FOR MARC'.
ENDFORM.
FORM XTOP_OF_LIST.
WRITE:/40(30) 'ULTRATECH CEMENT LTD.' COLOR 6 INTENSIFIED OFF.
SKIP 1.
ENDFORM.
FORM YTOP_OF_LIST.
*WRITE:/ 'TOP OF LIST FOR MAKT'.
ENDFORM.
FORM ZTOP_OF_LIST.
*WRITE:/ 'TOP OF LIST FOR MARC'.
ENDFORM.
FORM XEND_OF_LIST.
*WRITE:/ 'END OF LIST FOR MARA'.
ENDFORM.
FORM YEND_OF_LIST.
*WRITE:/ 'END OF LIST FOR MAKT'.
ENDFORM.
FORM ZEND_OF_LIST.
*WRITE:/ 'END OF LIST FOR MARC'.
ENDFORM. " EVENT_LIST.
The missing thing is
wa_fieldcat-inttype = 'P'.
now it is working fine. just check it.
Please reward points for helpful answers.
Regards
vijay