‎2008 Apr 14 4:31 AM
Hi,
How can one dynamically hide a column of a given table control? Say youhave a three-column table and at run time you only want to show columns1 and 3. How do you hide column 2 programmatically?
Regards,
Pranshu
‎2008 Apr 14 4:44 AM
loop at screen.
if screen-name = 'SCREEN_FIELD2'. " Column 2
screen-active = 0.
modify screen.
endif.
endloop.This set of statements should be incluced in the PBO of the table control loop module...
Regards
Gopi
‎2008 Apr 14 5:35 AM
Hi Gopi,
I think you have not read the query properly , it is about hiding a column in table control not on screen
Loop at screen will never work on table control.
Regards,
Pranshu
‎2008 Apr 14 6:22 AM
so , did u mean that u dont have a screen for a table control,
if so how did u place ur table control. and where?
Generally a table control is placed on a screen.
see the below examples
DEMO_DYNPRO_TABCONT_LOOP
DEMO_DYNPRO_TABCONT_LOOP_AT
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
LOOP WITH CONTROL FLIGHTS. " assuming FLIGHTS is the table control name.
MODULE FILL_TABLE_CONTROL.
ENDLOOP.Now in the module fill_table_Control , you should be writing the code which i mentioned in my above post.
Regards
Gopi
‎2008 Apr 14 6:57 AM
Hi,
put an 'X' in the no_out field of the field catalog of your alv for each column that you want hidden. do this on the PBO module of your program.
Regars,
Peter
‎2008 Apr 14 4:55 AM
hi,
we have a type group for table control ...
cxtab ...
CXTAB_CONTROL type scxtab_control,
just double click on ... scxtab_control,
double click on cols ... u get all the field relating to Columns of Table control ...
Just mention in the PBO ...
loop at screen.
if cols-index = 2.
cols-invisible = 'X'.
endif.
‎2008 Apr 14 5:08 AM
Hi Pranshu,
we can disable the column by making it display only
Now assume the name of your table control is ZTABLECONT..double click on the screen painter on the table control..these 2 names must be the same....
if you need to disable columns of table control as a part of user action..like say click of a button..it can be entered in PAI by checking the sy-ucomm
data declaration:
data : cols like line of ZTABLECONT-cols.
Case sy-ucomm.
when 'PUSH'.
loop at ZTABLECONT-cols into cols.
if cols-screen-input = '1'.
cols-screen-input = '0'.
endif.
modify ZTABLECONT-cols from cols index sy-tabix.
endloop.
endcase.
This will disable all the columns
for a particular column do the following
For this imagine you have 5 columns
in the below code
index = 1 => column 1
index = 2 => column 2
index = 3 => column 3
index = 4 => column 4
index = 5 => column 5
in the below code , only column2 will be disabled....
so whicever column you want to disable ..just give the index
for multiple disabling..just write the code accordingly
LOOP AT ZTABLECONT-cols INTO cols WHERE index = 2.
IF cols-screen-input = '1'.
cols-screen-input = '0'.
ENDIF.
MODIFY ZTABLECONT-cols FROM cols INDEX sy-tabix.
ENDLOOP.
Pls check and revert...the code works and is being used in active code and close the thread if issue is solved
<REMOVED BY MODERATOR>
Regards
Byju
Edited by: Alvaro Tejada Galindo on Apr 14, 2008 6:24 PM