REPORT demo_logical_database. DATA wa_spfli TYPE spfli. SELECT-OPTIONS s_carr FOR wa_spfli-carrid. *TYPE-POOLS: RSDS, RSFS. DATA: callback TYPE TABLE OF ldbcb, callback_wa LIKE LINE OF callback. DATA: seltab TYPE TABLE OF rsparams, seltab_wa LIKE LINE OF seltab. *DATA: TEXPR TYPE RSDS_TEXPR, * FSEL TYPE RSFS_FIELDS. callback_wa-ldbnode = 'SPFLI'. callback_wa-get = 'X'. callback_wa-get_late = 'X'. callback_wa-cb_prog = sy-repid. callback_wa-cb_form = 'CALLBACK_SPFLI'. APPEND callback_wa TO callback. CLEAR callback_wa. callback_wa-ldbnode = 'SFLIGHT'. callback_wa-get = 'X'. callback_wa-cb_prog = sy-repid. callback_wa-cb_form = 'CALLBACK_SFLIGHT'. APPEND callback_wa TO callback. seltab_wa-kind = 'S'. seltab_wa-selname = 'CARRID'. LOOP AT s_carr. MOVE-CORRESPONDING s_carr TO seltab_wa. APPEND seltab_wa TO seltab. ENDLOOP. CALL FUNCTION 'LDB_PROCESS' EXPORTING ldbname = 'F1S' variant = ' ' * EXPRESSIONS = TEXPR * FIELD_SELECTION = FSEL TABLES callback = callback selections = seltab EXCEPTIONS ldb_not_reentrant = 1 ldb_incorrect = 2 ldb_already_running = 3 ldb_error = 4 ldb_selections_error = 5 ldb_selections_not_accepted = 6 variant_not_existent = 7 variant_obsolete = 8 variant_error = 9 free_selections_error = 10 callback_no_event = 11 callback_node_duplicate = 12 OTHERS = 13. IF sy-subrc <> 0. WRITE: 'Exception with SY-SUBRC', sy-subrc. ENDIF. FORM callback_spfli USING name TYPE ldbn-ldbnode wa TYPE spfli evt TYPE c check TYPE c. CASE evt. WHEN 'G'. WRITE: / wa-carrid, wa-connid, wa-cityfrom, wa-cityto. ULINE. WHEN 'L'. ULINE. ENDCASE. ENDFORM. FORM callback_sflight USING name TYPE ldbn-ldbnode wa TYPE sflight evt TYPE c check TYPE c. WRITE: / wa-fldate, wa-seatsocc, wa-seatsmax. ENDFORM.
|