Top of page system fields
How to use Top of page system fields like sy-tvar0 to sy-tvar1
thanks in advance
Rishi
Hello ,
in the standard title you can have &0 ... &n. The program must put the values to fields SY-TVAR0 to SY-TVARN.
see this sample:
Pass the variables for the list heading
MOVE SY-Title TO SY-TVAR0.
MOVE SY-Datum TO SY-TVAR1.
MOVE SY-Pagno TO SY-TVAR2.
From output screen: System>List>List Header
Click on first white line and enter the following title to the yellow box: Title: &0
Date: &1
. Page No: &2......
Hope its what you mean.
Vasanth
Similar Messages
-
How To Print Field Value in TOP-OF-PAGE During Line Selection.
How To Print Field Value in TOP-OF-PAGE During Line Selection when double click on field.
(If my memory serves me well (not used for long time ago)
Assign values to system fields sy-tvar0 - sy-tvar9, they will replace the placeholders "&0" through "&9" in the list headers and column headers.
TOP-OF-PAGE DURING LINE-SELECTION.
WRITE: / 'Interactive Report &3'.
WRITE record-vbeln TO sy-tvar3.
Regards,
Raymond -
To hide some headings in top of page during sorting of fields...
dear experts,
I have a report in which i am fetching multiple company codes in report and in o/p they are displayed according to company codes, but during sorting of any field in list i want to hide some of the headings in top of page...for any of the radio buttons the headings which i want to hide are...
1) company code
2) opening balance and
3) closing balance
please help...my code is as follows...
TYPE-POOLS:slis.
TABLES:bkpf,bseg,kna1,bsid.
TYPES:BEGIN OF ty_bsad,
bukrs TYPE bsad-bukrs,
gjahr TYPE bsad-gjahr,
kunnr TYPE bsad-kunnr,
belnr TYPE bsad-belnr,
budat TYPE bsad-budat,
xblnr TYPE bsad-xblnr,
bldat TYPE bsad-bldat,
augdt TYPE bsad-augdt,
dmbtr type bsad-dmbtr,
END OF ty_bsad.
TYPES:BEGIN OF ty_kna1,
kunnr TYPE kna1-kunnr,
name1 TYPE kna1-name1,
city TYPE kna1-ort01,
END OF ty_kna1.
TYPES:BEGIN OF ty_knb1,
kunnr TYPE knb1-kunnr,
bukrs TYPE knb1-bukrs,
vzskz TYPE knb1-vzskz,
END OF ty_knb1.
TYPES:BEGIN OF ty_bkpf,
bukrs TYPE bkpf-bukrs,
gjahr TYPE bkpf-gjahr,
hwaer TYPE bkpf-hwaer,
kursf TYPE bkpf-kursf,
bktxt TYPE bkpf-bktxt,
belnr TYPE bkpf-belnr,
budat TYPE bkpf-budat,
xblnr TYPE bkpf-xblnr,
bldat TYPE bkpf-bldat,
waers TYPE bkpf-waers,
END OF ty_bkpf.
TYPES:BEGIN OF ty_bsid,
bukrs TYPE bsid-bukrs,
gjahr TYPE bsid-gjahr,
kunnr TYPE bsid-kunnr,
belnr TYPE bsid-belnr,
budat TYPE bsid-budat,
xblnr TYPE bsid-xblnr,
bldat TYPE bsid-bldat,
augdt TYPE bsid-augdt,
dmbtr type bsid-dmbtr,
END OF ty_bsid.
TYPES:BEGIN OF ty_bseg,
bukrs TYPE bseg-bukrs,
gjahr TYPE bseg-gjahr,
belnr TYPE bseg-belnr,
kunnr TYPE bseg-kunnr,
werks TYPE bseg-werks,
umskz TYPE bseg-umskz,
zuonr TYPE bseg-zuonr,
dmbtr TYPE bseg-dmbtr,
zbd1t TYPE bseg-zbd1t,
sgtxt TYPE bseg-sgtxt,
shkzg TYPE bseg-shkzg,
zterm TYPE bseg-zterm,
zfbdt TYPE bseg-zfbdt,
END OF ty_bseg.
TYPES:BEGIN OF ty_open,
bukrs TYPE bsid-bukrs,
shkzg TYPE bsid-shkzg,
dmbtr TYPE bsid-dmbtr,
umskz TYPE bsid-umskz,
END OF ty_open.
**Main internal Table
**For both open & cleared Customer
DATA:BEGIN OF it_main_all OCCURS 0,
bukrs TYPE bsad-bukrs,
gjahr TYPE bsad-gjahr,
kunnr TYPE bsad-kunnr,
belnr TYPE bsad-belnr,
budat TYPE bsad-budat,
xblnr TYPE bsad-xblnr,
bldat TYPE bsad-bldat,
augdt TYPE bsad-augdt,
dmbtr type bsad-dmbtr,
hwaer TYPE bkpf-hwaer,
kursf TYPE bkpf-kursf,
bktxt TYPE bkpf-bktxt,
name TYPE kna1-name1,
city TYPE kna1-ort01,
vzskz TYPE knb1-vzskz,
lights TYPE c,
END OF it_main_all.
**For Opening balance
DATA:BEGIN OF it_main_open1 OCCURS 0,
bukrs TYPE bsid-bukrs,
opening TYPE p DECIMALS 2,
END OF it_main_open1.
**Internal tables
DATA : t_bsad TYPE STANDARD TABLE OF ty_bsad,
w_bsad TYPE ty_bsad,
t_bkpf TYPE STANDARD TABLE OF ty_bkpf,
w_bkpf TYPE ty_bkpf,
t_kna1 TYPE STANDARD TABLE OF ty_kna1,
w_kna1 TYPE ty_kna1,
t_knb1 TYPE STANDARD TABLE OF ty_knb1,
w_knb1 TYPE ty_knb1,
t_bsid TYPE STANDARD TABLE OF ty_bsid,
w_bsid TYPE ty_bsid,
t_bseg TYPE STANDARD TABLE OF ty_bseg,
w_bseg TYPE ty_bseg,
t_open TYPE STANDARD TABLE OF ty_open,
w_open TYPE ty_open.
**ALV display variables
DATA:fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gd_layout TYPE slis_layout_alv,
gt_events TYPE slis_t_event,
gt_list_top_of_page TYPE slis_t_listheader,
heading TYPE slis_t_listheader,
g_save(1) TYPE c,
g_exit(1) TYPE c,
g_variant TYPE disvariant,
gx_variant TYPE disvariant,
it_sort TYPE slis_t_sortinfo_alv,
x_sort TYPE slis_sortinfo_alv.
**Selection Screens
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:s_bukrs FOR bkpf-bukrs OBLIGATORY,
s_gjahr FOR bkpf-gjahr OBLIGATORY NO-EXTENSION NO INTERVALS,
s_kunnr FOR bseg-kunnr OBLIGATORY NO-EXTENSION NO INTERVALS,
s_name1 FOR kna1-name1 NO-EXTENSION NO INTERVALS,
s_date FOR bkpf-budat OBLIGATORY,
s_umskz FOR bsid-umskz.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
PARAMETERS:xnorm AS CHECKBOX DEFAULT 'X',
xshbv AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK b3.
DATA:golive TYPE d VALUE '20080401',
date TYPE d,
date1 TYPE d,
closing TYPE p DECIMALS 2 VALUE 0,
opening TYPE p DECIMALS 2 VALUE 0.
**Start Of Selection
START-OF-SELECTION.
PERFORM get_data.
PERFORM events.
PERFORM f_layout.
PERFORM display.
FORM get_data .
**Open Customers master data
SELECT
bukrs gjahr kunnr belnr budat xblnr bldat augdt dmbtr
FROM bsid
INTO TABLE t_bsid
WHERE bukrs IN s_bukrs
AND gjahr IN s_gjahr
AND kunnr IN s_kunnr
AND budat IN s_date
AND umskz IN s_umskz.
**Clear Customers master data
SELECT
bukrs gjahr kunnr belnr budat xblnr bldat augdt dmbtr
FROM bsad
INTO TABLE t_bsad
WHERE bukrs IN s_bukrs
AND gjahr IN s_gjahr
AND kunnr IN s_kunnr
AND budat IN s_date
AND umskz IN s_umskz.
****Open Customers data
IF NOT t_bsid[] IS INITIAL.
SORT t_bsid BY bukrs bldat.
SELECT
bukrs gjahr hwaer kursf bktxt belnr
FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE t_bkpf
FOR ALL ENTRIES IN t_bsid
WHERE bukrs = t_bsid-bukrs
AND gjahr = t_bsid-gjahr
AND belnr = t_bsid-belnr.
SORT t_bkpf.
SELECT
kunnr name1 ort01
FROM kna1
INTO TABLE t_kna1
FOR ALL ENTRIES IN t_bsid
WHERE kunnr = t_bsid-kunnr
AND name1 IN s_name1.
SORT t_kna1.
SELECT
kunnr bukrs vzskz
FROM knb1
INTO TABLE t_knb1
FOR ALL ENTRIES IN t_bsid
WHERE kunnr = t_bsid-kunnr
AND bukrs = t_bsid-bukrs.
SORT t_knb1.
LOOP AT t_bsid INTO w_bsid.
it_main_all-bukrs = w_bsid-bukrs.
it_main_all-kunnr = w_bsid-kunnr.
it_main_all-gjahr = w_bsid-gjahr.
it_main_all-belnr = w_bsid-belnr.
it_main_all-budat = w_bsid-budat.
it_main_all-xblnr = w_bsid-xblnr.
it_main_all-bldat = w_bsid-bldat.
READ TABLE t_bkpf INTO w_bkpf WITH KEY bukrs = w_bsid-bukrs gjahr = w_bsid-gjahr belnr = w_bsid-belnr BINARY SEARCH.
IF sy-subrc EQ 0.
it_main_all-hwaer = w_bkpf-hwaer.
it_main_all-kursf = w_bkpf-kursf.
it_main_all-bktxt = w_bkpf-bktxt.
ENDIF.
READ TABLE t_kna1 INTO w_kna1 WITH KEY kunnr = w_bsid-kunnr BINARY SEARCH.
IF sy-subrc EQ 0.
it_main_all-name = w_kna1-name1.
it_main_all-city = w_kna1-city.
ENDIF.
READ TABLE t_knb1 INTO w_knb1 WITH KEY kunnr = w_bsid-kunnr BINARY SEARCH.
IF sy-subrc EQ 0.
it_main_all-vzskz = w_knb1-vzskz.
ENDIF.
it_main_all-lights = '1'.
APPEND it_main_all.
CLEAR it_main_all.
CLEAR : w_bsid, w_bkpf, w_kna1, w_knb1.
ENDLOOP .
ENDIF.
**Clear customers data
IF NOT t_bsad[] IS INITIAL.
SORT t_bsad BY bukrs bldat.
SELECT
bukrs gjahr hwaer kursf bktxt belnr
FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE t_bkpf
FOR ALL ENTRIES IN t_bsad
WHERE bukrs = t_bsad-bukrs
AND gjahr = t_bsad-gjahr
AND belnr = t_bsad-belnr.
SORT t_bkpf.
SELECT
kunnr name1 ort01
FROM kna1
INTO TABLE t_kna1
FOR ALL ENTRIES IN t_bsad
WHERE kunnr = t_bsad-kunnr
AND name1 IN s_name1.
SORT t_kna1.
SELECT
kunnr bukrs vzskz
FROM knb1
INTO TABLE t_knb1
FOR ALL ENTRIES IN t_bsad
WHERE kunnr = t_bsad-kunnr
AND bukrs = t_bsad-bukrs.
SORT t_knb1.
LOOP AT t_bsad INTO w_bsad.
it_main_all-bukrs = w_bsad-bukrs.
it_main_all-gjahr = w_bsad-gjahr.
it_main_all-kunnr = w_bsad-kunnr.
it_main_all-belnr = w_bsad-belnr.
it_main_all-budat = w_bsad-budat.
it_main_all-xblnr = w_bsad-xblnr.
it_main_all-bldat = w_bsad-bldat.
READ TABLE t_bkpf INTO w_bkpf WITH KEY bukrs = w_bsad-bukrs gjahr = w_bsad-gjahr belnr = w_bsad-belnr BINARY SEARCH.
IF sy-subrc EQ 0.
it_main_all-hwaer = w_bkpf-hwaer.
it_main_all-kursf = w_bkpf-kursf.
it_main_all-bktxt = w_bkpf-bktxt.
ENDIF.
READ TABLE t_kna1 INTO w_kna1 WITH KEY kunnr = w_bsad-kunnr BINARY SEARCH.
IF sy-subrc EQ 0.
it_main_all-name = w_kna1-name1.
it_main_all-city = w_kna1-city.
ENDIF.
READ TABLE t_knb1 INTO w_knb1 WITH KEY kunnr = w_bsad-kunnr BINARY SEARCH.
IF sy-subrc EQ 0.
it_main_all-vzskz = w_knb1-vzskz.
ENDIF.
it_main_all-lights = '3'.
APPEND it_main_all.
CLEAR : w_bsad, w_bkpf, w_kna1, w_knb1.
ENDLOOP .
ENDIF.
ENDFORM. " get_data
*& Form events
FORM events .
DATA : l_i_event TYPE slis_alv_event.
l_i_event-name = 'TOP_OF_PAGE' .
l_i_event-form = 'TOP2' .
APPEND l_i_event TO gt_events .
CLEAR l_i_event .
ENDFORM. " events
*& Form f_layout
FORM f_layout .
CLEAR gd_layout.
gd_layout-detail_popup = 'X'.
gd_layout-zebra = 'X'.
gd_layout-no_vline = ' '.
gd_layout-lights_fieldname = 'LIGHTS'.
gd_layout-colwidth_optimize = 'X'.
ENDFORM. " f_layout
*& Form display
FORM display .
fieldcatalog-fieldname = 'BUKRS'.
fieldcatalog-tabname = 'IT_MAIN_ALL'.
fieldcatalog-seltext_m = 'Company Code'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'GJAHR'.
fieldcatalog-tabname = 'IT_MAIN_ALL'.
fieldcatalog-seltext_m = 'Fiscal year'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'BELNR'.
fieldcatalog-tabname = 'IT_MAIN_ALL'.
fieldcatalog-seltext_m = 'Doc No.'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'BLDAT'.
fieldcatalog-tabname = 'IT_MAIN_ALL'.
fieldcatalog-seltext_m = 'Doc Date'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'BUDAT'.
fieldcatalog-tabname = 'IT_MAIN_ALL'.
fieldcatalog-seltext_m = 'Posting date'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'DMBTR'.
fieldcatalog-tabname = 'IT_MAIN_ALL'.
fieldcatalog-seltext_m = 'Amt in local cur.'.
fieldcatalog-do_sum = 'X'.
fieldcatalog-just = 'R'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
**For Subtotal of fields
x_sort-fieldname = 'BUKRS' .
x_sort-group = '*'.
x_sort-subtot = 'X'.
APPEND x_sort TO it_sort.
CLEAR x_sort .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
it_sort = it_sort
i_default = 'X'
it_events = gt_events[]
TABLES
t_outtab = it_main_all
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM.
*& Form top_of_page
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
i_logo = 'RUCHI_LOGO'
it_list_commentary = heading[].
ENDFORM.
*& Form opening
FORM opening USING p_bukrs TYPE bsid-bukrs.
DATA : opdate TYPE d.
IF s_date-low < golive.
opening = 0.
ELSE.
opdate = s_date-low - 1.
SELECT
bukrs shkzg dmbtr umskz
FROM bsid
INTO TABLE t_open
WHERE bukrs IN s_bukrs
AND kunnr IN s_kunnr
AND gjahr IN s_gjahr
AND budat <= opdate.
LOOP AT t_open INTO w_open.
IF w_open-shkzg = 'S'.
opening = opening + w_open-dmbtr.
ELSEIF w_open-shkzg = 'H'.
w_open-dmbtr = w_open-dmbtr * ( -1 ).
opening = opening + w_open-dmbtr .
ENDIF.
CLEAR : w_open.
ENDLOOP.
SELECT
bukrs shkzg dmbtr umskz
FROM bsad
INTO TABLE t_open
WHERE bukrs IN s_bukrs
AND kunnr IN s_kunnr
AND gjahr IN s_gjahr
AND budat <= opdate.
LOOP AT t_open INTO w_open.
IF w_open-shkzg = 'S'.
opening = opening + w_open-dmbtr.
ELSEIF w_open-shkzg = 'H'.
w_open-dmbtr = w_open-dmbtr * ( -1 ).
opening = opening + w_open-dmbtr.
ENDIF.
CLEAR w_open.
ENDLOOP.
ENDIF.
ENDFORM.
*& Form top2
FORM top2 .
date = s_date-low.
date1 = s_date-high.
WRITE : / 'CUSTOMER LEDGER FOR ALL ITEMS' COLOR 7.
WRITE : / 'Customer Code:', it_main_all-kunnr.
WRITE : / 'Customer Name:', it_main_all-name.
WRITE : / 'Customer City:', it_main_all-city.
ON CHANGE OF it_main_all-bukrs.
WRITE : / 'Company Code:' COLOR 3 , it_main_all-bukrs COLOR 3.
PERFORM opening USING it_main_all-bukrs.
PERFORM closing USING it_main_all-bukrs.
WRITE : / 'Opening Balance : Rs.' , opening .
WRITE : / 'Closing Balance : Rs.' , closing .
ENDON.
CLEAR : closing, opening.
IF date1 IS INITIAL.
WRITE : / 'Date:', date DD/MM/YYYY.
ELSE.
WRITE : / 'Date:' , date DD/MM/YYYY, ' to ', date1 DD/MM/YYYY.
ENDIF.
ENDFORM.
*&Form closing
FORM closing USING c_bukrs TYPE bsid-bukrs.
LOOP AT it_main_all WHERE bukrs = c_bukrs.
closing = closing + it_main_all-dmbtr.
ENDLOOP .
closing = closing + opening .
ENDFORM.
Edited by: Vishu on Apr 20, 2009 9:32 AMit can be done with the help of a system code 'sy-xcode'. it is initialised the time list is sorted so just keeping a check point, we can solve this problem.
Vishu Khandelwal -
How to pass field in Alv Top-of-page
Edited by: Deepak Mathrani on Aug 12, 2008 12:40 PM
<THREAD LOCKED. Please read the [Rules of Engagement|https://wiki.sdn.sap.com/wiki/display/HOME/RulesofEngagement] to discover why>
Edited by: Mike Pokraka on Aug 12, 2008 2:58 PMHi
sample program
*& Report ZNNR_ALVSAMPLE
REPORT znnr_alvsample NO STANDARD PAGE HEADING.
TABLES: ekko.
TYPE-POOLS: slis. "ALV Declarations
*Data Declaration
TYPES: BEGIN OF t_ekko,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
statu TYPE ekpo-statu,
aedat TYPE ekpo-aedat,
matnr TYPE ekpo-matnr,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
netpr TYPE ekpo-netpr,
peinh TYPE ekpo-peinh,
END OF t_ekko.
DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
wa_ekko TYPE t_ekko.
*ALV data declarations
DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gd_tab_group TYPE slis_t_sp_group_alv,
gd_layout TYPE slis_layout_alv,
gd_repid LIKE sy-repid.
*Start-of-selection.
START-OF-SELECTION.
PERFORM data_retrieval.
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM display_alv_report.
*& Form BUILD_FIELDCATALOG
Build Fieldcatalog for ALV Report
FORM build_fieldcatalog.
There are a number of ways to create a fieldcat.
For the purpose of this example i will build the fieldcatalog manualy
by populating the internal table fields individually and then
appending the rows. This method can be the most time consuming but can
also allow you more control of the final product.
Beware though, you need to ensure that all fields required are
populated. When using some of functionality available via ALV, such as
total. You may need to provide more information than if you were
simply displaying the result
I.e. Field type may be required in-order for
the 'TOTAL' function to work.
fieldcatalog-fieldname = 'EBELN'.
fieldcatalog-seltext_m = 'Purchase Order'.
fieldcatalog-col_pos = 0.
fieldcatalog-outputlen = 10.
fieldcatalog-emphasize = 'X'.
fieldcatalog-key = 'X'.
fieldcatalog-do_sum = 'X'.
fieldcatalog-no_zero = 'X'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'EBELP'.
fieldcatalog-seltext_m = 'PO Item'.
fieldcatalog-col_pos = 1.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'STATU'.
fieldcatalog-seltext_m = 'Status'.
fieldcatalog-col_pos = 2.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'AEDAT'.
fieldcatalog-seltext_m = 'Item change date'.
fieldcatalog-col_pos = 3.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-seltext_m = 'Material Number'.
fieldcatalog-col_pos = 4.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'MENGE'.
fieldcatalog-seltext_m = 'PO quantity'.
fieldcatalog-col_pos = 5.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'MEINS'.
fieldcatalog-seltext_m = 'Order Unit'.
fieldcatalog-col_pos = 6.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'NETPR'.
fieldcatalog-seltext_m = 'Net Price'.
fieldcatalog-col_pos = 7.
fieldcatalog-outputlen = 15.
fieldcatalog-do_sum = 'X'. "Display column total
fieldcatalog-datatype = 'CURR'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'PEINH'.
fieldcatalog-seltext_m = 'Price Unit'.
fieldcatalog-col_pos = 8.
fieldcatalog-EDIT = 'X'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
ENDFORM. " BUILD_FIELDCATALOG
*& Form BUILD_LAYOUT
Build layout for ALV grid report
FORM build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(201).
gd_layout-totals_only = 'X'.
gd_layout-f2code = 'DISP'. "Sets fcode for when double
"click(press f2)
gd_layout-zebra = 'X'.
gd_layout-group_change_edit = 'X'.
gd_layout-header_text = 'helllllo'.
ENDFORM. " BUILD_LAYOUT
*& Form DISPLAY_ALV_REPORT
Display report using ALV grid
form display_alv_report.
gd_repid = sy-repid.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE'(001) "see FORM
i_callback_user_command = 'USER_COMMAND'
i_grid_title = outtext
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
it_special_groups = gd_tabgroup
IT_EVENTS = GT_XEVENTS
i_save = 'X'
is_variant = z_template
tables
t_outtab = it_ekko
exceptions
program_error = 1
others = 2.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
endform. " DISPLAY_ALV_REPORT
*& Form DATA_RETRIEVAL
Retrieve data form EKPO table and populate itab it_ekko
form data_retrieval.
select ebeln ebelp statu aedat matnr menge meins netpr peinh
up to 10 rows
from ekpo
into table it_ekko.
endform. " DATA_RETRIEVAL
Form TOP-OF-PAGE *
ALV Report Header *
Form top-of-page.
*ALV Header declarations
data: t_header type slis_t_listheader,
wa_header type slis_listheader,
t_line like wa_header-info,
ld_lines type i,
ld_linesc(10) type c.
Title
wa_header-typ = 'H'.
wa_header-info = 'EKKO Table Report'.
append wa_header to t_header.
clear wa_header.
Date
wa_header-typ = 'S'.
wa_header-key = 'Date: '.
CONCATENATE sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) INTO wa_header-info. "todays date
append wa_header to t_header.
clear: wa_header.
Total No. of Records Selected
describe table it_ekko lines ld_lines.
ld_linesc = ld_lines.
concatenate 'Total No. of Records Selected: ' ld_linesc
into t_line separated by space.
wa_header-typ = 'A'.
wa_header-info = t_line.
append wa_header to t_header.
clear: wa_header, t_line.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_header.
i_logo = 'Z_LOGO'.
endform. -
Field Descriptions without TOP OF PAGE
Hi Experts,
I have one Z report and this was written somebody long back.
This report was normal standard report i.e just writing the table values to screen using WRITE statement.
Eventhogh there is no TOP OF PAGE event in the report, field names were displaying in the screen output with highlighted color.
As soon as WITE statement calling, program is displaying fieldnames automatically? how it possible?
Now, I modified my program by adding another field values to the screen output.
The field which I added it's not showing field name.
How can I display my field description to that output. (without adding TOP OF PAGE)
As I told you report doesn't have TOP OF PAGE event. Please help me.
Thanks
RaghuRaghu,
I'm guessing that your report is organized in a tabular form and by field description you mean column headings. There are two ways to display column headings 1) by explicitely writing the WRITE statements to output to the column headings, 2) by maintaining the standard list & column headings. (in ABAP editor follow menu path GOTO>Text Elements>List Headings.
You can disable the display of standard headings by using addition in NO STANDARD PAGE HEADING as below.
REPORT YTEST NO STANDARD PAGE HEADING
LINE-SIZE 120
LINE-COUNT 65
MESSAGE ZMSG.
Regards,
Gajendra -
How i can show the selection screen input field in the top of page in alv
hi ,
how i can show the selection screen input field in the top of page in alv grid output.
tell me the processHi,
excample from my program:
FORM topof_page.
DATA: l_it_header TYPE TABLE OF slis_listheader WITH HEADER LINE,
l_info LIKE l_it_header-info.
DATA: l_it_textpool TYPE TABLE OF textpool WITH HEADER LINE.
DATA: l_key LIKE l_it_textpool-key.
READ TEXTPOOL c_repid INTO l_it_textpool LANGUAGE sy-langu.
DEFINE m_selinfo.
if not &1 is initial.
clear l_it_header.
l_it_header-typ = 'S'.
l_key = '&1'.
translate l_key to upper case.
read table l_it_textpool with key key = l_key.
if sy-subrc = 0.
shift l_it_textpool-entry left deleting leading space.
l_it_header-key = l_it_textpool-entry .
endif.
loop at &1.
case &1-option.
when 'EQ'
or 'BT'
or 'CP'.
write &1-low to l_it_header-info.
when others.
write &1-low to l_it_header-info.
concatenate &1-option
l_it_header-info
into l_it_header-info
separated by space.
endcase.
if not &1-high is initial.
write &1-high to l_info left-justified.
concatenate l_it_header-info
l_info
into l_it_header-info
separated by space.
endif.
if &1-sign = 'E'.
concatenate ']'
l_it_header-info
into l_it_header-info.
endif.
append l_it_header.
clear: l_it_header-key,
l_it_header-info.
endloop.
endif.
END-OF-DEFINITION.
m_selinfo: s_trmdat,
s_trmext,
s_trmint,
s_fkdat,
s_delno,
s_vbeln,
s_deact,
s_kdmat.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = l_it_header[].
ENDFORM.
I hope, this will help you.
Regards
Nicole -
how to remove a black border box that continously tabs to each field automatically till end of web page; restarts to top of page, cannot stop this box. Scroll bar cannot be controlled with mouse, scroll bar returns automatically to the top of scroll slide every time I move the bar to the bottom of the scale. Also, there's a rectangular text box (with black background and white text) that is always on the desktop that emulates a typed text, HTML, or cmd function.
cjuan1morb4ulv wrote:
how to remove a black border box that continously tabs to each field automatically till end of web page; restarts to top of page, cannot stop this box. Scroll bar cannot be controlled with mouse, scroll bar returns automatically to the top of scroll slide every time I move the bar to the bottom of the scale. Also, there's a rectangular text box (with black background and white text) that is always on the desktop that emulates a typed text, HTML, or cmd function.
The first two problems (box cycling from element to element on page, scroll bar returning to top) can be caused by a stuck (or defective) Tab key on the keyboard. Such damage can be caused by a liquid spill; just one tiny droplet is enough to short a wafer switch under one key.
The last issue (black box, white text - sounds sorta like a debugger window) I haven't seen, but could be caused by something similar.
To check for that, try using a different keyboard. If you're using a wireless keyboard, turn it off and see if the oddities stop. -
My mid 2011 mac with OSX 10.7.5 will not mirror with my apple tv. No icon at top of page or in system preferences - advice?
You need to upgrade the OS, go to the Mac App Store to download Mavericks
-
To display the typ, key field,info in the top-of -page event in OO ALV
Hi all,
I need to display the heading and the other select option details in the top-of-page event in ooalv.How can the key ,typ and the info of top of event in alv grid be passed in ooalv grid display.
Regards,
ArpitaCheck the blog.
TOP_OF_PAGE in ALV Using CL_GUI_ALV_GRID
Now you have to use the method ADD_TEXT to populate the Select options details.
I hope you know the Function to get the selection details
RS_REFRESH_FROM_SELECTOPTIONS,. it will give into a table. so use that table and populate the TOP_OF_PAGE uisng the class CL_DD_DOCUMENT. -
List of system fields like sy-index, sy-srow......
can any one give me list of system fields with there use. i would b very thankful.
hi Amjad,
Please find below the request fields, from table SYST.
INDEX Loops, number of current pass
PAGNO List creation, current page
TABIX Internal table, current line index
TFILL Internal tables, current number of lines
TOCCU Internal tables, initial main memory requirements
DBCNT DB operations, number of table lines processed
FDPOS Character strings, offset in character string
COLNO List creation, current column of list
LINCT List processing, page length of list
LINNO List creation, current line
LINSZ List creation, width of list
MACOL Print list, columns from SET MARGIN statement
MAROW List printing, lines from SET MARGIN statement
TLENG Internal tables, line width
LILLI List processing, current list line
SUBRC Return value, return value after ABAP statements
CUCOL Screens, horizontal cursor position at PAI
CUROW Screens, vertical cursor position at PAI
LSIND List processing, details list index
LISTI List processing, index of current list
STEPL Screens, current table line index
SROWS Screens, numbers of lines
SCOLS Screens, number of columns
LOOPC Screens, number of lines visible in table
TZONE Date and time, time difference from Greenwich Mean Time
DAYST Date and time, Daylight savings time flag
FDAYW Date and time, factory calendar weekday
LANGU R/3 System, current language
MODNO R/3 System, external modes index
BATCH Program running in background
BINPT Batch input, program running under batch input
CALLD ABAP program, ABAP program call mode
DYNNR ABAP program, number of current screen
DYNGR ABAP program, screen group of current screen
WTITL List creation, flag for standard page header
CPAGE List processing, current page number
DBNAM ABAP program, related logical database
MANDT R/3 System, client number from logon
PEXPI Print parameters, spool retention period
PRIMM Print parameters, print immediately
PRREL Print parameters, delete after printing
PRBIG Print parameters, selection cover page
PRNEW Print parameters, new spool request
PDEST Print parameters, output device
PLIST Print parameters, name of spool request
PRDSN Print parameters, name of spool dataset
CALLR Print list, ID for print dialog function
RTITL Print parameters, title of print program
PRREC Print parameters, recipient
PRTXT Print parameters, text for cover page
PRABT Print parameters, department on cover page
PAART Print parameters, print formatting
PRCOP Print parameters, number of copies
DBSYS R/3 System, name of central database system
SYSID R/3 System, name of R/3 System
OPSYS R/3 System, operating system of application server
PFKEY Screens, current GUI status
SAPRL R/3 System, system release
TCODE ABAP program, current transaction code
UCOMM Screens, function code triggered by PAI
SPONO Print list, spool number
DATUM Date and time, current (application server) date
SLSET Selection screens, name of variant
UZEIT Dat and time, current application server time
REPID ABAP program, current main program
UNAME R/3 System, user logon name
LSTAT List processing, list level IDs
ABCDE Constant: Alphabet (A,B,C,...)
MSGLI Messages, message line
TITLE Screens, title text
LISEL List processing, contents of selected line
ULINE Constants, horizontal line with length 255
CPROG ABAP program, caller in external procedures
LDBPG ABAP program, logical database program
TVAR0 List creation, text variable for headers
TVAR1 List creation, text variable for headers
TVAR2 List creation, text variable for headers
TVAR3 List creation, text variable for headers
TVAR4 List creation, text variable for headers
TVAR5 List creation, text variable for headers
TVAR6 List creation, text variable for headers
TVAR7 List creation, text variable for headers
TVAR8 List creation, text variable for headers
TVAR9 List creation, text variable for headers
MSGID Messages, message class
MSGTY Messages, message type
MSGNO Messages, message number
MSGV1 Messages, message variables
MSGV2 Messages, message variables
MSGV3 Messages, message variables
MSGV4 Messages, message variables
VLINE Constants, vertical bar
STACO List processing, initial column displayed
STARO List processing, first line displayed at top
DATAR Screens, display user entry
HOST R/3 System, Name of application server
DATLO Date and time, local date of user
TIMLO Date and time, local time for user
ZONLO Date and time, time zone of user
Hope this helps,
Sajan Joseph. -
CAN SOME ONE GIVE ME THE LIST OF SYSTEM FIELDS THAT WE CAN USE IN TEH PROGEAM.
LIKE SY-DATUM...
vjhi VJ,
Please find below the request fields, from table SYST.
INDEX Loops, number of current pass
PAGNO List creation, current page
TABIX Internal table, current line index
TFILL Internal tables, current number of lines
TOCCU Internal tables, initial main memory requirements
DBCNT DB operations, number of table lines processed
FDPOS Character strings, offset in character string
COLNO List creation, current column of list
LINCT List processing, page length of list
LINNO List creation, current line
LINSZ List creation, width of list
MACOL Print list, columns from SET MARGIN statement
MAROW List printing, lines from SET MARGIN statement
TLENG Internal tables, line width
LILLI List processing, current list line
SUBRC Return value, return value after ABAP statements
CUCOL Screens, horizontal cursor position at PAI
CUROW Screens, vertical cursor position at PAI
LSIND List processing, details list index
LISTI List processing, index of current list
STEPL Screens, current table line index
SROWS Screens, numbers of lines
SCOLS Screens, number of columns
LOOPC Screens, number of lines visible in table
TZONE Date and time, time difference from Greenwich Mean Time
DAYST Date and time, Daylight savings time flag
FDAYW Date and time, factory calendar weekday
LANGU R/3 System, current language
MODNO R/3 System, external modes index
BATCH Program running in background
BINPT Batch input, program running under batch input
CALLD ABAP program, ABAP program call mode
DYNNR ABAP program, number of current screen
DYNGR ABAP program, screen group of current screen
WTITL List creation, flag for standard page header
CPAGE List processing, current page number
DBNAM ABAP program, related logical database
MANDT R/3 System, client number from logon
PEXPI Print parameters, spool retention period
PRIMM Print parameters, print immediately
PRREL Print parameters, delete after printing
PRBIG Print parameters, selection cover page
PRNEW Print parameters, new spool request
PDEST Print parameters, output device
PLIST Print parameters, name of spool request
PRDSN Print parameters, name of spool dataset
CALLR Print list, ID for print dialog function
RTITL Print parameters, title of print program
PRREC Print parameters, recipient
PRTXT Print parameters, text for cover page
PRABT Print parameters, department on cover page
PAART Print parameters, print formatting
PRCOP Print parameters, number of copies
DBSYS R/3 System, name of central database system
SYSID R/3 System, name of R/3 System
OPSYS R/3 System, operating system of application server
PFKEY Screens, current GUI status
SAPRL R/3 System, system release
TCODE ABAP program, current transaction code
UCOMM Screens, function code triggered by PAI
SPONO Print list, spool number
DATUM Date and time, current (application server) date
SLSET Selection screens, name of variant
UZEIT Dat and time, current application server time
REPID ABAP program, current main program
UNAME R/3 System, user logon name
LSTAT List processing, list level IDs
ABCDE Constant: Alphabet (A,B,C,...)
MSGLI Messages, message line
TITLE Screens, title text
LISEL List processing, contents of selected line
ULINE Constants, horizontal line with length 255
CPROG ABAP program, caller in external procedures
LDBPG ABAP program, logical database program
TVAR0 List creation, text variable for headers
TVAR1 List creation, text variable for headers
TVAR2 List creation, text variable for headers
TVAR3 List creation, text variable for headers
TVAR4 List creation, text variable for headers
TVAR5 List creation, text variable for headers
TVAR6 List creation, text variable for headers
TVAR7 List creation, text variable for headers
TVAR8 List creation, text variable for headers
TVAR9 List creation, text variable for headers
MSGID Messages, message class
MSGTY Messages, message type
MSGNO Messages, message number
MSGV1 Messages, message variables
MSGV2 Messages, message variables
MSGV3 Messages, message variables
MSGV4 Messages, message variables
VLINE Constants, vertical bar
STACO List processing, initial column displayed
STARO List processing, first line displayed at top
DATAR Screens, display user entry
HOST R/3 System, Name of application server
DATLO Date and time, local date of user
TIMLO Date and time, local time for user
ZONLO Date and time, time zone of user
Hope this helps,
Sajan Joseph. -
ALV TOP-OF-PAGE not popping up
Hi I am working on ALV and I am trying to use Top-of-page functionality but somehow it's not popping up when I am trying to execute my report and just empty space is showing at the top of report. Following is my code:
perform data.
perform build_field_catalog.
perform top_of_page.
perform display_alv.
FORM TOP_OF_PAGE .
data: t_header type slis_t_listheader,
wa_header type slis_listheader,
t_line like wa_header-info,
ld_lines type i,
ld_linesc(10) type c.
Report Heading
wa_header-typ = 'H'.
wa_header-info = 'TEST REPORT'.
append wa_header to t_header.
clear: wa_header.
Date
wa_header-typ = 'S'.
wa_header-key = 'Date: '.
CONCATENATE sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) INTO wa_header-info. "todays date
append wa_header to t_header.
clear: wa_header.
Time
wa_header-typ = 'S'.
wa_header-key = 'Time: '.
CONCATENATE sy-uzeit(2) ':'
sy-uzeit+2(2) ':'
sy-uzeit+4(2) INTO wa_header-info. "System time
append wa_header to t_header.
clear: wa_header.
Total No. of Records Selected
describe table it_output lines ld_lines.
ld_linesc = ld_lines.
concatenate 'Total No. of Records Selected: ' ld_linesc
into t_line separated by space.
wa_header-typ = 'A'.
wa_header-info = t_line.
append wa_header to t_header.
clear: wa_header, t_line.
call function 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header.
FORM DISPLAY_ALV_REPORT .
call function 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE'
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
i_save = 'A'
TABLES
t_outtab = it_output
EXCEPTIONS
program_error = 1
others = 2.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
ENDFORM. " DISPLAY_ALV_REPORT
thanks,
Rajeev
ENDFORM. " TOP_OF_PAGEhi check this example..
REPORT ZTUFI091 .
*& Report ZDEMO_ALVGRID *
*& Example of a simple ALV Grid Report *
*& The basic requirement for this demo is to display a number of *
*& fields from the EKKO table. *
*REPORT zdemo_alvgrid .
TABLES: ekko.
type-pools: slis. "ALV Declarations
*Data Declaration
TYPES: BEGIN OF t_ekko,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
statu TYPE ekpo-statu,
aedat TYPE ekpo-aedat,
matnr TYPE ekpo-matnr,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
netpr TYPE ekpo-netpr,
peinh TYPE ekpo-peinh,
END OF t_ekko.
DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
wa_ekko TYPE t_ekko.
*ALV data declarations
data: fieldcatalog type slis_t_fieldcat_alv with header line,
gd_tab_group type slis_t_sp_group_alv,
gd_layout type slis_layout_alv,
gd_repid like sy-repid,
gt_events type slis_t_event,
gd_prntparams type slis_print_alv.
*Start-of-selection.
START-OF-SELECTION.
perform data_retrieval.
perform build_fieldcatalog.
perform build_layout.
perform build_events.
perform build_print_params.
perform display_alv_report.
*& Form BUILD_FIELDCATALOG
Build Fieldcatalog for ALV Report
form build_fieldcatalog.
There are a number of ways to create a fieldcat.
For the purpose of this example i will build the fieldcatalog manualy
by populating the internal table fields individually and then
appending the rows. This method can be the most time consuming but can
also allow you more control of the final product.
Beware though, you need to ensure that all fields required are
populated. When using some of functionality available via ALV, such as
total. You may need to provide more information than if you were
simply displaying the result
I.e. Field type may be required in-order for
the 'TOTAL' function to work.
fieldcatalog-fieldname = 'EBELN'.
fieldcatalog-seltext_m = 'Purchase Order'.
fieldcatalog-col_pos = 0.
fieldcatalog-outputlen = 10.
fieldcatalog-emphasize = 'X'.
fieldcatalog-key = 'X'.
fieldcatalog-do_sum = 'X'.
fieldcatalog-no_zero = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'EBELP'.
fieldcatalog-seltext_m = 'PO Item'.
fieldcatalog-col_pos = 1.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'STATU'.
fieldcatalog-seltext_m = 'Status'.
fieldcatalog-col_pos = 2.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'AEDAT'.
fieldcatalog-seltext_m = 'Item change date'.
fieldcatalog-col_pos = 3.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-seltext_m = 'Material Number'.
fieldcatalog-col_pos = 4.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MENGE'.
fieldcatalog-seltext_m = 'PO quantity'.
fieldcatalog-col_pos = 5.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MEINS'.
fieldcatalog-seltext_m = 'Order Unit'.
fieldcatalog-col_pos = 6.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'NETPR'.
fieldcatalog-seltext_m = 'Net Price'.
fieldcatalog-col_pos = 7.
fieldcatalog-outputlen = 15.
fieldcatalog-datatype = 'CURR'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'PEINH'.
fieldcatalog-seltext_m = 'Price Unit'.
fieldcatalog-col_pos = 8.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
endform. " BUILD_FIELDCATALOG
*& Form BUILD_LAYOUT
Build layout for ALV grid report
form build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(201).
gd_layout-totals_only = 'X'.
gd_layout-f2code = 'DISP'. "Sets fcode for when double
"click(press f2)
gd_layout-zebra = 'X'.
gd_layout-group_change_edit = 'X'.
gd_layout-header_text = 'helllllo'.
endform. " BUILD_LAYOUT
*& Form DISPLAY_ALV_REPORT
Display report using ALV grid
form display_alv_report.
gd_repid = sy-repid.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM
i_callback_user_command = 'USER_COMMAND'
i_grid_title = outtext
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
it_special_groups = gd_tabgroup
it_events = gt_events
is_print = gd_prntparams
i_save = 'X'
is_variant = z_template
tables
t_outtab = it_ekko
exceptions
program_error = 1
others = 2.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
endform. " DISPLAY_ALV_REPORT
*& Form DATA_RETRIEVAL
Retrieve data form EKPO table and populate itab it_ekko
form data_retrieval.
select ebeln ebelp statu aedat matnr menge meins netpr peinh
up to 10 rows
from ekpo
into table it_ekko.
endform. " DATA_RETRIEVAL
Form TOP-OF-PAGE *
ALV Report Header *
Form top-of-page.
*ALV Header declarations
data: t_header type slis_t_listheader,
wa_header type slis_listheader,
t_line like wa_header-info,
ld_lines type i,
ld_linesc(10) type c.
Title
wa_header-typ = 'H'.
wa_header-info = 'EKKO Table Report'.
append wa_header to t_header.
clear wa_header.
Date
wa_header-typ = 'S'.
wa_header-key = 'Date: '.
CONCATENATE sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) INTO wa_header-info. "todays date
append wa_header to t_header.
clear: wa_header.
Total No. of Records Selected
describe table it_ekko lines ld_lines.
ld_linesc = ld_lines.
concatenate 'Total No. of Records Selected: ' ld_linesc
into t_line separated by space.
wa_header-typ = 'A'.
wa_header-info = t_line.
append wa_header to t_header.
clear: wa_header, t_line.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_header.
i_logo = 'Z_LOGO'.
endform.
FORM USER_COMMAND *
--> R_UCOMM *
--> RS_SELFIELD *
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
Check function code
CASE r_ucomm.
WHEN '&IC1'.
Check field clicked on within ALVgrid report
IF rs_selfield-fieldname = 'EBELN'.
Read data table, using index of row user clicked on
READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
Set parameter ID for transaction screen field
SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.
Sxecute transaction ME23N, and skip initial data entry screen
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM.
*& Form BUILD_EVENTS
Build events table
form build_events.
data: ls_event type slis_alv_event.
call function 'REUSE_ALV_EVENTS_GET'
exporting
i_list_type = 0
importing
et_events = gt_events[].
read table gt_events with key name = slis_ev_end_of_page
into ls_event.
if sy-subrc = 0.
move 'END_OF_PAGE' to ls_event-form.
append ls_event to gt_events.
endif.
read table gt_events with key name = slis_ev_end_of_list
into ls_event.
if sy-subrc = 0.
move 'END_OF_LIST' to ls_event-form.
append ls_event to gt_events.
endif.
endform. " BUILD_EVENTS
*& Form BUILD_PRINT_PARAMS
Setup print parameters
form build_print_params.
gd_prntparams-reserve_lines = '3'. "Lines reserved for footer
gd_prntparams-no_coverpage = 'X'.
endform. " BUILD_PRINT_PARAMS
*& Form END_OF_PAGE
form END_OF_PAGE.
data: listwidth type i,
ld_pagepos(10) type c,
ld_page(10) type c.
write: sy-uline(50).
skip.
write:/40 'Page:', sy-pagno .
endform.
*& Form END_OF_LIST
form END_OF_LIST.
data: listwidth type i,
ld_pagepos(10) type c,
ld_page(10) type c.
skip.
write:/40 'Page:', sy-pagno .
endform.
regards,
venkat -
Hi Experts ,
I am using alv grid in my report. In the output .. my field have long text and the text is chopped. what should i do to see full text in my output.
How to do subtotals in my report. i have used the form for the subtotals. but its not working. is anything am doing wrong... please help me.
FORM sub_total CHANGING
p_total TYPE any
p_subtot_text TYPE slis_subtot_text.
IF p_subtot_text-criteria = 'WRBTR'.
p_subtot_text-display_text_for_subtotal = 'Plant level total'(010).
ENDIF.
ENDFORM. " sub_total
Regards,
sirish
Correct answers will be rewarded with full points.hi,
check this sample program.it will give u subtotal,total along with text.
REPORT ZGM_ALV_SUBTOTAL_TEXT .
*& Table declaration
TABLES: ekko.
*& Type pool declaration
TYPE-POOLS: slis. " Type pool for ALV
*& Selection screen
SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.
*& Type declaration
Type declaration for internal table to store EKPO data
TYPES: BEGIN OF x_data,
ebeln TYPE char30, " Document no.
ebelp TYPE ebelp, " Item no
matnr TYPE matnr, " Material no
matnr1 TYPE matnr, " Material no
werks TYPE werks_d, " Plant
werks1 TYPE werks_d, " Plant
ntgew TYPE entge, " Net weight
gewe TYPE egewe, " Unit of weight
END OF x_data.
*& Internal table declaration
DATA:
i_ekpo TYPE STANDARD TABLE OF x_data INITIAL SIZE 0,
Internal table for storing field catalog information
i_fieldcat TYPE slis_t_fieldcat_alv,
Internal table for Top of Page info. in ALV Display
i_alv_top_of_page TYPE slis_t_listheader,
Internal table for ALV Display events
i_events TYPE slis_t_event,
Internal table for storing ALV sort information
i_sort TYPE slis_t_sortinfo_alv,
i_event TYPE slis_t_event.
*& Work area declaration
DATA:
wa_ekko TYPE x_data,
wa_layout TYPE slis_layout_alv,
wa_events TYPE slis_alv_event,
wa_sort TYPE slis_sortinfo_alv.
*& Constant declaration
CONSTANTS:
c_header TYPE char1
VALUE 'H', "Header in ALV
c_item TYPE char1
VALUE 'S'.
*& Start-of-selection event
START-OF-SELECTION.
Select data from ekpo
SELECT ebeln " Doc no
ebelp " Item
matnr " Material
matnr " Material
werks " Plant
werks " Plant
ntgew " Quantity
gewei " Unit
FROM ekpo
INTO TABLE i_ekpo
WHERE ebeln IN s_ebeln
AND ntgew NE '0.00'. IF sy-subrc = 0.
SORT i_ekpo BY ebeln ebelp matnr .
ENDIF.
To build the Page header
PERFORM sub_build_header. "* To prepare field catalog
PERFORM sub_field_catalog. "* Perform to populate the layout structure
PERFORM sub_populate_layout."* Perform to populate the sort table.
PERFORM sub_populate_sort."* Perform to populate ALV event
PERFORM sub_get_event.
END-OF-SELECTION.
Perform to display ALV report
PERFORM sub_alv_report_display.
*& Form sub_build_header
To build the header
No Parameter
FORM sub_build_header .
Local data declaration
DATA: l_system TYPE char10 , "System id
l_r_line TYPE slis_listheader, "Hold list header
l_date TYPE char10, "Date
l_time TYPE char10, "Time
l_success_records TYPE i, "No of success records
l_title(300) TYPE c. " Title
Title Display
l_r_line-typ = c_header. " header
l_title = 'Test report'(001).
l_r_line-info = l_title.
APPEND l_r_line TO i_alv_top_of_page.
CLEAR l_r_line.
Run date Display
CLEAR l_date.
l_r_line-typ = c_item. " Item
WRITE: sy-datum TO l_date MM/DD/YYYY.
l_r_line-key = 'Run Date :'(002).
l_r_line-info = l_date.
APPEND l_r_line TO i_alv_top_of_page.
CLEAR: l_r_line,
l_date.ENDFORM. " sub_build_header
*& Form sub_field_catalog
Build Field Catalog
No Parameter
FORM sub_field_catalog .
Build Field Catalog
PERFORM sub_fill_alv_field_catalog USING: '01' '01' 'EBELN'
'I_EKPO' 'L'
'Doc No'(003) ' ' ' ' ' ' ' ', '01' '02' 'EBELP' 'I_EKPO' 'L'
'Item No'(004) 'X' 'X' ' ' ' ', '01' '03' 'MATNR' 'I_EKPO' 'L'
'Material No'(005) 'X' 'X' ' ' ' ', '01' '03' 'MATNR1' 'I_EKPO'
'L'
'Material No'(005) ' ' ' ' ' ' ' ',
'01' '04' 'WERKS' 'I_EKPO' 'L'
'Plant'(006) 'X' 'X' ' ' ' ', '01' '04' 'WERKS1' 'I_EKPO' 'L'
'Plant'(006) ' ' ' ' ' ' ' ', '01' '05' 'NTGEW' 'I_EKPO' 'R'
'Net Weight'(007) ' ' ' ' 'GEWE' 'I_EKPO'.ENDFORM.
" sub_field_catalog*&----
*& Form sub_fill_alv_field_catalog
*& For building Field Catalog
*& p_rowpos Row position
*& p_colpos Col position
*& p_fldnam Fldname
*& p_tabnam Tabname
*& p_justif Justification
*& p_seltext Seltext
*& p_out no out
*& p_tech Technical field
*& p_qfield Quantity field
*& p_qtab Quantity table
FORM sub_fill_alv_field_catalog USING p_rowpos TYPE sycurow
p_colpos TYPE sycucol
p_fldnam TYPE fieldname
p_tabnam TYPE tabname
p_justif TYPE char1
p_seltext TYPE dd03p-scrtext_l
p_out TYPE char1
p_tech TYPE char1
p_qfield TYPE slis_fieldname
p_qtab TYPE slis_tabname.
Local declaration for field
catalog
DATA: wa_lfl_fcat TYPE slis_fieldcat_alv.
wa_lfl_fcat-row_pos = p_rowpos. "Row
wa_lfl_fcat-col_pos = p_colpos. "Column
wa_lfl_fcat-fieldname = p_fldnam. "Field Name
wa_lfl_fcat-tabname = p_tabnam. "Internal Table Name
wa_lfl_fcat-just = p_justif. "Screen Justified
wa_lfl_fcat-seltext_l = p_seltext. "Field Text
wa_lfl_fcat-no_out = p_out. "No output
wa_lfl_fcat-tech = p_tech. "Technical field
wa_lfl_fcat-qfieldname = p_qfield. "Quantity unit
wa_lfl_fcat-qtabname = p_qtab .
"Quantity table
IF p_fldnam = 'NTGEW'.
wa_lfl_fcat-do_sum = 'X'.
ENDIF.
APPEND wa_lfl_fcat TO i_fieldcat.
CLEAR wa_lfl_fcat.
ENDFORM.
" sub_fill_alv_field_catalog*&----
*& Form sub_populate_layout
Populate ALV layout
No Parameter
FORM sub_populate_layout . CLEAR wa_layout.
wa_layout-colwidth_optimize = 'X'.
" Optimization of Col width
ENDFORM. " sub_populate_layout*&----
*& Form sub_populate_sort
Populate ALV sort table
No Parameter
FORM sub_populate_sort .
Sort on material
wa_sort-spos = '01' .
wa_sort-fieldname = 'MATNR'.
wa_sort-tabname = 'I_EKPO'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.
APPEND wa_sort TO i_sort .
CLEAR wa_sort.
Sort on plant
wa_sort-spos = '02'.
wa_sort-fieldname = 'WERKS'.
wa_sort-tabname = 'I_EKPO'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.
APPEND wa_sort TO i_sort .
CLEAR wa_sort.
ENDFORM.
" sub_populate_sort*&----
*& Form sub_get_event
Get ALV grid event and pass the form name to subtotal_text
event
No Parameter
FORM sub_get_event .
CONSTANTS : c_formname_subtotal_text TYPE slis_formname VALUE
'SUBTOTAL_TEXT'. DATA: l_s_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 4
IMPORTING
et_events = i_event
EXCEPTIONS
list_type_wrong = 0
OTHERS = 0.
Subtotal
READ TABLE i_event INTO l_s_event
WITH KEY name = slis_ev_subtotal_text.
IF sy-subrc = 0.
MOVE c_formname_subtotal_text TO l_s_event-form.
MODIFY i_event FROM l_s_event INDEX sy-tabix.
ENDIF.ENDFORM.
" sub_get_event*&----
*& Form sub_alv_report_display
For ALV Report Display
No Parameter
FORM sub_alv_report_display .
DATA: l_repid TYPE syrepid .
l_repid = sy-repid .
This function module for displaying the ALV
report
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = l_repid
i_callback_top_of_page = 'SUB_ALV_TOP_OF_PAGE'
is_layout = wa_layout
it_fieldcat = i_fieldcat
it_sort = i_sort
it_events = i_event
i_default = 'X'
i_save = 'A'
TABLES
t_outtab = i_ekpo
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc 0.
MESSAGE i000 WITH 'Error in ALV report display'(055).
ENDIF.
ENDFORM.
" sub_alv_report_display*&----
FORM sub_alv_top_of_page
Call ALV top of page
No parameter
FORM sub_alv_top_of_page. "#EC CALLED*
*To write header for the ALV
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_alv_top_of_page.
ENDFORM.
"alv_top_of_page*&----
*& Form subtotal_text
Build subtotal text
P_total Total
p_subtot_text Subtotal text info
FORM subtotal_text CHANGING
p_total TYPE any
p_subtot_text TYPE slis_subtot_text.
Material level sub total
IF p_subtot_text-criteria = 'MATNR'.
p_subtot_text-display_text_for_subtotal
= 'Material level total'(009).
ENDIF.
Plant level sub total
IF p_subtot_text-criteria = 'WERKS'.
p_subtot_text-display_text_for_subtotal = 'Plant level total'(010).
ENDIF.
ENDFORM. "subtotal_textSelection screen: -
I need page no's and top of page header to every page
Hi Experts,
i need page no's and top of page header to every page
to this report.
i took print outs it came only page number 1 to all the pages, after took prints it seems header to all the pages
but not displaying in output screen.
TYPE-POOLS: SLIS.
TABLES: MKPF,LFA1,MSEG,EKET,T001L,MAKT,S031,S032,MARA,LIPS,LIKP,T001W.
DATA FLAG TYPE I.
DATA : MENGE_RE LIKE MSEG-MENGE,
MENGE_IS LIKE MSEG-MENGE,
MENGE_O LIKE MSEG-MENGE,
MENGE_BAL LIKE MSEG-MENGE.
DATA MAGBB LIKE S031-MAGBB.
DATA MZUBB LIKE S031-MZUBB.
DATA V_MONTH LIKE S031-SPMON.
DATA XBLNR LIKE MKPF-XBLNR.
DATA : BEGIN OF ITAB1 OCCURS 100,
MATNR LIKE MAKT-MATNR,
END OF ITAB1.
DATA : BEGIN OF ITAB2 OCCURS 100,
MATNR LIKE MAKT-MATNR,
WERKS LIKE MARD-WERKS,
LGORT LIKE MARD-LGORT,
BUSTW LIKE MSEG-BUSTW,
BWART LIKE MSEG-BWART,
SHKZG LIKE MSEG-SHKZG,
MENGE LIKE MSEG-MENGE,
END OF ITAB2.
DATA: PAGNO(5) TYPE C.
DATA : PAGENO LIKE SY-PAGNO.
DATA: STR1 TYPE DATS,
STR2(14) TYPE C,
STR3(10) TYPE C.
DATA : V_MONUM LIKE T015M-MONUM,
V_MONAM LIKE T015M-MONAM.
TYPES: FARBE TYPE SLIS_T_SPECIALCOL_ALV.
DATA V_STOCK LIKE MSEG-MENGE.
DATA V_STOCK1 LIKE MSEG-MENGE.
DATA: V_MONTH1 LIKE S031-SPMON.
DATA: OSTOCK LIKE MSEG-MENGE.
CONSTANTS:
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
GT_LAYOUT TYPE SLIS_LAYOUT_ALV,
GS_KEYINFO TYPE SLIS_KEYINFO_ALV,
GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GT_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV,
GT_EVENTS TYPE SLIS_T_EVENT,
G_PRINT TYPE SLIS_PRINT_ALV.
DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV OCCURS 0 WITH HEADER LINE.
DATA: FC_HIER TYPE SLIS_FIELDCAT_ALV OCCURS 0 WITH HEADER LINE.
DATA: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: GT_REPID LIKE SY-REPID.
DATA: GT_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
DATA: GT_TOP_OF_LIST TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST'.
DATA: FLD(15).
DATA: TXT(50).
I N I T I A L I Z A T I O N
GT_REPID = SY-REPID.
PAGNO = SY-PAGNO.
PERFORM EVENTTAB_BUILD USING GT_EVENTS[].
A T S E L E C T I O N S C R E E N
*AT SELECTION-SCREEN ON BUDAT.
PERFORM VALIDATION.
S T A R T O F S E L E C T I O N
START-OF-SELECTION.
PERFORM FIELDCAT_INIT USING GT_FIELDCAT[].
PERFORM FETCH_DATA.
E N D O F S E L E C T I O N
END-OF-SELECTION.
IF NOT ITAB2[] IS INITIAL.
PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GT_REPID
IT_FIELDCAT = GT_FIELDCAT[]
IT_EVENTS = GT_EVENTS[]
IT_SORT = GT_SORT[]
IS_LAYOUT = GT_LAYOUT
TABLES
T_OUTTAB = ITAB2.
ELSE.
MESSAGE S006(Z1).
ENDIF.
CLEAR : GT_LAYOUT.
Report Selections
DATA: BEGIN OF IT_HEADER OCCURS 10,
WERKS LIKE MSEG-WERKS,
NAME1 LIKE T001W-NAME1,
MAKTX LIKE MAKT-MAKTX,
MATNR LIKE MSEG-MATNR,
MENGE_O LIKE MSEG-MENGE,
END OF IT_HEADER.
DATA: BEGIN OF ITAB OCCURS 50,
WERKS LIKE MSEG-WERKS,
MATNR LIKE MSEG-MATNR,
BWART LIKE MSEG-BWART,
LGORT LIKE MSEG-LGORT,
EBELN LIKE MSEG-EBELN,
XBLNR LIKE MKPF-XBLNR,
BUDAT LIKE MKPF-BUDAT,
MBLNR LIKE MSEG-MBLNR,
MENGE LIKE MSEG-MENGE,
MAKTX LIKE MAKT-MAKTX,
XAUTO LIKE MSEG-XAUTO,
NAME1 LIKE T001W-NAME1,
MENGE_O LIKE MSEG-MENGE,
SHKZG LIKE MSEG-SHKZG,
MENGE_IS LIKE MSEG-MENGE,
MENGE_RE LIKE MSEG-MENGE,
END OF ITAB.
DATA: BEGIN OF INT_DATA OCCURS 50,
WERKS LIKE MSEG-WERKS,
MATNR LIKE MSEG-MATNR,
BWART LIKE MSEG-BWART,
XBLNR LIKE MKPF-XBLNR,
MBLNR LIKE MSEG-MBLNR,
BUDAT LIKE MKPF-BUDAT,
MAKTX LIKE MAKT-MAKTX,
MENGE_O LIKE MSEG-MENGE,
MENGE_R LIKE MSEG-MENGE,
MENGE_TO LIKE MSEG-MENGE,
MENGE_TI LIKE MSEG-MENGE,
MENGE_S LIKE MSEG-MENGE,
MENGE_ST LIKE MSEG-MENGE,
MENGE_AD LIKE MSEG-MENGE,
MENGE_RT LIKE MSEG-MENGE,
MENGE_C LIKE MSEG-MENGE,
MENGE_CL LIKE MSEG-MENGE,
MENGE_BAL LIKE MSEG-MENGE,
MENGE_CR LIKE MSEG-MENGE,
NAME1 LIKE T001W-NAME1,
MENGE_RE LIKE MSEG-MENGE,
MENGE_IS LIKE MSEG-MENGE,
MENGE_BAL1 LIKE MSEG-MENGE,
SHKZG LIKE MSEG-SHKZG,
MENGE LIKE MSEG-MENGE,
END OF INT_DATA.
DATA: BEGIN OF INT_DATA1 OCCURS 50,
WERKS LIKE MSEG-WERKS,
MATNR LIKE MSEG-MATNR,
BWART LIKE MSEG-BWART,
MENGE_ST LIKE MSEG-MENGE,
MENGE_O LIKE MSEG-MENGE,
WAMNG LIKE EKET-WAMNG,
WEMNG LIKE EKET-WEMNG,
MENGE LIKE MSEG-MENGE,
RETPO LIKE EKPO-RETPO,
UMREN LIKE EKPO-UMREN,
UMREZ LIKE EKPO-UMREZ,
BSTMG LIKE EKPO-MENGE,
XBLNR LIKE MKPF-XBLNR,
END OF INT_DATA1.
DATA: BEGIN OF INT_DATA2 OCCURS 50,
WERKS LIKE MSEG-WERKS,
LGORT LIKE S031-LGORT,
MATNR LIKE MSEG-MATNR,
BWART LIKE MSEG-BWART,
MENGE_IS LIKE MSEG-MENGE,
MBWBEST LIKE S032-MBWBEST,
MAKTX LIKE MAKT-MAKTX,
END OF INT_DATA2.
DATA:V_GJAHR LIKE MKPF-BUDAT.
DATA : FLAG6 TYPE C,
PAGENO1 LIKE SY-PAGNO,
PAGENO2 LIKE SY-PAGNO.
SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE TEXT-064.
SELECT-OPTIONS:
MATNR FOR MSEG-MATNR,
MATKL FOR MARA-MATKL OBLIGATORY,
WERKS FOR MSEG-WERKS OBLIGATORY,
LGORT FOR MSEG-LGORT,
*CHARG FOR MSEG-CHARG,
BWART FOR MSEG-BWART,
*LIFNR FOR LFA1-LIFNR,
*WADAT FOR LIKP-WADAT_IST,
BUDAT FOR MKPF-BUDAT.
SELECTION-SCREEN END OF BLOCK 0.
*SELECTION-SCREEN SKIP 1.
Parameters
*SELECTION-SCREEN SKIP 1.
Variante
*SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE TEXT-064.
DATA: P_VARI LIKE DISVARIANT-VARIANT.
*SELECTION-SCREEN END OF BLOCK 0.
Layout
SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-060.
DATA: P_ZEBRA VALUE 'X'.
SELECTION-SCREEN END OF BLOCK A.
SELECTION-SCREEN BEGIN OF BLOCK D WITH FRAME TITLE TEXT-063.
PARAMETERS:
P_EXPAND AS CHECKBOX DEFAULT ' '.
DATA: P_DETPOP VALUE 'X' .
SELECTION-SCREEN END OF BLOCK D.
DATA: G_BOXNAM TYPE SLIS_FIELDNAME VALUE 'BOX',
G_EXPANDNAME TYPE SLIS_FIELDNAME VALUE 'EXPAND',
P_F2CODE LIKE SY-UCOMM VALUE '&ETA',
P_LIGNAM TYPE SLIS_FIELDNAME VALUE 'LIGHTS',
G_SAVE(1) TYPE C,
G_TABNAME_HEADER TYPE SLIS_TABNAME,
G_TABNAME_ITEM TYPE SLIS_TABNAME,
G_EXIT(1) TYPE C,
GX_VARIANT LIKE DISVARIANT,
G_VARIANT LIKE DISVARIANT.
INITIALIZATION.
GT_REPID = SY-REPID.
G_TABNAME_HEADER = 'IT_HEADER'.
G_TABNAME_ITEM = 'INT_DATA'.
define keyinfo
CLEAR GS_KEYINFO.
GS_KEYINFO-HEADER01 = 'MATNR'.
GS_KEYINFO-ITEM01 = 'MATNR'.
*GS_KEYINFO-HEADER01.
PERFORM E01_FIELDCAT_INIT USING GT_FIELDCAT[].
PERFORM E03_EVENTTAB_BUILD USING GT_EVENTS[].
PERFORM E04_COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
PERFORM E06_T_SORT_BUILD USING GT_SORT[].
PERFORM E07_SP_GROUP_BUILD USING GT_SP_GROUP[].
Schalter Varianten benutzerspezifisch/allgemein speicherbar setzen
Set Options: save variants userspecific or general
G_SAVE = 'A'.
PERFORM VARIANT_INIT.
Get default variant
GX_VARIANT = G_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 0.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
Process on value request
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
PERFORM F4_FOR_VARIANT.
AT SELECTION-SCREEN.
PERFORM PAI_OF_SELECTION_SCREEN.
START-OF-SELECTION.
END-OF-SELECTION.
PERFORM LAYOUT_BUILD USING GT_LAYOUT. "wg. Parameters
Call ABAP/4 List Viewer
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GT_REPID
IS_LAYOUT = GT_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
IT_SPECIAL_GROUPS = GT_SP_GROUP[]
IT_SORT = GT_SORT[]
I_SAVE = G_SAVE
IS_VARIANT = G_VARIANT
IT_EVENTS = GT_EVENTS[]
I_TABNAME_HEADER = G_TABNAME_HEADER
I_TABNAME_ITEM = G_TABNAME_ITEM
IS_KEYINFO = GS_KEYINFO
IS_PRINT = G_PRINT
TABLES
T_OUTTAB_HEADER = IT_HEADER
T_OUTTAB_ITEM = INT_DATA.
FORM E01_FIELDCAT_INIT *
--> E01_LT_FIELDCAT *
FORM FIELDCAT_INIT
USING RT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: POS TYPE I VALUE 1.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'WERKS'.
LS_FIELDCAT-TABNAME = G_TABNAME_HEADER .
LS_FIELDCAT-SELTEXT_L = 'Plant'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'NAME1'.
LS_FIELDCAT-TABNAME = G_TABNAME_HEADER .
LS_FIELDCAT-SELTEXT_L = 'Description'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'MATNR'.
LS_FIELDCAT-TABNAME = G_TABNAME_HEADER .
LS_FIELDCAT-SELTEXT_M = 'Material'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'MAKTX'.
LS_FIELDCAT-TABNAME = G_TABNAME_HEADER .
LS_FIELDCAT-SELTEXT_M = 'Material Description'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'XBLNR'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM .
LS_FIELDCAT-SELTEXT_M = ' Doc No.'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'BUDAT'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM .
LS_FIELDCAT-SELTEXT_M = ' Doc Date.'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'BWART'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM .
LS_FIELDCAT-SELTEXT_M = ' Mvt.'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'MBLNR'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM .
LS_FIELDCAT-SELTEXT_M = ' Mat.Doc No'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'MENGE_R'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM .
LS_FIELDCAT-SELTEXT_M = ' STO-In '.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'MENGE_RT'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM .
LS_FIELDCAT-SELTEXT_M = ' Sales Returns '.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'MENGE_CL'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM .
LS_FIELDCAT-SELTEXT_M = ' Canc of Invoice'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'MENGE_AD'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM .
LS_FIELDCAT-SELTEXT_M = ' Adjustments '.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'MENGE_S'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM .
LS_FIELDCAT-SELTEXT_M = ' Sales. '.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'MENGE_TO'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM .
LS_FIELDCAT-SELTEXT_M = ' STO-Out '.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'MENGE_CR'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM .
LS_FIELDCAT-SELTEXT_M = ' Canc of Sal Returns'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'MENGE_AD'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM .
LS_FIELDCAT-SELTEXT_M = 'Adjustments '.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'MENGE_O'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM .
LS_FIELDCAT-SELTEXT_M = ' Opening Balance '.
LS_FIELDCAT-NO_ZERO = 'X'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'MENGE_BAL'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM .
LS_FIELDCAT-SELTEXT_M = ' Balance '.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
ENDFORM. "E01_FIELDCAT_INIT
FORM E02_DATA_ADD *
--> E02_LT_SFLIGHT *
FORM E03_EVENTTAB_BUILD *
--> E03_LT_EVENTS *
*FORM E03_EVENTTAB_BUILD USING E03_LT_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 1
IMPORTING
ET_EVENTS = E03_LT_EVENTS.
READ TABLE E03_LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO E03_LT_EVENTS.
ENDIF.
*ENDFORM. "E03_EVENTTAB_BUILD
FORM E04_COMMENT_BUILD *
--> E04_LT_TOP_OF_PAGE *
FORM E04_COMMENT_BUILD USING E04_LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: LS_LINE TYPE SLIS_LISTHEADER.
Listenüberschrift: Typ H
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = TEXT-001.
APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = TEXT-050.
LS_LINE-INFO = TEXT-010.
APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
LS_LINE-KEY = TEXT-051.
APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
Aktionsinfo: Typ A
CLEAR LS_LINE.
LS_LINE-TYP = 'A'.
LS_LINE-INFO = TEXT-002.
APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
ENDFORM. "E04_COMMENT_BUILD
FORM E05_LAYOUT_BUILD *
<-> E05_LS_LAYOUT *
FORM LAYOUT_BUILD USING LS_LAYOUT TYPE SLIS_LAYOUT_ALV.
LS_LAYOUT-F2CODE = P_F2CODE.
LS_LAYOUT-ZEBRA = P_ZEBRA.
LS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
IF P_EXPAND = 'X'.
LS_LAYOUT-EXPAND_FIELDNAME = G_EXPANDNAME.
ELSE.
CLEAR LS_LAYOUT-EXPAND_FIELDNAME.
ENDIF.
LS_LAYOUT-DETAIL_POPUP = P_DETPOP.
ENDFORM. "E05_LAYOUT_BUILD
FORM E06_T_SORT_BUILD *
--> E06_LT_SORT *
*FORM E06_T_SORT_BUILD USING E06_LT_SORT TYPE SLIS_T_SORTINFO_ALV.
DATA: LS_SORT TYPE SLIS_SORTINFO_ALV.
CLEAR LS_SORT.
LS_SORT-FIELDNAME = 'WERKS'.
LS_SORT-TABNAME = G_TABNAME_HEADER.
LS_SORT-SPOS = 1.
LS_SORT-UP = 'X'.
APPEND LS_SORT TO E06_LT_SORT.
CLEAR LS_SORT.
LS_SORT-FIELDNAME = 'MATNR'.
LS_SORT-TABNAME = G_TABNAME_ITEM.
LS_SORT-SPOS = 2.
LS_SORT-UP = 'X'.
APPEND LS_SORT TO E06_LT_SORT.
*ENDFORM. "E06_T_SORT_BUILD
FORM E07_SP_GROUP_BUILD *
--> E07_LT_SP_GROUP *
FORM E07_SP_GROUP_BUILD USING E07_LT_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV.
DATA: LS_SP_GROUP TYPE SLIS_SP_GROUP_ALV.
CLEAR LS_SP_GROUP.
LS_SP_GROUP-SP_GROUP = 'A'.
LS_SP_GROUP-TEXT = TEXT-005.
APPEND LS_SP_GROUP TO E07_LT_SP_GROUP.
ENDFORM. "E07_SP_GROUP_BUILD
FORM SELECTION *
FORM FETCH_DATA .
STR3 = BUDAT-LOW+0(4).
SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE ITAB1
WHERE MATNR IN MATNR AND
MATKL IN MATKL.
SELECT MATNR WERKS LGORT
INTO TABLE ITAB2
FROM MARD FOR ALL ENTRIES IN ITAB1
WHERE WERKS IN WERKS AND
LGORT IN LGORT AND
MATNR = ITAB1-MATNR.
SELECT SINGLE NAME1 FROM T001W INTO INT_DATA-NAME1
WHERE WERKS = INT_DATA-WERKS.
LOOP AT ITAB2.
SELECT M~MATNR M~WERKS M~LGORT M~MENGE M~MBLNR M~MJAHR M~XAUTO M~SHKZG
M~BWART M~EBELN N~BUDAT N~XBLNR S~NAME1
INTO CORRESPONDING FIELDS OF ITAB
FROM MSEG AS M INNER JOIN MKPF AS N ON
M~MBLNR = N~MBLNR
AND M~MJAHR = N~MJAHR
INNER JOIN T001W AS S ON
M~WERKS = S~WERKS
WHERE N~BUDAT IN BUDAT AND
M~WERKS = ITAB2-WERKS AND
M~LGORT = ITAB2-LGORT AND
M~MATNR = ITAB2-MATNR AND
M~BWART IN BWART.
APPEND ITAB.
CLEAR ITAB.
ENDSELECT.
IF SY-SUBRC NE 0.
ITAB-MATNR = ITAB2-MATNR.
ITAB-WERKS = ITAB2-WERKS.
ITAB-LGORT = ITAB2-LGORT.
ITAB-BWART = ITAB2-BWART.
APPEND ITAB.
ENDIF.
CLEAR: ITAB2,ITAB.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM ITAB2 COMPARING MATNR WERKS .
V_MONTH = BUDAT-LOW+0(6).
SELECT * INTO CORRESPONDING FIELDS OF TABLE INT_DATA2
FROM S032 FOR ALL ENTRIES IN ITAB2
WHERE MATNR = ITAB2-MATNR
AND WERKS = ITAB2-WERKS
AND LGORT = SPACE
AND MBWBEST <> SPACE.
LOOP AT INT_DATA2 .
SELECT SINGLE * FROM S031
WHERE MATNR = INT_DATA2-MATNR AND
WERKS = INT_DATA2-WERKS AND
LGORT = SPACE AND
SPMON GT V_MONTH.
MODIFY INT_DATA2.
CLEAR: INT_DATA2, S031.
ENDLOOP.
DELETE INT_DATA WHERE MENGE_O IS INITIAL .
DELETE ADJACENT DUPLICATES FROM INT_DATA COMPARING XBLNR MATNR MAKTX.
V_MONTH1 = BUDAT-LOW+0(6).
SORT ITAB BY MATNR WERKS XBLNR .
LOOP AT ITAB.
XBLNR = ITAB-XBLNR.
INT_DATA-MENGE = ITAB-MENGE.
INT_DATA-BWART = ITAB-BWART.
INT_DATA-XBLNR = ITAB-XBLNR.
INT_DATA-BUDAT = ITAB-BUDAT.
INT_DATA-MATNR = ITAB-MATNR.
INT_DATA-MBLNR = ITAB-MBLNR.
INT_DATA-MENGE = ITAB-MENGE.
INT_DATA-SHKZG = ITAB-SHKZG.
INT_DATA-MENGE_IS = ITAB-MENGE_IS.
INT_DATA-MENGE_RE = ITAB-MENGE_RE.
INT_DATA-MENGE_O = ITAB-MENGE_O.
INT_DATA-NAME1 = ITAB-NAME1.
AT NEW MATNR.
FLAG = 1.
IT_HEADER-MATNR = INT_DATA-MATNR.
SELECT SINGLE MAKTX FROM MAKT INTO IT_HEADER-MAKTX WHERE
MATNR = INT_DATA-MATNR.
APPEND IT_HEADER.
CLEAR IT_HEADER.
ENDAT.
IF FLAG = 1.
PERFORM GET_OPENING_STOCK.
ENDIF.
INT_DATA-MENGE_O = OSTOCK.
CASE ITAB-BWART.
WHEN '101'.
IF INT_DATA-SHKZG = 'S'.
INT_DATA-MENGE_R = INT_DATA-MENGE_R + ITAB-MENGE.
ENDIF.
WHEN '453'.
IF INT_DATA-SHKZG = 'S'.
IF ITAB-XAUTO = 'X'.
INT_DATA-MENGE_RT = INT_DATA-MENGE_RT + ITAB-MENGE.
ENDIF.
ENDIF.
WHEN '351' OR '641'.
IF ITAB-LGORT = 0.
INT_DATA-MENGE_R = INT_DATA-MENGE_R + ITAB-MENGE.
ELSE.
INT_DATA-MENGE_TO = INT_DATA-MENGE_TO + ITAB-MENGE.
ENDIF.
WHEN '602' OR '642'.
IF INT_DATA-SHKZG = 'S'.
IF ITAB-LGORT = 0.
INT_DATA-MENGE_CL = INT_DATA-MENGE_CL + ITAB-MENGE.
ENDIF.
ENDIF.
WHEN '552' OR '310'.
IF INT_DATA-SHKZG = 'S'.
INT_DATA-MENGE_AD = INT_DATA-MENGE_AD - ITAB-MENGE.
ENDIF.
WHEN '601'.
IF INT_DATA-SHKZG = 'H'.
INT_DATA-MENGE_S = INT_DATA-MENGE_S + ITAB-MENGE.
ENDIF.
WHEN '641' .
IF INT_DATA-SHKZG = 'H'.
IF ITAB-LGORT = 0.
INT_DATA-MENGE_TO = INT_DATA-MENGE_TO + ITAB-MENGE.
ENDIF.
ENDIF.
WHEN '454' OR '102'.
IF INT_DATA-SHKZG = 'H'.
IF ITAB-XAUTO = 'X'.
INT_DATA-MENGE_CR = INT_DATA-MENGE_CR - ITAB-MENGE.
ENDIF.
ENDIF.
WHEN '551' OR '309'.
IF INT_DATA-SHKZG = 'H'.
INT_DATA-MENGE_AD = INT_DATA-MENGE_AD + ITAB-MENGE.
ENDIF.
IF INT_DATA-SHKZG = 'S'.
MENGE_O = INT_DATA-MENGE_O + ITAB-MENGE.
ENDIF.
ENDCASE.
IF INT_DATA-SHKZG = 'S'.
MENGE_RE = INT_DATA-MENGE_R + INT_DATA-MENGE_RT + INT_DATA-MENGE_CL
+ INT_DATA-MENGE_AD.
ENDIF.
IF INT_DATA-SHKZG = 'H'.
MENGE_IS = INT_DATA-MENGE_S + INT_DATA-MENGE_TO +
INT_DATA-MENGE_CR + INT_DATA-MENGE_AD.
ENDIF.
PERFORM BALANCE.
COLLECT INT_DATA.
CLEAR: INT_DATA,ITAB ,XBLNR, FLAG, OSTOCK.
ENDLOOP.
SORT INT_DATA BY XBLNR BUDAT WERKS MATNR.
LOOP AT INT_DATA.
READ TABLE INT_DATA2 WITH KEY MATNR = INT_DATA-MATNR
WERKS = INT_DATA-WERKS.
SELECT SINGLE * FROM MAKT WHERE MATNR = INT_DATA-MATNR.
INT_DATA-MAKTX = MAKT-MAKTX.
MODIFY INT_DATA.
CLEAR: INT_DATA, INT_DATA2.
ENDLOOP.
LOOP AT INT_DATA WHERE MENGE_O = 0 AND MENGE_RT = 0 AND
MENGE_CL = 0 AND MENGE_AD = 0 AND
MENGE_S = 0 AND MENGE_TO = 0 AND
MENGE_CR = 0 AND MENGE_R = 0 AND MENGE_BAL = 0.
DELETE IT_HEADER WHERE MATNR = INT_DATA-MATNR.
ENDLOOP.
DELETE INT_DATA WHERE MENGE_O = 0 AND MENGE_RT = 0 AND
MENGE_CL = 0 AND MENGE_AD = 0 AND
MENGE_S = 0 AND MENGE_TO = 0 AND
MENGE_CR = 0 AND MENGE_R = 0 AND MENGE_BAL = 0.
ENDFORM. "SELECTION
*& Form EVENTTAB_BUILD
text
-->P_GT_EVENTS[] text
FORM EVENTTAB_BUILD USING RT_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 1
IMPORTING
ET_EVENTS = RT_EVENTS.
READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GT_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO RT_EVENTS.
ENDIF.
ENDFORM. " EVENTTAB_BUILD
FORM TOP_OF_PAGE *
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
I_LOGO = 'ENJOYSAP_LOGO'
IT_LIST_COMMENTARY = LT_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
I_LOGO = 'ENJOYSAP_LOGO'
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM. "TOP_OF_PAGE
FORM F4_FOR_VARIANT *
FORM F4_FOR_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = G_VARIANT
I_SAVE = G_SAVE
I_TABNAME_HEADER = G_TABNAME_HEADER
I_TABNAME_ITEM = G_TABNAME_ITEM
IMPORTING
E_EXIT = G_EXIT
ES_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 2.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
IF G_EXIT = SPACE.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
ENDIF.
ENDFORM. "F4_FOR_VARIANT
*& Form PAI_OF_SELECTION_SCREEN
text
FORM PAI_OF_SELECTION_SCREEN.
IF NOT P_VARI IS INITIAL.
MOVE G_VARIANT TO GX_VARIANT.
MOVE P_VARI TO GX_VARIANT-VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT.
G_VARIANT = GX_VARIANT.
ELSE.
PERFORM VARIANT_INIT.
ENDIF.
ENDFORM. " PAI_OF_SELECTION_SCREEN
*& Form VARIANT_INIT
text
--> p1 text
<-- p2 text
FORM VARIANT_INIT.
CLEAR G_VARIANT.
G_VARIANT-REPORT = GT_REPID.
ENDFORM. " VARIANT_INIT
*& Form GET_OPENING_STOCK
text
FORM GET_OPENING_STOCK.
SELECT SUM( MZUBB ) SUM( MAGBB ) INTO (V_STOCK, V_STOCK1)
FROM S031 WHERE MATNR = ITAB-MATNR AND
WERKS = ITAB-WERKS AND
SPMON LT V_MONTH1 AND LGORT = ITAB-LGORT.
OSTOCK = V_STOCK1 - V_STOCK.
IF OSTOCK < 0.
OSTOCK = OSTOCK * -1.
ENDIF.
ENDFORM. " GET_OPENING_STOCK
*& Form check
text
FORM CHECK.
AUTHORITY-CHECK OBJECT 'M_IS_MATNR'
ID 'ACTVT' DUMMY
ID 'MATNR' FIELD MATNR-LOW.
IF SY-SUBRC <> 0.
MESSAGE E016(Z1) WITH MATNR-LOW.
ENDIF.
ENDFORM. "CHECK_AUTHORIZATION
*& Form EVENTTAB_BUILD
text
-->P_GT_EVENTS[] text
*FORM EVENTTAB_BUILD USING RT_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 1
IMPORTING
ET_EVENTS = RT_EVENTS.
READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GT_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO RT_EVENTS.
ENDIF.
*ENDFORM. " EVENTTAB_BUILD
FORM TOP_OF_PAGE
*FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
I_LOGO = 'ENJOYSAP_LOGO'
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
*ENDFORM. "TOP_OF_PAGE
*& Form COMMENT_BUILD
text
-->P_GT_LIST_TOP_OF_PAGE[] text
FORM COMMENT_BUILD USING LT_TOP_OF_PAGE TYPE
SLIS_T_LISTHEADER.
DATA: LS_LINE TYPE SLIS_LISTHEADER.
DATA: LV_PAGE_STRING(11),
LV_PAGE_NO(3).
PAGNO = SY-PAGNO.
DATA: PAGNO(5) TYPE C.
CLEAR
LS_LINE.
REFRESH LT_TOP_OF_PAGE.
CLEAR
LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = 'Page Number'.
PAGNO = SY-PAGNO.
IF
PAGNO = 0.
PAGNO = 1.
ENDIF.
SHIFT PAGNO LEFT DELETING LEADING SPACE.
LS_LINE-INFO = PAGNO.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = TEXT-001.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
CLEAR LS_LINE.
LS_LINE-TYP = 'A'.
SELECT SINGLE * FROM T001W WHERE
WERKS IN WERKS.
CONCATENATE 'Name Of The Plant ' '-' T001W-NAME1 INTO
TXT SEPARATED BY SPACE.
LS_LINE-INFO = TXT.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
CLEAR:TXT, LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = TEXT-002.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
CLEAR LS_LINE.
IF WERKS-HIGH EQ SPACE.
CONCATENATE 'Plant : ' WERKS-LOW INTO TXT.
ELSE.
CONCATENATE 'FROM PLANT : ' WERKS-LOW 'TO PLANT : ' WERKS-HIGH INTO TXT SEPARATED BY SPACE.
ENDIF.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = TXT.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
IF BUDAT-HIGH EQ SPACE.
BUDAT-HIGH = BUDAT-LOW.
ENDIF.
CONCATENATE 'Date : From ' BUDAT-LOW6(2) '-' BUDAT-LOW4(2) '-'
BUDAT-LOW0(4) 'to' BUDAT-HIGH6(2) '-'
BUDAT-HIGH4(2) '-' BUDAT-HIGH0(4) INTO
TXT SEPARATED BY SPACE.
CLEAR LS_LINE.
LS_LINE-TYP = 'A'.
LS_LINE-INFO = TXT.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
ENDFORM. "COMMENT_BUILD
*& Form LAYOUT_INIT
text
-->P_GT_LAYOUT text
FORM LAYOUT_INIT USING RS_LAYOUT TYPE SLIS_LAYOUT_ALV.
RS_LAYOUT-DETAIL_POPUP = 'X'.
RS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " LAYOUT_INIT
*& Form BALANCE
text
--> p1 text
<-- p2 text
FORM BALANCE.
IF INT_DATA-SHKZG = 'S'.
MENGE_RE = INT_DATA-MENGE_O + INT_DATA-MENGE.
INT_DATA-MENGE_BAL = MENGE_RE.
INT_DATA-MENGE_RE = INT_DATA-MENGE.
ELSEIF INT_DATA-SHKZG = 'H'.
MENGE_RE = MENGE_RE - INT_DATA-MENGE.
INT_DATA-MENGE_BAL = MENGE_RE.
INT_DATA-MENGE_IS = INT_DATA-MENGE.
ENDIF.
ENDFORM. " BALANCE
Thanks & Regards,
Sreedhar.Hi,
try like this.........
get v_linct from system varaible sy-linct
describe table t_output lines lv_lines - Where
t_output is ur final internal table which is displayed
v_pagct = ( lv_lines div v_linct ) + 3.
write: 'PAGE NO:' , sy-pagno ,'/', v_pagct.
Madhavi -
How to count number of raw & put result top of page?
I try to count number of table raw it work fine but when I wont to put result top of page it dose not work
only count one table raw
REPORT ZTEST.
DATA: it_sflight TYPE TABLE OF Sflight WITH HEADER LINE .
DATA counter TYPE i VALUE 0.
start-of-SELECTION.
SELECT-OPTIONS: carID for it_sflight-carrid.
SELECT-OPTIONS: connID for it_sflight-connid.
SELECT * FROM Sflight INTO CORRESPONDING FIELDS OF TABLE it_sflight
WHERE carrid IN carID and connID IN connid.
loop at it_sflight .
counter = counter + 1 .
write: /5 it_sflight-carrid,sy-vline,
30 it_sflight-connid,sy-vline,
45 it_sflight-fldate,sy-vline,
60 it_sflight-currency,sy-vline.
ULINE.
endloop.
end-of-SELECTION.
TOP-OF-PAGE .
*START-OF-SELECTION.
WRITE: 'Total Rows : ', counter.
ULINE.
WRITE: /5 'Carrid',sy-vline,
30 'Connid',sy-vline,
45 'Fldate',sy-vline,
60 'Currency',sy-vline.
ULINE.
how can I solve this problem ?Hi
Instead of using counter in a loop use describe statement.
Describe it_sflight.
the no of rows will get populated in the system variable sy-tfill.
DATA: it_sflight TYPE TABLE OF Sflight WITH HEADER LINE .
DATA counter TYPE i VALUE 0.
start-of-SELECTION.
SELECT-OPTIONS: carID for it_sflight-carrid.
SELECT-OPTIONS: connID for it_sflight-connid.
SELECT * FROM Sflight INTO CORRESPONDING FIELDS OF TABLE it_sflight
WHERE carrid IN carID and connID IN connid.
DESCRIBE TABLE it_sflight.
loop at it_sflight .
counter = counter + 1 .
write: /5 it_sflight-carrid,sy-vline,
30 it_sflight-connid,sy-vline,
45 it_sflight-fldate,sy-vline,
60 it_sflight-currency,sy-vline.
ULINE.
endloop.
end-of-SELECTION.
TOP-OF-PAGE .
*START-OF-SELECTION.
WRITE: 'Total Rows : ', sy-tfill.
ULINE.
WRITE: /5 'Carrid',sy-vline,
30 'Connid',sy-vline,
45 'Fldate',sy-vline,
60 'Currency',sy-vline.
ULINE.
Thanks
Rahul jain
Edited by: Rahuljn on Feb 2, 2011 10:58 AM
Maybe you are looking for
-
Hi all, it's quite crazy, that this bug: https://bugbase.adobe.com/index.cfm?event=bug&id=2951115 made it all the way from Beta to RC1 to final AIR 3.0 without being fixed. (It was created end of August, first comment from Adobe was end of September.
-
My phone was killed by your update. AGAIN! Last time I had to deal with discourteous, uneducated, unhelpful, and downright rude customer service reps (who, by the way, seemed to ignore the fact that I had set up an appointment). Once the issue was
-
Is there a way to delete an old Backup
I have gotten the message that my iCloud storage is almost full on my PC and was wondering if there is a way to delete an older backup to make room. PC Windows 8.1 iPhone 5s iOS 8.1 iPad mini with Retina iOS 8.1
-
I am constantly being redirected to the following fake firefox security page whilst browsing using Google. Any advice on how to stop this from happening? http: // online-alert-policy77 .co .cc/ ?id=11&t=b ''Edited to disable the link - tonyE''
-
Crashes with external drives (power management problem?)
Everything worked well in Tiger on my first gen MBP. Since i switched to Leopard and now Snow, and a new UNI MBP in december 08 I have so many external drive issues. USB drives just disappear and power off (from the system not electrical) for no reas