资源描述
参数和宏
¯ 参数在SQL 语句中如何使用?
答:在sql 语句中需要用到参数的地方,写上"?",然后在参数的tab 页中,根据?的顺序,
依次写入含参数或者不含参数的表达式,如下图所示:
¯ 参数能在单元格中使用吗?和在SQL 语句中的用法有什么区别?
答:可以,直接引用参数名即可,把参数作为表达式的一个变量来使用,例如:=arg1+1
sql 语句中写上
问号
根据问号顺序写
入含参数的表达
式
¯ 宏和参数有什么区别?怎么使用宏?
答:参数是有数据类型的变量,在报表运算过程中作为变量来使用。宏是一个字符串标识,
没有数据类型,报表运算之前,引擎会搜索报表定义,检索到宏名,替换成宏值,全部替换
结束后,才进行报表运算。
宏的引用方式:${macroName}
¯ 宏和参数在网页中如何传递?
答:方法一:通过tag 标签来传递,
<report:html … …
params="param1=value1;param2=value2;… … ;macro1=value1;… … "
… …
/>
参数及宏的个数应该与报表中的参数及宏个数相同,参数名及宏名大小写一致。
如果参数值或宏值是变化的,那么应该先在JSP 代码中将参数串拼好,再传入Tag 中,
如下所示:
<%
String params = "param1=" + value1 + ";param2=" + value2 + ";" … … ";macro1=" +
value1 + … …
%>
<report:html … …
params="<%=params%>"
… …
/>
¯ WEB 发布时,如果我自己定制参数输入页面,如何把参数值传递给报表?
答:在jsp 中获得参数值,然后先在JSP 代码中将参数串拼好,再传入Tag 中,如下所
示:
<%
String params = "param1=" + value1 + ";param2=" + value2 + ";" … … ";macro1=" +
value1 + … …
%>
<report:html … …
params="<%=params%>"
… …
/>
¯ 如何使用润乾报表定制参数输入页面?
答:假如有一张显示学生成绩的报表,名为student.raq,此报表有三个参数:性别(sex)、班
级(class)、出生月份(month)。性别的输入方式为下拉列表框(1 代表男,2 代表女),班级的
输入方式为下拉数据窗口,月份的输入方式为简单输入框。下面我们先来定义一个参数表单:
运行报表设计器,新建一张“填报或参数表单”报表,如下图所示:
在此报表中,输入参数名标签,删除多余的行列后,如下图所示:
使A1、C1、E1 单元格的“是否可写”属性为false,将此报表存为studentParam.raq。
选中B1 单元格,在右边的属性列表中“参数名/JSP 引用变量名”填入此格对应的报表
参数名sex,如下图所示。同样,对D1 填入class,F1 填入month。
选中B1 单元格,点击右键在弹出菜单中选择“数据类型及编辑风格”,在弹出窗口中
设置其编辑风格为“下拉列表框”,编辑代码值和显示值如下图所示:
选中D1 单元格,点击右键在弹出菜单中选择“数据类型及编辑风格”,在弹出窗口中
设置其编辑风格为“下拉数据窗口”,编辑各项如下图所示:
最后保存此报表,完成参数表单的定制。
现在来看如何在网页中发布,如下JSP 文件所示:
<%@ page contentType="text/html;charset=GBK" %>
<%@ taglib uri="/WEB-INF/runqianReport.tld" prefix="report" %>
<html>
<body>
<report:param name="studentParam" paramFileName="studentParam.raq"
/>
<report:html name="student" reportFileName="student.raq"
funcBarLocation="boTh"
needPageMark="yes"
functionBarColor="#fff5ee"
funcBarFontSize="9pt"
funcBarFontColor="blue"
separator=" "
needSaveAsExcel="yes"
needSaveAsPdf="yes"
needPrint="yes"
pageMarkLabel="页号{currpage}/{totalPage}"
printLabel="打印"
displayNoLinkPageMark="yes"
params="class=2;sex=1"
saveAsName="学生成绩表"
/>
</body>
</html>
运行结果如下图所示:
¯ 如何实现模糊查询?
答:需要模糊时,在sql 中使用"like ?",然后在参数tab 页中写上"%"+arg1+"%",如下图所
示:
¯ 我希望用户不输入参数值时,相当于全部选出,该怎么做?
答:在sql 中使用where coln=? or ? is null 等类似的语句
参数tab 页中使用
"%"+arg1+"%"
sql 语句中使
用?
集成性和web 发布
¯ 启动Tomcat 的时候数据源绑定出错是什么原因
答:tomcat 不同版本的数据源jndi 设置方式不相同,首先请参考tomcat 相关配置手册,确
认tomcat 的数据源配置正确。
另外需要特别注意的是在配置数据源之后,启动tomcat 之前需要把相关的jdbc 驱动jar 包拷
贝到tomcat 的系统库目录下面, 例如tomcat5 需要将相关的jar 包拷贝到
<tomcat_home>/common/lib 下面,否则会报找不到jdbc 的相关类的错误
其次,查看web 应用目录下/WEB-INF/web.xml 文件里配置的datasource 的名称和您实际配
置的tomcat 数据源名称是否一致
¯ 为什么提交填报报表数据之后网页显示结果仍然是旧的数据
答:这个和ie 浏览器的设置有关系,可以通过修改ie 访问属性为”每次访问此页时候检查”
¯ 润乾报表如何实现权限控制?
答:润乾报表本身不提供权限角色的管理,方便和web 应用集成。web 应用的用户名、角
色名通过报表参数传递进来,报表中的任意一个单元格、任意一行、任意一列的所有属性都
有属性值和表达式两种定义方式,可以在属性的表达式中采用if()或者case()函数来对不同
的用户、角色进行定义。
¯ 润乾报表如何实现连接池的管理?
答:润乾报表本身不提供连接池的管理,方便用户使用web server 的连接池,用户可以在
web server 中配置datasource,然后把datasource 的名字在web.xml 里配置一下,如下所示:
配置datasource
的名字、数据库
类型、数据编码
¯ 如何将定义好的润乾报表在web 上进行发布?
答:将润乾报表安装包里web 目录下的所有文件(除了web.xml),拷贝到你的web 应用目
录下,将润乾报表提供的web.xml 文件中的内容拷贝到你的web.xml 文件中;把报表文件部
署在web 应用的reportFiles 目录下,在jsp 中调用tag 标签来发布报表。tag 标签的写法参照
《润乾报表在web 中的使用说明》。
在webserver 中配置datasource,将datasource 的名字在web.xml 中进行配置。
¯ 报表工具是单线程的还是多线程的?
答:多线程的。
¯ 日志文件的位置我可以调整吗?还是就是规定好的?
答:可以在web.xml 里进行配置。
¯ <report:html 标签里面的属性,可以使用变量吗?类似<report:html name="report"
reportFileName="tmp.raq" width="2000" params="Time=jsp 变量"
答:和html 语法相同,需要用到变量的地方,用<%=变量名%>;但是一个属性里只能用一
个变量,所以如果你的属性值是由多个变量组成的,你要在java 代码里先把这些变量拼成
一个变量
例如: <report:html name="report" reportFileName="tmp.raq" width="2000"
params="Time=jsp 变量"
要在java 代码里先这样写:jsp 变量="time="+jsp 变量
然后在标签中这样写: <report:html name="report" reportFileName="tmp.raq"
width="2000" params="<%=jsp 变量%>"
¯ 报表在编辑器中预览正常,但是在WEB 发布时,从数据库中取出的汉字乱码
答:检查web.xml 文件中,对应datasource 的数据编码配置是否正确。
¯ 设计器端报表预览可以出来数据,但是服务器端发布的时候数据出不来:
答:先看应用服务器启动的时候,有没有报错,可能是授权证书没有拷贝到WEB-INF 的目
录下;然后,再比较runqianReport.jar 看是否一致;最后检查datasource 的配置是否正确。
¯ 在页面发布的时候,把结果形成PDF 文件,但会出现乱码。
语句如下:
ServerletOutputStream outputstream = response.getOutputStream();
response.setContentType("application/pdf");
report.exportToPDF(outputstream);
outputstream.flush();
outpurstream.close();
错在哪里?
答:应该首先设置response.setContentType("application/pdf"); 然后再获得数据输出流。
常见错误信息
¯ out of memery error 内存溢出
答:该问题可能是由于web 服务器java vm 的内存设置太小,也可能是由于报表数据量过大;
解决办法:
1、java 虚拟机的设置:java -Xms128m -Xmx384m,根据实际机器的内存配置,灵活调
整
2、如果虚拟机设置后依旧出现内存溢出,可能是你的报表数据量过大,可以采取数据
集分页的办法或者数据集缓存的办法解决,如下图所示:
通过设置起始行和结
束行来控制数据集分
页,这两个属性可以通
过参数来传递
可以设置数据集
是否需要缓存,
此方法可以解决
内存溢出的问题
¯ java.lang.ClassNotFoundException: com.newatlanta.jturbo.driver.Driver at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
a:1428)
答:没有将数据库的jdbc 包部署在classpath 目录下。
¯ 单元格C4 中有错误,表达式ds1.select(contractno)中数据集未产生,可能因为
未连接数据库
答:编辑器没有连接数据库
¯ java.sql.SQLException: [JTurbo 3.0.1 JDBC 2.1 Driver]: Parameter #2 has
not been set
答:sql 语句的定义有误,sql 语句里定义的问号个数比参数tab 页中定义的参数表达式的条
数多
¯ 数据集ds1 的sql 异常:Line 1: Incorrect syntax near 'contract'.
答:类似这样的错误,往往是sql 语句的语法出现了错误,请检查sql 语句。
¯ [JTurbo 3.0.1 JDBC 2.1 Driver]: Communication Link Failure. No buffer
space available (maximum connections reached?): JVM_Bind
答:sql 语句的定义有误,sql 语句里定义的问号个数比参数tab 页中定义的参数表达式的条
数少
¯ org.apache.jasper.JasperException: com/runqian/report/view/DataServlet
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:248),
后台没有任何错误信息,所有jsp 网页不能显示,但是html 网页可以显示; 或者
org.apache.jasper.JasperException: /index.jsp(4,0) Unable to load class html
答:检查WEB-INF 目录名是否写成了小写,或者runqianReport.jar 包是否正确的部署在了
web 应用的classpath 目录下。
¯ The requested resource (/web/report.jsp) is not available.
答:此时的现象:所有的jsp 网页、html 网页、应用根目录都无法访问,应用没有正确启动
原因:应用没有正确部署或者runqianReport.tld 文件没有正确部署
¯ org.apache.jasper.JasperException: /defaultArg.jsp(22,0) Unable to load tag
handler class "com.runqian.report.tag.HtmlTag" for tag "report:html"
答:检查web 应用下的classpath 目录,看看是否所有的jar 包都已经放置在了classpath 目录
下
¯ java.lang.NullPointerException at
com.runqian.report.view.ReportCalculator.calc(ReportCalculator.java:74) at
com.runqian.report.tag.HtmlTag.doStartTag(HtmlTag.java:195) at
org.apache.jsp.defaultArg_jsp._jspService(defaultArg_jsp.java:106) at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
答:没找到License 文件,请把xrq_license.dat 文件放到WEB-INF 目录中!
¯ java.lang.NullPointerException at
com.runqian.report.usermodel.ReportDataSetConfigs.calcDataSet(ReportDataSetC
onfigs.java:99) at
com.runqian.report.engine.CalcRpt.calcRpt(CalcRpt.java:24) at
com.runqian.report.usermodel.Engine.calc(Engine.java:144) at
com.runqian.report.ide.ReportEditor._$5157(ReportEditor.java:551)
答:请检查报表模板中自定义的数据集用到的类,看看是否正确的放在了classpath 目录下
¯ java.lang.NullPointerException at
com.runqian.report.view.excel.ExcelReport._$16606(ExcelReport.java:205)
at
com.runqian.report.view.excel.ExcelReport.createWorkbook(ExcelReport.java:67)
at com.runqian.report.view.excel.ExcelReport.<init>(ExcelReport.java:40)
at com.runqian.report.view.excel.ExcelReport.<init>(ExcelReport.java:52)
at com.runqian.report.ide.CellSetConverter._$50529(CellSetConverter.java:42)
at com.runqian.report.ide.CellSetConverter.convert(CellSetConverter.java:76)
答:因为该报表是从excel 导入的,一些页面设置的默认值没有:例如纸张大小、纸张方向
等,请设置一下这些值,点击保存即可。
¯ 在weblogic 下发布时,如果更新了类,没有重起web 服务,就会出现如下错误信息:
java.lang.NullPointerException at
com.runqian.report.view.ReportCalculator.calc(ReportCalculator.java:61) at
com.runqian.report.tag.HtmlTag.doStartTag(HtmlTag.java:193)
答:将web.xml 里的reportFileHome 配成绝对路径,就可以避免这一问题。
¯ java.lang.ClassNotFoundException: com.runqian.report.ide.ReportFrame
at StartReportEditor.loadClass(StartReportEditor.java:187) at
java.lang.ClassLoader.loadClass(ClassLoader.java:255) at
StartReportEditor.main(StartReportEditor.java:262)
答:润乾报表安装目录下,web/web-inf/lib 目录下的runqianReport.jar 包可能被破坏,请更
新此包。
报表编辑
¯ 编辑器运行时提示无效的授权文件
答:jdk 的版本低,换成jdk1.4.1 及以上版本
¯ 编辑器里报表预览出现乱码什么原因
答:请检查系统/数据源连接设置是否选择了正确的数据编码
¯ 我定义的自由式报表,为什么当出现多条记录时,不能成片重复
答:把需要被重复的行的第一个单元格的左主格属性设成该记录的主动扩展格。如下图所示:
上图中,c4 单元格是记录的主动扩展格,因此如果希望从第五行到第十行都随着c4 的扩展
而被复制,那么从第五行到第十行的第一个单元格(a5:a10)的左主格属性都设成c4
¯ 当单元格中的数据过长,超出格子的宽度时,我该怎么办?
答:可以为单元格设置自动换行属性
¯ 报表里合计的行应该是属于页尾区还是数据区?
答:看你这个合计行是否需要被复制,是否需要每页显示;如果会随着主单元格的扩展而被
复制出很多合计行,例如分组报表里的组合计,那么应该放在数据区;如果只在最后合计,
但是每页显示,那么放在表尾区;如果只要最后一页显示,那么放在数据区;除了数据区,
其它区域都是每页重复显示
¯ 编辑器运行时,一启动就莫名其妙的关闭了,怎么办?
答:此时往往是java 环境或者编辑器的包存在问题,最好的解决办法是在dos 命令行下,
执行“润乾报表.bat”文件,然后根据错误信息寻找解决办法
编辑器要求jdk1.4.1 及以上版本,也可以先检查jdk 的版本是否正确。
¯ 报表中,希望单元格中存的是编码,显示成中文,要如何做?
答:通过定义单元格的显示值属性来实现,
做法一:为显示值属性表达式定义一个map(list(exp1,exp2......),list(exp1,exp2,...)),第一个list
是真实值列表,第二个list 是显示值列表
做法二:从数据集中获得显示值,dsn.select_one(nameCol, @value=idCol),@value 代表当前
单元格的真实值
做法三:直接写入显示值,例如“中国”
¯ 报表中,我希望引用某个单元格的显示值,要如何做?
答:可以采用disp 函数,例如:=disp(A1)+"——中国"
展现
¯ 你们导出XLS 格式单元格怎么比显示的要大的多呢?
答:因为微软的软件界面显示都有放大的效果,例如excel、word、看起来都比实际的大,
但是导出到pdf 就是一样大,而且打印到纸上和excel、word 是一样大的
¯ 网页上导出到excel 文件时,是否分页页面报错
答:runqianReport.jar 包里缺少文件,更新最新的jar 文件
¯ 以分页的方式导出到excel 时,如何设置页面大小?
答:在tag 标签里设置属性,如下表所示:
width 否报表分页宽度
整数,单位为px,负数
表示无穷大
报表设计
页面宽度
height 否报表分页高度
整数,单位为px,负数
表示无穷大
报表设计
页面高度
excelUsePaperSize 否
存为EXCEL 时:yes
按报表设计时的纸张
尺寸,no 采用本TAG
标签中指定的width,
height 值
yes 或no no
¯ 导出到文本文件时,能否设置打印机控制码?如何设置?
答:可以。先建一个printer.ini 文件,文件格式如下图所示:
然后在报表编辑器中,点中报表首格,在右边的属性列表中,选择你要设置的打印机,如下
图所示:
¯ 编辑器中预览报表时,从数据库中取出的汉字乱码,如何解决?
答:点击系统/数据源,选择您当前连接的数据源,点击配置,如下图所示:
查看您设置的数据编码是否正确,如果不正确,会导致数据乱码。
¯ 点击导出到excel 后出现是否分页窗口,选择以后就什么都不出现了
答:一般是poi 包的版本不对,必须用润乾公司提供的poi 包,因为润乾公司在poi 包的基
础上做了一些修改
还有一种可能是java 的classpath 下有多个poi 包,冲突了。
¯ 导出到pdf 出现中文字符不对
答:一般是webserver 端的操作系统安装有问题,往往是英文的操作系统,相应的中文字符
集没安装。
此时往往出现网页预览的中文是对的,因为网页上用的是客户端操作系统的中文字符
集。
¯ 对于某些数据库,例如sqlsvr,其varchar 和nvarchar 字段,总有一种字段出来的
中文不对
答:请详细阅读jdbc 包的说明文档,例如对于sqlsvr 数据库,可在url 里这么配置:
jdbc:JTurbo://[host]/[db]/charset=gbk,然后把数据编码设为GBK 即可
打印
¯ 点击打印后出错,一般什么原因?
答:一般两个原因:
一、客户端没安装java plug-in 1.4 或以上版本
二、web 应用根目录下没部署runqianReportApplet.jar
¯ 润乾报表在网页上如何实现精确打印?
答:通过润乾公司独立研发的applet 实现精确打印。
¯ 打印时,客户端需要下载控件吗?客户端的java 环境有何要求?
答:客户端需要下载applet 控件,控件大小为163k,客户端需要安装java plug-in 1.4 及以上
版本,如果客户端没有安装,系统会自动安装。
¯ 润乾报表打印时有哪几种分页方式?
答:按数据行数分页和按纸张尺寸分页。
¯ 分页时能否设定表头每页重复?
答:不需要设置,表头每页自动重复,如果不需要重复的话,就不要设为表头。
¯ 能否一组分一页?
答:可以,可以把分组格设置行后分页属性
¯ 如何实现固定行报表?即每页报表都是固定行数,行数不够用空行补足,或者仅仅显
示行标题
答:可以。
¯ 套打时,A3 单据扫描出来的图片,放在报表背景上,比报表的A3 尺寸大很多
答:不同扫描仪的尺寸单位不同,扫描时没有选择扫描的像素,因此导致扫描出来的图片大
很多,解决办法:扫描的时候设置像素单位,使得其和标准纸张大小一样,或者用画图软件
对图片进行压缩,缩成标准A3 大小,且分辨率设为72
纸张规格宽度(毫米) 高度(毫米)
A0 841 1189
A1 594 841
A2 420 594
A3 297 420
A4 210 297
A5 148 210
B0 1000 1414
B1 707 1000
B2 500 707
B3 353 500
B4 250 353
B5 176 250
尺寸换算公式:
(1 毫米×72)/25.4=1 像素
72 像素=1 英寸
分辨率:72 像素/每英寸
注意:扫描底图的时候最好按照分辨率72 来扫描,因为打印机是按照72 分辨率打印的,
不同的分辨率就会导致不同的尺寸
性能
¯ 润乾报表能够经受多大的压力测试?
答:
表名称
记录数量
(条)
用时
(分)
报表数量
(个)
报表日期
资产负债表50000 7 425 2006-1-31
损益明细表50000 12 425 2006-1-31
日计表50000 4 425 2006-1-1
活期对公对帐单10000 49 425 2006-1-1
测试日期:2004 年9 月9 日
统计图
¯ 统计图的分类轴和序列名称、序列值分别是什么含义?
答:
分类轴定义
相当于横轴,也就是统计图分类的数据来源定义。例如要画学生数学成绩的统计图,那
么是按学生来分类的,所以显示学生姓名的单元格就是分类轴,填写为单元格的名称,如
“A1”。
一个统计图一般只有一个分类轴定义,但有些统计图会有多个分类轴定义,此时点击一
个分类轴时,下面的“系列”组框中显示的就是与它对应的系列定义。
统计图分类轴的定义可以是个单元格也可以是个常数,如果是单元格,该单元格应该
是序列值的主单元格;
统计图的序列名称的定义可以是个单元格也可以是个常数,如果是单元格,该单元格
应该是序列值的主单元格;
系列
用来画统计图的一类数据叫一个系列,一个分类轴可以对应多个系列,系列由系列名称
和系列值组成。例如要同时用学生数学、语文、英语成绩来画统计图,那么每门学科就分别
为一个系列。
系列名称
序列名称的定义可以是个单元格也可以是个常数,如果是单元格,该单元格应该是序
分类轴,一个分类对应多个序
列,不同颜色的柱子代表不同的
序列,一种产品就是一个分类
列值的主单元格;
系列值
定义本系列的数据来源,其填写方法和分类轴定义相似。可以是常数也可以是单元格,
如果是单元格,该单元格应该是序列名称和分类轴的附属单元格
¯ 如何改变统计图的类型?
答:在统计图的属性中,直接选择统计图的类型,如下图所示:
¯ 能否由用户在网页上动态改变统计图类型?如何操作?
答:可以,下面是例子代码:
<%@ page contentType="text/html;charset=gb2312" %>
<%@ taglib uri="/WEB-INF/runqianReport.tld" prefix="report" %>
<%@ page import="com.runqian.report.usermodel.*" %>
<%@ page import="com.runqian.report.graph.*" %>
<%@ page import="com.runqian.base.graph.*" %>
<html>
<head>
<title>润乾HTML 报表</title>
</head>
<body>
<%
String type = request.getParameter( "type" );
if( type == null || type.equals( "1" ) ) type = String.valueOf( GraphInt.GT_COL );
else if( type.equals( "2" ) ) type = String.valueOf( GraphInt.GT_PIE );
else if( type.equals( "3" ) ) type = String.valueOf( GraphInt.GT_LINE );
ReportDefine rd = Report.getReportDefine( "graphType.raq", application );
GraphProperty gp = rd.getGraphProperty( 4, 1 );
if( gp != null ) {
gp.setPropertyValue( GraphProperty.GRAPH_TYPE, type );
}
rd.setGraphProperty( 4, 1, gp );
request.setAttribute( "graphType", rd );
%>
<report:html name="report1" srcType="defineBean" beanName="graphType"
needPageMark="yes"
functionBarColor="#fff5ee"
funcBarFontFace="隶书"
funcBarFontSize="11pt"
funcBarFontColor="#00ff7f"
separator="|"
needSaveAsExcel="yes"
needSaveAsPdf="yes"
needPrint="yes"
pageMarkLabel="页号{currpage}/{totalPage}"
printLabel="打印"
displayNoLinkPageMark="yes"
/>
<form id=form1 method=post>
<input type=hidden name="type" value="1">
<input type=button value="直方图" onclick="form1.type.value='1';form1.submit()">
<input type=button value="饼形图" onclick="form1.type.value='2';form1.submit()">
<input type=button value="折线图" onclick="form1.type.value='3';form1.submit()">
</form>
</body>
</html>
¯ 能否在统计图上添加超链接?如何添加?
答:可以,如下图所示:
如上图所示,在图形超链接属性中录入超链接字符串就行了。其中有几点注意事项:
图形超链接关键词
统计图图例上的超链接,
@legend
可以在超链接中引用@legend,制图时,程序会将@legend 替换成当前图例的显示值。
{APPMAP}
可以在超链接中引用{APPMAP},制图时,程序会将{APPMAP}替换成当前WEB 应用
的相对路径
超链接目标窗口
当超链接被激活时,在目标窗口中打开
¯ 什么是时序状态图?
答:时序状态图是适用于类似广播电台等行业,显示不同频道在不同时段的状态,也可以用
于数字电路中,显示不同电路出口随时间变化处于不同的电位状态
¯ 什么是时间走势图?
答:显示数据随时间变化而呈现不同的走势。
¯ 如何定义时序状态图?
说明
时序状态图不需要定义分类、序列等属性,而是定义起始时间、结束时间、分类、状态等,
他的数据模型和一般统计图不太一样。
时序状态图的起始时间表达式
时序状态图一般是针对某一段时间区域来制图,因此需要指定该时间区域的起始时间,一般
是某个单元格的值,填写单元格名称即可
时序状态图的结束时间表达式
时序状态图一般是针对某一段时间区域来制图,因此需要指定该时间区域的结束时间,一般
是某个单元格的值,填写单元格名称即可
时序状态图的分类表达式
时序状态图可以同时显示多个分类的状态,分类值一般是某个扩展单元格的值,填写单元格
名称即可,也可以是个常数,如果是单元格,那么该单元格必须是起始时间、结束时间、状
态的主单元格
时序状态图的状态表达式
时序状态图的状态数据,一般是某个扩展单元格的值,填写单元格名称即可
如下图所示定义界面:
状态条高度
时序状态图状态条的高度,如果不填,缺省为4
时间刻度选择
横轴标签的刻度,一般根据起始时间和结束时间来决定
¯ 如何定义时间走势图?
说明
时间走势图的数据模型大部分和一般统计图差不多,例如分类轴定义、序列名称、序列
值等,可以参照一般统计图数据模型的说明,唯一的区别在于分类轴对应的单元格的数据值
必须是日期时间型
时间走势图除了定义分类轴定义、序列名称、序列值外,还必须定义横轴坐标取值,下
面我们来讲解横轴坐标取值
横轴坐标取值定义
横轴坐标取值的定义界面如下图所示:
从图上可以看出,该定义包括起始值、结束值、取样间隔、标签间隔四部分,其中起始值和
结束值定义必须是表达式,取样间隔是指图上取样点的间隔,而标签间隔是指横轴标签的标
注点间隔
如果横轴坐标的取值不连续,可以添加多条取值定义
填报
¯ 润乾报表能否实现多条SQL 同时提交?能否保持数据库事务的一致性?如何实现?
答:可以。润乾报表可以为一张填报表同时定义多条更新属性,多条更新能够同时提交,并
且可以保持数据库的事务一致性。多条更新可以针对不同的数据库。
¯ 扩展填报的更新属性如何区别对单元格的绝对引用和相对引用?
答:绝对引用的单元格加上$符号,相对引用的单元格直接写单元格的名称,例如:$A1 表
示绝对引用A1;直接写A1 表示相对引用A1。
¯ 自动计算和合法性检查的表达式规则是什么?
答:依据javascript 的表达式规则,可以使用javascript 的函数,把单元格作为变量引用。
¯ 合法性检查能否在光标移开的时候检查,而不是提交服务器的时候检查?如何实现?
答:可以。定义合法性检查的时候,有一个“是否立即校验”选项,选择是,就可以在光标
移开的时候校验。
¯ 对于扩展的填报,自动计算表达式如何实现随扩展而变化?
答:需要随扩展而动态变化的单元格用${}括起来,例如:${D10*F10},表示随着单元格的
扩展,该表达式自动变成D11*F
展开阅读全文