如何通过动态参数实现周报制作

需求描述

在货品交易系统里,用户不仅要看当天的交易情况,还需要查看一周 / 一个月 / 一年的情况,也叫做周报 / 月报 / 年报。下图所示就是其中订货信息周报的效果。

它是如何根据用户输入的一个日期查询出该日期所在周的订货信息表的呢?

实现步骤

1、 参数配置

其中,arg1 是用户输入的日期,对应普通参数;

arg2 是基于 arg1 计算得到的一周的起始日期,对应动态参数,表达式为:[email protected](arg1);

arg2 是基于 arg1 计算得到的一周的结束日期,对应动态参数,表达式为:[email protected](arg1);

每当有一个输入日期传入时,arg2 和 arg3 就会根据自己的表达式进行重新计算,得到对应的一周日期时间和结束时间这两个值供数据集、报表计算使用。

PS:pdate 函数使用说明见文章末的附录。

2、 数据集配置

ds1:

SELECT 订单. 订购日期, 订单. 订单 ID, 订单. 货主地区, 订单. 货主城市, 订单. 运货商 FROM 订单 WHERE 订单. 订购日期 >?  AND  订单. 订购日期 <?

并添加两个数据集参数引用:arg2 和 arg3。

ds2:

SELECT 运货商. 公司名称, 运货商. 运货商 ID FROM 运货商

3、 报表单元格配置

其中,

A2 单元格表达式为:=string(arg2)+“到”+string(arg3)+“订货单”

A4 单元格表达式为:=ds1.select(订购日期),显示格式为:yyyy 年 MM 月 dd 日

B4 单元格表达式为:=ds1. 订单 ID

C4 单元格表达式为:=ds1. 货主地区

D4 单元格表达式为:=ds1. 货主城市

E4 单元格表达式为:=ds1. 运货商,显示值表达式为 ds2.select(公司名称, 运货商 ID==value(),1)

至此,就完成了周报的制作。

总结

周报实现的核心关键点在于如何获取一周的起始时间和结束时间,在这个需求中,可以通过动态参数来计算:pdate() 函数。

附录:

1、 动态参数和普通参数的区别:

普通参数是直接将输入的参数值传给报表进行运算的,而动态参数是一个表达式,报表运算时会先解析该表达式,然后将表达式计算出的结果作为参数值再传给报表进行运算。

2、 pdate 函数使用说明:

函数说明:

获得指定日期所在星期 / 月 / 季度的最早的一天和最后的一天

语法:

pdate(dateExp)

参数说明:

dateExp 返回值为日期或标准日期格式的表达式

返回值:

日期时间型

选项:

@w 获得指定日期所在星期的星期天

@we 获得指定日期所在星期的星期六

@m 取得指定日期所在月的月首

@me 取得指定日期所在月的月末

@q 取得指定日期所在季度的首日

@qe 取得指定日期所在季度的末日

缺省为获得指定日期所在星期的星期天

@y 获取指定日期所在年的第一天

示例:

例 1:[email protected](datetime(“19800227”,“yyyyMMdd”)) 1980-02-24

例 2:[email protected] (datetime(“19800227”,“yyyyMMdd”)) 1980-03-01

原文地址:https://www.cnblogs.com/xiaohuihui-11/p/12054434.html

时间: 2024-10-16 02:31:18

如何通过动态参数实现周报制作的相关文章

vue-router2.0 组件之间传参及获取动态参数

<li v-for=" el in hotLins" > <router-link :to="{path:'details',query: {id:el.tog_line_id}}"> <img :src="el.image_list[0]"> <h3>{{el.tourism_name}} {{el.tog_line_id}}</h3> <p>{{el.address}}&

python函数动态参数详解

Python的动态参数: 1,参数前一个"*":在函数中会把传的参数转成一个元组.   func (*       func(123,1,2,)   result:(123, 1, 2, 'a') 2,"**args"的参数:函数中被转成一个字典. 如果这样传参的话会报错,因为没有指定key或value:def func (**args):    print(args) func(123,1,2,'a') result:TypeError: func() takes

通过v$parameter 查看 issys_modifiable 状态判断是否动态参数

Oracle10g, 11g,  如果使用的初始化参数为 spfile . 可以使用如下方式查看参数是否可以动态更改, 不需要重新启动数据库实例. select  name ,  value,  issys_modifiable  from   v$parameter ; FALSE              静态参数, 需要重启DB IMMEDIATE    动态参数, 马上生效,对于正在运行的session也有作用 DEFERRED      动态参数, 马上生效,对于后面进入的sessio

关于Struts2的动态URL和动态参数

两种方式的DynaAction都一样,如下: 1 package com.xsl.action; 2 3 import java.util.Random; 4 5 import com.opensymphony.xwork2.ActionSupport; 6 7 public class DynaAction extends ActionSupport { 8 private String url; 9 private String name; 10 private int age; 11 pu

Python之路【第三篇】:Python基础(17)——函数动态参数

#动态参数:** 2星默认将传入的参数,全部放置在字典中f1(**{"kl":"v1", "k2":"v2"})#带2星的用来处理那些带有键值对的值,即一个key一个value的值 # 示例# def func(**kwargs):# print(kwargs,type(kwargs))# # 执行方式一# func(name='wupeiqi',age=18)# # 执行方式二# li = {'name':'wupeiqi'

Python之路【第三篇】:Python基础(16)——函数动态参数

# 动态参数:# * 1星默认将传入的参数,全部放置在元组中,f1(*[1`1,22,33,44])# 带1个星的用来处理那些默认按照顺序传的值 # # #示例# def func(*args):# print (args,type(args))# # 执行方式一# func(11,33,4,4454,5)# # 执行方式二# li = [11,2,2,3,3,4,54]# func(*li)# # 输出# # (11, 33, 4, 4454, 5) <class 'tuple'># # (

动态函数库的制作和使用

>>>>>>接静态函数库的制作和使用>>http://www.cnblogs.com/hfxin2001-eric-daddy/p/5809010.html 2 动态函数库的制作和使用 动态函数库的制作步骤可以用下图来描述,具体包括 (1)  编写函数的.c文件(例如add.c.sub.c.mul.c和div.c) (2)  编写Makefile,然后make,实现函数的编译和归档入库 函数的编译:使用gcc –c add.c -fPIC只编译不链接函数.c

函数里的普通参数、指定参数、默认参数、动态参数的区别

1.普通参数就是像下面这段函数传入的参数一样,传入函数,没有默认值 1 def f(a): 2 a = a + 1 3 return a 4 5 b=f(3) 6 print(b) 2.指定参数 1 #像这样按照顺序传入的话,如果没有指定参数的值那么就会按照顺序分别给a,b,c赋初始值 2 d=f(3,4,5) 3 print(d) 4 #如果像这样指定a,b,c的值,那么它们就是指定参数,可以不按照它们原来的顺序传入 5 e=f(c=5,b=4,a=3) 6 print(e) 3.默认参数 1

jmeter登录之-动态参数

jmeter登录之-动态参数 1.抓包查看提交的登录参数 发现参数authenticity_token是动态的,每次都不一样,所以回放的时候就会失败 2.提取动态变化的参数-后置处理器(相当于LR的关联) 用正则表达式或是css选择器- 3.查看HTML文档,找到变化的参数值 4.加在post请求的前面,在请求之前得到动态的参数 5.改变http请求参数--${token}