如何使用“调用事务‘se11’并跳过第一个屏幕”激活ABAP中的搜索框?

如何使用“调用事务‘se11’并跳过第一个屏幕”激活ABAP中的搜索框?,abap,Abap,我想做的是使用 Set Parameter ID 'DTB' Field 'z*'. Call Transaction 'SE11' and skip First Screen. 此时,我想激活搜索框,并将结果放入一个内部表中。有什么想法吗?或者有没有一种方法可以使用数据库统计数据更快地获取这些信息 下面的代码将得到您想要的,您可能需要添加更多的where子句,以仅获取活动表AS4LOCAL EQ'A'或仅获取透明表TABCLASS EQ'TRANSP',因为此表还包含结构 DATA: t_t

我想做的是使用

Set Parameter ID 'DTB' Field 'z*'.
Call Transaction 'SE11' and skip First Screen.

此时,我想激活搜索框,并将结果放入一个内部表中。有什么想法吗?或者有没有一种方法可以使用数据库统计数据更快地获取这些信息

下面的代码将得到您想要的,您可能需要添加更多的where子句,以仅获取活动表AS4LOCAL EQ'A'或仅获取透明表TABCLASS EQ'TRANSP',因为此表还包含结构

DATA: t_tabname TYPE STANDARD TABLE OF tabname.
SELECT tabname INTO TABLE t_tabname FROM dd02l WHERE tabname LIKE 'Z%'.

与直接访问表不同,您可能希望使用半官方API,该API不仅处理激活状态,还考虑权限:

  DATA: lt_tables TYPE STANDARD TABLE OF rpy_tabl.

  FIELD-SYMBOLS: <ls_table> TYPE rpy_tabl.

  CALL FUNCTION 'RPY_TABLE_SELECT'
    EXPORTING
      table_name       = 'Z*'
    TABLES
      tabl_inf_tab     = lt_tables
    EXCEPTIONS
      cancelled        = 1
      not_found        = 2
      permission_error = 3
      OTHERS           = 4.
  IF sy-subrc <> 0.
*   Implement suitable error handling here
  ELSE.

    LOOP AT lt_tables ASSIGNING <ls_table>.
      CASE <ls_table>-tablclass.
        WHEN 'TRANSP'.  " Transparent table
*         ...
        WHEN 'INTTAB'.  " Structure
*         ...
        WHEN 'CLUSTER'. " Cluster table
*         ...
        WHEN 'POOL'.    " Pooled table
*         ...
        WHEN 'VIEW'.    " Generated view structure
*         ...
        WHEN 'APPEND'.  " Append structure
*         ...
      ENDCASE.
    ENDLOOP.

  ENDIF.

请描述期望的结果,而不仅仅是你失败的尝试。如果我们不知道您想要做什么,就很难提出正确的解决方案。我正在尝试将报表中的所有z表都放入一个内部表中。我主要需要知道是否有办法激活程序代码中的搜索框,并将以下报告拉入表格。在排序中,我需要一个可以使用的表,该表包含所有自定义表,无需进行完整的数据库扫描。如果有助于您解决问题,请不要忘记使用绿色复选标记将其中一个答案标记为“正确”。谢谢。我要试试这个。