制作一个SSRS的ORACLE数据库报表,使用了时间类型的参数。

需求:我们这个报表是以月为单位,呈现的数据为查询为当前月的第一天到最后一天。条件类似于:time_day > 20140601 and
 time_day < 20140630

因为是让用户选择月,所有呈现出来的时间参数应该是201406这种,写了一个时间的SQL,这个是连接ORACLE数据库的,并且只生成从201301到当前月的数据。

?





1

2

3

4

5

6

7

8

select
* from
(SELECT
TO_CHAR(ADD_MONTHS(TO_DATE(‘2013-01‘, ‘YYYY-MM‘), ROWNUM - 1),

               ‘YYYYMM‘) DAY_ID

  FROM
DUAL

CONNECT
BY ROWNUM <=

           months_between(to_date(to_char(sysdate,‘yyyy-MM‘), ‘yyyy-mm‘),

                          to_date(‘2013-01‘, ‘yyyy-mm‘)) + 1

) order
by DAY_ID desc

做成一个数据集。

 

到参数里面添加一个参数对应的

在可用值里面选择我们新建的那个时间集合。值字段为那个SQL里面的字段,标签字段其实就是显示出来给用户看的字段,如果觉得201406这种方式用户可能看不懂,那就去改一下那个SQL,把时间格式化成用户能看懂的样子,这个标签字段就显示对应的那个字段,我这里就直接方便选那个值了。这两个参数需要隐藏,这个需要注意一下。不用呈现给用户进行选择

因为在呈现给用户看的数据里面是按天查询的,所以我们要将时间进行转换。另外添加两个参数。

smontime其它就是之前加的一个参数。stime因为是第一天开始,所有直接使用"&"符号将01连接起来,外面的一个Int是将该值转换成一个INT对应参数里面的数据类型。

另一个参数和这个参数一样添加即可,只不过&连接的是31我又偷懒了一下,因为我们后台数据是INT类型的,所以这边我就用了31号。当前是时间的话就不对了。

另一个参数我也截个图吧

添加数据集,下面红色的部分就是上面的两个参数。ORACLE使用":"的方式,SQL SERVER 使用“@”的方式。

现在在报表中插入表格,SSRS报表主体空白的地方右键添加一个表格。

选中那个插入的 表格按F4就会出现这个表格的相关属性,一般会出现在窗口的右侧。

在属性里面有个DataSetName这个就是这个工程里面的数据集。从里面选择一个。

这个时候回到表格的地方就会看到,在单元格中点击鼠标就会出现一个下拉框,这个里面就是你选择的那个数据集里面的字段。

再对表格进行调整一下就行了,表格的第一行为表头,可对格表进行各种属性修改。需要自己摸索了。

时间: 2024-10-11 06:58:21

制作一个SSRS的ORACLE数据库报表,使用了时间类型的参数。的相关文章

Oracle 数据库服务器修改操作系统时间的注意事项

Oracle 数据库服务器修改操作系统时间的注意事项: 对单机或者ha 1.对数据库本身而言,其实是没有影响的.因为scn不依赖于os时间 2.对app(应用程序)而言,若是app中使用了sysdate之类的,那确实是有影响的. 基于这个情况,我们一般推荐:改os时间 不往之前的时间去改,而是往今后的时间去改. 对rac 1.对数据库本身而言,有影响,因为CRS需要节点的os时间保持同步,否则可能会引起节点驱逐. 2.对app(应用程序)而言,若是app中使用了sysdate之类的,那确实是有影

详解Oracle数据库服务器修改操作系统时间的注意事项

Oracle 数据库服务器修改操作系统时间的注意事项: 对单机或者ha1.对数据库本身而言,其实是没有影响的.因为scn不依赖于os时间2.对app(应用程序)而言,若是app中使用了sysdate之类的,那确实是有影响的.   基于这个情况,我们一般推荐:改os时间 不往之前的时间去改,而是往今后的时间去改. 推荐:安装oracle10g时候注意事项&修改oracle数据库字符集编码 [安装oracle10g时候注意事项:1. 关闭网络连接2.……修改oracle数据库字符集编码:先用syst

java 实现往oracle存储过程中传递array数组类型的参数

注:本文来源于 <  java 实现往oracle存储过程中传递array数组类型的参数  > 最近项目中遇到通过往存储过程传递数组参数的问题, 浪费了N多个小时,终于有点头绪. 具体的代码就不写上了,因为项目中存储过程的调用方法全部是封装好的(好像现在都这样,都姓3层,嘿嘿) 原理: 1.一维数组 A.单纯的一维数组的话,直接建立一个table类型就可以 1 TYPE TYPE_VARCHAR AS TABLE OF VARCHAR2(200); 2.多维数组 A.多维数组就要稍加修改了,如

SSRS连接ORACLE数据库制作报表

SSRS报表基于ORACLE数据库做报表示例. 开发环境:VS2010 SQL SERVER 数据库:SQL SERVER 2012 PS:数据库连接部分可能有还有个问题就是ORACLE数据源这一部分的东西理论上应该装一个ORACLE客户端,但是在测试机器上也有装,但在PLSQL中查看到的tnsnames.ora文件却不是ORACLE客户端的那个文件,这个有点儿奇怪,我过两天再试一下,刚好本机重新安装了,验证之后再来更新该文. 首先建立相关的数据源. 将那一段字符串直接放在连接字符串里面,字符串

Django 数据库ORM 操作 - 字段的类型和参数

通过Django的ORM创建表的时候,我们需要定义自己的类. 定义类的时候,他有各种各样的字段类型,每个字段都有自己的参数可以进行配置,下面简单的归纳一下. 首先看看字段的类型.尽管Python提供了近乎20种类型,他转换成数据库表之后,其实本质就是4个类型:字符串,数字,时间和二进制. AutoField(Field)     - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField)     - bigint自增列,必须填入参数 prim

oracle数据库报表汇总函数grouping

前两天同事问一个oracle使用grouping完成一个统计报表的功能,这个函数帅呆了.开发分组报表直接一个SQL就搞定. grouping(columnA)函数的意思:当前行如果是由rollup汇总产生的,那么columnA这个字段值为1否则为0 元数据: 通过grouping查询后的数据: sql: select decode(grouping(f_line)+grouping(f_workarea),1,'小计',2,'总计',f_workarea) f_workarea, decode(

Oracle 数据库 INTERVAL DAY TO SECOND类型的使用

INTERVAL DAY TO SECOND类型可以用来存储单位为天和秒的时间间隔.下面这条语句创建一个名为promotions的表,用来存储促销信息.promotions表包含了一个INTERVAL DAY TO SECOND类型的列duration,该列用来记录促销有效的时间间隔:  CREATE TABLE promotions (promotion_id INTEGER CONSTRAINT promotions_pk PRIMARY KEY,name VARCHAR2(30) NOT

java向oracle数据库中插入当前时间

public class Test{public static void main (String args []){ java.util.Date a = new java.util.Date();System.out.println(a);java.sql.Date b = new java.sql.Date(a.getTime());System.out.println(b);java.sql.Time c = new java.sql.Time(a.getTime());System.o

oracle数据库的date和timestamp类型

1.date类型存储数据的格式为年月日时分秒,可以精确到秒 timestamp类型存储数据的格式为年月日时分秒,可以精确到纳秒(9位) 2.date类型 Date类型的数据可以显示到年月日,也可以显示到年月日时分秒,主要看存储数据的精确度 注:这里的显示是指从plsql可视化工具中看到的数据显示 1)存储年月日只显示年月日 2)没有存时分秒,或者时分秒位00:00:00,也都只显示年月日 3)注意:还有一种报错的情况 4)存储年月日时分秒才会显示年月日时分秒 注意:date类型存储到数据库的格式