Totals and Sub-Totals in ALV GRID
Could anyone advice, how to display sub-totals and totals in ALV Grid(using FM).
Ex: value1 value2
100 50
200 50
subtotal 300 100
total 400
Thanks in advance...
Refer below demo code and see perform Sort_list..
it wil serve ur purpose.
REPORT ZGILL_ALV message-id rp .
type-pools slis.
tables: zgill_main,zgill_details.
data z_fieldcat type slis_t_fieldcat_alv.
data begin of itab occurs 0.
DATA ICON TYPE ICON-ID.
include structure zgill_main.
data salary like zgill_details-salary.
data end of itab.
*data itab1 like table of itab with header line.
data : WA_SORT TYPE SLIS_SORTINFO_ALV,
IT_SORT TYPE SLIS_T_SORTINFO_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
IT_FIELDTAB TYPE SLIS_T_FIELDCAT_ALV,
WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
PARAMETERS: p_list radiobutton group A1,
P_GRID RADIOBUTTON GROUP A1.
SELECT-OPTIONS: S_PERNR FOR ZGILL_MAIN-PERNR.
start-of-selection.
perform fill_itab.
perform sort_list.
**************Start of scenario without container******************************************
*********Method 1***********
perform fill_fieldcat. " Manuallly Preparing Fiedl Catalog
*********Method 2***********
*perform fill_fieldcat1 changing z_fieldcat. "Preparing field catalog with merge function
perform display_alv.
*****************end of scenario without container*****************************************
*& Form fill_itab
text
--> p1 text
<-- p2 text
form fill_itab .
*select * from zgill_main up to 20 rows INTO CORRESPONDING FIELDS OF TABLE itab.
*ITAB1[] = ITAB[].
select apernr aname aorg adob b~salary INTO CORRESPONDING FIELDS OF TABLE itab
from zgill_main as a join zgill_details as b on apernr = bpernr
WHERE A~PERNR IN S_PERNR.
LOOP AT ITAB.
IF ITAB-PERNR < 1111.
ITAB-ICON = '@08@'.
ELSEIF ITAB-PERNR > 1111 AND ITAB-PERNR < 11111111.
ITAB-ICON = '@09@'.
ELSEIF ITAB-PERNR GE 11111111.
ITAB-ICON = '@0A@'.
ENDIF.
MODIFY ITAB INDEX SY-TABIX.
ENDLOOP.
endform. " fill_itab
*& Form display_alv
text
--> p1 text
<-- p2 text
form display_alv .
data repid like sy-repid.
REPID = SY-REPID.
WA_LAYOUT-ZEBRA = 'X'.
WA_LAYOUT-WINDOW_TITLEBAR = 'GRID DISPLAY'.
WA_LAYOUT-SUBTOTALS_TEXT = 'SUBTOTAL'.
WA_LAYOUT-TOTALS_TEXT = 'TOTAL'.
IF P_GRID = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = repid
IT_FIELDCAT = IT_FIELDTAB
IT_SORT = IT_SORT
IS_LAYOUT = WA_LAYOUT
TABLES
t_outtab = itab[]
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF sy-subrc <> 0.
message e016 with 'Error in Display'.
ENDIF.
ELSEIF P_LIST = 'X'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = repid
IT_FIELDCAT = IT_FIELDTAB
IT_SORT = IT_SORT
IS_LAYOUT = WA_LAYOUT
TABLES
t_outtab = itab[]
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF sy-subrc <> 0.
message e016 with 'Error in Display'.
ENDIF.
ENDIF.
endform. " display_alv
*& Form fill_fieldcat1
text
--> p1 text
<-- p2 text
form fill_fieldcat1 changing d_fcat type slis_t_fieldcat_alv.
data repid like sy-repid.
data d_fcat1 type slis_t_fieldcat_alv with header line.
REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = repid
I_INTERNAL_TABNAME = 'ITAB'
I_STRUCTURE_NAME = 'ZGILL_MAIN'
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = d_fcat[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3.
IF sy-subrc <> 0.
message e016 with 'Error in preparing fiedl catalog'.
ENDIF.
loop at d_fcat into d_fcat1.
case d_fcat1-fieldname.
when 'NAME'.
d_fcat1-reptext_ddic = 'Emp Name'.
MODIFY D_FCAT FROM D_FCAT1.
WHEN 'PERNR'.
d_fcat1-reptext_ddic = 'Emp Num'.
MODIFY D_FCAT FROM D_FCAT1.
WHEN 'ORG'.
d_fcat1-reptext_ddic = 'Org Unit'.
MODIFY D_FCAT FROM D_FCAT1.
endcase.
clear d_fcat1.
endloop.
endform. " fill_fieldcat1
*& Form sort_list
text
--> p1 text
<-- p2 text
form sort_list .
CLEAR WA_SORT.
WA_SORT-FIELDNAME = 'DOB'.
WA_SORT-SPOS = '1'.
WA_SORT-UP = 'X'.
WA_SORT-SUBTOT = 'X'.
APPEND WA_SORT TO IT_SORT.
CLEAR WA_SORT.
WA_SORT-FIELDNAME = 'NAME'.
WA_SORT-SPOS = '1'.
WA_SORT-UP = 'X'.
APPEND WA_SORT TO IT_SORT.
CLEAR WA_SORT.
endform. " sort_list
*& Form fill_fieldcat
text
--> p1 text
<-- p2 text
form fill_fieldcat .
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'ITAB'.
WA_FIELDCAT-FIELDNAME = 'ICON'.
WA_FIELDCAT-SELTEXT_L = 'TRAFFIC'.
WA_FIELDCAT-ICON = 'X'.
WA_FIELDCAT-ddictxt = 'l'.
WA_FIELDCAT-COL_POS = 1.
WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO IT_FIELDTAB.
CLEAR WA_FIELDCAT .
WA_FIELDCAT-TABNAME = 'ITAB'.
WA_FIELDCAT-FIELDNAME = 'PERNR'.
WA_FIELDCAT-SELTEXT_L = 'EMP NUMBER'.
WA_FIELDCAT-ddictxt = 'l'.
WA_FIELDCAT-COL_POS = 2.
WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO IT_FIELDTAB.
CLEAR WA_FIELDCAT .
when 'maktx'.
WA_FIELDCAT-TABNAME = 'ITAB'.
WA_FIELDCAT-FIELDNAME = 'NAME'.
WA_FIELDCAT-SELTEXT_L = 'EMP NAME'.
WA_FIELDCAT-ddictxt = 'l'.
WA_FIELDCAT-COL_POS = 3.
WA_FIELDCAT-OUTPUTLEN = 15.
APPEND WA_FIELDCAT TO IT_FIELDTAB.
CLEAR WA_FIELDCAT .
WA_FIELDCAT-TABNAME = 'ITAB'.
WA_FIELDCAT-FIELDNAME = 'ORG'.
WA_FIELDCAT-SELTEXT_L = 'ORG UNIT'.
WA_FIELDCAT-COL_POS = 4.
WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO IT_FIELDTAB.
CLEAR WA_FIELDCAT .
WA_FIELDCAT-TABNAME = 'ITAB'.
WA_FIELDCAT-FIELDNAME = 'DOB'.
WA_FIELDCAT-SELTEXT_L = 'BIRTH DATE'.
WA_FIELDCAT-COL_POS = 5.
WA_FIELDCAT-OUTPUTLEN = 12.
APPEND WA_FIELDCAT TO IT_FIELDTAB.
CLEAR WA_FIELDCAT .
WA_FIELDCAT-TABNAME = 'ITAB'.
WA_FIELDCAT-FIELDNAME = 'SALARY'.
WA_FIELDCAT-SELTEXT_L = 'SALARY'.
WA_FIELDCAT-COL_POS = 6.
WA_FIELDCAT-OUTPUTLEN = 25.
WA_FIELDCAT-do_sum = 'X'.
APPEND WA_FIELDCAT TO IT_FIELDTAB.
endform. " fill_fieldcat
Similar Messages
-
This is regarding totals and sub totals in sap-scripts
Hi to all...............
1...How to print totals and subtotals in sap-scripts? where we have to code the logic.what sort of logic is needed to print the same?
regards,
swaminath.Hi
HI,
To calculate totals and sub totals in sap scripts you have to use subroutines.
Say if you have to add the unit price (KOMVD-KBERT) then in the main window whereever tat value is picked write this routine
/: DEFINE &TOT_PRICE&
/: PERFORM F_GET_PRICE IN PROGRAM <subroutine prog name> /:USING &KOMVD-KBERT& /:CHANGING &TOT_PRICE& /:ENDPERFORM
Then write the variable where ever you want it to be printed (mostly it will be in footer window)
Then create subroutine pool program and you have to write the code.
FORM F_GET_PRICE tables int_cond structure itcsy
outt_cond structure itcsy. data : value type kbert.
statics value1 type kbert.
Read int_cond table index 1.
value = int_cond-value.
value1 = value1 + value.
Read outt_cond table index 1.
outt_cond-value = value1.
Modify outt_cond index 1.
ENDFORM.
To know more, have a look at this thread ..
Re: SAP Script: Display Total calculated on page 2 in page 1
<b>Reward if usefull</b> -
Hi
I have a webi report of the following structure.
Fleet Center- Section on this column Information
Driver Name- Break on this column
No of Hours spent-measure
I have subtotal by driver name------- then by fleet -
and then grand total of all the fleet centers
The webi report also have a drop down ( drill enanbled) feature on Fleet center and Driver Name
When a user selects a particular driver name (e.g Mark Edwards) ...
the report shows driver total, fleet total and grand total.....
The probelm is for a single driver I want to represent same information at fleet level and grand total level.....but on my report it shows total for all the drivers on that fleet......and grand total of all fleet.....even though in the drop down I have one driver selected.
Is this requirement a possibility..?....or is there a way to hide section total and grand total when I select only a particular driver ... as showing the subtotals by fleet and grand total for just one driver does not make sense.
Thank you,
boe userA couple of options come to mind. DrillFilters function could be used on the Driver Name object. If its non-blank then a driver has been selected in which case you would use a formula to not show the total that you dont want visible
something like this for section total cell (not real code, just an pseudo code):
IF DrillFilters([Driver Name]) = "" THEN [section total measure]
(we rely on the implied ELSE to return NULL)
same for Grand Total
another variation is to use DrillFilters and optional hiding of cells or blocks. The latter is something that as of R3 webi it doesnt have as standard but you can fake it.
Try my first suggestion first and if you dont like the result we can talk about optionally hiding the section and grand totals when a value is selected -
Regarding totals and sub totals text in alv
Hi all,
i am displaying Totals and subtotals ......but i want to display the text before the the Totals and Subtotals.
Please help me in regarding this..
Thanks in advance,
S.Gangi reddy.hi,
check this report.
*& Report ZGM_ALV_SUBTOTAL_TEXT *
*& Author :
*& Date :
*& Description :
*& Modification History
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:
\[removed by moderator\]
Edited by: Jan Stallkamp on Sep 3, 2008 6:17 PM -
Change the total and subtotal dynamically in ALV GRID
Hi guys,
I need to change the total and subtotal of field "AMOUNT" dynamically.I am using ALV GRID CONTROL(oops concept).I need to override the standard functionality.I need to show my own subtotal and total line instead of standard one .Hi
I've understood it, I wanted to use OO Grid too, but I had to use the ALV list in order to write my total.
If you need to use OO grid u can try to exclude all funcitonalities for the total, subtotal and sorting and insert in the output table the lines with your totals.
Max -
Calculate totals and sub totals
hi everybody
can u plz suggest me how to write code for getting sub totals and totals
regards
hridhayaHello hridhayanjili
SAP provides us with the ABAP statement <b>COLLECT</b> to summarize totals.
I will give you an example from which you should be able to develop you own solution.
Let's assume we have an itab containing materials. The itab has the following line structure: MANDT, MATNR, QUANTITY. To calculate subtotals we require a second itab that is identical to the first one.
Now here is the coding:
data:
gt_itab TYPE STANDARD TABLE OF <structure>,
gt_itab_collect TYPE STANDARD TABLE OF <structure>,
gt_itab_total TYPE STANDARD TABLE OF <structure>.
gs_entry TYPE <structure>.
* NOTE: <structure> stands for a named DDIC structure or
* a type definition, not a field symbol.
* gt_itab contains our materials
LOOP AT gt_itab INTO gs_entry.
COLLECT gs_entry INTO gt_itab_collect.
ENDLOOP.
* NOTE: Assuming we had 10 entries in gt_itab of
* 3 different materials we end up with 3 entries in
* gt_itab_collect that contain the quantities summarized.
* To calculate the total one could LOOP over
* gt_itab_collect and summarize the values. Another way
* is shown here:
CLEAR: gs_entry-matnr.
MODIFY gt_itab FROM gs_entry
TRANSPORTING matnr
WHERE ( matnr IS NOT INITIAL ).
* We clear the material no.
LOOP AT gt_itab INTO gs_entry.
COLLECT gs_entry INTO gt_itab_total.
ENDLOOP.
* NOTE: because we have the same value for CLIENT and
* MATNR in every line we will end up with a single line
* in gt_itab_total.
Please read the documentation of the COLLECT statement carefully because the structure of your itab (i.e. the order of the fields, especially those that will be summarized) is important.
Regards
Uwe -
Short dump when I do total or sub total in the ALV report
Hi,
When I do total or sub-total on the currency field in the ALV report, it'll give a short dump like
" The current application program detected a situation which really
should not occur. Therefore, a termination with a short dump was
triggered on purpose by the key word MESSAGE (type X)".
Short text of error message:
Technical information about the message:
Message classe...... "0K"
Number.............. 000
Variable 1.......... " "
Variable 2.......... " "
Variable 3.......... " "
Variable 4.......... " "
Variable 3.......... " "
Variable 4.......... " "
Trigger Location of Runtime Error
Program SAPLSLVC
Include LSLVCF36
Row 2,726
Module type (FORM)
Module Name FILL_DATA_TABLE
sometime when I do the page down on the ALV report, the same short dump is coming.
Can anyone help me out.
Thanks
SelvaHi,
I'm getting this short dump in the standard program.
I'm getting ALV report display perfectly. the problem is, when I do total or subtotal on the currency fields.
2704
2705 ************************************
2706 * Column per Fieldcat Entry
2707 ************************************
2708 ls_lvc_data-value = space.
2709 clear ls_lvc_data-style.
2710 loop at it_fcat_local assigning <ls_fcat>
2711 where tech ne 'X' and no_out ne 'X'.
2712 if l_invisible eq 'X'.
2713 clear l_invisible.
2714 if <ls_fcat>-do_sum is initial.
2715 continue.
2716 else.
2717 clear ls_lvc_data-col_pos.
2718 endif.
2719 endif.
2720
2721 add 1 to ls_lvc_data-col_pos.
2722
2723 assign component <ls_fcat>-fieldname
2724 of structure <ls_data> to <l_field_value>.
2725 if sy-subrc ne 0.
>>>>> message x000(0k).
2727 endif.
2728
in this standard program, I'm getting the dump. the line is mentioned above in the code. -
I need the grand total for particular coulumn for ALV grid report(OOPs).
Hello,
I have used the following code,
But i m not getting the grand total by default.No error but not getting the desired result.
Could you please help me in this regard.
FORM display_simple_alv.
DATA : lr_msg TYPE REF TO cx_salv_msg.
DATA : lv_header TYPE REF TO cl_salv_form_layout_grid,
lv_h_label TYPE REF TO cl_salv_form_label,
lv_h_flow TYPE REF TO cl_salv_form_layout_flow.
DATA: gr_sorts TYPE REF TO cl_salv_sorts.
DATA: gr_agg TYPE REF TO cl_salv_aggregations.
TRY .
cl_salv_table=>factory( IMPORTING r_salv_table = gr_salv_table
CHANGING t_table = gt_invdetails4 ).
CATCH cx_salv_msg INTO lr_msg.
ENDTRY .
Display Basic Toolbar
gr_functions = gr_salv_table->get_functions( ).
gr_functions->set_all( abap_true ).
TRY .
gr_columns = gr_salv_table->get_columns( ).
gr_columns->set_optimize( ).
CATCH cx_salv_not_found.
ENDTRY .
TRY .
gr_column ?= gr_columns->get_column( 'KUNNR' ).
gr_column->set_long_text( text-009 ).
gr_column->set_medium_text( text-009 ).
gr_column->set_short_text( text-009 ).
gr_column ?= gr_columns->get_column( 'NAME1' ).
gr_column->set_long_text( text-010 ).
gr_column->set_medium_text( text-010 ).
gr_column->set_short_text( text-011 ).
gr_column ?= gr_columns->get_column( 'AMOUNT' ).
gr_column->set_long_text( text-012 ).
gr_column->set_medium_text( text-012 ).
gr_column->set_short_text( text-012 ).
gr_column ?= gr_columns->get_column( 'TAX' ).
gr_column->set_long_text( text-013 ).
gr_column->set_medium_text( text-013 ).
gr_column->set_short_text( text-013 ).
gr_column ?= gr_columns->get_column( 'IVA' ).
gr_column->set_long_text( text-014 ).
gr_column->set_medium_text( text-014 ).
gr_column->set_short_text( text-015 ).
gr_column ?= gr_columns->get_column( 'TOTAL_AMOUNT' ).
gr_column->set_long_text( text-016 ).
gr_column->set_medium_text( text-016 ).
gr_column->set_short_text( text-017 ).
gr_column ?= gr_columns->get_column( 'CURRENCY' ).
gr_column->set_long_text( text-018 ).
gr_column->set_medium_text( text-018 ).
gr_column->set_short_text( text-018 ).
gr_column ?= gr_columns->get_column( 'ZINTERNAL_REFNO' ).
gr_column->set_long_text( text-019 ).
gr_column->set_medium_text( text-019 ).
gr_column->set_short_text( text-019 ).
gr_column ?= gr_columns->get_column( 'MATERIAL_AMOUNT' ).
gr_column->set_long_text( text-020 ).
gr_column->set_medium_text( text-020 ).
gr_column->set_short_text( text-021 ).
gr_column ?= gr_columns->get_column( 'LABOUR_VALUE' ).
gr_column->set_long_text( text-022 ).
gr_column->set_medium_text( text-022 ).
gr_column->set_short_text( text-023 ).
gr_column ?= gr_columns->get_column( 'FAILURE_COST' ).
gr_column->set_long_text( text-024 ).
gr_column->set_medium_text( text-024 ).
gr_column->set_short_text( text-021 ).
gr_sorts = gr_salv_table->get_sorts( ).
gr_sorts->add_sort( columnname = 'AMOUNT' subtotal = abap_true ). "for subtotal
gr_agg = gr_salv_table->get_aggregations( ).
gr_agg->add_aggregation( 'AMOUNT' ).
CATCH cx_salv_not_found cx_salv_data_error cx_salv_existing.
ENDTRY .
Set top of page
CREATE OBJECT lv_header.
lv_h_label = lv_header->create_label( row = 1 column = 1 ).
lv_h_label->set_text( text-001 ).
lv_h_label = lv_header->create_label( row = 1 column = 5 ).
lv_h_label->set_text( text-002 ).
lv_h_label = lv_header->create_label( row = 1 column = 14 ).
lv_h_label->set_text( text-003 ).
lv_h_flow = lv_header->create_flow( row = 3 column = 04 ).
lv_h_flow->create_text( text = text-004 ).
lv_h_flow = lv_header->create_flow( row = 3 column = 05 ).
lv_h_flow->create_text( text = text-005 ).
lv_h_flow = lv_header->create_flow( row = 3 column = 06 ).
lv_h_flow->create_text( text = name ).
set the top of list using the header for Online.
gr_salv_table->set_top_of_list( lv_header ).
ALV Display
gr_salv_table->display( ).
ENDFORM . " DISPLAY_SIMPLE_ALVHi Sridevi,
To get the grand total, you need to pass the SORT itab to the function module. You need to populate the internal table with the fields on which you want the total or subtotal. If you donu2019t pass this table, you wonu2019t get it.
For ex:
ls_sort_wa-spos = 1.
ls_sort_wa-fieldname = gs_plant-werks.
ls_sort_wa-up = 'X'.
ls_sort_wa-subtot = 'X'.
APPEND ls_sort_wa TO gt_sort.
So the above code, gives the sub total plant wise.
and if you want the sum(grand total) you can set the DO_SUM to u2018Xu2019 for that particular field in the field catalog.
So with this approach, you can get the sub total and grand total for a particular field.
If you donu2019t want the subtotal, just set DO_SUM, you will get the total.
Thanks,
Srini. -
BIWS with Breaks and Sub-Total
Hi All,
Created a simple report with Breaks and sub-total and then i exported that report block as BIWS. When I test it in the BIWS Manager, I can able to see the break data with sub-totals. But when i try to connect the same BIWS with Dashboard, am getting only the detail rows and am not getting the sub-total rows.
Please suggest how to go over this issue.Thanks for your time and support.You have any idea now ‘nbLines’ works? If its returning total row count, then i think we can try some options with it. Basically am trying to get data like below to apply combo box selectors on Year and Country.
Year
Country
Sales
2013
India
100
2013
US
200
2013
UK
100
2013
Total
400
2014
India
100
2014
US
200
2014
UK
100
2014
Total
400
Total
Total
800
But am getting it as below, if i apply combox box on Year and Countyr, am getting blank value in between list of values.
Year
Country
Sales
2013
India
100
2013
US
200
2013
UK
100
2014
India
100
2014
US
200
2014
UK
100
2013
Total
400
2014
Total
400
Total
Total
800
Thanks -
Urgent : how to calculate sub total and grand total in smart forms
Hi Friens..how to calculate sub total and grand total in smart forms..How to print them in smart forms...Also kindly explain how to handle events in smart forms..Thanks in advance
Re: Subtotal with Table Node in smartforms
-
Hi,
How to display sub headings in alv grid
output format should be:
<COL_HEADING1> <COL_HEADING2>
<SUB_HEADING1> <SUB_HEADING2> <SUB_HEADING1><SUB_HEADING2>
and i want separate templet with side headings?
could you tell me grid supports this?
thanks in advance
cheers
sriniHi Srinivas,
Look ALV grid Multiple Header ... ? which has got a slightly more comprehensive information
Regards,
Anand Mandalika. -
Break Total and Section Totals
Hi,
I have a webi report which consist of s section and a break. The report also does a sub total by break and then section. At last we also show grand total.
The report has section of fleet center.
The report has break on driver name.
The report is in drill mode and has drop downs on fleet name and driver name.
From the drop down menu when I select a particular driver to view information-- the webi shows :
Totals by that driver ( there is a break on this field)
Totals by that fleet ( there is a section on this field)
and Grand total :
Since I have selected a single driver information to view ---all the three totals comes out to be same .
The requirement is to hide the other two totals when we select a particular driver information from the drop down so that we only show the driver level totals. I am looking out for a way to hide section and grand totals when we select a particular driver .
Thank You,Hi Wavery,
Thank you for your response. I tried with the property when section is empty checkbox. In my case I still have a section value. My section is not empty. Its just that when I select only a particular driver the totaling information is repeated twice once at the break level, section level and grand total.
I am looking at ways to hide the section total and grand total when we select a particular drive from the drop down so that the redundant information is avoided at section and grand total level.
Let me know if there is a way out on this.
Thank you,
boe user. -
Need to add Header and footer in an alv grid display output.
How can I add header and footer in an alv grid dispay output.
For the grid display, I am using the function module "REUSE_ALV_GRID_DISPLAY".HI,
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE'
i_callback_html_end_of_list = 'END_OF_LIST_HTML'
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
i_save = 'X'
tables
t_outtab = it_ekko
exceptions
program_error = 1
others = 2.
FORM end_of_list_html USING end TYPE REF TO cl_dd_document.
DATA: ls_text TYPE sdydo_text_element,
l_grid TYPE REF TO cl_gui_alv_grid,
f(14) TYPE c VALUE 'SET_ROW_HEIGHT'.
ls_text = 'Footer title'.
adds and icon (red triangle)
CALL METHOD end->add_icon
EXPORTING
sap_icon = 'IL'.
adds test (via variable)
CALL METHOD end->add_text
EXPORTING
text = ls_text
sap_emphasis = 'strong'.
adds new line (start new line)
CALL METHOD end->new_line.
display text(bold)
CALL METHOD end->add_text
EXPORTING
text = 'Bold text'
sap_emphasis = 'strong'.
adds new line (start new line)
CALL METHOD end->new_line.
display text(normal)
CALL METHOD end->add_text
EXPORTING
text = 'Nor'.
adds new line (start new line)
CALL METHOD end->new_line.
display text(bold)
CALL METHOD end->add_text
EXPORTING
text = 'Yellow '
sap_emphasis = 'str'.
adds and icon (yellow triangle)
CALL METHOD end->add_icon
EXPORTING
sap_icon = 'IC''.
display text(normal)
CALL METHOD end->add_text
EXPORTING
text = 'Mor'.
*set height of this section
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = l_grid.
CALL METHOD l_grid->parent->parent->(f)
EXPORTING
id = 3
height = 14.
ENDFORM. "end_of_list_html.
This will solve it. Post if you need more help in this.
Regards,
Madhu. -
Pack and Integer type in ALV grid
Hello,
Can anyone give a small example of how to display fields of type I and P in an ALV grid. Using the alv grid FM and manually filling the fieldcatalog.
Thanks for your help.Hi Moussa Khelifi ,
u can manually fill fieldcatalog like this..
form manual_filling_fieldcatalog.
X_FIELDCAT-FIELDNAME = 'ATWRT'.
X_FIELDCAT-TABNAME = 'TB_FINAL'.
X_FIELDCAT-SELTEXT_L = 'Source of Supply'(001).
X_FIELDCAT-DDICTXT = L_DDICTXT.
X_FIELDCAT-FIELDNAME = 'MATNR'.
X_FIELDCAT-TABNAME = 'TB_FINAL'.
X_FIELDCAT-SELTEXT_L = 'MATERIAL'(002).
X_FIELDCAT-DDICTXT = L_DDICTXT.
APPEND X_FIELDCAT TO TB_FIELDCAT .
endform.
u can directly pass the table to 'REUSE_ALV_GRID_DISPLAY'
regardless of type p or i fields in it.
Regards,
kiran B -
Custom total/subtotal formula in an ALV Grid and printing.
I have an ALV grid using OOPs method (Class cl_gui_alv_grid). The table that I am displaying is a dynamic table.
call method o_grid->set_table_for_first_display
exporting
is_variant = gx_variant
i_save = 'A'
is_layout = gs_layout
changing
it_fieldcatalog = it_fldcat
it_outtab = <gt_tabletotal>.
On one of the columns in the ALV grid, instead of the regular summation, I had to do weighted averages (not avg).
I built a logic to manipulate this total field for that column using field symbols.
CALL METHOD o_grid->get_subtotals
IMPORTING ep_collect00 = total
ep_collect01 = subto.
ASSIGN total->* TO <ftotal>.
ASSIGN subto->* TO <fsubto>.
CALL METHOD o_grid->refresh_table_display
EXPORTING I_SOFT_REFRESH = '1' .
I manipulated <ftotal>-mycustomformulafield field there using some logic.
In my field catalog i have the above field with wa_it_fldcat-do_sum = 'X ' .
Now, II am able to see my custom formula on the screen. But when I print the grid using the print button or when I export to an excel sheet(I use export to local file and then select excel there) , my custom formula that i calculated above is reset to 0.000 .
(Also when I email the grid, my custom formula is wiped). How can I avoid this ? Any useful suggestion is well appreciated.Hi, Shareen,
We have the same problema here.
Could you solve it?
Thanks in advance
Maybe you are looking for
-
LENOVO G560 on sale for $429.99 - saw it at Office Depot
LENOVO G560 on sale for $429.99 - saw it at Office Depot yesterday Bought one and it is working great - only thing, the speakers' sound is really without any bass, and no HDMI :-( http://www.officedepot.com/a/products/289194/Lenovo-G560-0679-99U-La
-
Here's my setup: Internet <> Comcast/xFinity supplied cable modem <> new Apple Time Capsule <> iPhone 4 & MacBook Pro (see below for hardware details) Internet on my iPhone 4 has been acting slow since yesterday evening. My MacBook Pro was running fi
-
I have read and followed everything I can find about archiving data, but the problem is that the location specified in Tools/Account Settings/(account)/Copies and Folders does not appear to exist. The entry in the box is the account name. Is that a p
-
Playlist order not updating!
I have been using my iPod Shuffle for several months to listen to podcasts, among other things. I know how to drag files in the playlist so I know what will play first. For some reason now, the playlist shown in iTunes (6.01) is NOT reflected on my i
-
Hello. I have just built a website using iWeb but cannot upload it. I curently have the 25gb account. There doesn't appear to be any facility here for the net. Am I correct in thinking I need an upgrade, or am I doing something wrong? Thanks