12-31-2007 11:50 AM
Hi experts,
how to hide fields from the alv reports when the calculated value is zero.
Eg: In the ALV report iam calculating the unrestricted stock + quality stock + blocked.
When unrestricted stock + quality stock + blocked = 0 Alv report should hide the fields in the list for the particular.
Thanks in advance.
12-31-2007 11:57 AM
Hi,
IF val2 <> space.
*
wa_fldcat-col_pos = c_1.
wa_fldcat-fieldname = text-033. "DMBTR2'.
wa_fldcat-seltext_l = v_field.
wa_fldcat-tabname = text-014.
wa_fldcat-outputlen = c_19.
wa_fldcat-do_sum = c_x.
APPEND wa_fldcat TO i_fldcat.
CLEAR : wa_fldcat , v_field.
c_1 = c_1 + 1.
ENDIF.
*
IF val3 <> space.
wa_fldcat-col_pos = c_1.
wa_fldcat-fieldname = text-034. "DMBTR3
wa_fldcat-seltext_l = v_field .
wa_fldcat-tabname = text-014.
wa_fldcat-outputlen = c_19.
wa_fldcat-do_sum = c_x.
APPEND wa_fldcat TO i_fldcat.
CLEAR: wa_fldcat, v_field.
c_1 = c_1 + 1.
Here c_1 is value 1,
here val2/val3 is parameter value
Now you give in place of var2/val3 variable and try, if that one contains value, then only the field will be displayed.
try like this.
IF useful award points. i am sure definately it will be helpful to you.
Regs
Rams
12-31-2007 12:44 PM
Hi,
i hope the following code is useful,
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,
FIELS_STYLE TYPE LVC_T_STYL, "FOR DISABLE
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.
DATA: IT_FIELDCAT TYPE LVC_T_FCAT, "slis_t_fieldcat_alv WITH HEADER LINE,
WA_FIELDCAT TYPE LVC_S_FCAT,
GD_TAB_GROUP TYPE slis_t_sp_group_alv,
GD_LAYOUT TYPE LVC_S_LAYO, "slis_layout_alv,
GD_REPID LIKE SY-REPID.
************************************************************************
*Start-of-selection.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM SET_SPECIFIC_FIELD_ATTRIBUTES.
PERFORM BUILD_FIELDCATALOG.
PERFORM BUILD_LAYOUT.
PERFORM DISPLAY_ALV_REPORT.
&----
*& Form BUILD_FIELDCATALOG
&----
Build Fieldcatalog for ALV Report
----
FORM BUILD_FIELDCATALOG.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SCRTEXT_M = 'Purchase Order'.
WA_FIELDCAT-COL_POS = 0.
WA_FIELDCAT-OUTPUTLEN = 10.
WA_FIELDCAT-EMPHASIZE = 'X'.
WA_FIELDCAT-KEY = 'X'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'EBELP'.
WA_FIELDCAT-SCRTEXT_M = 'PO Item'.
WA_FIELDCAT-COL_POS = 1.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'STATU'.
WA_FIELDCAT-SCRTEXT_M = 'Status'.
WA_FIELDCAT-COL_POS = 2.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'AEDAT'.
WA_FIELDCAT-SCRTEXT_M = 'Item change date'.
WA_FIELDCAT-COL_POS = 3.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-SCRTEXT_M = 'Material Number'.
WA_FIELDCAT-COL_POS = 4.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'MENGE'.
WA_FIELDCAT-SCRTEXT_M = 'PO quantity'.
WA_FIELDCAT-COL_POS = 5.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'MEINS'.
WA_FIELDCAT-SCRTEXT_M = 'Order Unit'.
WA_FIELDCAT-COL_POS = 6.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'NETPR'.
WA_FIELDCAT-SCRTEXT_M = 'Net Price'.
WA_FIELDCAT-EDIT = 'X'. "sets whole column to be editable
WA_FIELDCAT-COL_POS = 7.
WA_FIELDCAT-OUTPUTLEN = 15.
WA_FIELDCAT-DATATYPE = 'CURR'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'PEINH'.
WA_FIELDCAT-SCRTEXT_M = 'Price Unit'.
WA_FIELDCAT-COL_POS = 8.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. " BUILD_FIELDCATALOG
&----
*& Form BUILD_LAYOUT
&----
Build layout for ALV grid report
----
FORM BUILD_LAYOUT.
Set layout field for field attributes(i.e. input/output)
GD_LAYOUT-STYLEFNAME = 'FIELD_STYLE'.
GD_LAYOUT-ZEBRA = 'X'.
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'
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = GD_REPID
i_callback_user_command = 'USER_COMMAND'
is_layout_lvc = GD_LAYOUT
it_fieldcat_lvc = IT_FIELDCAT
i_save = 'X'
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.
SELECT EBELN EBELP STATU AEDAT MATNR MENGE MEINS NETPR PEINH
UP TO 10 ROWS
FROM EKPO
INTO CORRESPONDING FIELDS OF TABLE IT_EKKO.
ENDFORM. " DATA_RETRIEVAL
&----
*& Form set_specific_field_attributes
&----
populate FIELD_STYLE table with specific field attributes
----
FORM SET_SPECIFIC_FIELD_ATTRIBUTES .
DATA LS_STYLEROW TYPE LVC_S_STYL .
DATA lt_styletab TYPE lvc_t_styl .
Populate style variable (FIELD_STYLE) with style properties
*
The NETPR field/column has been set to editable in the fieldcatalog...
The following code sets it to be disabled(display only) if 'NETPR'
is gt than 10.
LOOP AT IT_EKKO INTO WA_EKKO.
IF WA_EKKO-NETPR GT 10.
LS_STYLEROW-FIELDNAME = 'NETPR' .
LS_STYLEROW-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
"set field to disabled
APPEND LS_STYLEROW TO WA_EKKO-FIELS_STYLE.
MODIFY IT_EKKO FROM WA_EKKO.
ENDIF.
ENDLOOP.
endform.
reward points,if it is helpful.
Thank you
chandu.