Alv -cell merge
HI,
I want to merge cells of diffrenet row so that i can display the data of multiple rows in single cell.
how can i do it.
thanks
Below code might give an idea about cell merge.
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.
Similar Messages
-
OO ALV Cell Merge Problem when editable fields
Hi there!
I'm using OO ALV ( CL_GUI_ALV_GRID ) and experiencing a strange problem.
I'm interested in the cells merging functionality of ALV, when i sort data for a specific field.
It works fine but only if i do not set any field as editable ( lvc_s_fcat-edit = 'X' ).
For some reason ALV loses some of its functionality when you set a field as editable.
I've noticed it also with the functionality of expanding/supressing data when using subtotals.
If any field is set as editable then subtotals come always expanded, you cannot supress them...
Has anyone else experienced somethng like this before? Any help will be appreciated!
BR
George ZervasHi,
Check This [Thread|http://forums.sdn.sap.com/thread.jspa?threadID=928573] to solve your issue.
Check the User Command, first line should be call method cl_gui->check_changed_data().
Check this [url|http://wiki.sdn.sap.com/wiki/display/ABAP/InteractiveEditableOOALVgridwithdynamicitab,FCATandENTERkeyeventtrigger] for code to work on Interactive Editable OO ALV grid .
Hope will solve your issue.
Regards,
Saravana.S
Edited by: saravanasap on Feb 14, 2012 7:38 AM -
Please help!
When i run an ALV report in foreground, there is cell-merge when a column is sorted.
However, when the ALV run @ background, why the cell-merge cannot work ? All data is listed, rather than is summarized into a block for all rows with the same field content.
Please Advice
Regards
AnnieHi,
see this example.
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.
rgds,
bharat. -
Hello,
I'm using attribute cl_gui_alv_grid=>mc_style_button to put some cells in my ALV as buttons. I need that when the user push those buttons an event is raised. Does someone have any example of buttons in ALV cells?
Thank you and regards.Hello,
I'm using attribute cl_gui_alv_grid=>mc_style_button to put some cells in my ALV as buttons. I need that when the user push those buttons an event is raised. Does someone have any example of buttons in ALV cells?
Thank you and regards. -
hi ,
can one send me program for alv cell color with help of function modules
kiranHi Kiran .
<b>1.Cell Color.</b>
While Building Fieldcatalog ,there is one field called
EMPHASIZE.You have to set like this .
i_field-emphasize = 'C26'.
<b>2.ROW COLOR.</b>
Have a look at this example .
<b>a</b>.Define one variable COLOR in ur main ITAB.
<b>b</b>.Fill it .
<b>c</b>.Pass this info.
w_layout-info_fieldname = 'COLOR'.
<b>d</b>. display it .
*& Report ZGRID_COLOR *
REPORT zgrid_color .
TYPE-POOLS slis.
DATA: BEGIN OF i_pa0001 OCCURS 0,
<b> color(3) TYPE c,</b>
pernr TYPE pa0001-pernr,
subty TYPE pa0001-subty,
END OF i_pa0001.
DATA :i_field TYPE slis_t_fieldcat_alv,
w_field LIKE LINE OF i_field,
w_layout TYPE slis_layout_alv.
START-OF-SELECTION .
PERFORM get_data.
PERFORM fieldcat.
PERFORM layout_build.
PERFORM dispaly .
*& Form fieldcat
FORM fieldcat .
CLEAR :w_field,i_field[].
w_field-fieldname = 'PERNR'.
w_field-tabname = 'I_PA0001'.
w_field-seltext_m = 'PERNR'.
APPEND w_field TO i_field.
CLEAR w_field.
w_field-fieldname = 'SUBTY'.
w_field-tabname = 'I_PA0001'.
w_field-seltext_m = 'SUBTY'.
APPEND w_field TO i_field.
CLEAR w_field.
ENDFORM. " fieldcat
*& Form dispaly
FORM dispaly .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = 'ZGRID_COLOR'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
<b> is_layout = w_layout</b>
it_fieldcat = i_field
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = i_pa0001
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. " dispaly
*& Form get_data
FORM get_data .
SELECT pernr subty
FROM pa0001
INTO CORRESPONDING FIELDS OF TABLE i_pa0001
UP TO 10 ROWS.
LOOP AT i_pa0001.
IF sy-tabix GT 5.
<b> i_pa0001-color = 'C51'.</b>
MODIFY i_pa0001 INDEX sy-tabix.
ENDIF.
ENDLOOP.
ENDFORM. " get_data
*& Form layout_build
FORM layout_build .
<b> w_layout-info_fieldname = 'COLOR'.</b>
ENDFORM. " layout_build
I hope it helps u .
<b>Thanks,
Venkat.O</b> -
No cell merge possible with adf table?
i know that there is no cell merge possible with adf table.
however i read that with trinidad table it's possible.
my table has data like this:
d1 - tommy - 5
d1 - tommy - 7
d2 - burpy - 3
d2 - burpy - 4
d2 - tom - 7
now i have to merge first column (dog id) where id is same -
d1 - tommy - 5
--- - tommy - 7
d2 - burpy - 3
--- - burpy - 4
--- - tom - 7
i am creating this dog table thru a data control on jspx page.
can anyone suggest some help?
or will i have to use html table for it? i really want to avoid html.
thanks.Shay Shmeltzer wrote:
Use a pivot table or a treetable
http://jdevadf.oracle.com/adf-richclient-demo/faces/components/pivotTable.jspx
http://jdevadf.oracle.com/adf-richclient-demo/faces/components/treeTable.jspx
Or use inlined iterators to layout the dataonly issue with pivot table is it doesn't display header for left columns unless u take ur cursor there.
tree table is completely different kind of view - imo.
didn't get much help on inlined iterators - can u plz post more details on this?
thanks. -
Set ALV Cell visibility property
Hi,
I would have 2 tables for ALV. One table consists of the data to be bound to the ALV. The other table would have the read only property(boolean) filled for each of the ALV cells.
I would want to set the property of each ALV cell using the second table. How do i do that?
Currently i am just testing it for few attributes statically using the below code.
DATA lo_nd_date_table TYPE REF TO if_wd_context_node.
DATA lo_el_date_table TYPE REF TO if_wd_context_element.
DATA: lt_ele_set TYPE wdr_context_element_set.
navigate from <CONTEXT> to <DATE_TABLE> via lead selection
lo_nd_date_table = wd_context->get_child_node( name = wd_this->wdctx_date_table ).
lt_ele_set = lo_nd_date_table->get_elements( ).
LOOP AT lt_ele_set INTO lo_el_date_table.
lo_el_date_table->set_attribute_property(
attribute_name = 'WK02' -
> Attribute Name (Column Name)
property = if_wd_context_element=>e_property-read_only
value = 'X' ).
<< Similarly for other attributes>>
ENDLOOP.
I have inserted this code at the end. Initially few other properties were set to the cells.
This seems to be not working.
Regards,
Rekha
Edited by: Rekha Gopinath on Sep 8, 2009 10:40 AMHi Lekha,
In my case, the columns represents dates. The rows represent projects. So, only those row cells are editable where the project is valid.
1. I have created READ_ONLY attribute for the date node (table).
2. I am filling the READ_ONLY to abap_true or abap_false based on the following condition.
Even if one of the projects is not valid for a date, then READ_ONLY = ABAP_TRUE. This means, even if one cell is set to abap_true, then READ_ONLY is set to abap_true.
3. I modify the date node and bind it with the READ_ONLY set row wise.
Loop at the data and set read only
navigate from <CONTEXT> to <DATE_TABLE> via lead selection
lo_nd_date_table = wd_context->get_child_node( name = wd_this->wdctx_date_table ).
CALL METHOD lo_nd_date_table->get_static_attributes_table
IMPORTING
table = lt_date_table .
LOOP AT lt_date_table INTO ls_date_table.
lv_tabix = sy-tabix.
READ TABLE wd_this->gt_prop INTO ls_prop INDEX lv_tabix.
IF sy-subrc EQ 0.
IF ls_prop-wk01 = abap_true OR
ls_prop-wk02 = abap_true OR
ls_prop-wk03 = abap_true OR
ls_prop-wk04 = abap_true OR
ls_prop-wk05 = abap_true OR
ls_prop-wk06 = abap_true OR
ls_prop-wk07 = abap_true OR
ls_prop-wk08 = abap_true OR
ls_prop-wk09 = abap_true OR
ls_prop-wk10 = abap_true OR
ls_prop-wk11 = abap_true OR
ls_prop-wk12 = abap_true OR
ls_prop-wk13 = abap_true OR
ls_prop-wk14 = abap_true OR
ls_prop-wk15 = abap_true.
ls_date_table-read_only = abap_true.
ELSE.
ls_date_table-read_only = abap_false.
ENDIF.
ENDIF.
MODIFY lt_date_table FROM ls_date_table INDEX lv_tabix TRANSPORTING read_only.
ENDLOOP.
CALL METHOD lo_nd_date_table->bind_table
EXPORTING
new_items = lt_date_table
set_initial_elements = abap_true.
4. I loop through the column reference and use the code mentioned earlier.
CREATE OBJECT lr_input
EXPORTING
value_fieldname = lv_id.
lo_column->set_cell_editor( value = lr_input ).
lr_input->set_read_only_fieldname( value = 'READ_ONLY' ).
The expected output is different from the input i had mentioned earlier for Row 1, row 2, Row 3 and row 4. Here, i would get all the rows as non editable except for Row 3.
I would want to set all columns based on condition.
Regards,
Rekha -
About ALV Grid's cell merge..Helpppp
Dear gurus:
I just write some code in order to learn alv.
but i find when i sort the data by 'carrid', the cells which have same data was merged. and i declare the cell_merge = space, the result is just the same, how can i solve it? i want the cells not merge.
REPORT zzalv17.
TYPE-POOLS: slis.
TABLES: spfli.
DATA: it_sortinfo TYPE slis_t_sortinfo_alv,
wa_sortinfo TYPE slis_sortinfo_alv,
it_layout TYPE slis_layout_alv,
it_spfli LIKE STANDARD TABLE OF spfli.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE it_spfli
FROM spfli.
CLEAR wa_sortinfo.
wa_sortinfo-spos = 1.
wa_sortinfo-fieldname = 'CARRID'.
wa_sortinfo-up = 'X'.
APPEND wa_sortinfo TO it_sortinfo.
it_layout-zebra = 'X'.
it_layout-detail_popup = 'X'.
it_layout-colwidth_optimize = 'X'.
it_layout-cell_merge = space.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_sort = it_sortinfo
is_layout = it_layout
i_structure_name = 'SPFLI'
i_save = 'X'
TABLES
t_outtab = it_spfli.Its a little miss leading, isn't it. Anyway, I was seeing the same, so I looked into the underlying code, and it is expecting that you pass an "N" in order to suppress the merging, so set it to "N" and it will work.
it_layout-cell_merge = 'N'.
Regards,
RIch Heilman -
Hi all,
I have a requirement to print an ALV grid display exactly in the same format as we see in output. That is, if the cells are merged in ALV then in Print also they should come as merged.
But when I am printing the ALV output it does not give merged cells. I am using OO ALV.
Is my requirement feasible. If yes, Please help me to proceed?
Thanks,
DayaHi Daya,
In the ALV grid control print or print preview, cells that have identical content are not merged. This is necessary in order to be able to distinguish between blank cells and cells that only become blank after merging. The standard behaviour for the different ALV lists is described in Note 447055.
Regards,
Md Ziauddin -
ALV Grid merge cells horizontally for specific record
Hi Experts,
We have a requirement regarding ALV Grid developement.
In ALV Grid, we will have multiple records as normal output.
Output will be as below.
In that, we need Summery Text should be in from Field 2 * to* Field 6 as a single Cell and below that all output
will be normal each cell wise.
That Summery will come for each new Field1.
OUTPUT
Field1 Field2 Field3 Field4 Field5 Field6 Field7 Field8 Field9
001 | . .... .. .. Summery ........... | 10 | 20 | 30
001 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 |
001 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 |
001 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 |
001 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 |
Thanks & regards
MangleshHi Manglesh,
sorry ALV is not as flexible as Excel may be.
You can only define a header in that way but it would be above the column headings.
The ALV table display allows only to change the width of the whole column.
Regards,
Clemens -
Hi Experts,
I want to merge cells for columns having similar records.Is their any functionality in fieldcatlog.
SimranLocal variables
DATA: wal_sort TYPE lvc_s_sort,
wl_pos TYPE numc2.
wl_pos = 01.
sort by company code
wal_sort-spos = wl_pos.
wal_sort-fieldname = c_ccode.
wal_sort-up = c_check.
APPEND wal_sort TO t_sort.
wl_pos = wl_pos + 1.
Pass this t_sort to it_sort of set_table_for_first_display -
Freely-programmed value help for a single ALV cell
Greetings everyone,
I have a freely-programmed value help that works beautifully when attached to the context element of a single field, but now I'm needing to use it in an ALV for a specific cell. Is there a way to shut off the dropdown for all of the rows (cells) in the column where I don't need it? Or, is there an appropriate workaround that can deliver the same results?
I've found several posts that address similar issues, but nothing for this exact problem.
Thanks,
Jason BlockI take it from reading your description what you want is a little more complicated than just controlling the read-only property on the input field. If I read you properly you still want to have all the cells in a column to be open for input, just on some of them you want to disable the value help. Is that correct? See these screen shots for clarification:
If you focus on the the input field in the first row, you get the value help:
http://www.flickr.com/photos/tjung/2714133068/
However if you go to the second row and focus on the same input field in this column, you don't get the value help:
http://www.flickr.com/photos/tjung/2714133094/
If this is what you want, then buckel up because this was a challenging one. The problem is that the value help specification is not done at the UI element level, but instead at the context attribute level. Therefore it can't be as simple as controlling a property on the inputField itself. What you will need to do is extend the context node that you have bound to the ALV. You need to add a second version of the attribute that is bound to your input field. In this second version you can set the value help specification to Disabled:
http://www.flickr.com/photos/tjung/2713320505
Notice from the screen shot that I also added another attirbute called CVAR (type STRING). We will need that later. It will be used to store which cell variant show be used on a particular row.
Now we must go to the place in your code where you fill the context node with data. You will need to copy the data from your primary attribute to your secondary one. In my case I was copying the values from CARRID to CARRID2. Of course for update, you would need to merge the data back together before saving it back to the database. I also set a simple odd/even pattern of controller in the cell variant. I assume you will have some actual business logic that controls this:
data odd type boolean value abap_true.
loop at lt_f_r_sflight[] assigning <ls_f_r_sflight>.
clear ls_c_r_sflight.
move-corresponding <ls_f_r_sflight> to ls_c_r_sflight.
move <ls_f_r_sflight>-carrid to ls_c_r_sflight-carrid2.
if odd = abap_true.
odd = abap_false.
else.
odd = abap_true.
ls_c_r_sflight-cvar = 'NOVH'.
endif.
insert ls_c_r_sflight into table lt_c_r_sflight[].
endloop.
lo_r_sflight->bind_table( lt_c_r_sflight[] ).
Next is the logic in the initialization of the ALV. We will need to create two input fields - each bound to the different context attributes. We will make the one the primary cell editor. The other will become the cell editor of the cell variant. We then tell the column where it can get its cell variant value from:
DATA lo_cmp_usage TYPE REF TO if_wd_component_usage.
lo_cmp_usage = wd_this->wd_cpuse_alv( ).
IF lo_cmp_usage->has_active_component( ) IS INITIAL.
lo_cmp_usage->create_component( ).
ENDIF.
DATA l_salv_wd_table TYPE REF TO iwci_salv_wd_table.
l_salv_wd_table = wd_this->wd_cpifc_alv( ).
DATA l_table TYPE REF TO cl_salv_wd_config_table.
l_table = l_salv_wd_table->get_model( ).
l_table->if_salv_wd_table_settings~set_read_only( abap_false ).
DATA input1 TYPE REF TO cl_salv_wd_uie_input_field.
DATA l_column TYPE REF TO cl_salv_wd_column.
l_column = l_table->if_salv_wd_column_settings~get_column( 'CARRID' ).
CREATE OBJECT input1
EXPORTING
value_fieldname = 'CARRID'.
l_column->set_cell_editor( input1 ).
DATA input2 TYPE REF TO cl_salv_wd_uie_input_field.
CREATE OBJECT input2
EXPORTING
value_fieldname = 'CARRID2'.
DATA l_cv TYPE REF TO cl_salv_wd_cv_standard.
CREATE OBJECT l_cv.
l_cv->set_key( 'NOVH' ).
l_cv->set_editor( input2 ).
l_column->add_cell_variant( l_cv ).
l_column->set_sel_cell_variant_fieldname( 'CVAR' ). -
ALV ( Fieldcatlogue Merge )
Hi,
Can anyone tell me the purpose of using fieldcatlogue merge in ALV . Wht is the purpose of using the fieldcatlogue merge . is it needed?. Can you send me the sample code using the fieldcatlogue merge .HI
1. reuse_alv_fieldcatalog_merge have many lititations such as you can not change the sequences of tha column. Suppose in table the fields are f1,f2,f3,f4 and f5. But in display i want the sequesce say f3,f4,f2,f1,f5. Using the fm reuse_alv_fieldcatalog_merge is not possible. But you can do it by manually process by passing the sequence in col_pos field of the fieldcatalog.
2. Similarly you can give the column length as you wish by 'outputlen' paramater of fieldcatalog.
3. you can give the column heading of your own by seltext_m, seltext_l, seltext_s paramater of fieldcatalog.
4. You can make a field hotspot by hotspot parameter of fieldcatalog.
5. you can emphasize a field by emphasize parameter of fieldcatalog.
6. You can display the sum of a field by do_sum parameters of fieldcatalog.
there are many more functionality which you can not get by FM reuse_alv_fieldcatalog_merge.
What you can do is that use both the FM to filled the functionality of the fieldcatalog what you get autometically from the reuse_alv_fieldcatalog_merge and for the rest of the functinality you can add the functionality by manually append the fieldcalatog. It is call semi autometic fieldcatalog built.
data: iline type table of zstock with header line.
data: gt_fieldcat type slis_t_fieldcat_alv.
perform setup-fieldcatalog using gt_fieldcat[].
form setup-fieldcatalog using fieldcat type slist_fieldcat_alv.
data: ls_fieldcat type slis_fieldcat_alv.
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_internal_tabname = 'ILINE'
i_structure_name = 'ZSTOCK'
changing
ct_fieldcat = _fieldcat.
loop at fieldcat into lsfieldcat.
case ls_fieldcat-fieldname.
when 'DEPT'.
ls_fieldcat-no_out = 'X'.
when 'DESCR'.
ls_fieldcat-no_out = 'X'.
when 'GOOD_PRD'.
ls_fieldcat-do_sum = 'X'.
endcase.
modify fieldcat from lsfieldcat.
endloop.
endform. " FIELDCATALOG
Check this link
Re: How to merge cells of one row in ALV GRID?
Reward all helpfull answers -
Hello,
I have an ALV table, and some colums are of type text with quite long lengths.
Initially the columns have a small length, but when the user writes long texts (for example 100 characters) the cell will is automatically enlarged to show the complete text on the screen. That's quite annoying because with two or three columns like this, storing long texts, the overall width of the table is really big.
I know that there is a way to define fixed columns, but the problem with this is that then, when the long text is input in the table, you cannot scroll inside the cell to see the values, you can only see the beginning of the phrase.
I would like to do something similar to the Excel. First I would like to allow the users to resize the columns (just like the Excel grid) and then I would like to wrap long texts in different rows (inside the cell) to reduce the cell width.
Is this possible? What would you recommend in this case?
RegardsHi Javier,
The ALV resize functionality is there in 7.0 Enhp1. It works for standard tables and ALV. You only have to set the fixedTableLayout property to True. You can use the below link to check out Thomas Jung's [demonstration |http://www.flickr.com/photos/tjung/2806011790/]in which he shows as to how we can resize the ALV columns.
create an instance of ALV component
DATA: LR_IF_CONTROLLER TYPE REF TO IWCI_SALV_WD_TABLE,
LR_CMP_USAGE TYPE REF TO IF_WD_COMPONENT_USAGE,
LR_CMDL TYPE REF TO CL_SALV_WD_CONFIG_TABLE,
LR_TABLE_SETTING TYPE REF TO IF_SALV_WD_TABLE_SETTINGS.
LR_CMP_USAGE = WD_THIS->WD_CPUSE_ALV( ).
IF LR_CMP_USAGE->HAS_ACTIVE_COMPONENT( ) IS INITIAL.
LR_CMP_USAGE->CREATE_COMPONENT( ).
ENDIF.
get reference to the ALV model
LR_IF_CONTROLLER = WD_THIS->WD_CPIFC_ALV( ).
LR_CMDL = LR_IF_CONTROLLER->GET_MODEL( ).
LR_TABLE_SETTING ?= LR_CMDL.
Set column width
DATA LR_COL TYPE REF TO CL_SALV_WD_COLUMN.
LR_COL = LR_CMDL->IF_SALV_WD_COLUMN_SETTINGS~GET_COLUMN( 'PERNR' ).
LR_COL->SET_WIDTH( '70' ) .
LR_COL = LR_CMDL->IF_SALV_WD_COLUMN_SETTINGS~GET_COLUMN( 'ENAME' ).
LR_COL->SET_WIDTH( '100' ) .
LR_TABLE_SETTING->SET_FIXED_TABLE_LAYOUT( ABAP_TRUE ).
Regards,
Uday -
Cells merge issue when extracting webi report in excel format
Hi Experts,
We have some WEBI reports in BO XI 3.1.
The reports have header where we are showing report name and some values which user selects in prompt.
Now the issue is that when we save our webi report in excel format, many cells get merge.
I have read many post on scn which suggest some solutions like changing the autofit width option to no and aligning the header width with colums.
Tried both the option but no success.
Is there any other way to achieve this.
Thanks in advance,
Regards,
RishabhHi,
We managed to find the workaround for this merge cell issue.
Sharing it might be helpful for someone.
- Align the report name and other block in report in such a way that the ends are in line with the end point of any column. The only limitation is that when applying pivot to the excel output we neet to click on any of the ccolumn so that excel identify the data set.
- Second workaround is to break the webi document in two parts report1 will contain the report name and the block to show the prompt values selected by the user where as report2 will contain the table withactual data. The only limitation with this workaround is that when exporting the repot output to excel we will get two tabs in the excel sheet one containing the prompt values and secont tab containing the actual data.
Regards,
RS
Maybe you are looking for
-
MobileMe gallery switched syncing from Aperture to iPhoto
I had an album on Aperture that synced with MobileMe. Friends added photos via email and via web upload, and all was good. Until one day when the Aperture web album was gone. MobileMe album was still there, but it says (under Info) that it's syncing
-
Have i killed my iMac??
Hiya, I tried to upgrade the ram on my white 20'' Intel iMac to 2 gig. After installation, the iMac will not start. The light comes on and the fan whirls, but the screen remains blank. I took the ram out and put the old ram back in, but the iMac stil
-
if you have a large document and you add two returns at the end of every major section or group but one of the two returns goes to next page, how do you keep that return so it doesn't mess up spacing if something is added earlier in document but get
-
Portal Error 404 (The requested resource is not available)
Dear, I have faced the below error in our Portal (6.0), I have created a new role that its linked normally with worksets, pages and i-view, all the way to custom SAP R/3 transactions, most of the users are able to see and execute these transactions,
-
Hi Everyone, I am into SAP ABAP with 3 and half years of experience. My expertise is into core ABAP and looking forward to gain more skills and expertise into the same. With the same intention looking forward to know what are the different levels (be