2015 Apr 20 4:19 AM
Hello Everyone,
I am trying to have a label in header center aligned. But unable to make it. Still coming left-aligned.
Kindly advise.
Thanks
Code ---->
METHOD set_top_of_page.
DATA: lr_header TYPE REF TO cl_salv_form_layout_grid,
lr_h_label TYPE REF TO cl_salv_form_label,
lr_h_layout_data TYPE REF TO cl_salv_form_layout_data,
lr_h_grid TYPE REF TO cl_salv_form_layout_grid,
lr_h_layout_grid TYPE REF TO cl_salv_form_layout_data_grid.
CREATE OBJECT lr_header
EXPORTING
columns = 14.
lr_h_grid = lr_header->create_grid( row = 1
column = 1 ).
lr_h_label = lr_h_grid->create_label( row = 1 column = 1 text = 'Dummy Header Text' ).
lr_h_layout_data = lr_h_label->get_layout_data( ).
lr_h_layout_grid ?= lr_h_layout_data.
lr_h_layout_grid->set_h_align( if_salv_form_c_h_align=>center ).
im_alv->set_top_of_list( lr_header ).
im_alv->set_top_of_list_print( lr_header ).
endmethod.
Hello Everyone,
I am trying to have a label in header center aligned. But unable to make it. Still coming left-aligned.
Kindly advise.
Thanks
Code ---->
METHOD set_top_of_page.
DATA: lr_header TYPE REF TO cl_salv_form_layout_grid,
lr_h_label TYPE REF TO cl_salv_form_label,
lr_h_layout_data TYPE REF TO cl_salv_form_layout_data,
lr_h_grid TYPE REF TO cl_salv_form_layout_grid,
lr_h_layout_grid TYPE REF TO cl_salv_form_layout_data_grid.
CREATE OBJECT lr_header
EXPORTING
columns = 14.
lr_h_grid = lr_header->create_grid( row = 1
column = 1 ).
lr_h_label = lr_h_grid->create_label( row = 1 column = 1 text = 'Dummy Header Text' ).
lr_h_layout_data = lr_h_label->get_layout_data( ).
lr_h_layout_grid ?= lr_h_layout_data.
lr_h_layout_grid->set_h_align( if_salv_form_c_h_align=>center ).
im_alv->set_top_of_list( lr_header ).
im_alv->set_top_of_list_print( lr_header ).
endmethod.
2015 Apr 20 9:33 AM
Hi Sandeep,
Try this: DATA: lo_column TYPE REF TO CL_SALV_FORM_GRID_COLUMN. lo_column = lr_grid->get_column( column = 1 ). CALL METHOD lo_column->set_h_align EXPORTING value = IF_SALV_FORM_C_H_ALIGN=>CENTER.
2015 Apr 20 10:01 AM
I want label to be center aligned.
Created as follows
lr_h_label = lr_h_grid->create_label( row = 1 column = 1 text = 'Dummy Header Text' ).
2015 Apr 20 12:35 PM
Hi Sandeep,
I was trying with above method but no success in that.
But you can change the column position to resolve the issue.
Try with below code
obj_header->create_label(
row = 1
column = 65
text = 'Test line1' ).
2015 Apr 20 3:47 PM
I tried this but did not work out . In my case I need to display 1 label (bold) in first row and text in 2 and 3 row. If I display only text (means text but no label) .Center Align is working.But when i tried to displayed all (1 label and 2 texts . total three rows). it did not work.
I tried with all permutation and combination.
2015 Apr 21 7:54 AM
Hi Sandeep,
I tried above requriment and its working for me.
Please check below code and attached screen shot of output.
obj_header = sp_obj_header->create_grid( row = 3
column = 1
colspan = 6 ).
obj_header->create_label(
row = 1
column = 65
text = 'Label' ).
obj_header->create_label(
row = 2
column = 65
text = 'Text1' ).
obj_header->create_label(
row = 3
column = 65
text = 'Text2' ).
2015 Apr 21 9:52 AM
Thanks Aarti
I tried the same . Some how manage the center align but unable to display correct column.
Code as follows.
METHOD set_top_of_page.
DATA: lr_header TYPE REF TO cl_salv_form_layout_grid,
lr_h_label TYPE REF TO cl_salv_form_label,
lr_h_textview TYPE REF TO cl_salv_form_text,
lr_h_layout_data TYPE REF TO cl_salv_form_layout_data,
lr_h_grid TYPE REF TO cl_salv_form_layout_grid,
lr_h_layout_grid TYPE REF TO cl_salv_form_layout_data_grid.
CREATE OBJECT lr_header
EXPORTING
columns = 1.
lr_h_grid = lr_header->create_grid( row = 3
column = 1
colspan = 6 ).
lr_h_label = lr_h_grid->create_label( row = 1 column = 65 text = 'label first line' ).
* lr_h_column = lr_h_grid->get_column( column = 1 ).
* lr_h_column->set_h_align( if_salv_form_c_h_align=>center ).
lr_h_layout_data = lr_h_label->get_layout_data( ).
lr_h_layout_grid ?= lr_h_layout_data.
lr_h_layout_grid->set_h_align( if_salv_form_c_h_align=>center ).
lr_h_textview = lr_h_grid->create_text( row = 2 column = 65 text = 'text1 second line ' ).
lr_h_layout_data = lr_h_textview->get_layout_data( ).
lr_h_layout_grid ?= lr_h_layout_data.
lr_h_layout_grid->set_h_align( if_salv_form_c_h_align=>center ).
lr_h_textview = lr_h_grid->create_text( row = 3 column = 65 text = 'text3 third line ' )..
lr_h_layout_data = lr_h_textview->get_layout_data( ).
lr_h_layout_grid ?= lr_h_layout_data.
lr_h_layout_grid->set_h_align( if_salv_form_c_h_align=>center ).
gr_alv->set_top_of_list( lr_header ).
gr_alv->set_top_of_list_print( lr_header ).
ENDMETHOD. "set_top_of_page
Also I checked colspan has no effect on output .
2015 Apr 21 11:51 AM
Could you please attached screen shot of output. It will be easy for me to understand.
2015 Apr 21 1:03 PM
2015 Apr 21 1:11 PM
Could you please copy below code and paste in your method. Because it is working for me as per your requirement.
DATA : obj_header TYPE REF TO cl_salv_form_layout_grid,
obj_output TYPE REF TO cl_salv_table,
sp_obj_header TYPE REF TO cl_salv_form_layout_grid.
CREATE OBJECT sp_obj_header.
* • create a header grid with required column and rows
obj_header = sp_obj_header->create_grid( row = 3
column = 1
colspan = 6 ).
obj_header->create_label( row = 1
column = 65
text = 'label first line').
obj_header->CREATE_TEXT( row = 2
column = 65
text = 'text1 second line' ).
obj_header->CREATE_TEXT( row = 3
column = 65
text = 'text3 third line' ).
obj_output->set_top_of_list( obj_header ).
2015 Apr 27 11:05 AM
2015 Apr 28 5:15 AM
If possible can you paste the whole code including class definition and implementation.
2015 Apr 29 8:38 AM
*&---------------------------------------------------------------------*
*& Report ZAH_ALV_OOPS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zah_alv_oops.
*----------------------------------------------------------------------*
* CLASS class1 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS class1 DEFINITION.
PUBLIC SECTION.
TYPES: BEGIN OF ty_vbak,
vbeln TYPE vbak-vbeln,
erdat TYPE erdat,
auart TYPE auart,
kunnr TYPE kunnr,
END OF ty_vbak.
DATA: t_vbak TYPE STANDARD TABLE OF ty_vbak.
DATA: o_alv TYPE REF TO cl_salv_table.
METHODS:
get_data,
display_data.
PRIVATE SECTION.
METHODS:
set_pf_status
CHANGING
co_alv TYPE REF TO cl_salv_table.
METHODS: set_top_of_page.
ENDCLASS. "class1 DEFINITION
START-OF-SELECTION.
DATA: class1 TYPE REF TO class1.
CREATE OBJECT class1.
class1->get_data( ).
class1->display_data( ).
*----------------------------------------------------------------------*
* CLASS class1 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS class1 IMPLEMENTATION.
METHOD get_data.
SELECT vbeln erdat auart kunnr
INTO TABLE t_vbak
FROM vbak
UP TO 20 ROWS.
ENDMETHOD. "get_data
METHOD display_data.
DATA : obj_header TYPE REF TO cl_salv_form_layout_grid,
obj_output TYPE REF TO cl_salv_table,
sp_obj_header TYPE REF TO cl_salv_form_layout_grid,
lr_h_label TYPE REF TO cl_salv_form_label,
lr_h_textview TYPE REF TO cl_salv_form_text,
lr_h_layout_data TYPE REF TO cl_salv_form_layout_data.
TRY.
CALL METHOD cl_salv_table=>factory(
IMPORTING
r_salv_table = obj_output
CHANGING
t_table = t_vbak ). "Internal table to dispaly ALV output
CATCH cx_salv_error.
ENDTRY.
*
*
*
CREATE OBJECT sp_obj_header.
* • create a header grid with required column and rows
obj_header = sp_obj_header->create_grid( row = 3
column = 1
colspan = 6 ).
obj_header->create_label( row = 1
column = 65
text = 'Label first line').
obj_header->CREATE_TEXT( row = 2
column = 65
text = 'text1 second line' ).
obj_header->CREATE_TEXT( row = 3
column = 65
text = 'text3 third line' ).
obj_output->set_top_of_list( obj_header ).
* • display table
obj_output->display( ).
ENDMETHOD. "display_data
METHOD set_pf_status.
DATA: lo_functions TYPE REF TO cl_salv_functions_list.
lo_functions = co_alv->get_functions( ).
lo_functions->set_default( abap_true ).
ENDMETHOD. "set_pf_status
METHOD set_top_of_page.
DATA: lr_header TYPE REF TO cl_salv_form_layout_grid,
lr_h_label TYPE REF TO cl_salv_form_label,
lr_h_layout_data TYPE REF TO cl_salv_form_layout_data,
lr_h_grid TYPE REF TO cl_salv_form_layout_grid,
lr_h_layout_grid TYPE REF TO cl_salv_form_layout_data_grid.
CREATE OBJECT lr_header
EXPORTING
columns = 14.
lr_h_grid = lr_header->create_grid( row = 1
column = 1 ).
lr_h_label = lr_h_grid->create_label( row = 1 column = 1 text = 'Dummy Header Text' ).
lr_h_layout_data = lr_h_label->get_layout_data( ).
lr_h_layout_grid ?= lr_h_layout_data.
lr_h_layout_grid->set_h_align( if_salv_form_c_h_align=>center ).
ENDMETHOD. "set_top_of_page
ENDCLASS. "class1 IMPLEMENTATION
Check this.
2015 Apr 29 9:17 AM
Thanks a lot
I created a program with the code provided by you
I have uploaded two screen shots . One before and other after print preview.
Header part is coming correctly in its respective column only in print preview .
After Click on print preview (Note this time I have added toolbar )
Thanks
Sandeep
2015 Apr 29 9:44 AM
If your issue is resolve then mark is as correct and reward the points.If you need any more help please let me know.
Thanks,
Aarti.
2015 Apr 29 9:53 AM
I know the rules . My issue is still not solved . I already added the screen shot in my previous post.
Labels are not displayed correctly . But if you checked the output in print preview it is displayed correctly.Although i already marked yours answer as helpful.
Thanks for you efforts.
2015 Apr 29 10:33 AM
2015 Apr 29 10:45 AM
It is same the one you had send
*&---------------------------------------------------------------------*
*& Report YTEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ytest.
*----------------------------------------------------------------------*
* CLASS class1 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS class1 DEFINITION.
PUBLIC SECTION.
TYPES: BEGIN OF ty_vbak,
vbeln TYPE vbak-vbeln,
erdat TYPE erdat,
auart TYPE auart,
kunnr TYPE kunnr,
END OF ty_vbak.
DATA: t_vbak TYPE STANDARD TABLE OF ty_vbak.
DATA: o_alv TYPE REF TO cl_salv_table.
METHODS:
get_data,
display_data.
PRIVATE SECTION.
METHODS:
set_pf_status
CHANGING
co_alv TYPE REF TO cl_salv_table.
METHODS: set_top_of_page.
ENDCLASS. "class1 DEFINITION
START-OF-SELECTION.
DATA: class1 TYPE REF TO class1.
CREATE OBJECT class1.
class1->get_data( ).
class1->display_data( ).
*----------------------------------------------------------------------*
* CLASS class1 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS class1 IMPLEMENTATION.
METHOD get_data.
SELECT vbeln erdat auart kunnr
INTO TABLE t_vbak
FROM vbak
UP TO 20 ROWS.
ENDMETHOD. "get_data
METHOD display_data.
DATA : obj_header TYPE REF TO cl_salv_form_layout_grid,
obj_output TYPE REF TO cl_salv_table,
sp_obj_header TYPE REF TO cl_salv_form_layout_grid,
lr_h_label TYPE REF TO cl_salv_form_label,
lr_h_textview TYPE REF TO cl_salv_form_text,
lr_h_layout_data TYPE REF TO cl_salv_form_layout_data.
TRY.
CALL METHOD cl_salv_table=>factory(
IMPORTING
r_salv_table = obj_output
CHANGING
t_table = t_vbak ). "Internal table to dispaly ALV output
CATCH cx_salv_error.
ENDTRY.
CREATE OBJECT sp_obj_header.
* # create a header grid with required column and rows
obj_header = sp_obj_header->create_grid( row = 3
column = 1
colspan = 6 ).
obj_header->create_label( row = 1
column = 65
text = 'Label first line').
obj_header->create_text( row = 2
column = 65
text = 'text1 second line' ).
obj_header->create_text( row = 3
column = 65
text = 'text3 third line' ).
obj_output->set_top_of_list( obj_header ).
me->set_pf_status( CHANGING co_alv = obj_output ).
* # display table
obj_output->display( ).
ENDMETHOD. "display_data
METHOD set_pf_status.
DATA: lo_functions TYPE REF TO cl_salv_functions_list.
lo_functions = co_alv->get_functions( ).
* lo_functions->set_default( abap_true ).
lo_functions->set_all( abap_true ).
ENDMETHOD. "set_pf_status
METHOD set_top_of_page.
DATA: lr_header TYPE REF TO cl_salv_form_layout_grid,
lr_h_label TYPE REF TO cl_salv_form_label,
lr_h_layout_data TYPE REF TO cl_salv_form_layout_data,
lr_h_grid TYPE REF TO cl_salv_form_layout_grid,
lr_h_layout_grid TYPE REF TO cl_salv_form_layout_data_grid.
CREATE OBJECT lr_header
EXPORTING
columns = 14.
lr_h_grid = lr_header->create_grid( row = 1
column = 1 ).
lr_h_label = lr_h_grid->create_label( row = 1 column = 1 text = 'Dummy Header Text' ).
lr_h_layout_data = lr_h_label->get_layout_data( ).
lr_h_layout_grid ?= lr_h_layout_data.
lr_h_layout_grid->set_h_align( if_salv_form_c_h_align=>center ).
ENDMETHOD. "set_top_of_page
ENDCLASS. "class1 IMPLEMENTATION
2015 Apr 29 10:56 AM
2015 Apr 29 11:07 AM
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |