动态选择屏幕

不是自创的,群里大神分享的,应该是QA32,QA16等程序里都有的。

*&---------------------------------------------------------------------*
*& Report  ZLYTEST_SCREEN
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZLYTEST_SCREEN.
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,
      GS_WHERE_CLAUSES LIKE LINE OF           LT_WHERE_CLAUSES.
DATA:GT_ZTSD_LSXY TYPE TABLE OF ZTSD_LSXY.
DATA:LV_TABNAME TYPE TABNAME VALUE ‘ZTSD_LSXY‘.
"可以多个表,字段等
LS_TABLES_TAB-PRIM_TAB = LV_TABNAME.
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       = ‘X‘
    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.
    CLEAR GS_WHERE_CLAUSES.

  ENDIF.
ENDIF.

"根据不同的查询表,将查询参数一次加入各个表
READ TABLE LT_WHERE_CLAUSES INTO GS_WHERE_CLAUSES
      WITH KEY TABLENAME = LV_TABNAME.
IF SY-SUBRC = 0.
  SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_ZTSD_LSXY
  FROM ZTSD_LSXY WHERE ZJLH <> ‘‘ AND (GS_WHERE_CLAUSES-WHERE_TAB) .
ENDIF.

CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY‘
  EXPORTING
    I_CALLBACK_PROGRAM = SY-REPID
    I_STRUCTURE_NAME   = ‘ZTSD_LSXY‘
  TABLES
    T_OUTTAB           = GT_ZTSD_LSXY
  EXCEPTIONS
    PROGRAM_ERROR      = 1
    OTHERS             = 2.
IF SY-SUBRC <> 0.
ENDIF.

时间: 2024-11-03 22:45:27

动态选择屏幕的相关文章

[SAP ABAP开发技术总结]动态修改选择屏幕

声明:原创作品,转载时请注明文章来自SAP师太博客,并以超链接形式标明文章原始出处,否则将追究法律责任!原文出自: 12.16.             动态修改屏幕 选择屏幕.对话屏幕都有对应的SCREEN内表,下面是几个重要属性: NAME:Name of the screen field.如果参数是select-options类型参数,则参数名以LOW与HIGH后缀来区分. GROUP1:选择屏幕元素通过 MODIF ID 选项设置GROUP1(对话屏幕通过属性设置),将屏幕元素分为一组,

选择屏幕(Selection Screen)

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4292295.html 选择屏幕(Selection Screen). 156 创建选择屏幕... 157 SELECTION-SCREEN.. 157 SELECTION-SCREEN - BEGIN OF SCREEN.. 157 标准选

[SAP ABAP开发技术总结]选择屏幕——按钮、单选复选框

目录导航 声明:原创作品,转载时请注明文章来自SAP师太博客,并以超链接形式标明文章原始出处,否则将追究法律责任!原文出自: 12.6.         按钮.单选复选框.下拉框的FunCode. 91 12.6.1.     选择屏幕中的按钮... 92 12.6.2.     选择屏幕中的单选/复选按钮:点击时显示.隐藏其他屏幕元素... 92 12.6.     按钮.单选复选框.下拉框的FunCode 如果复选框与单选按钮没有设置Function Code,则它们就会像普通的输入框一样,

【Android】8.2 动态选择和设置主题

分类:C#.Android.VS2015: 创建日期:2016-02-17 一.简介 除了通过Theme指定主题外,还可以在程序运行时动态指定并应用主题. 二.示例-ch0802ThemeDemo 1.运行截图 下面左图:活动条(ActionBar)也是浅色的:右图:没有活动条   下面左图:全屏不带活动条:右图:带活动条的黑色主题   下面左图:不带活动条的黑色主题:右图:带墙纸的材料主题   2.相关代码 (1)ch0802_ThemeDemo.axml文件 在Resources/layou

[SAP ABAP开发技术总结]选择屏幕——SELECT-OPTIONS

目录导航 声明:原创作品,转载时请注明文章来自SAP师太博客,并以超链接形式标明文章原始出处,否则将追究法律责任!原文出自: 12.4.         SELECT-OPTIONS. 89 12.4.1.     输入ABAP程序默认值时,需要加上“=”. 89 12.4.2.     选择条件内表多条件组合规则... 89 12.4.3.     使用SELECT-OPTIONS替代PARAMETERS. 90 12.4.     SELECT-OPTIONS SELECT-OPTIONS

delphi 动态更改屏幕分辨率(转)

http://www.cnblogs.com/key-ok/p/4594674.html 一.如何动态更改屏幕分辨率 有许多小工具可以在不重新启动Windows的条件下,动态更改屏幕分辨率.你是不是 也想自己动手做一个呢?请在interface段中加入下面一句 function Resolution(X,Y:word):boolean: 然后在implementation段中写入如下代码: function Resolution(X,Y:word):boolean: var DevMode:TD

php使用post动态选择头像和js事件动态改变头像

<html> <head> <meta http-equit="Content-type" content="text/html" charset="utf-8"> <title>动态选择头像logo</title> <script type="text/javascript"> function check(obj){ $("showImage

android 动态改变屏幕方向

LANDSCAPE与PORTRAIT 范例说明 要如何通过程序控制Activity的显示方向?在Android中,若要通过程序改变屏幕显示的方向,必须要覆盖 setRequestedOrientation()方法,而若要取得目前的屏幕方向,则需要访问getRequestedOrientation()方 法. 本 范例为求简要示范更改做法,设计了一个按钮,当单击按钮的同时,判断当下的屏幕方向,例如竖排(PORTRAIT),则将其更改为横排 (LANDSCAPE);若为横排(LANDSCAPE),则

ABAP标准列表和选择屏幕

标准列表输出 REPORT YTEST20160527. *定义结构 DATA:BEGIN OF SCHOOL, CITY TYPE YTJAYCITY-YCT_NAME, NO TYPE YTJAYSCHOOL-YSH_ID, NAME TYPE YTJAYSCHOOL-YSH_NAME, ADDRESS TYPE YTJAYSCHOOL-YSH_ADDR, END OF SCHOOL. *工作区 DATA SCHOOL1 LIKE SCHOOL. *输出表头 ULINE AT /(93).