ALV or Abap List Viewer is the only way to do your reporting. Never mind the
WRITE statement, forget all about making a "classic list" report interactive, just move towards modern reporting: the ALV list. It looks like an Excel spreadsheet, it allows the end user to sort, filter, customize column settings and even make these settings default specifically for the end user. If you are still thinking of composing a report with
WRITE - think again, as ALV is a much better and faster alternative.
It transforms the data from a report into a setup with cells of data, which is used quite a lot in standard SAP applications as well. A typical example is transaction SM31, which is in effect an ALV grid control with editing capabilities.