`

Query 变量增强(给日期变量设置黙认值为系统当天)

    博客分类:
  • BW
UP 
阅读更多
BW Query 变量增强(给日期变量设置黙认值为系统当天)

Query 变量增强(给日期变量设置黙认值为系统当天)
1 由于要求在打开报表的时候,弹出一个对话框来输入日期(用于计算)。
  在“过滤限制”中添加日期特征,右击选择 ,然后在“显示”输入框处选择“变量”,点击“新增”变量按钮。

在“处理由”处选择“用户出口”。
替换路径功能区为默认.
明细处如果你做的变量是不可输入的话就不对任何复选框做选择,如果是可输入性的,则选中变量已准备输入。其他的功能区就保持默认状态即可,然后点击OK按钮。



在BW系统中运行CMOD进行做增强。
使用"RSR00001"      BI: Enhancements for Global Variables in Reporting.




代码,双击:ZXRSRU01
进行编写代码:
data: ls_range like LINE OF E_T_RANGE,
      ls_var_range LIKE LINE OF i_t_var_range,
      loc_ls_range LIKE LINE OF e_t_range,
      gv_date LIKE SY-DATUM.
case I_VNAM.  "Name of Variable to be Replaced
  WHEN 'VAR_CUTDATE'.
"I_STEP 值说明:
"I_STEP = 1,请直接发生前变量条目。可用于预先填充选择变量。
"I_STEP = 2,呼叫发生后直接变量条目。这一步的时候,才开始了同一个变量是无法输入准备,并且不能在L_STEP = 1填补。
"I_STEP = 3,在此调用,您可以检查变量的值。触发一个异常(提高)导致变量屏幕再次出现。随
             "后,L_step = 2,也再次调用。
"I_STEP = 0,是不是从屏幕变量呼吁提高。调用可以来自授权检查或从监视器。这
             "是你要推出填充授权对象的模型设计。因为这是为代码如下:

      if i_step = 1.
*      BREAK-POINT.
*      READ TABLE i_t_var_range INTO ls_var_range WITH KEY  vnam = 'ZCUTDATE_NEW'. "'ZCUTDATE_NEW' .
*      IF SY-SUBRC = 0.
        ls_range-opt       = 'EQ'.
        ls_range-sign      = 'I' .
        gv_date = SY-DATUM + 4.
        ls_range-low =  gv_date.
        INSERT ls_range INTO TABLE e_t_range.
*      ENDIF.
      endif.

  ENDCASE.

使用Analyzer运行报表结果:

Note:
If I_STEP = 1,call takes place directly before variable entry. Can be used to pre populate selection variables.
If I_STEP = 2,Call takes place directly after variable entry. This step is only started up when the same variable is not input ready and could not be filled at L_STEP = 1.
If I_STEP = 3,In this call, you can check the values of the variables. Triggering an exception (RAISE)causes the variable screen to appear once more. Afterwards, L_step = 2 is also called again.
If I_STEP = 0,The enhancement is not called from the variable screen. The call can come from the authorization check or from the Monitor. This is where you want to put the mod for populating the authorization object. Code for this is as follows:


DATA:LS_RANGE LIKE LINE OF E_T_RANGE,
     LS_VAR_RANGE LIKE LINE OF I_T_VAR_RANGE,
     YEAR(4) TYPE N,
     QUART(1) TYPE N,
     MONTH(2) TYPE N,
     LASTDAY TYPE D,
     DAYIN TYPE D.           "定义的字段
CASE I_VNAM.       "这个I_CNAM可以自动获取你所创建的变量的名称
  WHEN 'ZVBCRLNY'."日历年月(默认本月) 这个定义的是一个带有默认值为当前
"年度期间的一个可输入的变量
IF I_STEP = 1.
      CLEAR LS_RANGE.
      LS_RANGE-LOW = SY-DATUM(6).
      LS_RANGE-SIGN = 'I'.
      LS_RANGE-OPT = 'EQ'.
      CONDENSE LS_RANGE-LOW NO-GAPS.
      APPEND LS_RANGE TO E_T_RANGE.
    ENDIF.
  WHEN 'ZVBCQT02'."季度(间隔)-本年累计(非输入)
    IF I_STEP = 2.
      LOOP AT I_T_VAR_RANGE INTO LS_VAR_RANGE
      WHERE  VNAM = '0CQUART'.
        CLEAR YEAR.
        YEAR = LS_VAR_RANGE-LOW(4).
        CONCATENATE YEAR '1' INTO LS_RANGE-LOW.
        LS_RANGE-HIGH = LS_VAR_RANGE-LOW.
        LS_RANGE-SIGN = 'I'.
        LS_RANGE-OPT = 'BT'.
        CONDENSE LS_RANGE-LOW NO-GAPS.
        CONDENSE LS_RANGE-HIGH NO-GAPS.
        APPEND LS_RANGE TO E_T_RANGE.
      ENDLOOP.
    ENDIF.
  WHEN 'ZVHJQJ1'."会计年度/期间(默认本期)
*BREAK-POINT.
    IF I_STEP = 1.
      CLEAR LS_RANGE.
      LS_RANGE-LOW(4) = SY-DATUM(4).
      LS_RANGE-LOW+5(1) = '0'.
      LS_RANGE-LOW+6(2) = SY-DATUM+4(2).
      LS_RANGE-SIGN = 'I'.
      LS_RANGE-OPT = 'EQ'.
      CONDENSE LS_RANGE-LOW NO-GAPS.
      APPEND LS_RANGE TO E_T_RANGE.
ENDIF.
这里的黄色与红色标注的地方的字段应该与你命名的变量的技术名称完全相同,否则程序是不可能执行的。此外,我不建议大家用过长的字段来命名变量的名称,否则在程序在运行的时候CASE I_VNAM.中的I_VNAM这个变量会自动截取部分字段,那么程序是无法按照我们的意愿来执行,导致一些不必要的问题出现。如果必须用很长的技术名称,我建议你看看这个I_VNAM字段的长度,尽量小于或者等于这个长度,否则必然出错。
Using Exit to populate query authorization object dynamically.
Please note the article has been written from an ABAPers point of view and some knowledge of creating bw queries be required.
分享到:
评论

相关推荐

    SAP bw更改query查询变量属性

    - **找到变量对象**:使用事务代码`RSA1`(BW系统管理)或`RSAG`(通用系统管理),找到包含待更改变量的Query,并定位到该变量的具体定义。 - **修改变量属性**:通过技术对象的维护视图,可以找到“Processing ...

    SQL 一些全局变量 时间函数

    在SQL(Structured Query Language)中,全局变量和时间函数是两个关键的概念,它们在数据库管理和数据操作中扮演着重要角色。下面将详细讲解这两个主题。 首先,我们来谈谈SQL中的全局变量。全局变量是在整个会话...

    mysql 系统变量中文详细解释

    - **建议值**:通常建议将其设置为系统物理内存的60%-80%,具体取决于服务器的用途和其他应用程序的需求。 ### 2. `max_connections` - **含义**:最大连接数。 - **作用**:控制同时允许连接到MySQL服务器的最大...

    从数据库中取变量传递给shell,生成环境变量

    从DB中取检索值传递给shell,生成环境变量 1. 编写myshellpara.sql 通过spool 执行一个SQL读取所要的值,结果保存在myshellvar_export.sh set feedback off; set heading off; set pagesize 0; set linesize 1000; ...

    cognos基础教程 6_变量的应用.zip

    - **隐藏变量**:有时为了界面简洁,可以将变量设置为隐藏,然后在后台逻辑中使用。 - **联动变量**:通过设置多个变量之间的关联,实现更复杂的交互效果,比如选择城市后自动筛选出对应的城市下的区县。 6. **...

    Grafana之模板与变量(第十六篇) · 语雀1

    配置示例中,变量名为"job",类型为"查询",标签显示为"JOB",并设置了在仪表板加载时刷新数据,从Prometheus数据源获取label "node_uname_info.job"的值,并按照字母升序排序。同时,用户可以在仪表板上多选并包含...

    mysql全局变量.pdf

    **示例**:假设我们将`long_query_time`设置为2秒,那么任何执行时间超过2秒的SQL查询都将被视为慢查询,并被记录到慢查询日志中。 #### 四、变量的作用域与值域 - **作用域**:指变量适用的范围。例如,`log_slow...

    delphi传递变量到fastreport报表中

    向fastreport报表传递变量总是不成功,利用网上的信息,一个一个地试,弄了个通宵都没有成功,后来终于成功了,利用delphi的表单中的edit,向fastreport报表传递变量终于成功。与大家一起分享。 fastreport做报表画...

    BAT批处理脚本-系统设置查询修改硬件相关-设注册表某个键的键值为变量2.zip

    "BAT批处理脚本-系统设置查询修改硬件相关-设注册表某个键的键值为变量2.zip"这个压缩包文件就包含了这样的功能,即通过批处理脚本来修改系统注册表中的特定键值。以下是关于批处理脚本、注册表操作以及自动化技术的...

    在wincc中如何使用VBS读取变量归档数据到Excel

    在工业自动化领域,西门子的WinCC(Windows Control Center)是一种广泛使用的SCADA(Supervisory Control and Data Acquisition)系统,用于监控和控制生产过程。WinCC的强大功能之一是其变量归档功能,可以记录并...

    PHP获取当前url路径的函数及服务器变量QUERY_STRING、REQUEST_URI

    - 如果URL中没有查询参数,则`$_SERVER["QUERY_STRING"]`为空字符串。 #### 2. $_SERVER["REQUEST_URI"] **说明:** `REQUEST_URI`用于获取当前请求的完整URI(统一资源标识符),但不包含域名部分。这个变量包含...

    BAT批处理脚本-设注册表某个键的键值为变量2.zip

    这个脚本首先查询并保存注册表键值到临时文件temp.txt,然后通过`for /f`循环读取该文件的第二列(即键值部分),将其设置为变量MyVar,最后显示变量的值并清理临时文件。 需要注意的是,由于直接修改注册表可能...

    Oracle定义PLSQL变量学习

    Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和灵活性吸引了众多企业和开发人员。在Oracle中,PL/SQL(Procedural Language/Structured Query Language)是一种面向对象的编程语言,用于扩展SQL的...

    mybatis-plus QueryWrapper条件查询器

    MyBatis-Plus的QueryWrapper是其强大的查询构造器,为开发者提供了便利的API来构建复杂的SQL查询。在Spring Boot项目中,MyBatis-Plus作为一个扩展MyBatis的轻量级框架,大大简化了数据库操作。下面我们将深入探讨...

    nginx内置变量

    Nginx还提供了若干函数,如lower_case($variable)将变量转换为小写,length($variable)计算变量的长度。通过组合变量和函数,可以创建更复杂的逻辑。 例如,限制来自特定IP地址的请求频率: ```nginx limit_rate_...

    ASP检测服务器变量情况

    `ServerVariables`集合包含了一系列服务器端的环境变量,这些变量提供了关于客户端请求、服务器配置和系统状态等信息。例如,你可以通过`ServerVariables("REMOTE_ADDR")`获取到访问者的真实IP地址,`...

    PHP获取当前url路径的函数及服务器变量[定义].pdf

    QUERY_STRING 变量用于获取查询字符串,也就是 URL 中的参数部分。例如,在 URL `http://www.biuuu.com/?p=222&q=biuuu` 中,QUERY_STRING 的值将是 `p=222&q=biuuu`。可以通过 `$_SERVER["QUERY_STRING"]` 获取该值...

    变量Variables)1

    在QL(Query Language)中,变量的使用类似于代数或逻辑中的变量,表示一组可能的值。例如,表达式`n = n + 1`在QL中是一个等式,而在Java中,它是通过改变`n`的值实现的。这种差异体现了编程语言中变量的不同用法。...

    如何使用@query在变量中存储@ Html.Textboxfor(X => X.Name)中的值

    标题中的"如何使用@query在变量中存储@Html.Textboxfor(X => X.Name)中的值"指的是在JavaScript或jQuery中获取并存储由`@Html.TextBoxFor()`生成的文本框的值。通常,我们可能需要在客户端进行一些操作,比如在用户...

    CGI环境变量列表.txt

    ### CGI环境变量详解 #### 一、概述 CGI(Common Gateway Interface)是一种标准协议,用于在Web服务器和外部应用程序之间传递数据。当用户通过浏览器请求一个由CGI程序处理的资源时,Web服务器会调用该程序并传递...

Global site tag (gtag.js) - Google Analytics