Hi Saran,
If possible inputs are going to be fixed as you have specified, then create 3 flgas for each input condition based on input values. After creating flag, modify fieldcatalog to hide respective fields. Check below example:
DATA: LV_FLAG1 TYPE C,
LV_FLAG2 TYPE C,
LV_FLAG3 TYPE C.
***Create flags
READ TABLE S_AUART WITH KEY LOW = 'ZONC'.
IF SY-SUBRC = 0.
CLEAR: LV_FLAG1, LV_FLAG2, LV_FLAG3.
LV_FLAG1 = 'X'. "If only 'ZONC'
READ TABLE S_AUART WITH KEY LOW = 'ZCRN'.
IF SY-SUBRC = 0.
READ TABLE S_AUART WITH KEY LOW = 'ZCRP'.
IF SY-SUBRC = 0.
CLEAR: LV_FLAG1, LV_FLAG2, LV_FLAG3.
LV_FLAG3 = 'X'. "ZCRN, ZCRP and ZONC
ENDIF.
ENDIF.
ELSE.
READ TABLE S_AUART WITH KEY LOW = 'ZCRN'.
IF SY-SUBRC = 0.
READ TABLE S_AUART WITH KEY LOW = 'ZCRP'.
IF SY-SUBRC = 0.
CLEAR: LV_FLAG1, LV_FLAG2, LV_FLAG3.
LV_FLAG2 = 'X'. "ZCRN, ZCRP
ENDIF.
ENDIF.
ENDIF.
*Modify Field catalog
IF LV_FLAG1 = 'X'.
LOOP AT IT_FLDCAT INTO WA_FLDCAT WHERE FIELDNAME = 'fld1'
OR FIELDNAME = 'fld2'.
WA_FLDCAT-NO_OUT = 'X'.
MODIFY IT_FLDCAT FROM WA_FLDCAT.
CLEAR WA_FLDCAT.
ENDLOOP.
ELSEIF LV_FLAG2 = 'X'.
LOOP AT IT_FLDCAT INTO WA_FLDCAT WHERE FIELDNAME = 'fld3'
OR FIELDNAME = 'fld4'.
WA_FLDCAT-NO_OUT = 'X'.
MODIFY IT_FLDCAT FROM WA_FLDCAT.
CLEAR WA_FLDCAT.
ENDLOOP.
ELSEIF LV_FLAG3 = 'X'.
LOOP AT IT_FLDCAT INTO WA_FLDCAT WHERE FIELDNAME = 'fld5'
OR FIELDNAME = 'fld5'.
WA_FLDCAT-NO_OUT = 'X'.
MODIFY IT_FLDCAT FROM WA_FLDCAT.
CLEAR WA_FLDCAT.
ENDLOOP.
ENDIF.