biee报表开发总结

时间:2019-05-14 18:49:36下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《biee报表开发总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《biee报表开发总结》。

第一篇:biee报表开发总结

biee报表开发总结

(一)当BI项目已经在essbase中搭建好框架之后,接着就要通过biee制作各种报表来展示BI的成果了。

BIEE报表开发能否成功的关键就在于初期的设计。首先你必须明确你的需求,你开发的报表是给哪些人使用的,他们会如何使用,比如他们一般会有些什么输入,他们希望产生什么样的输出以及他们可能会做什么样的下钻动作。一张报表往往只是给一类人使用的,你必须精心地为他们挑选合适的维度以及初始粒度。所以同样的查询内容往往需要做好几张报表适合不同维度不同方式的数据查看(用下钻的方式可以通过汇总数据查询到详细数据,但是效率不高,如果已有足够的信息可以直接查到详细数据则直接显示详细数据)。这样做可以减少每次查询使用到得维度,从而提高查询效率。一般在一张仪表盘页中只放一张报表(汇总报表除外)。

一组报表一般由一张汇总报表(给领导查看)和几张明细查阅报表组成,汇总报表中包含各种图表,初始粒度大,同时支持很深的下钻,明细报表针对某个用途提供合适的查询方式,一般不放图表。维度是由请求字段控制的,字段越多查询越慢,所以请求字段不能过多,尤其是大的维度(我遇到过成员好几千的维度,而且层次很少)不能太多,除非已经在筛选器中进行控制,最好不要直接添加时间字段,而使用全局筛选器来控制时间。相反请求提示和相应的筛选器越多查询效率就越高,所以请求提示和筛选器可以多一些(这样还可以提供便捷的访问),请求提示使用什么输入方式也是需要考虑的问题。关于使用表还是数据透视表,两者各有利弊。表因为其结构就是请求字段的结构,所以可操作性强一些,可以实现很多数据透视表无法实现的功能(仪表盘排序,条件样式等),但是数据透视表在表现能力上优于表,尤其是维度较多的情况,可以通过一些高级的操作来改善数据透视表的功能(如修改saw脚本)。

总体来说BIEE报表的设计要控制好以下3点:

1、汇总和明细分开;

2、控制各种不同的查询路径;

3、考虑查询效率。

biee报表开发总结

(二)因为我做的报表的数据源是essbase多维数据库,所以在制作报表时不需要在administration tool当中添加维度和度量。只要直接导入数据源,然后做两次拖曳就可以了。但是很不幸的是BIEE其实并没有提供对essbase很好的支持,很多功能都无法实现,或需要调整之后才能实现。

在将文件夹从物理层拖到逻辑层之后,可以看到多维数据库的逻辑结构,但是展开的时候有些让人不知所云,因为biee并不使用essbase大纲中的名称,而是根据维度层次来命名的。需要注意的是每个维度实际是从第2层(Gen2)开始的(因为essbase大纲中的实际维度也是从第2层开始算起,第0层是大纲的根,第1层是维度的根),之后的层次可以看到被标为蓝色,这类似于关系型的雪花模型。所以在将文件夹从逻辑层拖到展现层之后就可以把第0层和第1层删了。维度的每一层只有一个key,它到底是维度值还是它的别名呢?答案是别名,而且我到目前为止还没有发现显示维度值的方法(可能是BIEE不支持)。接着修改一下维度和度量的标签就可以在answer里面使用了。但是这样还是不够的,当使用到聚合的时候就会出现“发现外部聚合集”的错误,原因是BIEE在导入essbase的时候,默认将度量的聚合属性设置为外部聚合。只要将外部聚合改为正确的度量即可,注意在物理层和逻辑层都要改,另外所有度量都要指定一种聚合方式,不能为none。

biee报表开发总结

(三)在answers中的开发难点就在于设计,我在(一)中已经介绍了经验。但是显然不可能一开始就设计得十分完美,有的时候会遇到功能实现不了或者效率太低,报表根本刷不出来,这时要么修改原先的设计,要么想办法解决问题。

关于如何提高效率,首先是优化查询。在BIEE当中,有趣的一点是它首先根据你的设计生成一条SQL查询语句,然后如果判断出数据源是多维数据库,则再将SQL语句在后台转化为MDX语句去执行。转化的逻辑大致是,select子句中放查询目标集(对应于MDX中的select字句,但是没有行列之分),from字句中放cube,where字句中定义如何进行切片。所以在设计时尽量控制请求字段(对应select字句)中的维度字段,不需要的维度不要添加,尤其是大维度,而筛选器(对应where字句)则尽可能的多,这样切片可以切得小一些。另外查询的逻辑不要太复杂,不要使用嵌套查询(筛选器不要使用“根据其他请求结果”)。如果这样还不行,就只能优化数据源了,对于essbase,可以考虑将一些复杂的动态计算转为预先计算后存储(虽然这样做很可能会导致占用的空间增长好几倍...),可以大大提高效率。

在BIEE中表的样式控制要比数据透视表灵活得多,基本的样式都是可控的,所以能用表的时候就尽量用表。关于如何设置样式,由于比较繁杂而且在(一)中也介绍了一些经验,所以这里就不一一介绍了,比较重要的就是条件样式(只用表能用),可以灵活地控制显示样式,另外就是列的隐藏,可以控制哪些列在表中不显示。

BIEE的访问控制是比较灵活的,可以使用单独的链接,也可以对标题设链接,还可以对值设链接,并可以控制是否用于下钻(在列的交互控制当中设置搜索或链接)。BIEE最神奇的就是筛选器中的提示选项,选了这个选项不仅可以使用提示中的选择还可以用于链接的值传递。如果一个请求的字段的筛选器使用提示,则通过值链接被连接过来的时候,该字段就会被筛选为进行链接的那个值。另外使用提示默认是所有值,所以可以灵活的控制提示字段,比如同一个请求在不同地方使用时,需要的查询条件可能不同,这时可以通过请求提示来控制查询条件,此时就必须将所有使用到的查询条件字段加一个使用请求的筛选器。

不过在awnser中提示筛选器是不会被使用的,如果不使用筛选器就会导致查询过慢的话,建议在设计报表时先指定一个筛选值,设计完成后再将筛选器的筛选方式改为请求。对于实在无法实现的功能,最后一条路就是修改saw脚本了,但是有关BIEE的saw脚本的文档实在太少...不过通过查看saw脚本倒是可以分析出别人的报表的某些功能是怎么实现的。实施上saw脚本包含了一个请求的一切,包括显示样式和SQL查询,所以如果要备份或者拷贝一个请求,最简单的方法就是把saw脚本拷贝下来。如果你想直接修改SQL查询语句,应该先看一下SQL查询语句的各个字句存储在saw脚本中的什么位置,然后对saw脚本修改,如果直接改下面的SQL框,点了设置SQL的结果是,它产生一个最简单的SQL语句(没有任何附加内容),而且把原来你的一切设置都重新初始化(要是你之前没备份的化,赶紧退出重来吧,千万不要保存了...)

另外介绍一些经验。为了防止字段过多导致一格内无法一行显示,可以在格式化视图的附加格式中指定一个很大的宽度,然后选择单元格向左对齐。如果只想修改请求条件的化,最好不要直接双击进入,而是先打开所在的文件夹,然后在面板中选择修改条件,这样可以避免一次不必要的查询。查询如果异常中断,即使你在后台取消了请求,甚至删除会话,essbase仍然会继续执行,如果你想进入同一个请求就会报错,这时你能做的就是等待,等essbase执行完毕才能继续使用(这也是BIEE与essbase不兼容的一个表现,它导致了BIEE的不稳

定,所以要尽量避免没有筛选控制的查询)。

biee报表开发总结

(四)本文主要讲biee中answers和dashboard的开发步骤。在administrator tool搭建好框架之后,接着通

过在浏览器中操作的answers和dashboard开发最后的报表显示。

首先要做的是添加全局筛选器。对每一个维度都设定一个全局筛选器,每个层次都设定为请求。

接着开发请求。按请求在报表中的使用顺序一个一个开发请求。先选择合适的请求字段,再添加全局

筛选器,接着添加测试筛选条件(因为全局筛选器中的筛选条件都是请求,所以不会在answers中发挥作

用,所以不会和测试筛选条件冲突),然后在表中查看结果,如果要用表显示则调整字段的顺序。如果不

报错且数据无误,则返回请求条件面板,添加一些需要计算的字段(这些字段可以通过加入一个原始字段

然后用编辑公式输入计算表达式产生),设置标题和值的样式,并添加筛选器。然后在结果面板中开发需

要用到的数据透视表或图表,同样需要设置字段顺序和显示样式和一些其他小功能(比如计算和排序)。

然后在组合布局中调整布局,并调整格式化视图中的值。最后回到条件面板,在列格式中设置交互即链接

(建议不要现在做,因为链接最好链接到仪表盘,不过如果链接的内容很简单也可以这里做)。

然后开发提示。提示要考虑到所有可能的筛选,提示可以尽量多(就像筛选要尽量多),但是必须要

关联到筛选器。提示的输入方式很重要,必须要根据实际需求精心设计。提示之间有关联的要勾选约束,这样可以限制提示的内容。但是biee的约束很恶心,你不能限定某几个提示有约束,一旦勾选了约束,就

会和所有约束关联,也就是说如果其他任何一个提示被输入错误的值,它就会报错。对提示进行分组以防

止一行中提示太多。提示设计完成后一定要预览一下,看看效果如何,尤其是约束关系。这时可以将所有的测试筛选器删除了。

然后就可以再dashboard上开发了。首先建一个仪表盘,然后添加提示和请求,不同的请求放在不同的部分,但是因为部分只能垂直排列,所以如果要水平排列则必须放在同一个部分,并设置排列方式为水

平排列,排版的时候要注意,各部分的附加格式的宽度必须一致,否则会出现排版错误。最后就是甚至权限了,这个很简单,这里不介绍了。

整个开发过程当然不可能按上面的步骤一帆风顺地做下来,在开发过程中经常会遇到需求变更和一些

意外的结果,所以整个开发过程应该是一个循环迭代的过程,不断地完善,最后使得开发出

来的报表十分

好用而且能够从各方面反映这个报表应该反映的内容。

第二篇:2015总结报表

2015总结报告

2014已经过去,首先感谢领导给我这个机会,让我有幸成为富邦的一员,2014进入富邦一个多月的时间主要是了解公司及产品的相关情况,2015年计划如下:

一、加强对家具销售专业知识的学习:

1)产品知识方面:对于办公家具产品材料特点、规格型号包括面料和产品等以及使用方法、保养及维修知识。

2)客户需求方面:对办公家具购买者包括潜在客户的消费心理、消费层次、及对生产产品的基本要求,加深引导。

3)市场知识方面:对家具市场的动向和变化、顾客购买力情况认识,对不同区域市场分析;工程进度认识。

4)专业知识方面:对家具有关的工艺技术知识学习,如装修设计,空间布局与家具摆放的美观性没有概念。5)签单技巧的培养。

“怎么拿到客户→跟踪客户→业务谈判→方案设计→成功签单→售后安装→售后维护→人际维护”等这一系列的流程的学习。

第三篇:BIEE项目实施心得汇总

BIEE项目实施心得

报表追溯

A某列报表追溯到B报表

1)不带参数:报表开发编辑页面-列属性

交互-值/列标题:主交互()操作连接

操作-导航到BI内容

选择报表

OK 2)带参数: 带参数的报表需要在被追溯的报表中添加列过滤器,运算符选择提示(如下图年月)

注意:A表传参数的字段和B表接受参数的字段,列公式:展示层的表名和列名必须一致:

如A表列公式为“维度信息”.“年月”,B表过滤器中提示的列公式也必须为“维度信息”.“年月”

用户和权限

默认年月

建立提示,提示默认值转换成SQL,写入如下语句

a)默认上月:year(current_date))*100+MONTH(CURRENT_DATE)-1 b)默认当日:year(current_date))*100+MONTH(CURRENT_DATE)+DAYOFMONTH(CURRENT_DATE)c)

d)“维度信息”.“年月” >=(year(current_date)-1)*100+MONTH(CURRENT_DATE)-1 e)“维度信息”.“年月” <=(year(current_date))*100+MONTH(CURRENT_DATE)-1 主从事件

必须将发送的维度拖入到提示区

二次开发

1)修改biee logo 用新的同样大的图片/png格式替换 登录主页Logo: oracle_logo.png

D:bieeuser_projectsdomainsbifoundation_domainserversbi_server1tmp_WL_useranalytics_11.1.17dezjlwarressk_blafplogin 报表页面Logo:oracle_logo.png D:bieeuser_projectsdomainsbifoundation_domainserversbi_server1tmp_WL_useranalytics_11.1.17dezjlwarressk_blafpb_mozilla_4 2)修改标题和头高度:

修改文件路径:

F:BIEEuser_projectsdomainsbifoundation_domainserversbi_server1tmp_WL_useranalytics_11.1.17dezjlwarresb_mozilla header.js

(a,“IMG”);b.border=0;b.src=saw.header.getResUrl(“branding_whitegradient.png”);b.alt=“";var c=saw.createChildElement 去掉抬头

false};saw.header.Viewer.launchAlerts=function(){var a=new obide.AlertsDialog.Model();new obide.AlertsDialog.Viewer(a,obips.FloatingWindow.Manager.getSingleton())};saw.header.Branding=function(e,a,d,b,c){this.headerModel=e;this.logo=a?a:saw.header.getResUrl(”common/oracleLogo.png“);this.productName=d;this.desc=b;this.href=c?c:saw.commandToURL(”bieehome“)};saw.header.Branding.prototype.render=function(f){var d=document;var e=f.insertCell(0);e.className=”HeaderLogo“;var b=saw.createChildElement(e,”IMG“);b.border=0;b.src=this.logo;b.alt=saw.header.getLocalizedString(”kmsgHeaderOracleLogo“);var a=f.insertCell(1);a.className=”HeaderBrandingCell“;b=saw.createChildElement(a,”IMG“);b.border=0;b.src=saw.header.getResUrl(”branding_whitegradient.png“);b.alt=”“--删除表头;var c=saw.createChildElement(a,”span“);c.className=”HeaderBrandName“;saw.appendTextNode(c,'BIEE');--修改表头名this.nameSpan=c;saw.addEventListener(window,”resize“,this.onWindowResize,this,true);this.gradientImg=b;this.container=f};saw.header.Branding.prototype.onWindowResize=function(b){var a=this.gradientImg;if(saw.userAgent.is_ie&&!saw.userAgent.is_ie9up&&b){var c=0;for(var d=0;d

登录主页点管理-

安全性-管理权限

登录主页设置

登录页面点我的账户

起始页

参数变量

Biee的变量分几种(库变量,会话变量,介绍变量,请求变量,Biee内部定义的变量不说了),用起来经常让大家糊涂,再此做个总结,有异议的地方请消息给我·· 欢迎讨论~ 现在开始吧,Administrator tool-Manage-Variable 下图~

这里是模型RPD定义变量的地方,也就是所定义的变量名都是保存在RPD模型中,Variable 所定义的变量类型分为两大类,一种是Repository(库变量),另外一种是Session(会话变量)。

其中Repository分两种变量的类型:Dynamic(动态变量)和Static(静态变量)Session也分两种变量类型:System(系统变量)和Non-System(非系统变量)现在说一下库变量的用途,库变量的Static(静态变量)经常是作为项目需求中经常用的固定值做为这个静态变量值的,举个例子:如果一个项目中有10个Dashboard,每个Dashboard有10个page,每个page的下标都需要带上公司的版权注释,当公司被收购了版权需要更改的话怎么办,改一百次版权信息?这里如果用静态变量的话就方便多了,只需修改变量对应的缺省值就可以了。用法如图:

建立一个Static的Repository Variable

变量名为SRV缺省值为222050000,其中要注意一下类型Type,因为是静态的,所以不需要初始化块。在前端直接就可以调用了

命名必须和静态变量的名称相同(不用解释吧)~

看一下效果

OK,调用静态的库变量成功。

这里需要注意一下,表达式和筛选调用库变量的时候是可以VALUEOF('SRV')来引用,而其他地方调用的话例如文本:需要这么写@{biServer.variables['SRV']}。

再看一下动态(Dynamic)的库变量的用途,例如:一个项目中,要求当用户登录的时候看到的数据是当天(当月)的数据,这时候我们需要用到动态的库变量(也有其他方法,不做介绍了)。

所谓的“当前”,就是此刻所在的月,所以这些需要设置初始化块来设置时间的更新设置。如图:

Edit Data Source是编辑查询的地方,会返回若干行值;

Edit Data Target是指定查询返回的数据用于初始化哪个变量的。返回值的顺序和需要初始化的变量顺序需要严格对称;

Schedule的地方就是制定查询执行的频率,即多久更新一次变量。前端的调用方法可以静态的库变量相同;下图依文本为例:

效果如下:

这里需要提醒一下。库变量无论是静态的或是动态的,在前端都是无法对起变量值进行更改的,当然如果是库变量的取的关系库表中的值,通过回写数据库的数据来改动态的库变量也是一种方法哦~

再看一下什么时候Session会话变量,回话变量的设置方法和库变量类似,也是可以直接设置Variables,当然也可以定义初始化块来定义更复杂的会话变量,其中会话变量分系统变量和非系统变量。

系统会话变量:DISPLAYNAME,EMAIL,GROUP,LAST_SYNCH_TIME and THIS_SYNCH_TIME, PORTALPATH,REQUESTKEY,SKIN,USER,WEBGROUPS.这里常用到的就USER,GROUP,DISPLAYNAME三个,其他变量是含义请参考 Business Intelligence Server Administration Guide。非系统会话变量名称可以自定义,但不要和系统变量同名即可,这里不再说步骤了,和库变量定义相同,这里定义了一个非系统回话变量的如下:

其中Edit Execution Precedence是加载其他的应用程序定义的变量(例如:LDAP定义的用户变量)。

Test可以测试查看到变量名称和其缺省值

再前端调用一下

注意调用会话变量的时候是VALUEOF(NQ_SESSION.变量名)而调用库变量的时候是VALUEOF(变量名)

OK~调用成功。

注意当不加指标列的时候(只有会话变量列的时候会报错)~

系统自带的会话变量如USER,GROUP等就不举例了,网上有很多实例,也可以去看我的相关LDAP权限控制博文。再看看前端可以定义的变量~ 前端可以定义的变量都是创建提示中设置

他分为介绍变量和请求变量,其中介绍变量是把提示中(也可叫筛选器)的所选项作为变量的Value值进行使用,用法如下: 定义介绍变量名

用@{变量名}的结果来引用

那么什么是请求变量,请求变量是从新定义会话变量的Value值的变量,其新定义的值来自提示所选项。

设置请求变量名的时候必须要和将修改的会话变量名称相同,上边已经定义了一个非系统会话变量SessionTest,Value值为222010000,下面以这个为例,来修改会话变量SessionTest 的Value值。

定义一个提示的请求变量,名为SessionTest

在做一个会话变量的表

这里无需加筛选器,因为调节列是来自会话变量,我们实验的目的就是用提示的请求变量来修改这个会话变量的列~ OK~添加到仪表盘里看一下结果~

为了试验明显提示的缺省值没有进行设置,这里的缺省值是来自会话变量的222010000。

操作一下提示来改变会话变量的Value值~

OK~~!

变量用法总结:

库变量在Answers列的编辑公式中调用方法是VALUEOF(”变量名")

会话变量在在Answers列的编辑公式中调用方法是VALUEOF(NQ_SESSION.变量名)

库变量和会话变量在其他地方调用(例如文本中)是@{biServer.variables[‘变量名']} 介绍变量的调用方法是@{变量名} 系统自带了一些会话变量如下: Delivers:@{currentMonth}。

currentTime => @{system.currentTime} = 2010-5-14 2:21:30 system.productVersion => @{system.productVersion} = 10.1.3.4(Build 080726.1900)session.locale => @{session.locale} =zh-cn session.language => @{session.language} = zh rtl =>@{session.rtl} = false

session.loginTime => @{session.loginTime} = 2010-5-14 1:42:36 session.logoutTime =>@{session.logoutTime } = 2010-5-14 1:42:31 session.lastAccessTime =>@{session.lastAccessTime} = 2010-5-14 2:21:29 session.currentUser => @{session.currentUser.id} = administrator

user.homeDirectory => @{user.homeDirectory} = /users/administrator user.id => @{user.id} = administrator

user.displayName => @{user.displayName} = administrator

数据权限设计

待讨论

第四篇:GridView报表总结

绑定数据

1、通过DataReader

string conStr = “Data Source=orcl;User ID=gtzf;Password=gtzf;”;OracleConnection conn = newOracleConnection(conStr);string QueryStr = “ select * from JBAJDJB ”;OracleCommand oraCMD = newOracleCommand(QueryStr, conn);conn.Open();OracleDataReader oraRead = oraCMD.ExecuteReader();GridView1.DataSource = oraRead;GridView1.DataBind();

2、通过DataSet string conStr = “Data Source=orcl;User ID=gtzf;Password=gtzf;”;OracleConnection conn = new OracleConnection(conStr);string sql = “SELECT UsersName FROM users”;OracleDataAdapter adapter = new OracleDataAdapter(QueryStr, conn);DataSet ds = new DataSet();adapter.Fill(ds);GridView1.DataSource = ds.Tables[0];GridView1.DataKeyNames = new string[] { “ID” };GridView1.DataBind();

3、通过DataTable string conStr = “Data Source=orcl;User ID=gtzf;Password=gtzf;”;OracleConnection conn = new OracleConnection(conStr);string sql = “SELECT UsersName FROM users”;OracleDataAdapter adapter = new OracleDataAdapter(QueryStr, conn);DataSet dt = new DataTable();adapter.Fill(dt);GridView1.DataSource = dt;GridView1.DataKeyNames = new string[] { “ID” };GridView1.DataBind();

GridView实现隔行换色

JavaScript代码:

Body引用

引用GridView在页面中

1、最简单的引用

<%--设置表头背景色为浅灰色--%>

2、嵌入Table的引用

表名

<%--设置表头--%>

第1列 第2列 第3列 第4列 第5列/th> 第6列 第7列
<%--设置表的内容--%>

第1列 第2列 第3列 第4列 第5列 第6列 第7列
<%--设置各行换色的效果--%>

保存GridView内容到EXCEL

1、第一种方式 1.1、添加com组建

1.2、添加引用 using Excel = Microsoft.Office.Interop.Excel;using System.Reflection;using System.Runtime.InteropServices;1.3、实现保存 //判断数据是否为空 if(GvData.Rows.Count <= 1){

Response.Write(”“);

return;} //创建一个Excel应用程序

Excel.Application excel = new Excel.Application();//是否显示导出过程 excel.Visible = false;//定义缺省值

Missing miss = Missing.Value;//创建一个新的工作簿

Excel.Workbooks workbooks = excel.Workbooks;Excel.Workbook workbook = workbooks.Add(miss);Excel.Worksheet sheet = workbook.ActiveSheet as Excel.Worksheet;sheet.Name = ”This is a test Excel“;Excel.Range er;

//获取列数

int column = this.GvData.Rows[0].Cells.Count;//获取行数

int row = this.GvData.Rows.Count;

//表的名称

excel.Cells[1, 1] = ”表名“;er = sheet.get_Range(sheet.Cells[1, 1], sheet.Cells[1, column]);//获取第一行 er.Merge(0);//合并单元格

er.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;//设置居中对齐 er.Font.Size = 11;//设置字体大小

er.Cells.Interior.ColorIndex = 15;//设置背景色

//循环添加表头

for(int i = 0;i < column;i++){

excel.Cells[2, i + 1] = this.GvData.HeaderRow.Cells[i].Text;}

//添加主体

for(int i = 0;i < row;i++){

for(int j = 0;j < column;j++)

{

excel.Cells[i + 3, j + 1] = this.GvData.Rows[i].Cells[j].Text;} }

//设置Excel表格属性

er = sheet.get_Range(sheet.Cells[2, 1], sheet.Cells[row+2, column]);er.Font.Size = 11;er.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;er.EntireColumn.AutoFit();//设置自动调整列宽 er.Borders.LineStyle = 1;//添加边框

string fileName = @Server.MapPath(”“).ToString()+ ”表名称-“ + DateTime.Now.ToLongDateString()+ ”.xlsx“;sheet.SaveAs(fileName, miss, miss, miss, miss, miss, Excel.XlSaveAsAccessMode.xlNoChange, miss, miss, miss);//关闭表格

workbook.Close(false, miss, miss);workbooks.Close();//释放资源 excel.Quit();//选择保存路径进行保存

FileInfo DownloadFile = new FileInfo(fileName);Response.Clear();Response.ClearHeaders();Response.Buffer = false;Response.ContentType = ”application/octet-stream“;Response.AppendHeader(”Content-Disposition“, ”attachment;filename=“ + HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8));Response.AppendHeader(”Content-Length“, DownloadFile.Length.ToString());Response.WriteFile(DownloadFile.FullName);Response.End();

2、第二种方式

protected void BtnExport_Click(object sender, EventArgs e){ string fileName;fileName = System.DateTime.Now.ToString(”yyyy-MM-dd“);Export(”application/ms-excel“, fileName+”.xls“);} ///

/// 定义导出Excel的函数 /// ///

///

private void Export(string FileType, string FileName){

Response.Charset = ”GB2312“;

Response.ContentEncoding = System.Text.Encoding.UTF8;

Response.AppendHeader(”Content-Disposition“, ”attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());

Response.ContentType = FileType;

this.EnableViewState = false;

StringWriter tw = new StringWriter();

HtmlTextWriter hw = new HtmlTextWriter(tw);

GrdContent.RenderControl(hw);

Response.Write(tw.ToString());

Response.End();} ///

/// 此方法必重写,否则会出错 /// ///

public override void VerifyRenderingInServerForm(Control control){ }

第五篇:总结、报表管理办法

总结、报表管理办法

1、主题内容与适用范围

1.1 本办法补充规定了部门内部各类总结和报表的汇总部门及内容、时间。

1.2本办法适用于所有科室。2.总结、报表内容及填报单位 2.1业务总结、报表

2.1.1市场营销科总结、报表:《电热气分析报告》、《大客户建设进度表》;

2.1.2信息服务科总结、报表:《“95598”业务分析》(信息科月度总结);

2.1.3 计量管理科总结、报表:《电能计量装置使用情况分析》;

2.1.4 公共类总结、报表:《各科室周志》 2.2 公司总结、报表

2.2.1综合管理科总结、报表:《周志》、《各营销单位一周工作汇总》、《月度总结》、《领导班子月度总结》、《分、子公司月(季)度指标完成情况表》;《营销工作综合分析报告》、《公司月度营销工作报告》、《分、子公司营销服务类指标考核情况通报》、《电热费回收情况表》、《电热费欠费情况统计》、《平均电价变动分析》、《安全监察简报》、《安全生产隐患排查治理情况统计表》。3.报表时间及报表形式

3.1各科每周四必须在上午13:30分前将本周周志以电子邮件形式报综合管理科马苹。

3.2 各科每月25日下午19:30分前(如遇双休日和法定假日,提前至每月25日前的星期五下午19:30分前)将当月工作总结以电子邮件形式报综合管理科马苹。其它半年总结和临时性总结以具体通知时间为准。3.3《“95598”业务分析》(信息科月度总结)必须在当月26日下午19:30前(如遇双休日和法定假日,提前至每月26日前的星期五下午19:30分前)以电子邮件形式报综合管理科郭海云;

3.4《电能计量装置使用情况分析》必须在当月27日下午19:30前(如遇双休日和法定假日,提前至每月27日前的星期五下午19:30分前)以电子邮件形式报综合管理科郭海云;

3.5《大客户建设进度表》必须在当月30日下午19:30前(如遇双休日和法定假日,提前至每月30日前的星期五下午19:30分前)以电子邮件形式报综合管理科郭海云; 3.6《电热气分析报告》必须在次月2日下午18:00前(如遇双休日和法定假日,必须在次月3日下午18:00前)以电子邮件形式报综合管理科;但其中供热量,包括其中蒸汽、采暖数据指标必须在当月30日下午18:00前(如遇双休日和法定假日,提前至每月30日前的星期五下午18:00分前)以电子邮件形式报综合管理科郭海云;

3.7向股份公司上报的周志,必须在每周星期四下午18:00前以电子邮件形式报综合管理科科长;《各营销单位一周工作汇总》必须在每周五下午18:00前以电子邮件形式报综合管理科科长。

3.8向股份公司上报的《客户服务中心月度总结》、《客户服务中心领导班子月度总结》、《分、子公司月(季)度指标完成情况表》必须在每月27日上午12:00前(如遇双休日或国家法定休息日,应提前在26日或25日下午17:00前)以电子邮件形式报综合管理科科长。

3.9向股份公司领导报送的《公司月度营销工作报告》必须在每月2日上午12:30前(如遇双休日和法定假日,必须在次月4日上午12:30前)以电子邮件形式报综合管理科科长。

3.10向股份公司上报的《分、子公司营销服务类指标考核情况通报》必须在每月4日下午18:00前(如遇双休日或国家法定休息日,应提前在2日或3日下午18:00前)以电子邮件形式报综合管理科科长。

3.11向股份公司领导报送的《营销工作综合分析报告》必须在每月7日上午12:00前(如遇双休日和法定假日,必须在次月8日或9日上午12:00前)以电子邮件形式报综合管理科科长。

3.12向股份公司领导报送的《平均电价变动分析》必须在每月2日上午12:00前(如遇双休日和法定假日,必须在次月4日上午12:00前)以电子邮件形式报郭海云,同时报综合管理科科长。

3.13向股份公司领导报送的《电热费回收情况表》、《电热费欠费情况统计》必须在次月4日上午12:00前(如遇双休日和法定假日,必须在次月5日或6日上午12:30前)以电子邮件形式报郭海云,同时报综合管理科科长。

3.14向股份公司安监部报送的《安全监察简报》和《安全生产隐患排查治理情况统计表》必须在每月27日18点前(如遇双休日或国家法定休息日,应提前在25日或26日下午18:00前)以电子邮件形式或书面形式报综合管理科《安监科》科长。审核后,上报公司安监部。

4、工作质量

4.1各科室必须按本管理补充办法规定的时间,按时上报各科室总结、报表,同时应保证所报总结、报表内容真实、准确。

4.2本办法中向股份公司报送的总结和报表,由办法中规定的各工作负责人必须按规定的时间和形式上报。因其它单位或部门影响上报时间的,应提前一天向科室及中心领导汇报。

4.3负责上报总结和报表的负责人,在其它单位或部门提供的总结和报表内容和数据无误的基础上,必须对所报总结和报表中内容的真实性、准确性负责。

4.4负责汇总、整理或分析上报的负责人,发现其它单位或部门上报内容或数据有问题,直接影响上报工作的,应提前与其它单位或部门负责人沟通、联系,要求对所报内容或数据进行核对再行上报。如其它单位或部门再次上报的内容或数据仍有问题,影响总结或报表上报的,由负责汇总、整理或分析上报负责人提出考核建议,在公司营销会议上进行上报考核。

4.5 负责整理、汇总总结、报表负责人与直接上报总结、报表负责人,应主动相互核对总结、报表中内容与数据的准确性,相关的内容或相同的项目应保证内容与数据一致性,确有客观原因,影响数据的一致性和唯一性,应注明合理原因,说明清楚影响的情况。5.检查与考核

5.1未按规定时间上报总结和报表的,每类总结、报表每超一天扣责任人员1分;同时扣责任科室科长1分; 5.2因工作人员本人原因,直接影响到总结和报表按时上报的扣责任人员3分;

5.3 属于本权限范围内未发现其它单位和部门上报的总结和报表的内容或数据有问题,直接影响总结和报表按时上报的扣责任人员2分;

5.4对中心各科室及专业人员报送的内容和数据,发现有不准确的,扣责任人员2分。

5.5未按本办法第4.5条规定的,发生相同类项目的内容和数据结果不一致,不是唯一性,没有客观原因进行明确说明的,整理、汇总负责人又未积极、及时核对处理的,对整理、汇总负责人和负责直接报送总结、报表负责人各扣2分; 5.6因其它单位或部门原因,直接影响到总结和报表上报的,提出考核建议,报中心领导批准后进行考核。

下载biee报表开发总结word格式文档
下载biee报表开发总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    iReport报表开发中常见的问题

    注明: $V{PAGE_NUMBER} 表示当前是第几页 ,在text field 的 选项evaluation time选report是共几页,now表是当前页。页码可在ireport里直接设置。“共几页 第几页”iReport报表......

    报表的学习总结

    关于ActiveReports for .NET 3.0 Setup NET 的一些总结: 1:2010上不能建立该报表文件,需要在2008上建好后,复制到2010上用; 2:不存在计算列时,点击detial,将该报表需要连接的数据库......

    活动总结汇报表

    2009华南师范大学大学生暑期社会实践活动总结汇报表团队名称教育信息技术学院赴怀集服务队实践地点广东怀集冷坑中学起止时间:09年7月16日至22日人数申报重点团队 人次院系参......

    农业综合开发资金决算报表编制说明[范文模版]

    附件 2008年度农业综合开发资金决算报表编制说明 一.报表总体构成 (一)2008年度农业综合开发资金决算报表: 表一:2008年度农业综合开发财政资金收支决算表; 表二:2008年度农业综合......

    开发总结

    西博会总结 一. 提倡的地方 1. 数据方面: 利用Toad Data Modeler来设计数据模型;能够非常清晰方便的了解整个系统表和表之间的关系。 整个项目的过程中,一直安排一个人来维护数据......

    报表测试方法总结(合集5篇)

    报表测试方法总结 1.提高对业务的熟悉程度 和功能测试以及其他测试一样,报表测试也需要熟悉业务,包括业务流程、业务规则以及数据存储,不同点是报表测试要理解每个指标的算法、......

    国家农业综合开发农业部专项项目统计报表

    国家农业综合开发农业部专项项目统计报表 各省、自治区、直辖市及计划单列市农业、畜牧、渔业厅(委、局、办)、农科院、农垦总局及新疆生产建设兵团农业综合开发办公室: 为加强......

    报表分析

    2008年淮阴区儿童保健报表 资料分析 淮阴区保健所社区保健科 2008年10月18日 今年儿童保健指标统计时段按省卫生厅要求,增加许多新项目且统计口径也有所改变。目前儿童保健报......