|
As soon as the user
selects a line for which you stored HIDE fields, the system fills the variables
in the program with the values stored. A line can be selected
· by an interactive
event.
For each interactive
event, the HIDE fields of the line on which the cursor is positioned during the
event are filled with the stored values.
· by the READ LINE
statement.
You can think of the
HIDE area as a table, in which the system stores the names and values of all
HIDE fields for each list and line number. As soon as they are needed, the
system reads the values from the table. The example below presents some of the
essential features of interactive reporting. The basic list contains summarized
information. By means of the HIDE technique, each detail list contains more
details.
The following program
is connected to the logical database F1S.
REPORT demo_list_hide NO
STANDARD PAGE HEADING.
TABLES: spfli, sbook.
DATA: num TYPE i,
dat TYPE d.
START-OF-SELECTION.
num = 0.
SET PF-STATUS 'FLIGHT'.
GET spfli.
num = num + 1.
WRITE: / spfli-carrid, spfli-connid,
spfli-cityfrom,
spfli-cityto.HIDE: spfli-carrid, spfli-connid, num.
END-OF-SELECTION.
CLEAR num.
TOP-OF-PAGE. WRITE 'List of Flights'.ULINE. WRITE 'CA CONN FROM TO'. ULINE.
TOP-OF-PAGE DURING LINE-SELECTION.
CASE sy-pfkey.
WHEN 'BOOKING'.
WRITE sy-lisel.
ULINE.
WHEN 'WIND'.
WRITE:
/
'Booking', sbook-bookid,'Date ', sbook-fldate.ULINE. ENDCASE.
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'SELE'.
IF num NE 0. SET PF-STATUS 'BOOKING'. CLEAR dat. SELECT * FROM sbook WHERE
carrid = spfli-carridAND
IF
sbook-fldate NE dat.connid =
spfli-connid. dat = sbook-fldate. SKIP. WRITE /
sbook-fldate.POSITION 16.
ELSE.
NEW-LINE. POSITION 16.
ENDIF.
WRITE sbook-bookid.
HIDE: sbook-bookid, sbook-fldate, sbook-custtype,
sbook-smoker,
sbook-luggweight, sbook-class.ENDSELECT. IF sy-subrc NE 0.
WRITE / 'No bookings for
this flight'.
ENDIF.
num = 0.
CLEAR sbook-bookid.
ENDIF.
WHEN 'INFO'.
IF NOT sbook-bookid IS
INITIAL.
SET PF-STATUS 'WIND'.
SET TITLEBAR 'BKI'.
WINDOW STARTING AT 30 5 ENDING
AT 60 10.
WRITE: 'Customer type :',
sbook-custtype,
/ 'Smoker :', sbook-smoker,
/ 'Luggage weight :',
sbook-luggweight UNIT 'KG',
/ 'Class :', sbook-class.
ENDIF.
ENDCASE.
At the event
START-OF-SELECTION, the system sets the status FLIGHT for the basic list. In
status FLIGHT, function code SELE (text SELECT) is assigned to function key F2
and to a pushbutton. So the event AT USER-COMMAND is triggered if the user
double-clicks, presses F2, or chooses the pushbutton SELECT.
The three fields
SPFLI-CARRID, SPFLI-CONNID, and NUM are stored in the HIDE area while creating
the basic list. After selecting a line, the system displays the detail list
defined in the AT USER-COMMAND event for function code SELE. In the AT
USER-COMMAND event, the system refills all fields of the selected line that were
stored in the HIDE area. You use NUM to check whether the user selected a line
from the actual list. The detail list has status BOOKING, where F2 is assigned
to function code INFO (text: Booking Information). The detail list presents
data that the program selected by means of the HIDE fields of the basic list.
For each list line displayed, the system stores additional information in the
HIDE area.
If the user selects a
line of the detail list, the system displays the "hidden" information in a
dialog box with the status WIND. The status has the type Dialog box, and
contains the proposed functions for a list status. The program uses
SBOOKBOOKID to check whether the user selected a valid line.
The program itself
sets all page headers and the title bar of the dialog box.
|