To find total in blocked alv
hi experts,
i have created blocked ALV program.
in the o/p , it displays list of recors for open items,then list of records for cleared items.
now i want it to display sum of both open and cleared items of particular column.
in grid display it is displaying total for open and cleared items.
but in blocked alv it is not displaying total for open and closed items separately.
and also i need grand total of both.
if any body knows please tell me..
Hi Sridevi
Refer this code as an example.
This code calculates the occupied column from sflight table.
TYPE-POOLS: slis.
DATA:it_fieldcat TYPE slis_t_fieldcat_alv,
is_layout TYPE slis_layout_alv,
it_events TYPE slis_t_event ,
it_sort TYPE slis_t_sortinfo_alv .
DATA: wa_fcat LIKE LINE OF it_fieldcat,
wa_sort LIKE LINE OF it_sort.
DATA: i_flight TYPE sflight_tab1.
SELECT * FROM sflight
INTO TABLE i_flight
UP TO 10 ROWS.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_structure_name = 'SFLIGHT'
CHANGING
ct_fieldcat = it_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2.
wa_fcat-do_sum = 'X'.
MODIFY it_fieldcat FROM wa_fcat
TRANSPORTING do_sum WHERE fieldname = 'SEATSOCC'.
wa_sort-up = 'X'.
wa_sort-fieldname = 'CARRID'.
wa_sort-subtot = 'X'.
APPEND wa_sort TO it_sort.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = sy-repid.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = is_layout
it_fieldcat = it_fieldcat
i_tabname = 'I_FLIGHT'
it_events = it_events
it_sort = it_sort
* I_TEXT = ' '
TABLES
t_outtab = i_flight
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = is_layout
it_fieldcat = it_fieldcat
i_tabname = 'I_FLGIHT'
it_events = it_events
it_sort = it_sort
* I_TEXT = ' '
TABLES
t_outtab = i_flight
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
Thanks and Regards
Similar Messages
-
How to calculate totals in Blocked ALV Report
Hi All,
Can any body tell how to calculate totals & sub totals in
Blocked ALV Report[Blocked List].
Thanks in advance
Thanks & Regards,
Rayeezuddin.read this it might help
Sums
15. No_sumchoice(1) TYPE c : This parameter allows the choice for summing up
Only by fieldcatalog.
Value set: SPACE, 'X'
'X' = fields which are to be summed, passed by the calling program (FIELDCAT-DO_SUM = 'X'). The user should not be able to change this value interactively.
16. No_totalline(1) TYPE c : Removes the option of having totals after sub-totals.
Value set: SPACE, 'X'
'X' = no total record is to be output. Subtotals can still be calculated and output. The fields in the subtotals are flagged DO_SUM = 'X' in the field list.
17. No_subchoice(1) TYPE c : Does not allow the user to interactively change the field chosen for subtotals.
Value set: SPACE, 'X'
'X' = value whose change triggers subtotals, provided by the calling program. The user should not be able to change this value interactively.
18. No_subtotals(1) TYPE c : No subtotals possible
Value set: SPACE, 'X'
'X' = no subtotals.
19. Numc_sum(1) TYPE c : Totals only possible for NUMC-Fields.
20. No_unit_splitting TYPE c: No separate total lines by inh.units
21.totals_before_items TYPE c: Display totals before the items
22. Totals_only(1) TYPE c : Show only totals
Value set: SPACE, 'X'
'X' = only total records are output.
23. Totals_text(60) TYPE c : Text for 1st col. in totals
Value set: SPACE, string (max.60)
' ' = The first column in the total record contains an appropriate number of '*'s to indicate the total by default. If the first column is wide enough, the string 'Total' is output after the asterisks.
'String = The string passed is output after the total indicated by '*', if the column is wide enough.
24. Subtotals_text(60) TYPE c : Texts for subtotals
Value set: SPACE, string (max.60)
' ' = In the first column of subtotal records, the subtotal is indicated by an appropriate number of '*' by default. If the first column is not a subtotal criterion, the string 'Total' is output after the asterisks, if the column is wide enough.
'String = the string passed is output after the subtotal indicated by '*', if the column is wide enough and the first column is not a subtotal criterion. If it is a subtotal criterion, its value is repeated after the total, if the column is wide enough.
ELSE TELL ME I WILL PASTE COMPLETE HELP
regards -
hi experts,
i have tried to subtotal in blocked alv. i used the coding for sorting in grid display. its working in FM reuse_alv_grid_display.
but its not working in blocked alv, i.e., in FM reuse_alv_block_list_append .
so what to do ?
kind regards,
debendrahi all,
yes my question has been answered.
as per below.
have to maintain this line : WA_SORT-TABNAME = 'IT_MUSTER'
where IT_MUSTER is the table name.
FORM APPEND USING FTAB TYPE C FDATA TYPE STANDARD TABLE.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = layout
IT_FIELDCAT = it_fcat
I_TABNAME = FTAB
IT_EVENTS = it_event
IT_SORT = IT_SORT
TABLES
T_OUTTAB = FDATA.
ENDFORM.
Form sort.
WA_SORT-TABNAME = 'IT_MUSTER'.
wa_sort-fieldname = 'MON'.
wa_sort-SUBTOT = 'X'.
append wa_sort to it_sort.
clear wa_sort.
Endform.
ragards,
debendra -
Page Number - Total Page number in Blocked ALV
Hi Gurus,
I need to print the page numbers like 1 of 5 in the ALV footer. Am able to print the current page number but am unable to print the total page number in the footer of the Blocked ALV. Can any one guide me how to display the total number of pages.
Points will be awarded
Thanks
RaviHi,
Please refer to the link below :
http://www.sapdev.co.uk/reporting/alv/alvgrid_events.htm
Thanks,
Sri. -
How to find out the total, subtotal in alv report
hi dears,
how to find out the total, subtotal in alv report?
pls tell me logic ,
i will be waiting for eply
regards
eswarHi,
<b>ALV Grid List with sub-totals</b>
REPORT z_demo_alv_sort.
* This program lists orders (VBAK) with sort and sub-total for *
* 'sold-to-party' (KUNNR) and 'Sales organization' (VKORG) *
TABLES : vbak.
TYPE-POOLS: slis. " ALV Global types
SELECT-OPTIONS :
s_vkorg FOR vbak-vkorg, " Sales organization
s_kunnr FOR vbak-kunnr, " Sold-to party
s_vbeln FOR vbak-vbeln. " Sales document
SELECTION-SCREEN :
SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max.
PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.
SELECTION-SCREEN END OF LINE.
DATA:
BEGIN OF gt_vbak OCCURS 0,
vkorg LIKE vbak-vkorg, " Sales organization
kunnr LIKE vbak-kunnr, " Sold-to party
vbeln LIKE vbak-vbeln, " Sales document
netwr LIKE vbak-netwr, " Net Value of the Sales Order
waerk LIKE vbak-waerk, " Document currency
END OF gt_vbak.
INITIALIZATION.
v_1 = 'Maximum of records to read'.
START-OF-SELECTION.
PERFORM f_read_data.
PERFORM f_display_data.
* Form f_read_data
FORM f_read_data.
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_vbak
FROM vbak
UP TO p_max ROWS
WHERE kunnr IN s_kunnr
AND vbeln IN s_vbeln
AND vkorg IN s_vkorg.
ENDFORM. " F_READ_DATA
* Form f_display_data
FORM f_display_data.
DEFINE m_fieldcat.
add 1 to ls_fieldcat-col_pos.
ls_fieldcat-fieldname = &1.
ls_fieldcat-ref_tabname = 'VBAK'.
ls_fieldcat-do_sum = &2.
ls_fieldcat-cfieldname = &3.
append ls_fieldcat to lt_fieldcat.
END-OF-DEFINITION.
DEFINE m_sort.
add 1 to ls_sort-spos.
ls_sort-fieldname = &1.
ls_sort-up = 'X'.
ls_sort-subtot = &2.
append ls_sort to lt_sort.
END-OF-DEFINITION.
DATA:
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv,
lt_sort TYPE slis_t_sortinfo_alv,
ls_sort TYPE slis_sortinfo_alv,
ls_layout TYPE slis_layout_alv.
m_fieldcat 'VKORG' '' ''.
m_fieldcat 'KUNNR' '' ''.
m_fieldcat 'VBELN' '' ''.
m_fieldcat 'NETWR' 'X' 'WAERK'.
m_fieldcat 'WAERK' '' ''.
m_sort 'VKORG' 'X'. " Sort by vkorg and subtotal
m_sort 'KUNNR' 'X'. " Sort by kunnr and subtotal
m_sort 'VBELN' ''. " Sort by vbeln
ls_layout-cell_merge = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
is_layout = ls_layout
it_fieldcat = lt_fieldcat
it_sort = lt_sort
TABLES
t_outtab = gt_vbak.
ENDFORM. " F_DISPLAY_DATA
***************** END OF PROGRAM Z_DEMO_ALV_SORT **********************
Regards
Sudheer -
Totals and subtotals in blocked alv
hi
totals and subtotals for data type (CURR) fields is not coming in blocked alv report... Plz can u help us in this regard.. urgent.
thnx in advancehave a look on this
REPORT YMS_ALVBLOCKLIST.
TABLES:LFA1,EKKO.
SELECT-OPTIONS:LIFNR FOR LFA1-LIFNR.
DATA:BEGIN OF ITAB OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
LAND1 LIKE LFA1-LAND1,
ORT01 LIKE LFA1-ORT01,
REGIO LIKE LFA1-REGIO,
END OF ITAB.
DATA:BEGIN OF JTAB OCCURS 0,
LIFNR LIKE EKKO-LIFNR,
EBELN LIKE EKKO-EBELN,
BUKRS LIKE EKKO-BUKRS,
BSTYP LIKE EKKO-BSTYP,
EKORG LIKE EKKO-EKORG,
BSART LIKE EKKO-BSART,
END OF JTAB.
SELECT * FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE LIFNR
IN LIFNR.
SELECT * FROM EKKO INTO CORRESPONDING FIELDS OF TABLE JTAB WHERE LIFNR
IN LIFNR.
TYPE-POOLS:SLIS.
DATA:LAYOUT TYPE slis_layout_alv.
DATA:EVE TYPE slis_t_event WITH HEADER LINE.
DATA:EVE1 TYPE slis_t_event WITH HEADER LINE.
DATA:HEAD TYPE slis_t_listheader WITH HEADER LINE.
DATA:FCAT TYPE slis_t_fieldcat_alv.
DATA:FCAT1 TYPE slis_t_fieldcat_alv.
LAYOUT-ZEBRA = 'X'.
LAYOUT-colwidth_optimize = 'X'.
LAYOUT-WINDOW_TITLEBAR = 'VENDOR DETAILS SCREEN'.
EVE1-NAME = 'TOP_OF_PAGE'.
EVE1-FORM = 'TOP_OF_PAGE1'.
APPEND EVE1.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = EVE[]
EXCEPTIONS
LIST_TYPE_WRONG = 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.
READ TABLE EVE WITH KEY NAME = 'TOP_OF_PAGE'.
EVE-FORM = 'TOP_OF_PAGE'.
MODIFY EVE TRANSPORTING FORM WHERE NAME = 'TOP_OF_PAGE'.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* IT_EXCLUDING =
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'ITAB'
* I_STRUCTURE_NAME =
* I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = SY-REPID
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = FCAT
* EXCEPTIONS
* INCONSISTENT_INTERFACE = 1
* PROGRAM_ERROR = 2
* OTHERS = 3
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = LAYOUT
IT_FIELDCAT = FCAT
I_TABNAME = 'ITAB'
IT_EVENTS = EVE[]
* IT_SORT =
* I_TEXT = ' '
TABLES
T_OUTTAB = ITAB
* EXCEPTIONS
* PROGRAM_ERROR = 1
* MAXIMUM_OF_APPENDS_REACHED = 2
* OTHERS = 3
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'JTAB'
* I_STRUCTURE_NAME =
* I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = SY-REPID
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = FCAT1
* EXCEPTIONS
* INCONSISTENT_INTERFACE = 1
* PROGRAM_ERROR = 2
* OTHERS = 3
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = LAYOUT
IT_FIELDCAT = FCAT1
I_TABNAME = 'JTAB'
IT_EVENTS = EVE1[]
* IT_SORT =
* I_TEXT = ' '
TABLES
T_OUTTAB = JTAB
* EXCEPTIONS
* PROGRAM_ERROR = 1
* MAXIMUM_OF_APPENDS_REACHED = 2
* OTHERS = 3
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
* EXPORTING
* I_INTERFACE_CHECK = ' '
* IS_PRINT =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
FORM TOP_OF_PAGE.
REFRESH HEAD.
HEAD-TYP = 'H'.
HEAD-INFO = 'VENDORS DETAILS'.
APPEND HEAD.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = HEAD[]
* I_LOGO =
* I_END_OF_LIST_GRID =
ENDFORM.
FORM TOP_OF_PAGE1.
REFRESH HEAD.
HEAD-TYP = 'H'.
HEAD-INFO = 'PURCHASE DOCCUMENTS DETAILS'.
APPEND HEAD.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = HEAD[]
* I_LOGO =
* I_END_OF_LIST_GRID =
ENDFORM. -
hi,
I'm working with Blocked ALV. In my program, passed the Fieldcatlog-do_sum = 'X' . But then also i'm not getting totals. For that what i want to do in Blocked ALV.
Regards,
BabHi,
For ALV Totals you can try doing,
DATA : it_field TYPE slis_t_fieldcat_alv,
wa_field TYPE slis_fieldcat_alv.
DATA: itab_sort TYPE slis_t_sortinfo_alv,
wa_sort TYPE slis_sortinfo_alv.
wa_field-fieldname = 'MENGE'.
wa_field-tabname = 'IT_TAB'.
wa_field-outputlen = 20.
wa_field-seltext_l ='Quantity'.
wa_field-input = ' '.
wa_field-edit = ' '.
wa_field-col_pos = '4'.
wa_field-hotspot = 'X'.
wa_field-do_sum = 'X'. "For totalling
APPEND wa_field TO it_field.
CLEAR wa_field.
*Manintainig internal table for sorting
wa_sort-spos = 1.
wa_sort-fieldname = 'EBELP'.
wa_sort-tabname = 'IT_tab'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'. "For totalling
APPEND wa_sort TO itab_sort.
CLEAR wa_sort.
Then you can pass these two internal tables in Reuse ALV grid Function Module.
Hope it helps
Regards
Mansi -
How to find item wise totals and header wise total using hierarchical ALV
Hi Friends,
I came across an issue of finding item wise total using hierarchical ALV. I am getting header wise total by setting the field catalog. May you help me in finding Item wise total.
Regards
Nikhil.hi,
you must use "w_fieldcat-do_sum = 'X'" and change your layout like :
w_sort-fieldname = 'FIELD'.
w_sort-tabname = 'TABNEME'.
w_sort-up = 'X'.
w_sort-subtot = 'X'.
APPEND w_sort TO i_sort.
CLEAR w_sort.
you can use detailed code from http://wiki.sdn.sap.com/wiki/display/Snippets/Subtotalsinhirarchial+report.
regards,
orhan
Edited by: goktasor on Jun 1, 2010 11:03 AM (need points : ) ) -
Finding Total Number Of Corrupted Blocks
Hello,
I just browsed several websites including RMAN documentation and information on how to identifiy corrupted blocks.
I´m in the middle of reorganizing production backups and their restore tests by duplication, which should (in my opinion) be followed by an analysis for corrupted blocks.
I found RMAN command BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL; to fit my needs. Recently I read the validate command only writes NEWLY found corrupted blocks to View V$DATABASE_BLOCK_CORRUPTION.
1. How do I check the WHOLE database for its TOTAL physical and logical corrupted blocks?
2.Under which circumstances is it NOT necesssary to check the database after the restore? In other words is there a way to ensure the backup cancels immediately when finding a corrupted block?
3. Is it necessary to set maxcorrupt to "0" during the Backup to get it cancelled for every corrupted block found?
4. What does dbv in contrast to backup validation?
Please be so kind to post me some short hints.
Regards
DominikHi,
thanks for your feedback again.
Yesterday I "accidently" faced the situation to work with a block corrupted database during a restore test.
So I had the chance to run both backup validate and dbv against its corrupted files.
dbv worked fine, recognized all corrupted blocks and reported them in its output.
Disappointingly backup validate neither reportted any corrupt withtin the whole database (there are several datafiles with corrupted blocks), nor posted them to V$DATABASE_BLOCK_CORRUPTION. There I could only find a hand full, but not all of them.
I´m very consufed now, what would I need backup validate for anymore??? :-/
I built myself a script to check the whole database with dbverify. Regarding production databases we cannot live with uncertainties like that
Regards
Dominik -
Hi All,
I am facing the problem in displaying the subtotal in Blocked ALV.
My requirement is, I need to display the subtotals in 3 lines like below.
for ex:
subtotal: 7 <above total>
(5)<coming from someother field>
2
from the above: 7 is total of that column.
5 is coming from some other field.
2 is substraction of above 2.
Could anyone please help me in the above.
Many thanks in advance.
Regards,
venkat.Hi Vaibhav,
Thanks for your response.
and one thing here in my above example is, the value 5 is neither total nor subtotal. its just a different value coming from some other field.
only the 7 is total of that column.
and if I write that logic manually, It may not able display as the position of that column is around 500. because write statment may display upto 252nd position in the output, I guess.
thank you very much.
Regards,
Venkat.
Edited by: venkat reddy on Jan 18, 2010 8:45 PM -
Hi!
In Block AlV we r using Fun Mod
REUSE_ALV_BLOCK_LIST_APPEND
To display data in blocks and called again to display other data in block in same screen.
I want to know REUSE_ALV_BLOCK_LIST_DISPLAY Fun mod is optional or mandatory
without using this also shall i get the required o/p.
Looking for your reply.
Rahul.REUSE_ALV_BLOCK_LIST_DISPLAY is mandatory, without calling this FM, you will not get any disply.
In the below ALV if you comment out t REUSE_ALV_BLOCK_LIST_DISPLAY FM call call you will not get disply.
REPORT ztest1 .
TABLES: ekko, mara.
TYPE-POOLS: slis.
*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.
TYPES: BEGIN OF t_mara,
matnr TYPE mara-matnr,
mtart TYPE mara-mtart,
matkl TYPE mara-matkl,
END OF t_mara.
DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
it_mara TYPE STANDARD TABLE OF t_mara INITIAL SIZE 0.
*ALV data declarations
DATA: fieldcatalog1 TYPE slis_t_fieldcat_alv WITH HEADER LINE,
fieldcatalog2 TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gd_layout TYPE slis_layout_alv,
gt_events_ekko TYPE slis_t_event,
xs_event TYPE slis_alv_event,
gt_events_mara TYPE slis_t_event,
gd_repid TYPE sy-repid,
gt_print TYPE slis_print_alv.
* START-OF-SELECTION
START-OF-SELECTION.
PERFORM data_retrival.
PERFORM build_fieldcat.
PERFORM build_layout.
PERFORM events_ekko.
PERFORM events_mara.
PERFORM display_alv_report.
*SUBROUTINES
*& Form data_retrival
FORM data_retrival .
SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh
UP TO 10 ROWS
FROM ekpo
INTO TABLE it_ekko.
SELECT matnr mtart matkl
UP TO 10 ROWS
FROM mara
INTO TABLE it_mara.
ENDFORM. " data_retrival
*& Form build_fieldcat
FORM build_fieldcat .
* FOR EKKO
fieldcatalog1-fieldname = 'EBELN'.
fieldcatalog1-seltext_m = 'Purchase Order'.
fieldcatalog1-col_pos = 0.
fieldcatalog1-outputlen = 10.
fieldcatalog1-emphasize = 'X'.
fieldcatalog1-key = 'X'.
APPEND fieldcatalog1 TO fieldcatalog1.
CLEAR fieldcatalog1.
fieldcatalog1-fieldname = 'EBELP'.
fieldcatalog1-seltext_m = 'PO Item'.
fieldcatalog1-col_pos = 1.
APPEND fieldcatalog1 TO fieldcatalog1.
CLEAR fieldcatalog1.
fieldcatalog1-fieldname = 'STATU'.
fieldcatalog1-seltext_m = 'Status'.
fieldcatalog1-col_pos = 2.
APPEND fieldcatalog1 TO fieldcatalog1.
CLEAR fieldcatalog1.
fieldcatalog1-fieldname = 'AEDAT'.
fieldcatalog1-seltext_m = 'Item change date'.
fieldcatalog1-col_pos = 3.
APPEND fieldcatalog1 TO fieldcatalog1.
CLEAR fieldcatalog1.
fieldcatalog1-fieldname = 'MATNR'.
fieldcatalog1-seltext_m = 'Material Number'.
fieldcatalog1-col_pos = 4.
APPEND fieldcatalog1 TO fieldcatalog1.
CLEAR fieldcatalog1.
fieldcatalog1-fieldname = 'MENGE'.
fieldcatalog1-seltext_m = 'PO quantity'.
fieldcatalog1-col_pos = 5.
APPEND fieldcatalog1 TO fieldcatalog1.
CLEAR fieldcatalog1.
fieldcatalog1-fieldname = 'MEINS'.
fieldcatalog1-seltext_m = 'Order Unit'.
fieldcatalog1-col_pos = 6.
APPEND fieldcatalog1 TO fieldcatalog1.
CLEAR fieldcatalog1.
fieldcatalog1-fieldname = 'NETPR'.
fieldcatalog1-seltext_m = 'Net Price'.
fieldcatalog1-col_pos = 7.
fieldcatalog1-outputlen = 15.
fieldcatalog1-do_sum = 'X'. "Display column total
fieldcatalog1-datatype = 'CURR'.
APPEND fieldcatalog1 TO fieldcatalog1.
CLEAR fieldcatalog1.
fieldcatalog1-fieldname = 'PEINH'.
fieldcatalog1-seltext_m = 'Price Unit'.
fieldcatalog1-col_pos = 8.
APPEND fieldcatalog1 TO fieldcatalog1.
CLEAR fieldcatalog1.
* FOR MARA
fieldcatalog2-fieldname = 'MATNR'.
fieldcatalog2-seltext_m = 'Material No'.
fieldcatalog2-col_pos = 0.
fieldcatalog2-outputlen = 10.
fieldcatalog2-emphasize = 'X'.
fieldcatalog2-key = 'X'.
APPEND fieldcatalog2 TO fieldcatalog2.
CLEAR fieldcatalog1.
fieldcatalog2-fieldname = 'MTART'.
fieldcatalog2-seltext_m = 'Material type'.
fieldcatalog2-col_pos = 1.
APPEND fieldcatalog2 TO fieldcatalog2.
CLEAR fieldcatalog2.
fieldcatalog2-fieldname = 'MATKL'.
fieldcatalog2-seltext_m = 'Material Group'.
fieldcatalog2-col_pos = 2.
APPEND fieldcatalog2 TO fieldcatalog2.
CLEAR fieldcatalog2.
ENDFORM. " build_fieldcat
*& Form build_layout
FORM build_layout .
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(201).
ENDFORM. " build_layout
*& Form events_ekko
FORM events_ekko .
CLEAR xs_event.
xs_event-name = slis_ev_top_of_page.
xs_event-form = 'TOP_OF_PAGE-EKKO'.
APPEND xs_event TO gt_events_ekko.
CLEAR xs_event.
xs_event-name = slis_ev_end_of_list.
xs_event-form = 'END_OF_LIST_EKKO'.
APPEND xs_event TO gt_events_ekko.
ENDFORM. " events_ekko
*& Form TOP_OF_PAGE-EKKO
FORM top_of_page-ekko.
WRITE: / 'TOP OF PAGE : Purchase Order'.
ENDFORM. "XTOP_OF_PAGE
*& Form END_OF_LIST_EKKO
FORM end_of_list_ekko.
WRITE: / 'end OF list : Purchase Order'.
ENDFORM. "END_OF_LIST_EKKO
*& Form events_mara
FORM events_mara .
CLEAR xs_event.
xs_event-name = slis_ev_top_of_list.
xs_event-form = 'TOP_OF_LIST-MARA'.
APPEND xs_event TO gt_events_mara.
CLEAR xs_event.
xs_event-name = slis_ev_end_of_page.
xs_event-form = 'END_OF_PAGE_MARA'.
APPEND xs_event TO gt_events_mara.
ENDFORM. "events_mara
*& Form TOP_OF_LIST-MARA
FORM top_of_list-mara.
WRITE: / 'TOP OF LIST : Material Master'.
ENDFORM. "TOP_OF_LIST-MARA
*& Form END_OF_PAGE_MARA
FORM end_of_page_mara.
WRITE: / 'End OF Page : Material Master'.
ENDFORM. "END_OF_PAGE_MARA
*& Form display_alv_report
FORM display_alv_report .
gd_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = sy-repid.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = gd_layout
it_fieldcat = fieldcatalog1[]
i_tabname = 'it_ekko'
it_events = gt_events_ekko
TABLES
t_outtab = it_ekko
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = gd_layout
it_fieldcat = fieldcatalog2[]
i_tabname = 'it_mara'
it_events = gt_events_mara
TABLES
t_outtab = it_mara
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
gt_print-reserve_lines = 2.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
is_print = gt_print.
ENDFORM. " display_alv_report -
END OF PAGE IN BLOCK ALV : PLZ HELP
Hi experts.
I have a requirement to display top-of-page end-of-page end-of-list in block alv but the problem is that end-of-page is not getting triggered instead top-of-page is getting triggered twice.
Below is the code for your reference :
REPORT zbhr_workers_comp_report
LINE-COUNT 60(4)
LINE-SIZE 999
NO STANDARD PAGE HEADING
MESSAGE-ID zmhr.
*//// This is how event table is getting populated:*
FORM events_get1 CHANGING t1_events TYPE slis_t_event.
DATA:ls1_events TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
IMPORTING
et_events = t1_events.
READ TABLE t1_events INTO ls1_events WITH KEY name = slis_ev_top_of_page.
IF sy-subrc = 0.
MOVE c_form_top_of_page TO ls1_events-form.
APPEND ls1_events TO t1_events.
modify t1_events FROM ls1_events INDEX sy-tabix TRANSPORTING form.
CLEAR ls1_events.
ENDIF.
READ TABLE t1_events INTO ls1_events WITH KEY name = slis_ev_end_of_page.
IF sy-subrc = 0.
MOVE c_form_end_of_page TO ls1_events-form.
APPEND ls1_events TO t1_events.
modify t1_events FROM ls1_events INDEX sy-tabix TRANSPORTING form.
CLEAR ls1_events.
ENDIF.
READ TABLE t1_events INTO ls1_events WITH KEY name = slis_ev_end_of_list.
IF sy-subrc = 0.
MOVE c_form_end_of_list TO ls1_events-form.
APPEND ls1_events TO t1_events.
modify t1_events FROM ls1_events INDEX sy-tabix TRANSPORTING form.
CLEAR ls1_events.
ENDIF.
ENDFORM. " EVENTS_GET1
FORM : TOP_OF_PAGE
FORM top_of_page.
WRITE : /45 text-020, 65(5) text-021 , 71(11) v_begda, 84(3) text-022 , 89(11) v_endda.
ENDFORM. "TOP_OF_PAGE
FORM : end_of_page
FORM end_of_page.
DATA: lv_process TYPE i.
CLEAR: lv_process.
LOOP AT t_final_temp INTO w_final_temp where customer = t_final-customer.
lv_process = lv_process + 1.
ENDLOOP.
*RESERVE 3 LINES.
WRITE: /4 'Number of read Record : '(023), v_total_read.
WRITE: /4 'Number of processed Record : '(024), lv_process.
ENDFORM. "end_of_page
FORM : end_of_list
FORM end_of_list .
v_total_process = LINES( t_final[] ).
WRITE: /4 'Total sum of all processed data: '(029), v_total_process.
ENDFORM. "end_of_list
*****Displaying the block alv.
FORM display_output .
To restrict the display of sel info and list info.
st_print-no_print_selinfos = 'X'.
st_print-no_print_listinfos = 'X'.
st_print-reserve_lines = 2. " Lines reserved for end of page
Initialize ALV Block List
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = sy-repid.
Append the ALV Block list with table t_final.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = w1_layout
it_fieldcat = t1_fieldcat
i_tabname = 'T_FINAL'
it_events = t1_events
it_sort = t_sort
TABLES
t_outtab = t_final
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Append the ALV Block list with table t_msg_display.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = w2_layout
it_fieldcat = t2_fieldcat
i_tabname = 'T_MSG_DISPLAY'
it_events = t2_events
TABLES
t_outtab = t_msg_display
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
i_interface_check = ' '
is_print = st_print
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_OUTPUT
Above is the core logic which I have used for displaying top-of-page end-of-page and end-of-list in block alv.
Please Help
Regards
Arvind.Hi
MOVE 'TOP_OF_PAGE' TO ls1_events-form.
what is thie c_form_top_of_page instead write as above ,i hope it will work
Regards
Pavan -
Dear Friends,
I am using Block ALV. I need diffrent labels (headings) before each block of alv. Is there any way?
Regards,
Bhavin*& Report ZSD_DESPATCH
REPORT ZSD_DESPATCH NO STANDARD PAGE HEADING.
*& Type Pool Declaration
TYPE-POOLS: SLIS.
*& External Table Declaration
TABLES: VBRK, VBRP.
*& Types Declaration
TYPES: BEGIN OF ST_VBRKVBRP,
SORTL LIKE KNA1-SORTL, "Customer Sort Name
SALE(15),
BISMT LIKE MARA-BISMT, "Size
VBELN LIKE VBRK-VBELN, "Billing Doc Number
KUNAG LIKE VBRK-KUNAG, "Customer
VTWEG LIKE VBRK-VTWEG, "Distribution Channel
FKART LIKE VBRK-FKART, "Billing Doc Type
KNUMV LIKE VBRK-KNUMV, "Condition Record Number
VKORG LIKE VBRK-VKORG, "Sales Organization
KURRF LIKE VBRK-KURRF, "Billing Exchange Rate
WAERK LIKE VBRK-WAERK, "SD document currency
MATNR LIKE VBRP-MATNR, "Material Number
MATKL LIKE VBRP-MATKL, "Material group
FKIMG LIKE VBRP-FKIMG, "Actual billed quantity
POSNR LIKE VBRP-POSNR, "Item Position Number
PR00 LIKE KONV-KWERT, "PR00 Condition Based Value
ZDRP LIKE KONV-KWERT, "ZDRP Condition Based Value
FUNEL LIKE VBRP-FKIMG, "FUNEL Quantity
PANEL LIKE VBRP-FKIMG, "PANEL Quantity
FKDAT LIKE VBRK-FKDAT, "Billing date
END OF ST_VBRKVBRP.
TYPES: BEGIN OF ST_FOR_MONTH,
SORTL LIKE KNA1-SORTL,
SALE(15),
BISMT LIKE MARA-BISMT,
PANEL LIKE VBRP-FKIMG,
FUNEL LIKE VBRP-FKIMG,
PR00 LIKE KONV-KWERT,
ZDRP LIKE KONV-KWERT,
END OF ST_FOR_MONTH.
TYPES: BEGIN OF ST_FOR_DAY,
SORTL LIKE KNA1-SORTL,
SALE(15),
BISMT LIKE MARA-BISMT,
PANEL LIKE VBRP-FKIMG,
FUNEL LIKE VBRP-FKIMG,
PR00 LIKE KONV-KWERT,
ZDRP LIKE KONV-KWERT,
END OF ST_FOR_DAY.
*& Internal Table Declaration
DATA: IT_VBRKVBRP TYPE STANDARD TABLE OF ST_VBRKVBRP.
DATA: IT_FOR_MONTH TYPE STANDARD TABLE OF ST_FOR_MONTH.
DATA: IT_FOR_DAY TYPE STANDARD TABLE OF ST_FOR_DAY.
*& Work Areas Declaration
DATA: WA_VBRKVBRP LIKE LINE OF IT_VBRKVBRP.
DATA: WA_FOR_MONTH LIKE LINE OF IT_FOR_MONTH.
DATA: WA_FOR_DAY LIKE LINE OF IT_FOR_DAY.
*& Variables Declaration
DATA : VALU TYPE D,
LOWDATE TYPE D,
HIGHDATE TYPE D,
L_LOWDT TYPE D,
L_HIGHDT TYPE D,
DAY TYPE I,
MONTH TYPE I,
LMONTH TYPE I,
MODN TYPE I,
PARTY_C(9) TYPE C,
LCMON(2) TYPE C,
YEAR(4) TYPE C,
LYEAR(4) TYPE C,
MONTH_NM(4) TYPE C,
PARTY LIKE VBRK-KUNAG,
MATR LIKE VBRP-MATNR,
MATGRP LIKE VBRP-MATKL.
DATA: COUNTER TYPE I.
*& ALV Data Declaration
DATA: IT_FIELDCAT_FOR_DAY TYPE SLIS_T_FIELDCAT_ALV.
DATA: IT_FIELDCAT_FOR_MONTH TYPE SLIS_T_FIELDCAT_ALV.
DATA: WA_FIELDCAT_FOR_DAY LIKE LINE OF IT_FIELDCAT_FOR_DAY.
DATA: IT_EVENT_FOR_DAY TYPE SLIS_T_EVENT WITH HEADER LINE.
DATA: IT_EVENT_FOR_MONTH TYPE SLIS_T_EVENT WITH HEADER LINE.
DATA: TOP_OF_LIST_FOR_DAY TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST_FOR_DAY'.
DATA: TOP_OF_LIST_FOR_MON TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST_FOR_MONTH'.
DATA: IS_LAYOUT_FOR_DAY TYPE SLIS_LAYOUT_ALV.
DATA: IS_LAYOUT_FOR_MONTH TYPE SLIS_LAYOUT_ALV.
*& Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT_001.
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN: COMMENT 1(20) TEXT_003.
SELECT-OPTIONS: S_WERKS FOR VBRP-WERKS OBLIGATORY.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN: COMMENT 1(20) TEXT_004.
SELECT-OPTIONS: S_VKORG FOR VBRK-VKORG OBLIGATORY.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN: COMMENT 1(20) TEXT_005.
SELECT-OPTIONS: S_VTWEG FOR VBRK-VTWEG OBLIGATORY.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN: COMMENT 1(23) TEXT_006.
PARAMETERS : DATE LIKE VBRK-FKDAT OBLIGATORY.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN : BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT_002.
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN: COMMENT 1(20) TEXT_007.
PARAMETERS : G1 RADIOBUTTON GROUP 1.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN: COMMENT 1(20) TEXT_008.
PARAMETERS : CH1 AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN: COMMENT 1(20) TEXT_009.
PARAMETERS : CH2 AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN: COMMENT 1(20) TEXT_010.
PARAMETERS : CH3 AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN: COMMENT 1(20) TEXT_011.
PARAMETERS : CH4 AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN: COMMENT 1(20) TEXT_012.
PARAMETERS : G2 RADIOBUTTON GROUP 1.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN : END OF BLOCK B2.
*& Initialization Event
INITIALIZATION.
TEXT_001 = 'Despatch details report'.
TEXT_002 = 'Data selection criteria'.
TEXT_003 = 'Plant'.
TEXT_004 = 'Sales Organization'.
TEXT_005 = 'Distribution Channel'.
TEXT_006 = 'Date'.
TEXT_007 = 'Daily'.
TEXT_008 = 'Monthly Despatch'.
TEXT_009 = 'Plan Vs Despatch'.
TEXT_010 = 'Total Basic Value'.
TEXT_011 = 'Despatch Report'.
TEXT_012 = 'Despatch Rep with only basic'.
*& Start of Selection
START-OF-SELECTION.
PERFORM GET_LYEAR.
PERFORM GET_DATA.
PERFORM FILL_FOR_DAY.
PERFORM FILL_FOR_MONTH.
PERFORM FIELDCAT_FOR_DAY.
PERFORM FIELDCAT_FOR_MONTH.
PERFORM EVENTS_FOR_DAY.
PERFORM EVENTS_FOR_MONTH.
PERFORM APPEND_FOR_DAY.
PERFORM APPEND_FOR_MONTH.
PERFORM LIST_DISPLAY.
*& Form GET_LYEAR
text
--> p1 text
<-- p2 text
FORM GET_LYEAR.
VALU = DATE.
DAY = ( VALU+6(2) ) - 1.
MONTH = VALU+4(2).
YEAR = VALU+0(4).
IF MONTH = 1.
LMONTH = 12.
LYEAR = VALU+0(4) - 1.
ELSE.
LMONTH = VALU+4(2) - 1.
LYEAR = YEAR.
ENDIF.
LCMON = LMONTH.
MODN = LYEAR MOD 4.
IF LMONTH < 10 .
CONCATENATE LYEAR '0' LCMON '01' INTO L_LOWDT.
IF LMONTH = 01 OR LMONTH = 03 OR
LMONTH = 05 OR LMONTH = 07 OR
LMONTH = 08.
CONCATENATE LYEAR '0' LCMON '31' INTO L_HIGHDT.
ELSEIF LMONTH = 2.
IF MODN = 0.
CONCATENATE LYEAR '0' LCMON '29' INTO L_HIGHDT.
ELSE.
CONCATENATE LYEAR '0' LCMON '28' INTO L_HIGHDT.
ENDIF.
ELSE.
CONCATENATE LYEAR '0' LCMON '30' INTO L_HIGHDT.
ENDIF.
ELSE.
CONCATENATE LYEAR LCMON '01' INTO L_LOWDT.
IF LMONTH = 10 OR LMONTH = 12.
CONCATENATE LYEAR LCMON '31' INTO L_HIGHDT.
ELSE.
CONCATENATE LYEAR LCMON '30' INTO L_HIGHDT.
ENDIF.
ENDIF.
LOWDATE = DATE - ( DAY ).
HIGHDATE = DATE.
*& At the of this form following date we get
*& L_HIGHDT - Last Month Hight Date
*& L_LOWDT - Last Month Low Date
*& LOWDATE - Current Month Low Date
*& HIGHDATE - Current Month High Date
ENDFORM. " GET_LYEAR
*& Form get_data
text
--> p1 text
<-- p2 text
FORM GET_DATA.
SELECT VBRKVBELN VBRKKUNAG VBRK~VTWEG
VBRKFKART VBRKKNUMV VBRP~MATNR
VBRPMATKL VBRPFKIMG VBRK~VKORG
VBRKWAERK VBRKKURRF VBRP~POSNR
VBRK~FKDAT
INTO CORRESPONDING FIELDS OF WA_VBRKVBRP
FROM VBRK INNER JOIN VBRP ON
VBRKVBELN = VBRPVBELN
WHERE VBRP~WERKS IN S_WERKS AND
VBRP~VKORG_AUFT IN S_VKORG AND
VBRP~VTWEG_AUFT IN S_VTWEG AND
VBRK~FKDAT BETWEEN LOWDATE AND DATE AND
( VBRP~MATKL = 'GLASS SHE' OR
VBRP~MATKL = 'GLASS FNL' OR
VBRP~MATKL = 'GLASS PNL') AND
VBRK~RFBSK = 'C'.
ORDER BY VBRKVBELN VBRPMATNR.
*& Select PR00 based value
SELECT SINGLE KWERT INTO WA_VBRKVBRP-PR00
FROM KONV
WHERE KNUMV = WA_VBRKVBRP-KNUMV AND
KPOSN = WA_VBRKVBRP-POSNR AND
KSCHL = 'PR00'.
*& Select ZDRP based value
SELECT SINGLE KWERT INTO WA_VBRKVBRP-ZDRP
FROM KONV
WHERE KNUMV = WA_VBRKVBRP-KNUMV AND
KPOSN = WA_VBRKVBRP-POSNR AND
KSCHL = 'ZDRP'.
*& Select Sort name of the party
SELECT SINGLE SORTL INTO WA_VBRKVBRP-SORTL
FROM KNA1
WHERE KUNNR = WA_VBRKVBRP-KUNAG.
*& Select size of the product
SELECT SINGLE BISMT INTO WA_VBRKVBRP-BISMT
FROM MARA
WHERE MATNR = WA_VBRKVBRP-MATNR.
*& Multiply with exchange Rate
WA_VBRKVBRP-PR00 = WA_VBRKVBRP-PR00 * WA_VBRKVBRP-KURRF.
WA_VBRKVBRP-ZDRP = WA_VBRKVBRP-ZDRP * WA_VBRKVBRP-KURRF.
*& Deciding Return and Fresh Sale
IF WA_VBRKVBRP-VKORG = '1200' AND
WA_VBRKVBRP-VTWEG = '40'.
IF WA_VBRKVBRP-FKART = 'ZVRO' OR
WA_VBRKVBRP-FKART = 'ZVRW'.
WA_VBRKVBRP-SALE = 'Return'.
ELSE.
WA_VBRKVBRP-SALE = 'Fresh Sale'.
ENDIF.
ENDIF.
*& Deciding Export Sale
IF WA_VBRKVBRP-VKORG = '1202' AND
WA_VBRKVBRP-VTWEG = '45'.
WA_VBRKVBRP-SALE = 'Export'.
ENDIF.
*& Deciding Panel Quantity for the billing
IF WA_VBRKVBRP-MATKL = 'GLASS SHE' OR
WA_VBRKVBRP-MATKL = 'GLASS PNL'.
WA_VBRKVBRP-PANEL = WA_VBRKVBRP-FKIMG.
ENDIF.
*& Deciding Funel Quantity for the billing
IF WA_VBRKVBRP-MATKL = 'GLASS FNL'.
WA_VBRKVBRP-FUNEL = WA_VBRKVBRP-FKIMG.
ENDIF.
*& Indicating Minus Price and quantity for the Return Sale
IF WA_VBRKVBRP-FKART = 'ZVRO' OR
WA_VBRKVBRP-FKART = 'ZVRW'.
WA_VBRKVBRP-PANEL = WA_VBRKVBRP-PANEL * -1.
WA_VBRKVBRP-FUNEL = WA_VBRKVBRP-FUNEL * -1.
WA_VBRKVBRP-PR00 = WA_VBRKVBRP-PR00 * -1.
WA_VBRKVBRP-ZDRP = WA_VBRKVBRP-ZDRP * -1.
ENDIF.
APPEND WA_VBRKVBRP TO IT_VBRKVBRP.
CLEAR: WA_VBRKVBRP.
ENDSELECT.
SORT IT_VBRKVBRP BY SORTL SALE BISMT.
ENDFORM. " get_data
*& Form FILL_FOR_DAY
text
--> p1 text
<-- p2 text
FORM FILL_FOR_DAY.
LOOP AT IT_VBRKVBRP INTO WA_VBRKVBRP WHERE FKDAT = HIGHDATE.
AT NEW BISMT.
WA_FOR_DAY-SORTL = WA_VBRKVBRP-SORTL.
WA_FOR_DAY-SALE = WA_VBRKVBRP-SALE.
WA_FOR_DAY-BISMT = WA_VBRKVBRP-BISMT+0(3).
ENDAT.
WA_FOR_DAY-PANEL = WA_FOR_DAY-PANEL + WA_VBRKVBRP-PANEL.
WA_FOR_DAY-FUNEL = WA_FOR_DAY-FUNEL + WA_VBRKVBRP-FUNEL.
WA_FOR_DAY-PR00 = WA_FOR_DAY-PR00 + WA_VBRKVBRP-PR00.
WA_FOR_DAY-ZDRP = WA_FOR_DAY-ZDRP + WA_VBRKVBRP-ZDRP.
AT END OF BISMT.
APPEND WA_FOR_DAY TO IT_FOR_DAY.
CLEAR: WA_FOR_DAY.
ENDAT.
CLEAR: WA_VBRKVBRP.
ENDLOOP.
ENDFORM. " FILL_FOR_DAY
*& Form FILL_FOR_MONTH
text
--> p1 text
<-- p2 text
FORM FILL_FOR_MONTH.
LOOP AT IT_VBRKVBRP INTO WA_VBRKVBRP.
AT NEW BISMT.
WA_FOR_MONTH-SORTL = WA_VBRKVBRP-SORTL.
WA_FOR_MONTH-SALE = WA_VBRKVBRP-SALE.
WA_FOR_MONTH-BISMT = WA_VBRKVBRP-BISMT.
ENDAT.
WA_FOR_MONTH-PANEL = WA_FOR_MONTH-PANEL + WA_VBRKVBRP-PANEL.
WA_FOR_MONTH-FUNEL = WA_FOR_MONTH-FUNEL + WA_VBRKVBRP-FUNEL.
WA_FOR_MONTH-PR00 = WA_FOR_MONTH-PR00 + WA_VBRKVBRP-PR00.
WA_FOR_MONTH-ZDRP = WA_FOR_MONTH-ZDRP + WA_VBRKVBRP-ZDRP.
AT END OF BISMT.
APPEND WA_FOR_MONTH TO IT_FOR_MONTH.
CLEAR: WA_FOR_MONTH.
ENDAT.
CLEAR: WA_VBRKVBRP.
ENDLOOP.
ENDFORM. " FILL_FOR_MONTH
*& Form FIELDCAT_FOR_DAY
text
--> p1 text
<-- p2 text
FORM FIELDCAT_FOR_DAY .
COUNTER = COUNTER + 1.
WA_FIELDCAT_FOR_DAY-COL_POS = COUNTER.
WA_FIELDCAT_FOR_DAY-FIELDNAME = 'SORTL'.
WA_FIELDCAT_FOR_DAY-TABNAME = 'IT_FOR_DAY'.
WA_FIELDCAT_FOR_DAY-SELTEXT_L = 'Party Name'.
WA_FIELDCAT_FOR_DAY-OUTPUTLEN = 10.
APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_DAY.
CLEAR WA_FIELDCAT_FOR_DAY.
COUNTER = COUNTER + 1.
WA_FIELDCAT_FOR_DAY-COL_POS = COUNTER.
WA_FIELDCAT_FOR_DAY-FIELDNAME = 'SALE'.
WA_FIELDCAT_FOR_DAY-TABNAME = 'IT_FOR_DAY'.
WA_FIELDCAT_FOR_DAY-SELTEXT_L = 'Sale 4 day'.
WA_FIELDCAT_FOR_DAY-OUTPUTLEN = 10.
APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_DAY.
CLEAR WA_FIELDCAT_FOR_DAY.
COUNTER = COUNTER + 1.
WA_FIELDCAT_FOR_DAY-COL_POS = COUNTER.
WA_FIELDCAT_FOR_DAY-FIELDNAME = 'BISMT'.
WA_FIELDCAT_FOR_DAY-TABNAME = 'IT_FOR_DAY'.
WA_FIELDCAT_FOR_DAY-SELTEXT_L = 'Sizes'.
WA_FIELDCAT_FOR_DAY-OUTPUTLEN = 5.
APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_DAY.
CLEAR WA_FIELDCAT_FOR_DAY.
COUNTER = COUNTER + 1.
WA_FIELDCAT_FOR_DAY-COL_POS = COUNTER.
WA_FIELDCAT_FOR_DAY-FIELDNAME = 'PANEL'.
WA_FIELDCAT_FOR_DAY-TABNAME = 'IT_FOR_DAY'.
WA_FIELDCAT_FOR_DAY-SELTEXT_L = 'Panel'.
WA_FIELDCAT_FOR_DAY-OUTPUTLEN = 10.
APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_DAY.
CLEAR WA_FIELDCAT_FOR_DAY.
COUNTER = COUNTER + 1.
WA_FIELDCAT_FOR_DAY-COL_POS = COUNTER.
WA_FIELDCAT_FOR_DAY-FIELDNAME = 'FUNEL'.
WA_FIELDCAT_FOR_DAY-TABNAME = 'IT_FOR_DAY'.
WA_FIELDCAT_FOR_DAY-SELTEXT_L = 'Funel'.
WA_FIELDCAT_FOR_DAY-OUTPUTLEN = 10.
APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_DAY.
CLEAR WA_FIELDCAT_FOR_DAY.
COUNTER = COUNTER + 1.
WA_FIELDCAT_FOR_DAY-COL_POS = COUNTER.
WA_FIELDCAT_FOR_DAY-FIELDNAME = 'PR00'.
WA_FIELDCAT_FOR_DAY-TABNAME = 'IT_FOR_DAY'.
WA_FIELDCAT_FOR_DAY-SELTEXT_L = 'Basic Value (Rs.)'.
WA_FIELDCAT_FOR_DAY-OUTPUTLEN = 15.
APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_DAY.
CLEAR WA_FIELDCAT_FOR_DAY.
COUNTER = COUNTER + 1.
WA_FIELDCAT_FOR_DAY-COL_POS = COUNTER.
WA_FIELDCAT_FOR_DAY-FIELDNAME = 'ZDRP'.
WA_FIELDCAT_FOR_DAY-TABNAME = 'IT_FOR_DAY'.
WA_FIELDCAT_FOR_DAY-SELTEXT_L = 'Disc Value (Lacs.)'.
WA_FIELDCAT_FOR_DAY-OUTPUTLEN = 15.
APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_DAY.
CLEAR WA_FIELDCAT_FOR_DAY.
ENDFORM. " FIELDCAT_FOR_DAY
*& Form FIELDCAT_FOR_MONTH
text
--> p1 text
<-- p2 text
FORM FIELDCAT_FOR_MONTH .
COUNTER = COUNTER + 1.
WA_FIELDCAT_FOR_DAY-COL_POS = COUNTER.
WA_FIELDCAT_FOR_DAY-FIELDNAME = 'SORTL'.
WA_FIELDCAT_FOR_DAY-TABNAME = 'IT_FOR_MONTH'.
WA_FIELDCAT_FOR_DAY-SELTEXT_L = 'Party Name'.
WA_FIELDCAT_FOR_DAY-OUTPUTLEN = 10.
APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_MONTH.
CLEAR WA_FIELDCAT_FOR_DAY.
COUNTER = COUNTER + 1.
WA_FIELDCAT_FOR_DAY-COL_POS = COUNTER.
WA_FIELDCAT_FOR_DAY-FIELDNAME = 'SALE'.
WA_FIELDCAT_FOR_DAY-TABNAME = 'IT_FOR_MONTH'.
WA_FIELDCAT_FOR_DAY-SELTEXT_L = 'Sale'.
WA_FIELDCAT_FOR_DAY-OUTPUTLEN = 10.
APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_MONTH.
CLEAR WA_FIELDCAT_FOR_DAY.
COUNTER = COUNTER + 1.
WA_FIELDCAT_FOR_DAY-COL_POS = COUNTER.
WA_FIELDCAT_FOR_DAY-FIELDNAME = 'BISMT'.
WA_FIELDCAT_FOR_DAY-TABNAME = 'IT_FOR_MONTH'.
WA_FIELDCAT_FOR_DAY-SELTEXT_L = 'Sizes'.
WA_FIELDCAT_FOR_DAY-OUTPUTLEN = 5.
APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_MONTH.
CLEAR WA_FIELDCAT_FOR_DAY.
COUNTER = COUNTER + 1.
WA_FIELDCAT_FOR_DAY-COL_POS = COUNTER.
WA_FIELDCAT_FOR_DAY-FIELDNAME = 'PANEL'.
WA_FIELDCAT_FOR_DAY-TABNAME = 'IT_FOR_MONTH'.
WA_FIELDCAT_FOR_DAY-SELTEXT_L = 'Panel'.
WA_FIELDCAT_FOR_DAY-OUTPUTLEN = 10.
APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_MONTH.
CLEAR WA_FIELDCAT_FOR_DAY.
COUNTER = COUNTER + 1.
WA_FIELDCAT_FOR_DAY-COL_POS = COUNTER.
WA_FIELDCAT_FOR_DAY-FIELDNAME = 'FUNEL'.
WA_FIELDCAT_FOR_DAY-TABNAME = 'IT_FOR_MONTH'.
WA_FIELDCAT_FOR_DAY-SELTEXT_L = 'Funel'.
WA_FIELDCAT_FOR_DAY-OUTPUTLEN = 10.
APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_MONTH.
CLEAR WA_FIELDCAT_FOR_DAY.
COUNTER = COUNTER + 1.
WA_FIELDCAT_FOR_DAY-COL_POS = COUNTER.
WA_FIELDCAT_FOR_DAY-FIELDNAME = 'PR00'.
WA_FIELDCAT_FOR_DAY-TABNAME = 'IT_FOR_MONTH'.
WA_FIELDCAT_FOR_DAY-SELTEXT_L = 'Basic Value (Rs.)'.
WA_FIELDCAT_FOR_DAY-OUTPUTLEN = 15.
APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_MONTH.
CLEAR WA_FIELDCAT_FOR_DAY.
COUNTER = COUNTER + 1.
WA_FIELDCAT_FOR_DAY-COL_POS = COUNTER.
WA_FIELDCAT_FOR_DAY-FIELDNAME = 'ZDRP'.
WA_FIELDCAT_FOR_DAY-TABNAME = 'IT_FOR_MONTH'.
WA_FIELDCAT_FOR_DAY-SELTEXT_L = 'Disc Value (Lacs.)'.
WA_FIELDCAT_FOR_DAY-OUTPUTLEN = 15.
APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_MONTH.
CLEAR WA_FIELDCAT_FOR_DAY.
ENDFORM. " FIELDCAT_FOR_MONTH
*& Form EVENTS_FOR_DAY
text
--> p1 text
<-- p2 text
FORM EVENTS_FOR_DAY .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = IT_EVENT_FOR_DAY[]
EXCEPTIONS
LIST_TYPE_WRONG = 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.
READ TABLE IT_EVENT_FOR_DAY
WITH KEY NAME = SLIS_EV_TOP_OF_LIST
INTO IT_EVENT_FOR_DAY.
IF SY-SUBRC = 0.
MOVE TOP_OF_LIST_FOR_DAY TO IT_EVENT_FOR_DAY-FORM.
APPEND IT_EVENT_FOR_DAY.
ENDIF.
ENDFORM. " EVENTS_FOR_DAY
*& Form EVENTS_FOR_MONTH
text
--> p1 text
<-- p2 text
FORM EVENTS_FOR_MONTH .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = IT_EVENT_FOR_MONTH[]
EXCEPTIONS
LIST_TYPE_WRONG = 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.
READ TABLE IT_EVENT_FOR_MONTH
WITH KEY NAME = SLIS_EV_TOP_OF_LIST
INTO IT_EVENT_FOR_MONTH.
IF SY-SUBRC = 0.
MOVE TOP_OF_LIST_FOR_MON TO IT_EVENT_FOR_MONTH-FORM.
APPEND IT_EVENT_FOR_MONTH.
ENDIF.
CLEAR: IT_EVENT_FOR_MONTH.
ENDFORM. " EVENTS_FOR_MONTH
*& Form TOP_OF_LIST_FOR_DAY
text
--> p1 text
<-- p2 text
FORM TOP_OF_LIST_FOR_DAY.
WRITE: / 'FOR DAY'.
ENDFORM. " EVENTS_FOR_MONTH
*& Form TOP_OF_LIST_FOR_MONTH
text
--> p1 text
<-- p2 text
FORM TOP_OF_LIST_FOR_MONTH.
WRITE: / 'FOR MONTH'.
ENDFORM. " EVENTS_FOR_MONTH
*& Form APPEND_FOR_DAY
text
--> p1 text
<-- p2 text
FORM APPEND_FOR_DAY .
IF NOT IT_FOR_DAY IS INITIAL.
WA_FOR_DAY-SORTL = ''.
APPEND WA_FOR_DAY TO IT_FOR_DAY.
CLEAR: WA_FOR_DAY.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IT_FIELDCAT = IT_FIELDCAT_FOR_DAY
IS_LAYOUT = IS_LAYOUT_FOR_DAY
I_TABNAME = 'IT_FOR_DAY'
IT_EVENTS = IT_EVENT_FOR_DAY[]
TABLES
T_OUTTAB = IT_FOR_DAY[].
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. " APPEND_FOR_DAY
*& Form APPEND_FOR_MONTH
text
--> p1 text
<-- p2 text
FORM APPEND_FOR_MONTH .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IT_FIELDCAT = IT_FIELDCAT_FOR_MONTH
IS_LAYOUT = IS_LAYOUT_FOR_MONTH
I_TABNAME = 'IT_FOR_MONTH'
IT_EVENTS = IT_EVENT_FOR_MONTH[]
TABLES
T_OUTTAB = IT_FOR_MONTH[].
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. " APPEND_FOR_MONTH
*& Form LIST_DISPLAY
text
--> p1 text
<-- p2 text
FORM LIST_DISPLAY .
DATA: GT_PRINT TYPE SLIS_PRINT_ALV.
GT_PRINT-RESERVE_LINES = 2.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
IS_PRINT = GT_PRINT.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " LIST_DISPLAY -
How to find total memory for Oralce Memory utilization
Hi,
How to find total amount of memory utilized by oracle including SGA+PGA+PROCESS
Thanks,
AbkIs you OS 32-bit ? If you add /3gb in boot.ini , then it will limit oracle.exe to go only upto 3gb.
Add /PAE in the boot.ini and remove /3gb.
then use db_block_buffers parameter instead of db_cache_size
for using db_block_buffers, you need to set another parameter also.
use_indirect_data_buffers=true
db_block_buffers=<number of blocks
db_block_buffers=db_cache_size in kilobytes /db_block_size
(since db_block_size is 8 kllobytes by default in Windows..
{color:blue}Please refer Metalink Note : [373602.1|https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=373602.1]{color}
Edited by: Mahesh Menon on Apr 29, 2009 2:56 PM -
Hw to find total number of records
Hi All,
Can anyone help from these
1. how to find total number of reports for a particular cube/ods... need step - step solution
2. how to find total number of records for a particular Cube and ODS and Aggr's to till date.
3.what is sandbox,mirror sys,instance of a sys..?
4.what r TWS(Tivoli Workload Scheduler) jobs? how these r different to standard schedulers?
Thanks in ADv
LindaHello Linda,
As you have lots of answers on first 2 so i'll start from 3rd onward.
3. Sandbox is mostly practice system where you can do all kind of R&D, mirror sys can be mirror image of any system depends on the organization and instance of system is again mirror image of one system.
4. TWS is third party tool for scheduling which doesn't come along with SAP like standard scheduler as TWS has been prepared specially for this purpose so it has some more features than standard.
Hope it helps.
San.
Maybe you are looking for
-
How do I use two BT Cloud accounts on 1 computer
Hi All, I we have two fibre connections and two cloud accounts, I want to be able to access both of them from the desk top, at thw moment I cant work this out< I can use 1 in a browser and one on the desk top, unfortunately in a hurry to share some p
-
Real-time apply in Maximum Performance Mode Not Working
We have configured physical standby database in maximum performance mode. It's working perfectly fine. Archive logs are being applied to the physical standby. We can open the DB in read-only mode, but real-time apply is not working. Physical standby
-
Cover flow displays the same two pieces of artwork for all videos.
I've been adding a collection of tv series I have on DVD to iTunes 9.1.1, it all worked fine initially, I opened each video up of a series of tv programs and used the "Set Poster Frame" option to capture a frame of the program to use as the artwork f
-
I can't fix the margin value with Report6i on windowXP
You know that page setup box in the menu after executing a report program, The situation is like that following... printer server : window2000 then i can fix margin value of the report HOWEVER, printer server : windowXP then i can't enter a number in
-
My question mark key is not working
when i go to type a question mark, it comes up like this ^. Thoughts