Suppress all the superfluous columns in a table, leaving only the few we want
Use the GetFieldAttribute statement in a loop over all columns

In transaction IW32 (Change Service Order) the service order operations are displayed in a table control with 89 columns:

For a particular application we only want to display 6 columns so that the user does not need to scroll horizontally and search the columns that he needs:

Instead of deleting 83 columns by their individual names we use a loop over all columns and exclude the ones that we want to keep. In addition we set some layout properties for the remaining columns:

GuiXT Script 

if Q[Transaction=IW32] and Q[Page=Operations]

  // column index
  Set V[k] 0

  label next_column
Set V[k] &V[k] + 1
GetFieldAttribute [table,&V[k]] techname="colname"

  if Q[ok]

    // columns to be shown
        if V[colname=AFVGD-VORNR] _
    or V[colname=AFVGD-LTXA1] _
or V[colname=AFVGD-ARBEI] _
    or V[colname=AFVGD-ARBEH] _
    or V[colname=AFVGD-FSAVD] _
    or V[colname=AFVGD-FSAVZ]

    goto next_column


   // suppress all other columns
      ColumnSize [table,&V[k]] 0

      goto next_column


   // column order
  ColumnOrder [Table,AFVGD-VORNR] 1
  ColumnOrder [Table,AFVGD-FSAVD] 2
  ColumnOrder [Table,AFVGD-FSAVZ] 3

    // column width
  ColumnWidth [Table,AFVGD-FSAVD] 12
ColumnWidth [Table,AFVGD-FSAVZ] 12
  ColumnWidth [Table,AFVGD-ARBEH] 6

   // column header
  ColumnHeader [Table,AFVGD-ARBEH] "Unit"