美文网首页
根据数据库字段自动生成选择屏幕

根据数据库字段自动生成选择屏幕

作者: 阿努比斯1117 | 来源:发表于2018-04-02 10:05 被阅读0次

转载:原帖地址http://www.baidusap.com/abap/4012

REPORT ztest_selection_dyn.
 
DATA: lv_selection_id TYPE rsdynsel-selid,
      lt_tables_tab   TYPE STANDARD TABLE OF rsdstabs,
      ls_tables_tab   TYPE rsdstabs.
DATA: lt_fields_tab    TYPE STANDARD TABLE OF rsdsfields,
      lt_where_clauses TYPE rsds_twhere.
 
ls_tables_tab-prim_tab = 'VBAK'.  "数据库表名
APPEND ls_tables_tab TO lt_tables_tab.
CALL FUNCTION 'FREE_SELECTIONS_INIT'
  EXPORTING
    kind                     = 'T'
  IMPORTING
    selection_id             = lv_selection_id
  TABLES
    tables_tab               = lt_tables_tab
  EXCEPTIONS
    fields_incomplete        = 1
    fields_no_join           = 2
    field_not_found          = 3
    no_tables                = 4
    table_not_found          = 5
    expression_not_supported = 6
    incorrect_expression     = 7
    illegal_kind             = 8
    area_not_found           = 9
    inconsistent_area        = 10
    kind_f_no_fields_left    = 11
    kind_f_no_fields         = 12
    too_many_fields          = 13
    dup_field                = 14
    field_no_type            = 15
    field_ill_type           = 16
    dup_event_field          = 17
    node_not_in_ldb          = 18
    area_no_field            = 19
    OTHERS                   = 20.
IF sy-subrc EQ 0.
  CALL FUNCTION 'FREE_SELECTIONS_DIALOG'
    EXPORTING
      selection_id    = lv_selection_id
      title           = '选择'
      frame_text      = '查询条件'
      as_window       = ''                "不显示成窗口
    IMPORTING
      where_clauses   = lt_where_clauses  "返回选择条件
    TABLES
      fields_tab      = lt_fields_tab     "选择画面中选中字段
    EXCEPTIONS
      internal_error  = 1
      no_action       = 2
      selid_not_found = 3
      illegal_status  = 4
      OTHERS          = 5.
  IF sy-subrc EQ 0.
 
  ENDIF.
ENDIF.

相关文章

网友评论

      本文标题:根据数据库字段自动生成选择屏幕

      本文链接:https://www.haomeiwen.com/subject/bssthftx.html