报表宏开发基础报表宏开发_第1页
报表宏开发基础报表宏开发_第2页
报表宏开发基础报表宏开发_第3页
报表宏开发基础报表宏开发_第4页
报表宏开发基础报表宏开发_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

报表宏开发基础,丘世通,1.介绍报表宏的基本知识,作为新进定制开发人员学习宏的指引。2.帮助非开发人员快速掌握基本的宏开发,在涉及简单宏定制及宏问题时能够快速解决。Tip:报表宏开发并非专业定制开发人员才能掌握,任何一个人,通过简单的学习,也可掌握常用宏开发技能。正如PPT,并非需要了解其所有功能才可使用,知道简单添加幻灯片,编辑文字也可完成一个简单的PPT,只是了解得更多,能做的就更多。,培训目的,讲师:提前了解培训对象,针对学员水平进行培训内容的调整。正式培训前需要进行简单演练。学员:1.提前到wiki查看相关报表宏开发的资料,记录自己遇到的问题,带着问题参加培训。学习链接::18081/pages/viewpage.action?pageId=270018312.参照wiki,分别针对电子表格、灵活分析、透视分析、页面写一个宏示例。3.了解HTML/CSS及JavaScript知识。HTML/CSS:JavaScript:,培训前准备,目录,CONTENTS,宏的简介,01,报表宏是Smartbi里面的一项特殊功能,可以基于报表或页面资源进行扩展。报表宏是JavaScript的代码集合体,我们也称之为宏模块。,宏的作用,Smartbi的报表拥有基本固定的报表展现样式及可视化的操作按钮,可以满足大多数的最终用户查看及分析数据的需求。而总会有少数用户,希望针对部分报表进行特殊化的调整,比如调整展现样式,增加功能按钮等,而这时就可以发挥报表宏的作用,对特定报表进行自定义处理。,宏的类型,客户端宏宏的事件由浏览器端触发,模块里面的宏代码由浏览器端进行处理。客户端宏主要影响浏览器端的展现效果,除了图形(直接加在图形对象上的部分宏功能可以对导出生效),其他报表的客户端宏都不会对导出有效果。服务端宏表示宏的事件由服务端触发,模块里面的宏代码由服务端进行处理。服务端宏因为在服务器上运行,对浏览器端展现和导出报表都是生效的。,宏的应用方式,报表宏直接在报表资源上创建的宏,仅对本报表资源生效。资源包适用于同一类报表资源,创建好后可以通过设置指定生效的报表资源。工具宏用于创建通用的方法,可以在宏代码中直接引用。,宏开发技术基础,02,报表宏使用JavaScript语言开发,意味着需要掌握JavaScript的基础知识及调试技巧。放心,这真的非常基础和简单。,JavaScript在线教程:returna*b;/返回a乘于b的结果,JavaScript基础,1.为什么结果跟我预想的不一样?2.如何知道某个对象的属性和方法有哪些?3.为什么会报错?,JavaScript开发常见问题,functionmain(spreadsheetReport)varnum;varss=1+num;/ss的值是多少?varreportName=spreadsheetReport.alias;/获取报表名称?vardomObject=document.getElementById(userName);varuserName=domObject.innerHTML;/为什么会报错?,调试步骤:1.在需要查看代码运行情况的地方加debugger;2.在浏览器中按F12打开调试界面(开发者工具);3.运行报表,代码即会在debugger处暂停。,JavaScript调试,调试功能区,更具体的调试说明文档可参考网上相关教程,如:,报表宏使用的是JavaScript语言,在客户端宏中可以正常使用JavaScript语言操作所有的DOM对象。因而,如果需要在宏里修改报表页面上的元素,比如修改颜色,增加操作按钮等,均可直接在网上搜索关键字,找到参考代码。搜索:JavaScript修改字体颜色functionchangeColor()varx=document.getElementById(Id1);/根据ID获取页面DOM元素x.style.color=red;问题:在报表宏里,怎么获取报表页面上指定的DOM元素?,JavaScript示例,宏事件与宏对象,03,报表执行过程中开放了多种宏事件接口,而每一种类型的报表,在对应宏事件中,都拥有特定的报表对象,通过在宏事件中操作该对象可以很方便地对报表进行修改。,报表从打开到完整展现的过程,会经历一系列的步骤(事件),比如打开报表后,刷新报表后,参数改变后。通过在进行这些步骤的时候,加入扩展的入口,使得程序在执行这些步骤之后可以先去加载对应事件的自定义宏代码。以达到在对应事件中方便、准确地修改报表的目的。,宏事件的理解,打开报表,参数变更,刷新数据,.,.,.,.,宏代码,宏代码,宏代码,宏事件-电子表格,宏事件-页面,宏事件-灵活分析/图形,宏事件-仪表分析/透视分析,宏事件-多维分析,宏对象,宏的开发实际离不开API,目前现阶段还没有完善的API文档,灵活开发需要了解每个宏对象对应的产品源码,宏对象对应源码文件如下(各文件位于Smartbiwar包中):,问题:在报表宏里怎么获取报表页面上指定的DOM元素?1.直接使用js查找DOM元素如:getElementsByTagName,getElementById,getElementsByClassName。2.报表页面上显示的大部分元素,都可以直接在宏对象中找到,结合宏对象中的属性或方法可以更快速、更准确地获取到指定的DOM元素。根据DOM元素的bofid属性获取DOM元素:spreadsheetReport.elem+bofid值,宏对象简介-电子表格,宏对象中不仅包含了很多页面元素,同时还有很多与报表相关的信息,比如报表名称、参数信息等,还有公用的方法,比如刷新、获取参数值等。,继续介绍宏对象,宏对象源文件-电子表格,报表的执行过程通常封装在一个个方法中,为达到某些目的,可以在报表宏中改写报表既有的方法。例:在刷新报表前弹出提示框。方法:首先需要找到刷新方法(推荐使用事件断点),然后直接通过报表对象.方法名的方式直接改写方法。,改写方法,functionmain(spreadsheetReport)spreadsheetReport.doRefresh_old=spreadsheetReport.doRefresh;spreadsheetReport.doRefresh=function(fromButton,delayMask)alert(已经刷新了!);spreadsheetReport.doRefresh_old(fromButton,delayMask);,1.将电子表格参数面板放置到工具栏1)先在页面上调出效果。2)选取适当宏事件,创建客户端宏。3)查找并操作DOM元素,移动参数面板到工具栏。,客户端宏-实战演练,2.灵活分析设置开始日期和结束日期参数值不能超过一年,否则不刷新报表并给出提示。方案:1)查找灵活分析刷新方法。2)选取适当的宏事件,创建灵活分析客户端宏。3)重写刷新方法。(考虑备份原方法)4)获取当前日期参数值。5)在刷新方法执行之前先判断日期参数值是否超出一年,是则提示,否则正常刷新。(常用关键代码一般可在网上查找,如:js日期范围限制),客户端宏-实战演练,服务端宏基础,04,服务端宏底层是使用了Rhino工具包,语法遵循Javascript语法规范,能够引用Java类并创建Java对象来使用,服务端宏在服务器上运行,对报表的展现和导出都是生效。,服务端宏对象,对于初级用户,则主要根据“帮助”栏提供的API使用宏对象,也可多参考服务端宏示例::18081/pages/viewpage.action?pageId=27002033以电子表格服务端宏为例:1.HO_Application下的为全局对象,可直接在服务端宏中使用。2.logger对象用于打印日志,已方便调试,其对应HO_Logger。3.spreadsheetReport对象为电子表格服务端宏对象,其对应HO_SpreadsheetReport。4.HO_SpreadsheetReport的sheets属性对应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论