Cell colour in Dynamic ALV
How to make cell coloring in dynamic ALV,I did it in normal internal tables.Any body can help me here?
Or can anybody tell me how to convert a field symbol to an internal table? as I have created a dynamic IT.
Thanks in advance.
Thanks for u r quick replies,Now Iam not getting any error,the program getting executed without any error.But Iam not getting any colors,what might be the problem? Do I need to pass IS_layot to ALV_GRID FM ? I have not created any Layout though,here is my complete code :
TABLES : vbbe.
TYPE-POOLS : slis.
*& Data Declarations *
DATA : diff TYPE i VALUE 0,
maktx LIKE makt-maktx,
labst LIKE mard-labst.
DATA : BEGIN OF it_data OCCURS 0,
matnr LIKE vbbe-matnr,
mbdat LIKE vbbe-mbdat,
omeng LIKE vbbe-omeng,
END OF it_data,
wa_data LIKE LINE OF it_data.
DATA : g_tdref TYPE REF TO data,
g_wdref TYPE REF TO data.
DATA : dats LIKE vbbe-mbdat,
lvc_t_fieldcat TYPE lvc_t_fcat,
lvc_s_fieldcat TYPE lvc_s_fcat,
it_fldcat TYPE slis_t_fieldcat_alv,
wa_fldcat TYPE slis_fieldcat_alv.
FIELD-SYMBOLS : <it_dyn> TYPE STANDARD TABLE,
<wa_dyn>,
<dyn_field>.
*& Selection-Screen *
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_mbdat FOR vbbe-mbdat OBLIGATORY.
PARAMETER p_werks LIKE mard-werks OBLIGATORY.
SELECTION-SCREEN END OF BLOCK blk1.
*& INITIALIZATION *
INITIALIZATION.
p_werks = '1200'.
*& Start-Of-Selection *
START-OF-SELECTION.
PERFORM f_build_lvc_and_slis.
PERFORM f_build_dynamic_it.
PERFORM f_get_data.
PERFORM f_get_fata_into_it.
PERFORM f_display_alv.
*& Form f_build_lvc
FORM f_build_lvc_and_slis.
*.................Build LVC Fieldcatalog...............................*
lvc_s_fieldcat-tabname = 'MSKA'.
lvc_s_fieldcat-col_pos = 1.
lvc_s_fieldcat-fieldname = 'WERKS'.
lvc_s_fieldcat-datatype = 'CHAR'.
lvc_s_fieldcat-intlen = '10'.
APPEND lvc_s_fieldcat TO lvc_t_fieldcat.
CLEAR : lvc_s_fieldcat.
lvc_s_fieldcat-tabname = 'MSKA'.
lvc_s_fieldcat-col_pos = 2.
lvc_s_fieldcat-fieldname = 'MATNR'.
lvc_s_fieldcat-datatype = 'CHAR'.
lvc_s_fieldcat-intlen = '18'.
APPEND lvc_s_fieldcat TO lvc_t_fieldcat.
CLEAR : lvc_s_fieldcat.
lvc_s_fieldcat-tabname = 'MAKT'.
lvc_s_fieldcat-col_pos = 3.
lvc_s_fieldcat-fieldname = 'MAKTX'.
lvc_s_fieldcat-datatype = 'CHAR'.
lvc_s_fieldcat-intlen = '10'.
APPEND lvc_s_fieldcat TO lvc_t_fieldcat.
CLEAR : lvc_s_fieldcat.
lvc_s_fieldcat-tabname = 'MARD'.
lvc_s_fieldcat-col_pos = 4.
lvc_s_fieldcat-fieldname = 'LABST'.
lvc_s_fieldcat-datatype = 'QUAN'.
lvc_s_fieldcat-intlen = '13'.
APPEND lvc_s_fieldcat TO lvc_t_fieldcat.
CLEAR : lvc_s_fieldcat.
lvc_s_fieldcat-tech = 'X'.
lvc_s_fieldcat-col_pos = 5.
lvc_s_fieldcat-fieldname = 'TCOLOR'.
lvc_s_fieldcat-ref_field = 'COLOR'.
lvc_s_fieldcat-ref_table = 'ZLVC_COL'.
lvc_s_fieldcat-scrtext_l = 'COLOR'.
APPEND lvc_s_fieldcat TO lvc_t_fieldcat.
CLEAR : lvc_s_fieldcat.
*.................Build SLIS Fieldcatalog..............................*
wa_fldcat-tabname = 'MSKA'.
wa_fldcat-col_pos = 1.
wa_fldcat-fieldname = 'WERKS'.
wa_fldcat-datatype = 'CHAR'.
wa_fldcat-seltext_m = wa_fldcat-seltext_l = wa_fldcat-seltext_s =
'Plant'.
wa_fldcat-intlen = '6'.
APPEND wa_fldcat TO it_fldcat.
CLEAR : wa_fldcat.
wa_fldcat-tabname = 'MSKA'.
wa_fldcat-outputlen = 15.
wa_fldcat-col_pos = 2.
wa_fldcat-fieldname = 'MATNR'.
wa_fldcat-datatype = 'CHAR'.
wa_fldcat-seltext_l = 'Material Number'.
wa_fldcat-intlen = '16'.
APPEND wa_fldcat TO it_fldcat.
CLEAR : wa_fldcat.
wa_fldcat-tabname = 'MAKT'.
wa_fldcat-outputlen = 23.
wa_fldcat-col_pos = 3.
wa_fldcat-fieldname = 'MAKTX'.
wa_fldcat-datatype = 'CHAR'.
wa_fldcat-seltext_l = 'Material Description'.
wa_fldcat-intlen = '20'.
APPEND wa_fldcat TO it_fldcat.
CLEAR : wa_fldcat.
wa_fldcat-tabname = 'MARD'.
wa_fldcat-col_pos = 4.
wa_fldcat-fieldname = 'LABST'.
wa_fldcat-datatype = 'QUAN'.
wa_fldcat-intlen = '13'.
wa_fldcat-seltext_m = wa_fldcat-seltext_l = wa_fldcat-seltext_s =
'x Stock'.
APPEND wa_fldcat TO it_fldcat.
CLEAR : wa_fldcat.
wa_fldcat-tech = 'X'.
wa_fldcat-col_pos = 5.
wa_fldcat-fieldname = 'TCOLOR'.
wa_fldcat-ref_fieldname = 'COLOR'.
wa_fldcat-ref_tabname = 'ZLVC_COL'.
wa_fldcat-seltext_l = 'COLOR'.
APPEND wa_fldcat TO it_fldcat.
CLEAR : wa_fldcat.
*.................Build Dynamic Fields for LVC and SLIS................*
DATA : d TYPE i,
col(6) TYPE n VALUE '0',
date TYPE dats,
day(8) TYPE c,
number(2) TYPE n VALUE '0'.
d = s_mbdat-high - s_mbdat-low + 1.
date = s_mbdat-low - 1.
DO d TIMES.
number = number + 1.
date = date + 1.
col = col + 1.
CONCATENATE 'x Day' number INTO day.
lvc_s_fieldcat-tabname = 'VBBE'.
lvc_s_fieldcat-col_pos = col + 5.
lvc_s_fieldcat-fieldname = date.
lvc_s_fieldcat-datatype = 'QUAN'.
lvc_s_fieldcat-intlen = '15'.
APPEND lvc_s_fieldcat TO lvc_t_fieldcat.
CLEAR : lvc_s_fieldcat.
wa_fldcat-tabname = 'VBBE'.
wa_fldcat-col_pos = col + 5.
wa_fldcat-fieldname = date.
wa_fldcat-datatype = 'QUAN'.
wa_fldcat-intlen = '15'.
wa_fldcat-seltext_l = day.
APPEND wa_fldcat TO it_fldcat.
CLEAR : wa_fldcat.
ENDDO.
ENDFORM. " f_build_lvc
*& Form f_build_dynamic_it
FORM f_build_dynamic_it .
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = lvc_t_fieldcat
IMPORTING
ep_table = g_tdref.
ASSIGN g_tdref->* TO <it_dyn>.
CREATE DATA g_wdref LIKE LINE OF <it_dyn>.
ASSIGN g_wdref->* TO <wa_dyn>.
ENDFORM. " f_build_dynamic_it
*& Form f_get_data
FORM f_get_data .
SELECT matnr mbdat omeng FROM vbbe INTO CORRESPONDING FIELDS OF TABLE
it_data WHERE mbdat IN s_mbdat AND
werks = p_werks.
DELETE it_data WHERE omeng = 0 .
SORT it_data BY matnr ASCENDING.
ENDFORM. " f_get_data
*& Form f_get_fata_into_it
FORM f_get_fata_into_it .
FIELD-SYMBOLS : <fs>,
<ta_color> TYPE table.
DATA : field(15) TYPE c,
col TYPE lvc_s_scol.
LOOP AT it_data INTO wa_data.
SELECT SINGLE maktx FROM makt INTO maktx WHERE matnr =
wa_data-matnr.
SELECT SINGLE labst FROM mard INTO labst WHERE matnr =
wa_data-matnr AND werks = p_werks.
diff = wa_data-mbdat - s_mbdat-low + 6.
ASSIGN COMPONENT 1 OF STRUCTURE <wa_dyn> TO <fs>.
<fs> = p_werks.
ASSIGN COMPONENT 2 OF STRUCTURE <wa_dyn> TO <fs>.
<fs> = wa_data-matnr.
ASSIGN COMPONENT 3 OF STRUCTURE <wa_dyn> TO <fs>.
<fs> = maktx.
ASSIGN COMPONENT 4 OF STRUCTURE <wa_dyn> TO <fs>.
<fs> = labst.
ASSIGN COMPONENT diff OF STRUCTURE <wa_dyn> TO <fs>.
<fs> = wa_data-omeng.
IF labst < wa_data-omeng.
col-fname = wa_data-mbdat.
col-color-col = '5' .
col-color-int = '1'.
ELSE.
col-fname = wa_data-mbdat.
col-color-col = '5' .
col-color-int = '0' .
ENDIF.
ASSIGN COMPONENT 'TCOLOR' OF STRUCTURE <wa_dyn> TO <ta_color>.
APPEND col TO <ta_color> .
APPEND <wa_dyn> TO <it_dyn>.
CLEAR <wa_dyn>.
ENDLOOP.
ENDFORM. " f_get_fata_into_it
*& Form f_display_alv
FORM f_display_alv .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
* 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 =
* IS_LAYOUT =
it_fieldcat = it_fldcat
* 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 = <it_dyn>
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. " f_display_alv
Similar Messages
-
Create deep structure to disable some cells in Dynamic ALV GRID
Hi,
I want to disable some cells in a Dynamic ALV Grid before calling "SET_tABLE_Display" Method.
I check the BCALV_EDIT_02, where some cells are grayed out by assign the CL_GUI_ALV_GRID-MC_STYLE_DISABLED to the field name.
But I want the same using Field symbol.
I'm creating Dynamic table and dynamic structure based on the Dynamic field catalog.
Example: <FT_TAB> TYPE STANDARD TABLE,
<FS_TAB> TYPE ANY,
DATA: INT_TAB is my dynamic table values.
For the INT_TAB internal table, I created dynamic Structure and dynamic field symbol table.
LOOP AT INT_TAB.
ASSIGN COMPONENT 'MATNR' OF STRUCTURE <FS_TAB> TO <F_VALUE>
<F_VALUE> = INT_TAB-MATNR.
APPEND <FS_TAB> TO <FT_TAB>
"Here is the problem occurs, I want to grayed out the MATNR value based on some condition.
ENDLOOP.
I would like to set the 'MATNR' value to be grayed out by passing the CL_GUI_ALV_GRID-MC_STYLE_DISABLED.
and update into <FT_TAB>( <FT_TAB> structure will have 2 structures)
Finally the fieldsymbol should have two structure ( <F_TAB> = DYNAMIC STRUCTURE + LVC_S_STYLE )
Display alv grid by passing <FT_TAB> to set_table_display method.
Thanks in advance,
Kumar.Hi,
I am not sure whether I really understand your request. Let me try to help.
> Example: <FT_TAB> TYPE STANDARD TABLE,
> <FS_TAB> TYPE ANY,
>
> DATA: INT_TAB is my dynamic table values.
>
>
> LOOP AT INT_TAB.
> ASSIGN COMPONENT 'MATNR' OF STRUCTURE <FS_TAB> TO <F_VALUE>
> <F_VALUE> = INT_TAB-MATNR.
> APPEND <FS_TAB> TO <FT_TAB>
Here <FT_TAB> must already be assigned to some internal table with a given (dynamic) structure. Did this happen before this piece of code?
What I would do is to create a dynamic table (see documentation to CREATE DATA) with MATNR and the STYLE field (LVC_T_STYL). See the documentation for CREATE DATA - creation of internal tables. When collection the field descriptions for that internal table I would also build the field catalogue for the ALV.
Then assign <FT_TAB> to that newly created internal table, <FS_TAB> to a newly created structure (same as a table line).
Move the MATNR to component 1 (or component 'MATNR') of the table and fill the style table according to your needs. Then insert the <FS_TAB> into <FT_TAB>.
Finally call the ALV SET_TABLE... method with your dynamic table and your field catalogue.
Regards,
Gerd Rother -
Create dynamic internal table with deep structure;cell coloring dynamic ALV
Hi,
My requirement is to do cell colouring for a dynamic ALV.
So I am creating a dynamic internal table using the following method.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = i_fieldcatalog[]
IMPORTING
ep_table = i_output.
But how do I define field COLORS which should be again an internal table ?
Is there any other way for cell colouring?
Putting my problem in another way:
How do I create a dynamic internal table with one field as another internal table.
Quick replies are highly appreciated.
Thanks,
Nisha Vengal.halo Nisha
Before building the display table . you can add the field in the feild catalog right . This display table gets generated from the field catalog right
1 Create a global structute say ZEXTEND_FIELDCAT
2 Have fields like STYLE type lvc_t_styl
COLOR type LVC_T_SCOL.
3 Now you have to extend ur fieldcatalog
l_fieldcat-fieldname = COLOR'.
l_fieldcat-ref_field = 'COLOR'.
l_fieldcat-ref_table = 'ZEXTEND_FIELDCAT'.
APPEND l_fieldcat TO lt_field_catalog.
CLEAR l_fieldcat. -
Create structure in Dynamic ALV for color and editing cells
Hi experts,
I created dynamic ALV . in this i want coloring and editing of cells.
this can be done by strucutture lvc_t_scol, lvc_t_styl.
My problem is how to create structure in field catalogue of Dynamic ALV.
ThanksHello
I am not sure if you have missed the following part of the coding:
" Add table type (LVC_T_STYL) as field to structure ==> complex structure
CLEAR: gs_comp.
gs_comp-type ?= cl_abap_typedescr=>describe_by_data( celltab ).
gs_comp-name = 'CELLTAB'.
APPEND gs_comp TO gt_components.
go_sdescr = cl_abap_structdescr=>create( gt_components ).
go_tdescr = cl_abap_tabledescr=>create( go_sdescr ).
CREATE DATA gdo_handle TYPE HANDLE go_tdescr.
ASSIGN gdo_handle->* TO <gt_itab>.
This is exactly your requirement.
Regards
Uwe -
Hi,
I want to display the cell colour based on some condition in the ALV grid. pls help me in this.
Regards
Rajesh.VHi,
In Function Module REUSE_ALV_GRID_DISPLAY
types: begin of slis_specialcol_alv,
fieldname type slis_fieldname,
color type slis_color,
nokeycol(1) type c,
end of slis_specialcol_alv.
You can mention color for the display
and .............
*& Report ZDEMO_ALVGRID *
*& Example of a simple ALV Grid Report *
*& The basic ALV grid, Enhanced to display each row in a different *
*& colour *
REPORT zdemo_alvgrid .
TABLES: ekko.
type-pools: slis. "ALV Declarations
*Data Declaration
TYPES: BEGIN OF t_ekko,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
statu TYPE ekpo-statu,
aedat TYPE ekpo-aedat,
matnr TYPE ekpo-matnr,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
netpr TYPE ekpo-netpr,
peinh TYPE ekpo-peinh,
line_color(4) type c, "Used to store row color attributes
END OF t_ekko.
DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
wa_ekko TYPE t_ekko.
*ALV data declarations
data: fieldcatalog type slis_t_fieldcat_alv with header line,
gd_tab_group type slis_t_sp_group_alv,
gd_layout type slis_layout_alv,
gd_repid like sy-repid.
*Start-of-selection.
START-OF-SELECTION.
perform data_retrieval.
perform build_fieldcatalog.
perform build_layout.
perform display_alv_report.
*& Form BUILD_FIELDCATALOG
Build Fieldcatalog for ALV Report
form build_fieldcatalog.
There are a number of ways to create a fieldcat.
For the purpose of this example i will build the fieldcatalog manualy
by populating the internal table fields individually and then
appending the rows. This method can be the most time consuming but can
also allow you more control of the final product.
Beware though, you need to ensure that all fields required are
populated. When using some of functionality available via ALV, such as
total. You may need to provide more information than if you were
simply displaying the result
I.e. Field type may be required in-order for
the 'TOTAL' function to work.
fieldcatalog-fieldname = 'EBELN'.
fieldcatalog-seltext_m = 'Purchase Order'.
fieldcatalog-col_pos = 0.
fieldcatalog-outputlen = 10.
fieldcatalog-emphasize = 'X'.
fieldcatalog-key = 'X'.
fieldcatalog-do_sum = 'X'.
fieldcatalog-no_zero = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'EBELP'.
fieldcatalog-seltext_m = 'PO Item'.
fieldcatalog-col_pos = 1.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'STATU'.
fieldcatalog-seltext_m = 'Status'.
fieldcatalog-col_pos = 2.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'AEDAT'.
fieldcatalog-seltext_m = 'Item change date'.
fieldcatalog-col_pos = 3.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-seltext_m = 'Material Number'.
fieldcatalog-col_pos = 4.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MENGE'.
fieldcatalog-seltext_m = 'PO quantity'.
fieldcatalog-col_pos = 5.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MEINS'.
fieldcatalog-seltext_m = 'Order Unit'.
fieldcatalog-col_pos = 6.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'NETPR'.
fieldcatalog-seltext_m = 'Net Price'.
fieldcatalog-col_pos = 7.
fieldcatalog-outputlen = 15.
fieldcatalog-datatype = 'CURR'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'PEINH'.
fieldcatalog-seltext_m = 'Price Unit'.
fieldcatalog-col_pos = 8.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
endform. " BUILD_FIELDCATALOG
*& Form BUILD_LAYOUT
Build layout for ALV grid report
form build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(201).
Set layout field for row attributes(i.e. color)
gd_layout-info_fieldname = 'LINE_COLOR'.
gd_layout-totals_only = 'X'.
gd_layout-f2code = 'DISP'. "Sets fcode for when double
"click(press f2)
gd_layout-zebra = 'X'.
gd_layout-group_change_edit = 'X'.
gd_layout-header_text = 'helllllo'.
endform. " BUILD_LAYOUT
*& Form DISPLAY_ALV_REPORT
Display report using ALV grid
form display_alv_report.
gd_repid = sy-repid.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM
i_callback_user_command = 'USER_COMMAND'
i_grid_title = outtext
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
it_special_groups = gd_tabgroup
IT_EVENTS = GT_XEVENTS
i_save = 'X'
is_variant = z_template
tables
t_outtab = it_ekko
exceptions
program_error = 1
others = 2.
if sy-subrc 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
endform. " DISPLAY_ALV_REPORT
*& Form DATA_RETRIEVAL
Retrieve data form EKPO table and populate itab it_ekko
form data_retrieval.
data: ld_color(1) type c.
select ebeln ebelp statu aedat matnr menge meins netpr peinh
up to 10 rows
from ekpo
into table it_ekko.
*Populate field with color attributes
loop at it_ekko into wa_ekko.
Populate color variable with colour properties
Char 1 = C (This is a color property)
Char 2 = 3 (Color codes: 1 - 7)
Char 3 = Intensified on/off ( 1 or 0 )
Char 4 = Inverse display on/off ( 1 or 0 )
i.e. wa_ekko-line_color = 'C410'
ld_color = ld_color + 1.
Only 7 colours so need to reset color value
if ld_color = 8.
ld_color = 1.
endif.
concatenate 'C' ld_color '10' into wa_ekko-line_color.
wa_ekko-line_color = 'C410'.
modify it_ekko from wa_ekko.
endloop.
endform. " DATA_RETRIEVAL
Hope this Helps.
Regards , -
Hi all
i try to put color in the dynamic alv, but i become a dump message
Runtime Errors OBJECTS_MOVE_NOT_SUPPORTED
Date and Time 28.10.2010 08:46:49
Short text
Conversion of type "h" to type "g" not supported.
What happened?
Error in the ABAP Application Program
The current ABAP program "SAPLSLVC" had to be terminated because it has
come across a statement that unfortunately cannot be executed.
Error analysis
You attempted to move one data object to another.
This is not possible here because the conversion of a data object
of type "h" to type "g" is not supported.
my code implementation looks like
method validate_order_deli.
data ls_scol type lvc_s_scol.
data ls_colo type lvc_s_colo.
data ls_aoc_percent type zsd_aoc_percent.
data lf_deliv type lifmg.
data lf_db_percent type f.
data lf_calc_perc type f.
refresh et_color.
select single *
from zsd_aoc_percent
into corresponding fields of ls_aoc_percent
where acin = 'X'.
if sy-subrc <> 0.
exit.
endif.
lf_db_percent = ls_aoc_percent-percent.
* ls_scol-fname = if_fieldname.
ls_scol-fname = 'MATNR'.
if if_deliv <> 0.
me->calc_amour_unit(
exporting
if_matnr = if_matnr
if_amount = if_deliv
if_input = if_deliv_unit
if_output = if_order_unit
importing
ef_amount = lf_deliv
lf_calc_perc = ( lf_deliv * 100 ) / if_order.
if lf_calc_perc < lf_db_percent.
ls_colo-col = cl_gui_resources=>list_col_positive.
else.
ls_colo-col = cl_gui_resources=>list_col_negative.
endif.
ls_scol-color = ls_colo.
append ls_scol to et_color.
else.
exit.
endif.
endmethod. "validate_order_deli
method add_color_field.
data ls_fcat type lvc_s_fcat.
ls_fcat-fieldname = 'COLOR'.
ls_fcat-ref_field = 'COLTAB'.
ls_fcat-ref_table = 'CALENDAR_TYPE'.
append ls_fcat to ct_fcat.
endmethod. "add_color_field
ls_lvc_s_layo-cwidth_opt = 'X'.
ls_lvc_s_layo-ctab_fname = 'COLOR'.
i don't no, what's wrong...
thx for help*& Form generate_alv
* text
form generate_alv.
field-symbols <lt_any_table> type any table.
if lrf_gui_custom_container is initial.
create object lrf_gui_custom_container
exporting
container_name = lf_container.
create object lrf_gui_alvgrid
exporting
i_parent = lrf_gui_custom_container.
ls_lvc_s_layo-cwidth_opt = 'X'.
ls_lvc_s_layo-ctab_fname = 'COLOR'.
check sy-subrc = 0.
call method lrf_gui_alvgrid->set_table_for_first_display
exporting
* i_buffer_active =
* i_bypassing_buffer =
* i_consistency_check =
* i_structure_name = 'ZAM_CELL_COLOR'
* is_variant = ls_disvariant
* i_save = 'A'
* i_default = 'X'
is_layout = ls_lvc_s_layo
* is_print =
* it_special_groups =
* it_toolbar_excluding =
* it_hyperlink =
* it_alv_graphics =
* it_except_qinfo =
* ir_salv_adapter =
changing
it_outtab = <gt_table>
it_fieldcatalog = gt_dyn_fcat
* it_filter =
exceptions
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
others = 4.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endif.
endform. "generate_alv
*& Module STATUS_0100 OUTPUT
* text
module status_0100 output.
set pf-status 'ZAM_CELL_STATUS'.
set titlebar 'ZAM_CELL_TIT'.
perform generate_alv.
endmodule. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
* text
module user_command_0100 input.
data lf_okcode type syucomm.
call method cl_gui_cfw=>dispatch.
lf_okcode = ok_code.
case lf_okcode.
when 'EXIT'.
set screen 0.
leave screen.
when 'CANCEL'.
leave program.
when 'BACK'.
set screen 0.
leave screen..
endcase.
endmodule. " USER_COMMAND_0100 INPUT -
Colors in Dynamic ALV table display
Hello All,
I have dynamic ALV table display in which i created the columns dynamically and finally binded that created node and diplayed the table ..
Now what i want to do is depending on some condition i need to change the colors in the table display..
I tried to set the color in this way inside the loop .
if lv_phase = '3'.
lr_column->set_cell_design( CL_WD_TABLE_COLUMN=>E_CELL_DESIGN-badvalue_medium ).
else.
lr_column->set_cell_design( CL_WD_TABLE_COLUMN=>E_CELL_DESIGN-standard ).
endif.
This piece of code either changes all the coloumns into one color only why it is not changing the color based upon the condition . I am unable to understand..
Please help me in this...Do i need to some thing else..Solved by creating a new column called cell design ... and settign the set_cell_design_fieldname ...
This solved my Problem .. -
Guys,
I want to display the colour in the ALV output for some records.
please help.
reg,
vijayHi vijay,
1. Not only the full row color,
we can also manipulate the color in each cell.
2.
IMPORTANT THINGS
a. Extra field in internal table
clr TYPE slis_t_specialcol_alv,
(this field will contain the colour codes)
b. assign fieldname to alv layout
alvly-coltab_fieldname = 'CLR'
c. work area for colour
DATA : clrwa TYPE slis_specialcol_alv.
d. Populating the color
Once again
Loop at ITAB.
*********logic
if itab-field < 0 "---negative
clrwa-fieldname = 'FIELDNAME'. "<--- FIELDNAME FOR COLOR
clrwa-color-col = 6. <------- COLOUR 0-9
APPEND clrwa TO itab-clr.
MODIFY ITAB.
endif.
ENDLOOP.
5. just copy paste in new program
6.
REPORT abc .
NECESSARY / MUST
TYPE-POOLS : slis.
DATA : alvfc TYPE slis_t_fieldcat_alv.
DATA : alvly TYPE slis_layout_alv.
ITAB DECLARATION
DATA : prg TYPE sy-repid.
DATA : BEGIN OF itab OCCURS 0.
INCLUDE STRUCTURE t001.
DATA : clname(3) TYPE c,
clr TYPE slis_t_specialcol_alv,
END OF itab.
DATA : clrwa TYPE slis_specialcol_alv.
PARAMETERS : a TYPE c.
DATA : flname TYPE slis_fieldname.
SELECT
START-OF-SELECTION.
SELECT * FROM t001
INTO CORRESPONDING FIELDS OF TABLE itab..
LOOP AT itab..
IF SY-TABIX <= 5.
itab-clname = 'C50'.
ELSE.
itab-clname = 'C30'.
ENDIF.
MODIFY itab.
ENDLOOP.
LOOP AT ITAB.
check itab-bukrs = '1000'
clrwa-fieldname = 'BUTXT'.
clrwa-color-col = 6.
APPEND clrwa TO itab-clr.
MODIFY ITAB.
clrwa-fieldname = 'LAND1'.
clrwa-color-col = 4.
APPEND clrwa TO itab-clr.
MODIFY ITAB.
ENDLOOP.
prg = sy-repid.
flname = 'CLNAME'.
alvly-info_fieldname = 'CLNAME'.
alvly-coltab_fieldname = 'CLR'.
LOOP AT ITAB.
if sy-tabix = 3.
clrwa-fieldname = 'BUTXT'.
clrwa-color-col = 6.
APPEND clrwa TO itab-clr.
MODIFY ITAB.
clrwa-fieldname = 'LAND1'.
clrwa-color-col = 1.
APPEND clrwa TO itab-clr.
MODIFY ITAB.
endif.
ENDLOOP
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = prg
i_internal_tabname = 'ITAB'
i_inclname = prg
CHANGING
ct_fieldcat = alvfc
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
minimum
*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
it_fieldcat = alvfc
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2
extra
sy-uname = 'XYZAB'.
prg = sy-repid.
Excluding
DATA : excl TYPE slis_t_extab.
DATA : exclwa TYPE slis_extab.
exclwa = '&OUP'.
APPEND exclwa TO excl.
exclwa = '&ODN'.
APPEND exclwa TO excl.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
it_fieldcat = alvfc
i_callback_program = sy-repid
is_layout = alvly
i_callback_user_command = 'ITAB_USER_COMMAND'
it_excluding =
excl
i_save = 'A'
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
*& Form itab_user_command
text
-->WHATCOMM text
-->WHATROW text
FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE
slis_selfield.
BREAK-POINT.
ENDFORM. "itab_user_command
regards,
amit m. -
Coloring of Particular Cells in a dynamic internal table(field symbols)
Hi,
I have a requirement to introduce color into some particular cells in a dynamic internal table(Field symbol) based on some conditions.I know that color can be introduced at cell level in the case of static internal table.But, can anybody tell me whether it is possible to introduce color to particular cells in the dynamic internal table(Field Symbol) .Please suggest me on this issue.
Thanks in advance,
RajeshHi,
This is the sample coding for the colour cell report.
Kindly go through it. It will helps u.
REPORT YMS_COLOURTEST .
DATA: BEGIN OF TP OCCURS 10, ID, NR(8), TEXT(255), END OF TP.
DATA: LENGTH TYPE I VALUE 8, " Length of list
TESTSTRING(15) TYPE C VALUE '012345678901234',
WIDTH TYPE I. " Width of list
DATA: TXT_REPORT LIKE DOKHL-OBJECT.
START-OF-SELECTION.
PERFORM HEADING.
PERFORM OUTPUT_BODY.
FORM HEADING.
FORMAT INTENSIFIED OFF. " Remove any INTENSIFIED
ULINE AT (WIDTH). " Upper frame border
FORMAT COLOR COL_HEADING INTENSIFIED." Title color
WRITE: / SY-VLINE. " Left border
WRITE: 'No |Colour |intensified |intensified off|',
'inverse' NO-GAP.
WRITE: AT WIDTH SY-VLINE. " Right border
ULINE AT (WIDTH). " Line below titles
FORMAT COLOR OFF.
ENDFORM.
FORM OUTPUT_BODY.
DO LENGTH TIMES.
PERFORM WRITE_LINE USING SY-INDEX.
ENDDO.
ENDFORM.
FORM WRITE_LINE USING COUNT TYPE I.
DATA: HELP(14) TYPE C,
COUNT1 TYPE I.
COUNT1 = SY-INDEX - 1.
WRITE: / SY-VLINE NO-GAP.
WRITE: (4) COUNT1 COLOR COL_KEY INTENSIFIED NO-GAP.
WRITE: SY-VLINE NO-GAP.
CASE COUNT1.
WHEN '0'.
HELP = 'COL_BACKGROUND'.
WHEN '1'.
HELP = 'COL_HEADING'.
WHEN '2'.
HELP = 'COL_NORMAL'.
WHEN '3'.
HELP = 'COL_TOTAL'.
WHEN '4'.
HELP = 'COL_KEY'.
WHEN '5'.
HELP = 'COL_POSITIVE'.
WHEN '6'.
HELP = 'COL_NEGATIVE'.
WHEN '7'.
HELP = 'COL_GROUP'.
ENDCASE.
WRITE: HELP COLOR COL_KEY INTENSIFIED NO-GAP.
WRITE: SY-VLINE NO-GAP.
WRITE: TESTSTRING COLOR = COUNT1 INTENSIFIED NO-GAP.
WRITE: SY-VLINE NO-GAP.
WRITE: TESTSTRING COLOR = COUNT1 INTENSIFIED OFF NO-GAP.
WRITE: SY-VLINE NO-GAP.
WRITE: TESTSTRING COLOR = COUNT1 INVERSE NO-GAP.
WRITE AT WIDTH SY-VLINE NO-GAP.
ENDFORM.
Thanks,
Shankar -
give me some points on how to generate the dynamic Alv using RTTS and why it is useful to generate this way
Hi ,
Please follow this link
RTTS question
problem with coloring cells in dynamic fieldcatalog
Regards,
Pravin -
Problem in Data Display in Dynamic ALV Report
Hi all,
I am developing a Dynamic ALV report where I want display material batch (zjpack_base-charg) in column and Material (zjpack_base-matnr) & Qty (Zjpack_base-netwr) field row wise.My intention is to show report datewise for a material how many batch developed with there qty.I am sending you the code which i already wrote.Here column is developed batchwise but I am not able to show the qty against each batch.Please see my code and guide me how to display.
REPORT zdynamic_test .
*REPORT ztest_notepad.
*& Declarations
*Type-pools
TYPE-POOLS: slis.
*TABLES
TABLES: zjpack_base.
*Types
TYPES:
ty_fcat TYPE lvc_s_fcat,
ty_fcatalog TYPE slis_fieldcat_alv.
*Work areas
DATA:
wa_fcat TYPE ty_fcat,
wa_fcatalog TYPE ty_fcatalog.
*Internal tables
DATA:
it_fcat TYPE STANDARD TABLE OF ty_fcat,
it_fcatalog TYPE STANDARD TABLE OF ty_fcatalog.
*Type reference
DATA:
it_dyn_tab TYPE REF TO data,
wa_newline TYPE REF TO data.
*INTERNAL TABLE
DATA: BEGIN OF it_itab OCCURS 0.
INCLUDE STRUCTURE zjpack_base.
DATA: END OF it_itab.
*Filed symbols
FIELD-SYMBOLS:
<gt_table> TYPE STANDARD TABLE,
<fs_dyntable>,
<fs_fldval> TYPE ANY,
<l_field> TYPE ANY.
*Variables
DATA:
l_fieldname TYPE lvc_s_fcat-fieldname,
l_tabname TYPE lvc_s_fcat-tabname,
l_fieldtext TYPE lvc_s_fcat-seltext,
l_index TYPE char2.
"Selection-screen
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-s11 .
SELECT-OPTIONS:s_matnr FOR zjpack_base-matnr.
SELECT-OPTIONS:s_charg FOR zjpack_base-charg.
SELECT-OPTIONS:s_fdate FOR zjpack_base-fdate .
SELECTION-SCREEN END OF BLOCK b1.
PARAMETERS:
p_colms TYPE i.
*& start-of-selection.
START-OF-SELECTION.
PERFORM select_data.
PERFORM build_fieldcat.
PERFORM create_dynamic_table.
DO 20 TIMES.
DO p_colms TIMES.
l_index = sy-index.
CONCATENATE 'FIELD' l_index INTO l_fieldname.
ASSIGN COMPONENT l_fieldname OF STRUCTURE <fs_dyntable> TO <l_field>.
<l_field> = sy-index.
ENDDO.
INSERT <fs_dyntable> INTO TABLE <gt_table>.
ENDDO.
LOOP AT it_itab.
l_index = sy-tabix.
CONCATENATE 'FIELD' l_index INTO l_fieldname.
ASSIGN COMPONENT l_fieldname OF STRUCTURE <fs_dyntable> TO <l_field>.
<l_field> = it_itab-matnr.
INSERT <fs_dyntable> INTO TABLE <gt_table>.
ENDLOOP.
LOOP AT it_fcat INTO wa_fcat.
PERFORM fieldcatalog1 USING: wa_fcat-fieldname
wa_fcat-tabname
wa_fcat-seltext.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = 'ZTEST_NOTEPAD'
it_fieldcat = it_fcatalog
TABLES
t_outtab = <gt_table>.
*& Form BUILD_FIELDCAT
FORM build_fieldcat .
CLEAR: l_fieldname,
l_tabname,
l_fieldtext,
l_index.
DO p_colms TIMES.
CLEAR l_index.
l_index = sy-index.
CONCATENATE 'FIELD' l_index INTO l_fieldname.
CONCATENATE 'Field' l_index INTO l_fieldtext.
l_tabname = '<GT_TABLE>'.
PERFORM fieldcatalog USING: l_fieldname
l_tabname
l_fieldtext.
ENDDO.
ENDFORM. " BUILD_FIELDCAT
*& Form CREATE_DYNAMIC_TABLE
FORM create_dynamic_table .
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fcat
IMPORTING
ep_table = it_dyn_tab.
ASSIGN it_dyn_tab->* TO <gt_table>.
Create dynamic work area and assign to FS
CREATE DATA wa_newline LIKE LINE OF <gt_table>.
ASSIGN wa_newline->* TO <fs_dyntable>.
ENDFORM. " CREATE_DYNAMIC_TABLE
*& Form FIELDCATALOG
FORM fieldcatalog USING field table f_txt.
wa_fcat-fieldname = field.
wa_fcat-tabname = table.
wa_fcat-seltext = f_txt.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
ENDFORM. " FIELDCATALOG
*& Form FIELDCATALOG1
FORM fieldcatalog1 USING field table f_txt.
wa_fcatalog-fieldname = field.
wa_fcatalog-tabname = table.
wa_fcatalog-seltext_m = f_txt.
APPEND wa_fcatalog TO it_fcatalog.
CLEAR wa_fcatalog.
ENDFORM. " FIELDCATALOG1
*& Form SELECT_DATA
text
--> p1 text
<-- p2 text
FORM select_data .
DATA: v_srlno TYPE i.
SELECT matnr charg blqty
INTO CORRESPONDING FIELDS OF it_itab
FROM zjpack_base
WHERE matnr IN s_matnr
AND charg IN s_charg
AND fdate IN s_fdate.
COLLECT it_itab.
ENDSELECT.
v_srlno.
LOOP AT it_itab.
v_srlno = v_srlno + 1.
ENDLOOP.
CLEAR: l_fieldname,
l_tabname,
l_fieldtext,
l_index.
1st Field
l_index = sy-tabix.
CONCATENATE 'FIELD' '1' INTO l_fieldname.
l_fieldtext = 'MATNR'.
l_tabname = '<GT_TABLE>'.
PERFORM fieldcatalog USING: l_fieldname
l_tabname
l_fieldtext.
Other fields
LOOP AT it_itab.
CLEAR l_index.
l_index = sy-tabix + 1.
CONCATENATE 'FIELD' l_index INTO l_fieldname.
CONCATENATE 'CHARG-' it_itab-charg INTO l_fieldtext.
l_tabname = '<GT_TABLE>'.
PERFORM fieldcatalog USING: l_fieldname
l_tabname
l_fieldtext.
ENDLOOP.
Please guide me how my problem will solve.
Thanks & Regards
NirmalHi all, I am developing a Dynamic ALV report where I want display material batch (zjpack_base-charg) in column and Material (zjpack_base-matnr) & Qty (Zjpack_base-netwr) field row wise.My intention is to show report datewise for a material how many batch developed with there qty.I am sending you the code which i already wrote.Here column is developed batchwise but I am not able to show the qty against each batch.Please see my code and guide me how to display.
*& Report ZDYNAMIC_TEST *
REPORT zdynamic_test .
*REPORT ztest_notepad.
*& Declarations
*Type-pools
TYPE-POOLS: slis.
*TABLES
TABLES: zjpack_base.
*Types
TYPES:
ty_fcat TYPE lvc_s_fcat,
ty_fcatalog TYPE slis_fieldcat_alv.
*Work areas
DATA:
wa_fcat TYPE ty_fcat,
wa_fcatalog TYPE ty_fcatalog.
*Internal tables
DATA:
it_fcat TYPE STANDARD TABLE OF ty_fcat,
it_fcatalog TYPE STANDARD TABLE OF ty_fcatalog.
*Type reference
DATA:
it_dyn_tab TYPE REF TO data,
wa_newline TYPE REF TO data.
*INTERNAL TABLE
DATA: BEGIN OF it_itab OCCURS 0.
INCLUDE STRUCTURE zjpack_base.
DATA: END OF it_itab.
*Filed symbols
FIELD-SYMBOLS:
<gt_table> TYPE STANDARD TABLE,
<fs_dyntable>,
<fs_fldval> TYPE ANY,
<l_field> TYPE ANY.
*Variables
DATA:
l_fieldname TYPE lvc_s_fcat-fieldname,
l_tabname TYPE lvc_s_fcat-tabname,
l_fieldtext TYPE lvc_s_fcat-seltext,
l_index TYPE char2.
"Selection-screen
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-s11 .
SELECT-OPTIONS:s_matnr FOR zjpack_base-matnr.
SELECT-OPTIONS:s_charg FOR zjpack_base-charg.
SELECT-OPTIONS:s_fdate FOR zjpack_base-fdate .
SELECTION-SCREEN END OF BLOCK b1.
PARAMETERS:
p_colms TYPE i.
*& start-of-selection.
START-OF-SELECTION.
PERFORM select_data.
PERFORM build_fieldcat.
PERFORM create_dynamic_table.
* DO 20 TIMES.
* DO p_colms TIMES.
* l_index = sy-index.
* CONCATENATE 'FIELD' l_index INTO l_fieldname.
* ASSIGN COMPONENT l_fieldname OF STRUCTURE <fs_dyntable> TO <l_field>.
* <l_field> = sy-index.
* ENDDO.
* INSERT <fs_dyntable> INTO TABLE <gt_table>.
* ENDDO.
LOOP AT it_itab.
l_index = sy-tabix.
CONCATENATE 'FIELD' l_index INTO l_fieldname.
ASSIGN COMPONENT l_fieldname OF STRUCTURE <fs_dyntable> TO <l_field>.
<l_field> = it_itab-matnr.
INSERT <fs_dyntable> INTO TABLE <gt_table>.
ENDLOOP.
LOOP AT it_fcat INTO wa_fcat.
PERFORM fieldcatalog1 USING: wa_fcat-fieldname
wa_fcat-tabname
wa_fcat-seltext.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = 'ZTEST_NOTEPAD'
it_fieldcat = it_fcatalog
TABLES
t_outtab = <gt_table>.
*& Form BUILD_FIELDCAT
FORM build_fieldcat .
* CLEAR: l_fieldname,
* l_tabname,
* l_fieldtext,
* l_index.
* DO p_colms TIMES.
* CLEAR l_index.
* l_index = sy-index.
* CONCATENATE 'FIELD' l_index INTO l_fieldname.
* CONCATENATE 'Field' l_index INTO l_fieldtext.
* l_tabname = '<GT_TABLE>'.
* PERFORM fieldcatalog USING: l_fieldname
* l_tabname
* l_fieldtext.
* ENDDO.
ENDFORM. " BUILD_FIELDCAT
*& Form CREATE_DYNAMIC_TABLE
FORM create_dynamic_table .
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fcat
IMPORTING
ep_table = it_dyn_tab.
ASSIGN it_dyn_tab->* TO <gt_table>.
* Create dynamic work area and assign to FS
CREATE DATA wa_newline LIKE LINE OF <gt_table>.
ASSIGN wa_newline->* TO <fs_dyntable>.
ENDFORM. " CREATE_DYNAMIC_TABLE
*& Form FIELDCATALOG
FORM fieldcatalog USING field table f_txt.
wa_fcat-fieldname = field.
wa_fcat-tabname = table.
wa_fcat-seltext = f_txt.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
ENDFORM. " FIELDCATALOG
*& Form FIELDCATALOG1
FORM fieldcatalog1 USING field table f_txt.
wa_fcatalog-fieldname = field.
wa_fcatalog-tabname = table.
wa_fcatalog-seltext_m = f_txt.
APPEND wa_fcatalog TO it_fcatalog.
CLEAR wa_fcatalog.
ENDFORM. " FIELDCATALOG1
*& Form SELECT_DATA
* text
* --> p1 text
* <-- p2 text
FORM select_data .
* DATA: v_srlno TYPE i.
SELECT matnr charg blqty
INTO CORRESPONDING FIELDS OF it_itab
FROM zjpack_base
WHERE matnr IN s_matnr
AND charg IN s_charg
AND fdate IN s_fdate.
COLLECT it_itab.
ENDSELECT.
* v_srlno.
* LOOP AT it_itab.
* v_srlno = v_srlno + 1.
* ENDLOOP.
CLEAR: l_fieldname,
l_tabname,
l_fieldtext,
l_index.
* 1st Field
* l_index = sy-tabix.
CONCATENATE 'FIELD' '1' INTO l_fieldname.
l_fieldtext = 'MATNR'.
l_tabname = '<GT_TABLE>'.
PERFORM fieldcatalog USING: l_fieldname
l_tabname
l_fieldtext.
* Other fields
LOOP AT it_itab.
CLEAR l_index.
l_index = sy-tabix + 1.
CONCATENATE 'FIELD' l_index INTO l_fieldname.
CONCATENATE 'CHARG-' it_itab-charg INTO l_fieldtext.
l_tabname = '<GT_TABLE>'.
PERFORM fieldcatalog USING: l_fieldname
l_tabname
l_fieldtext.
ENDLOOP.
ENDFORM. " SELECT_DATA -
Dynamic ALV and cl_abap_structdescr Create method
Hi
In the process of creation of Dynamic ALV, as I have char_name and char_descr fields, I have to use char_descr as column header of ALV because char_name which has entries something like DVS_******(that do not make any sense to user). I am facing 2 problems here using the scenario above.
1. char_descr contains characters like '[', ']', ' /', '.', space which are invalid characters for method cl_abap_structdescr=>create(). How to handle scenario like this?
2. assign (lv_value) to <value>.
if sy-subrc = 0.
<value> = ls_bapi_char_value-charvalue.
if <value> is assigned.
move ls_bapi_char_value-charvalue to <value>.
where-> concatenate '<table_dyn_wa>-' ls_bapi_char-char_descr into lv_value
<value> type any
<table_dyn_wa>- is dynamic table with structure created with cl_abap_tabledescr=>create( p_line_type = stru_type )
with above code for few fields data is being assigned and for few sy-subrc = 4. The table from where I am reading the field contains char_name associated with it and not char_descr. For the fields whose char_name and char_descr matches exactly, ALV displays data for it.
How to resolve the issue so that I could get all the data?
Let me know if further details are needed.
Thanks, in advance
Trupti
Edited by: TRUPTI KALLURWAR on Jul 9, 2010 7:08 PMHello Srikanth,
CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE( ) uses the GENERATE SUBROUTINE POOL technique to create the dynamic internal tables.
And as per the SAP documentation,
In an internal mode, a maximum of 36 temporary subroutine pools may be created.
Source: [http://help.sap.com/abapdocu_702/en/abapgenerate_subroutine_pool.htm]
Btw why are you crating 36 dynamic internal table? That's way too far-fetched even for the RTTC classes
BR,
Suhas -
Problem in Dynamic ALV - inserting values in proper field of a table.
Hi gurus,
As per the user requirement I need to create a dynamic alv report. The fields will be display according to the period entered.
I have already build the alv and it is working fine. But My questio is how can I append data into internal table in its proper field.
suppose I have enter period 1 to 3 in selection screen. Then my table structure will be
JAN | FEB | MAR
Upto this is is working fine, fields are generated dynamically , but how can I insert data only in perticular field.
like
itab-JAN = 001.
itab-FEB = 002.
itab-MAR = 003.
append itab
JAN | FEB | MAR
001 002 003
Please give me a solution of that. waiting for reply.hI,
loop at <dyn_table> assigning <wa>.
lv_count = 001.
*perform get_short_tet of month in a varibale say lv_var
assign component LV_VAR of structure <wa> to <dyn_field1>.
<dyn_field1> = lv_count.
lv_count = lv_count + 1.
endloop.
Regards,
mrunal
Edited by: Mrunal Shyamkant Patki on Nov 5, 2009 10:53 AM
Edited by: Mrunal Shyamkant Patki on Nov 5, 2009 10:54 AM -
How to change Table Cell Field Type Dynamically?
Hi All,
I am fetching some news data from backend DB and displaying them in a WD Table. Now one News Item may or may not have a URL behind it. If I find the URL as null then I want to display the news as simple TextView otherwise as LinkToUrl. How can I change this input type dynamically for each row in the runtime?
If I use LinkToUrl all the time then the items which has URL as null gets displayed as normal text, but they are of very faint color and I can not change the text design. Whether if I user TextView I can set some text design like Header2, Header 3 etc.
Can anybody please help with some code block? My main requirement is how to change the table cell input type dynamically.
Thanks in Advance.
ShubhadipHi Shubhadip,
This is the sample code for creating and adding a table cell editor table dynamically.
public static void wdDoModifyView
(IPrivateDynamicTableCreationView wdThis, IPrivateDynamicTableCreationView.IContextNode wdContext, com.sap.tc.webdynpro.progmodel.api.IWDView view, boolean firstTime)
//@@begin wdDoModifyView
/*** 1.Create Table **/
IWDTable table =
(IWDTable) view.createElement(IWDTable.class, "table1");
table.setWidth("100%");
table.setVisibleRowCount(data.length);
/*** 2.Create nameColumn **/
IWDTableColumn nameColumn =
(IWDTableColumn) view.createElement(IWDTableColumn.class, "Name");
IWDCaption colHeader =
(IWDCaption) view.createElement(IWDCaption.class, "NameHeader");
colHeader.setText("¼O");
nameColumn.setHeader(colHeader);
IWDTextView nameViewer =
(IWDTextView) view.createElement(IWDTextView.class, "NameViewer");
nameViewer.bindText(nameAtt);
IWDTableCellEditor editor = (IWDTableCellEditor) nameViewer;
nameColumn.setTableCellEditor(editor);
table.addColumn(nameColumn);
IWDTableColumn nationalityColumn =
(IWDTableColumn) view.createElement(
IWDTableColumn.class,
"Nationality");
IWDTableCellEditor nationalityEditor =
(IWDTableCellEditor) nationalityViewer;
nationalityColumn.setTableCellEditor(nationalityEditor);
table.addColumn(nationalityColumn);
/** 3. Bind context to table **/
table.bindDataSource(nodeInfo);
//@@end
Bala
Kindly reward appropriate points. -
Problem in print out of Dynamic ALV
Hi ,
I am using dynamic ALV to address a requirement. The ALV is working fine and the output is also coming corretly, even in spool.
But if the width of dynamic table exceeds a limit, then nothing is coming in the print out.
If anyone has faced similar problem or knows how to tackle this problem, please advise what can be done here.
Thanks,
SonalHi,
Can you try to increase field with to maximun as per your requirement.
Regards,
Sai
Maybe you are looking for
-
How to call COPY web service from sharepoint in SAP
Hello Experts, I want to call COPY web service from SharePoint in SAP web dynpro / JAVA application. However, when I try to connect to web service and download wsdl using http:// <hostname:port>/_vti_bin/copy.asmx?wsdl it results in Unauthorized e
-
Hello! I am trying to set up family sharing option on my iMac, running on iOS Yosemite. After being prompted for password and entering it, the password window keeps appearing over and over again. There is no error message nor is my password incorrect
-
Hello, I'm a IT Consultant. One of our users has lost their calendar entries from 2013 August and older. We do have a recovery solution to get this data back, but to prevent this from ever happening again. Is there a option to do so? What we so far f
-
FTP - FCC - GUILDFTPd - Unable to pick up multiple files with Wildcard char
Hi All, I am not sure if my issue is strange or i may be missing something here. I am using FTP - FCC and using GUILDFTPd to connect to my local machine. This is working perfect if i don't use wildcard characters in file name but if i use them it is
-
HELP!!! How do I return my ibook?????
So some people may have seen my other posts about my non-working AC Adapter (or the part where it plugs into the ibook). How do I contact Apple for tech support, to send in my ibook and get them to fix it/replace it/ or any parts on it... I JUST boug