The easiest and shortest way to get Abap coding to do something for you is this coding:

WRITE: 'Hello world'.

The WRITE statement is an ancient one, reports can be composed with it and where ALV has not taken over yet, the write statement is still used quite a bit. Let's not completely let go of this just yet. If you need a simple report stating what your interface did just so a background job log is backed by a little reported output - the simplicity of WRITE can be great.

There's this thing about WRITE that requires something in writing. Just to explain, just to clarify. The WRITE statement is a trigger to an output type that makes it - one of it's kind. Want to know why and how ? Read on.

Once reporting output is displayed, you may want to refresh this reported output without having the user restart your report. There's remarkably little to it... The WRITE statements that are used set up a report are outputted all at once when the last WRITE is finished. Using the WRITE after that (E.g. after AT LINE-SELECTION will start a new reporting "layer".

If it is a little extra you need in your report, you could simply use the WRITE lists in a popup. From a report, a module pool, from ALV, from anywhere you like. 

When the user double clicks on a vendor number, the display vendor transaction is called presenting the vendor to your end user. How should a double click be caught ? A simple report example.

Allow the end user to select what he or she wants via checkboxes in the report. Presenting a nice overview in a report sometimes needs a multi line selection mechanism, for which checkboxes can be the solution. Check out a simple setup where checkboxes are dispayed using the AS CHECKBOX option from the WRITE statement:

Reporting output allows the end user to "move around", page up, page down, sideways, ... all standard stuff. If for whatever reason the developer needs to interfere, here's how:

Is there anything we can do with reported data that has already been output ? What can be done with data that has already been prresented on a report ? It can be read and modified..

When you've reported your list output, it may just be handy to hang on to this output for later reference. Simple concept: reporting output is set up as a list that is added to until the last WRITE statement is done. When another WRITE statement is executed after the list display is actually displayed, a new "list" is created.