2005 Dec 09 1:01 PM
Hi, All!
I have created dynamic internal table (using field catalog and CALL METHOD cl_alv_table_create=>create_dynamic_table )
and put this table into FM REUSE_ALV_GRID_DISPLAY. ALV grid work. Now I need to color rows of my ALV, therefore I have to insert new column with name "COLORS" and type lvc_t_scol. I see three ways to do it , but all ones are unsuccessful:
1. Insert column into field catalog. FM REUSE_ALV_FIELDCATALOG_MERGE does not return info about "COLORS" I guess because COLORS is a table.
2. Insert column into field catalog manually. It provides a short dump during dynamic table creating or during call of REUSE_ALV_GRID_DISPLAY.
3. Create dyn table first, then add new field . I could not find a way how to do it :(((((((
Can somebody help me?
Tatiana
2005 Dec 09 1:22 PM
Hi,
Are you doing some thing like the following and still it is not working?
Add cell color table.
CALENDAR_TYPE is a structure in the dictionary with a
field called COLTAB of type LVC_T_SCOL. You can use
any structure and field that has the type LVC_T_SCOL.
wa_fieldcat-fieldname = 'T_CELLCOLORS'.
wa_fieldcat-ref_field = 'COLTAB'.
wa_fieldcat-ref_table = 'CALENDAR_TYPE'.
APPEND wa_fieldcat TO t_fieldcat1.
And then call to cl_alv_table_create=>create_dynamic_table ..
rest of the code..
And do not forget to mention it in your Layout structure's
COLTAB_FNAME field..
Infact Check the following link, very useful..
Hope this helps..
Sri
Message was edited by: Srikanth Pinnamaneni
Hi,
Are you doing some thing like the following and still it is not working?
Add cell color table.
CALENDAR_TYPE is a structure in the dictionary with a
field called COLTAB of type LVC_T_SCOL. You can use
any structure and field that has the type LVC_T_SCOL.
wa_fieldcat-fieldname = 'T_CELLCOLORS'.
wa_fieldcat-ref_field = 'COLTAB'.
wa_fieldcat-ref_table = 'CALENDAR_TYPE'.
APPEND wa_fieldcat TO t_fieldcat1.
And then call to cl_alv_table_create=>create_dynamic_table ..
rest of the code..
And do not forget to mention it in your Layout structure's
COLTAB_FNAME field..
Infact Check the following link, very useful..
Hope this helps..
Sri
Message was edited by: Srikanth Pinnamaneni
2005 Dec 09 1:22 PM
Hi,
Are you doing some thing like the following and still it is not working?
Add cell color table.
CALENDAR_TYPE is a structure in the dictionary with a
field called COLTAB of type LVC_T_SCOL. You can use
any structure and field that has the type LVC_T_SCOL.
wa_fieldcat-fieldname = 'T_CELLCOLORS'.
wa_fieldcat-ref_field = 'COLTAB'.
wa_fieldcat-ref_table = 'CALENDAR_TYPE'.
APPEND wa_fieldcat TO t_fieldcat1.
And then call to cl_alv_table_create=>create_dynamic_table ..
rest of the code..
And do not forget to mention it in your Layout structure's
COLTAB_FNAME field..
Infact Check the following link, very useful..
Hope this helps..
Sri
Message was edited by: Srikanth Pinnamaneni
2005 Dec 09 1:35 PM
Hi, Srikanth
IT WORKS NOW! Hurra ! Thank you !
Tatiana
2005 Dec 09 1:52 PM
Hi,
Here is the solution for this problem, Sample code:
&----
*& Report ZCHA_ALV_GRID_CELL_COLOR *
*& *
&----
*& *
*& *
&----
REPORT ZCHA_ALV_GRID_CELL_COLOR .
TABLES:MARA.
DATA: W_CONTAINER TYPE SCRFNAME VALUE 'ALV_CONTAINER',
W_GRID TYPE REF TO CL_GUI_ALV_GRID,
W_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
W_EVENT_RECEIVER TYPE REF TO LCL_EVENT_RECEIVER.
*layout
DATA: WA_LAYOUT TYPE LVC_S_LAYO.
*field catalog
DATA: IT_FIELDCAT_WRT_OFF TYPE LVC_T_FCAT,
WA_FIELDCAT_WRT_OFF TYPE LVC_S_FCAT.
DATA:BEGIN OF IT_MARA OCCURS 0,
MATNR LIKE MARA-MATNR,
MAKTX LIKE MAKT-MAKTX,
CELLCOLORS TYPE LVC_T_SCOL,
END OF IT_MARA.
SELECT P~MATNR
Q~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MARA
FROM MARA AS P INNER JOIN
MAKT AS Q ON
PMATNR = QMATNR.
CALL SCREEN 100.
&----
*& Module STATUS_0100 OUTPUT
&----
text
----
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'STATUS'.
SET TITLEBAR 'xxx'.
IF NOT W_CONTAINER IS INITIAL.
CREATE OBJECT W_CUSTOM_CONTAINER
EXPORTING CONTAINER_NAME = W_CONTAINER.
CREATE OBJECT W_GRID
EXPORTING I_PARENT = W_CUSTOM_CONTAINER.
ENDIF.
CLEAR IT_FIELDCAT_WRT_OFF.
REFRESH IT_FIELDCAT_WRT_OFF.
WA_FIELDCAT_WRT_OFF-FIELDNAME = 'MATNR'.
WA_FIELDCAT_WRT_OFF-COL_POS = '1'.
WA_FIELDCAT_WRT_OFF-OUTPUTLEN = '35'.
WA_FIELDCAT_WRT_OFF-SCRTEXT_L = 'Material No'.
APPEND WA_FIELDCAT_WRT_OFF TO IT_FIELDCAT_WRT_OFF.
CLEAR WA_FIELDCAT_WRT_OFF.
WA_FIELDCAT_WRT_OFF-FIELDNAME = 'MAKTX'.
WA_FIELDCAT_WRT_OFF-COL_POS = '2'.
WA_FIELDCAT_WRT_OFF-OUTPUTLEN = '45'.
WA_FIELDCAT_WRT_OFF-SCRTEXT_L = 'Material Desc'.
APPEND WA_FIELDCAT_WRT_OFF TO IT_FIELDCAT_WRT_OFF.
CLEAR WA_FIELDCAT_WRT_OFF.
DATA LS_CELLCOLOR TYPE LVC_S_SCOL.
READ TABLE IT_MARA INDEX 5 .
LS_CELLCOLOR-FNAME = 'MATNR'.
LS_CELLCOLOR-COLOR-COL = '3'.
LS_CELLCOLOR-COLOR-INT = '1'.
APPEND LS_CELLCOLOR TO IT_MARA-CELLCOLORS.
MODIFY IT_MARA INDEX 5.
WA_LAYOUT-CTAB_FNAME = 'CELLCOLORS'.
CALL METHOD W_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_LAYOUT = WA_LAYOUT
CHANGING
IT_FIELDCATALOG = IT_FIELDCAT_WRT_OFF
IT_OUTTAB = IT_MARA[].
ENDMODULE. " STATUS_0100 OUTPUT
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
Try to assign appropriate points.
Regards,
Suman
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |