Topic: a lesson for each day(2005-1-14)

ERP俱乐部

第 1 页 总共 1 页 [共有 1 条记录]


Posted by mara on 2005-01-14 02:19 下午

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.