﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Web报表工具-专业博客 &#187; Java Script</title>
	<atom:link href="http://reportblog.cn/archives/tag/java-script/feed" rel="self" type="application/rss+xml" />
	<link>http://reportblog.cn</link>
	<description>报表技术知识：web报表，报表工具，表单工具，报表设计，报表系统，java报表</description>
	<lastBuildDate>Wed, 25 Apr 2012 03:18:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Web报表工具超链接引用JavaScript</title>
		<link>http://reportblog.cn/archives/1061</link>
		<comments>http://reportblog.cn/archives/1061#comments</comments>
		<pubDate>Sun, 05 Dec 2010 12:05:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web报表工具-技术园地]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[web报表工具]]></category>

		<guid isPermaLink="false">http://reportblog.cn/?p=1061</guid>
		<description><![CDATA[         在Web报表工具中，可以实现用户在点击超级链接的时候，根据输入的页码，来决定链接到指定的页面。以FineReport报表工具为例，有两种引用方式： 1.    将写好的方法保存为js文件，放置在工程下，在超级链接中直接调用 1.1    新建报表 1.2    报表制作 在B3单元格中写入公式：=range(1,40)，并将其扩张属性改为“从左到右扩展”，并将其设为居中，如下图所示： 1.3    添加超链接 l         右击B3单元格，选择超级链接，进入超级链接界面，点击添加JavaScript,如下图所示 l         写一段Js代码，内容为： function demo() {   var test = function() { var num = parseInt(arguments[0]); contentPane.gotoPage(num); }; var value = FR.Msg.prompt(“输入”, “页码”, 2, test); } 说明： var num = parseInt(arguments[0]); //获得输入框中输入的页码 contentPane.gotoPage(num); //跳转到相应页码 var value = FR.Msg.prompt(“输入”, “页码”, 2, test); //参数分别为对话框标题、对话框内容、输入框默认值、回调函数 将此段内容保存为test.js文件 ，放在WebReport目录下，在超级链接界面中插入该test.js，并在下面的function [...]]]></description>
			<content:encoded><![CDATA[<p>         在<a title="Web报表工具" href="http://www.finereport.com/web-reportingtool">Web报表工具</a>中，可以实现用户在点击超级链接的时候，根据输入的页码，来决定链接到指定的页面。以FineReport<a title="报表工具" href="http://www.finereport.com/knowledge">报表工具</a>为例，有两种引用方式：<img src="http://www.finebi.com/ajavareport/wordpress/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /><span id="more-1061"></span></p>
<ol>
<li><strong>1.    </strong><strong>将写好的方法保存为js文件，放置在工程下，在超级链接中直接调用</strong></li>
</ol>
<p>1.1    新建<a title="报表" href="http://www.finereport.com/">报表</a></p>
<p>1.2    <a title="报表制作" href="http://www.finereport.com/knowledge/design">报表制作</a></p>
<p>在B3单元格中写入公式：<strong><em>=range(1,40)</em></strong>，并将其扩张属性改为“从左到右扩展”，并将其设为居中，如下图所示：</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/1061"><img class="aligncenter" src="http://www.finereport.com/forumimages/href_js1.gif" alt="Web报表工具模板制作" /></a></p>
<p>1.3    添加超链接</p>
<p>l         右击B3单元格，选择超级链接，进入超级链接界面，点击添加JavaScript,如下图所示</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/1061"><img class="aligncenter" src="http://www.finereport.com/forumimages/href_js2.png" alt="Web报表工具超链设置" /></a></p>
<p>l         写一段Js代码，内容为：</p>
<p>function demo() {  </p>
<p>var test = function() {</p>
<p>var num = parseInt(arguments[0]);</p>
<p>contentPane.gotoPage(num);</p>
<p>};</p>
<p>var value = FR.Msg.prompt(“输入”, “页码”, 2, test);</p>
<p>}</p>
<p>说明：</p>
<p>var num = parseInt(arguments[0]); <strong><em>//</em></strong><strong><em>获得输入框中输入的页码</em></strong></p>
<p>contentPane.gotoPage(num); <strong><em>//</em></strong><strong><em>跳转到相应页码</em></strong></p>
<p>var value = FR.Msg.prompt(“输入”, “页码”, 2, test); <strong><em>//</em></strong><strong><em>参数分别为对话框标题、对话框内容、输入框默认值、回调函数</em></strong></p>
<p>将此段内容保存为test.js文件 ，放在WebReport目录下，在超级链接界面中插入该test.js，并在下面的function fun()函数中调用<strong><em>demo();</em></strong></p>
<p>效果如下图所示：</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/1061"><img class="aligncenter" src="http://www.finereport.com/forumimages/href_js3.png" alt="Web报表工具js" /></a></p>
<p>1.4    保存并预览</p>
<p>点击超级链接，出现如下图所示的输入提示对话框</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/1061"><img class="aligncenter" src="http://www.finereport.com/forumimages/href_js4.gif" alt="Web报表工具预览" /></a> </p>
<p>在输入对话框中输入需要跳转的页数，并点击确定按钮，就跳转到相应的页面。</p>
<ol>
<li><strong>2.    </strong><strong>直接在超级链接界面上写js方法</strong></li>
</ol>
<p>2.1    新建<a title="报表" href="http://www.finereport.com/">报表</a></p>
<p>2.2    <a title="报表制作" href="http://www.finereport.com/knowledge/design">报表制作</a></p>
<p>在B3单元格中写入公式：<strong><em>=range(1,40)</em></strong>，并将其扩张属性改为“从左到右扩展”，并将其设为居中，如下图所示：</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/1061"><img class="aligncenter" src="http://www.finereport.com/forumimages/href_js1.gif" alt="Web报表工具模板制作" /></a></p>
<p>2.3    添加超链接</p>
<p>l         右击B3单元格，选择超级链接，进入超级链接界面，点击添加JavaScript，如下图所示</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/1061"><img class="aligncenter" src="http://www.finereport.com/forumimages/href_js2.png" alt="Web报表工具超链设置" /></a></p>
<p>l         function fun(){}函数中写入如下JS语句：</p>
<p>function test(){  </p>
<p>var num = parseInt(arguments[0]); </p>
<p>_g(&#8216;${sessionID}&#8217;).gotoPage(num);   </p>
<p>};</p>
<p>var value = FR.Msg.prompt(“输入”, “页码”, 2,test);</p>
<p>说明：</p>
<p>_g(&#8216;${sessionID}&#8217;).gotoPage(num); <strong><em>//</em></strong><strong><em>跳转到相应页码</em></strong></p>
<p>如下图所示</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/1061"><img class="aligncenter" src="http://www.finereport.com/forumimages/href_js5.png" alt="Web报表工具js" /></a></p>
<p>2.4保存预览</p>
<p>点击超级链接，出现如下图所示的输入提示对话框</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/1061"><img class="aligncenter" src="http://www.finereport.com/forumimages/href_js4.gif" alt="Web报表工具预览" /></a> </p>
<p>在输入对话框中输入需要跳转的页数，并点击确定按钮，就会跳转到相应的页面。</p>
<p>文章转自：<strong><a href="http://blog.vsharing.com/fanfanzheng/A1296481.html">http://blog.vsharing.com/fanfanzheng/A1296481.html</a></strong></p>

<p><strong>Web报表主题相关文章：</strong></p>
<ul>
<li><a href="http://reportblog.cn/archives/1741">Apache和tomcat整合</a></li>
<li><a href="http://reportblog.cn/archives/1700">IIS集成配置</a></li>
<li><a href="http://reportblog.cn/archives/1697">Jboss 服务器 JNDI 配置数据源连接数据库</a></li>
<li><a href="http://reportblog.cn/archives/1694">Oracle 数据库实现自增长列</a></li>
<li><a href="http://reportblog.cn/archives/1689">Weblogic 10.1 配置JNDI 数据源</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://reportblog.cn/archives/1061/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web报表工具内置JS使用之十三</title>
		<link>http://reportblog.cn/archives/966</link>
		<comments>http://reportblog.cn/archives/966#comments</comments>
		<pubDate>Sun, 03 Oct 2010 03:00:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web报表工具-技术园地]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[web报表工具]]></category>

		<guid isPermaLink="false">http://reportblog.cn/?p=966</guid>
		<description><![CDATA[           用户在使用Web报表工具时，假如需要实现一些程序应用，在HTML添加一些动态内容，需要响应特殊的事件等等，就需要自己编辑js代码。在之前的系列文章中，以FineReport报表工具为例，介绍了许多内置JS的使用。下面来列表说明此款web报表工具所包含的大量供用户调用的JS函数。 1． 对象函数 Array： indexOf//计算一个参数，返回它在数组中的位置，如果不在数组中，则返回-1 remove//移除数组对象中一个指定的元素，并返回一个新的数组 String： leftPad//返回一个左对齐的字符串 format//返回格式化后的字符串               startWith//判断一个字符串是否以指定的字符串开始 endWith//判断一个字符串是否以指定的字符串结束 2． 常态函数                      FR.isArray//判断一个对象是否是一个数组                      FR.toRE//将普通字符串转化为表示正则表达式的字符串 FR.extend//实现JavaScript类的继承 FR.SessionMgr.get //根据sessionID生成BasePane FR.cjkEncode//返回对中日韩问做了特殊转换的字符串 FR.cjkDecode//将cjkEncode处理过的字符串转化为原始字符串 FR.jsonEncode//返回json格式的字符串 FR.jsonDecode//将json格式的字符串转化为对象                      FR.object2String//将object转换为一个字符串并以json的格式来写这个字符串 FR.contains//判断对象c是否包含在对象p中 FR.accDiv//精确除法                      FR.accMul//精确乘法 FR.accAdd//精确加法                      FR.accMin//精确减法 3． UI函数                      FR.showDialog//显示一个对话框 FR.showIframeDialog//在一个iframe中显示对话框 FR.showRemoteDialog//显示一个异步加载的对话框 FR.closeDialog//关闭对话框 FR.Msg.Alert//对window的alert方法的替代实现 FR.Msg.Confirm//确认信息对话框 FR.Msg.Prompt//输入信息对话框 4． 打印 [...]]]></description>
			<content:encoded><![CDATA[<h2>    </h2>
<p>      用户在使用<a title="Web报表工具" href="http://www.finereport.com/knowledge/professional/webreport.html">Web报表</a>工具时，假如需要实现一些程序应用，在HTML添加一些动态内容，需要响应特殊的事件等等，就需要自己编辑js代码。在之前的系列文章中，以FineReport<a title="报表工具" href="http://www.finereport.com/knowledge">报表工具</a>为例，介绍了许多内置JS的使用。下面来列表说明此款<a title="web报表工具 " href="http://www.finereport.com/knowledge/professional/webreport.html">web报表</a>工具所包含的大量供用户调用的JS函数。<span id="more-966"></span></p>
<p><strong>1</strong><strong>． 对象函数</strong><strong></strong></p>
<p>Array：</p>
<p>indexOf<strong><em>//</em></strong><strong><em>计算一个参数，返回它在数组中的位置，如果不在数组中，则返回</em></strong><strong><em>-1</em></strong></p>
<p>remove<strong><em>//</em></strong><strong><em>移除数组对象中一个指定的元素，并返回一个新的数组</em></strong></p>
<p>String：</p>
<p>leftPad<strong><em>//</em></strong><strong><em>返回一个左对齐的字符串</em></strong></p>
<p>format<strong><em>//</em></strong><strong><em>返回格式化后的字符串</em></strong></p>
<p>              startWith<strong><em>//</em></strong><strong><em>判断一个字符串是否以指定的字符串开始</em></strong></p>
<p>endWith<strong><em>//</em></strong><strong><em>判断一个字符串是否以指定的字符串结束</em></strong></p>
<p><strong>2</strong><strong>． 常态函数</strong><strong></strong></p>
<p>                     FR.isArray<strong><em>//</em></strong><strong><em>判断一个对象是否是一个数组</em></strong></p>
<p>                     FR.toRE<strong><em>//</em></strong><strong><em>将普通字符串转化为表示正则表达式的字符串</em></strong></p>
<p>FR.extend<strong><em>//</em></strong><strong><em>实现</em></strong><strong><em>JavaScript</em></strong><strong><em>类的继承</em></strong></p>
<p>FR.SessionMgr.get<strong><em> //</em></strong><strong><em>根据</em></strong><strong><em>sessionID</em></strong><strong><em>生成</em></strong><strong><em>BasePane</em></strong></p>
<p>FR.cjkEncode<strong><em>//</em></strong><strong><em>返回对中日韩问做了特殊转换的字符串</em></strong></p>
<p>FR.cjkDecode<strong><em>//</em></strong><strong><em>将</em></strong><strong><em>cjkEncode</em></strong><strong><em>处理过的字符串转化为原始字符串</em></strong></p>
<p>FR.jsonEncode<strong><em>//</em></strong><strong><em>返回</em></strong><strong><em>json</em></strong><strong><em>格式的字符串</em></strong></p>
<p>FR.jsonDecode<strong><em>//</em></strong><strong><em>将</em></strong><strong><em>json</em></strong><strong><em>格式的字符串转化为对象</em></strong></p>
<p>                     FR.object2String<strong><em>//</em></strong><strong><em>将</em></strong><strong><em>object</em></strong><strong><em>转换为一个字符串并以</em></strong><strong><em>json</em></strong><strong><em>的格式来写这个字符串</em></strong></p>
<p>FR.contains<strong><em>//</em></strong><strong><em>判断对象</em></strong><strong><em>c</em></strong><strong><em>是否包含在对象</em></strong><strong><em>p</em></strong><strong><em>中</em></strong></p>
<p>FR.accDiv<strong><em>//</em></strong><strong><em>精确除法</em></strong></p>
<p>                     FR.accMul<strong><em>//</em></strong><strong><em>精确乘法</em></strong></p>
<p>FR.accAdd<strong><em>//</em></strong><strong><em>精确加法</em></strong></p>
<p>                     FR.accMin<strong><em>//</em></strong><strong><em>精确减法</em></strong></p>
<p><strong>3</strong><strong>． UI函数</strong><strong></strong></p>
<p>                     FR.showDialog<strong><em>//</em></strong><strong><em>显示一个对话框</em></strong></p>
<p>FR.showIframeDialog<strong><em>//</em></strong><strong><em>在一个</em></strong><strong><em>iframe</em></strong><strong><em>中显示对话框</em></strong></p>
<p>FR.showRemoteDialog<strong><em>//</em></strong><strong><em>显示一个异步加载的对话框</em></strong></p>
<p>FR.closeDialog<strong><em>//</em></strong><strong><em>关闭对话框</em></strong></p>
<p>FR.Msg.Alert<strong><em>//</em></strong><strong><em>对</em></strong><strong><em>window</em></strong><strong><em>的</em></strong><strong><em>alert</em></strong><strong><em>方法的替代实现</em></strong></p>
<p>FR.Msg.Confirm<strong><em>//</em></strong><strong><em>确认信息对话框</em></strong></p>
<p>FR.Msg.Prompt<strong><em>//</em></strong><strong><em>输入信息对话框</em></strong></p>
<p><strong>4</strong><strong>． 打印</strong><strong></strong></p>
<p>FR.doURLPDFPrint<strong><em>//</em></strong><strong><em>使用</em></strong><strong><em>PDF</em></strong><strong><em>打印指定</em></strong><strong><em>url</em></strong><strong><em>的报表</em></strong></p>
<p>FR.doURLAppletPrint<strong><em>//</em></strong><strong><em>使用</em></strong><strong><em>Applet</em></strong><strong><em>打印指定</em></strong><strong><em>url</em></strong><strong><em>的报表</em></strong></p>
<p>FR.doFlashURLPrint<strong><em>//</em></strong><strong><em>使用</em></strong><strong><em>Flash</em></strong><strong><em>打印指定</em></strong><strong><em>ur</em></strong><strong><em>的报表</em></strong></p>
<p><strong>5</strong><strong>． jQuery布局</strong><strong></strong></p>
<p>                     __border__<strong><em>//</em></strong><strong><em>把指定</em></strong><strong><em>dom</em></strong><strong><em>元素按东南西北中的方式布局</em></strong></p>
<p>                     __grid__ <strong><em>//</em></strong><strong><em>把指定的</em></strong><strong><em>dom</em></strong><strong><em>元素按格子分布方式布局</em></strong></p>
<p>6． 组件注册和生产</p>
<p>                     FR.comp.reg<strong><em>//</em></strong><strong><em>注册是一个指定</em></strong><strong><em>type</em></strong><strong><em>的组件</em></strong></p>
<p>                     FR.comp.create<strong><em>//</em></strong><strong><em>在指定</em></strong><strong><em>dom</em></strong><strong><em>节点上生成一个组件</em></strong></p>
<p><strong>7</strong><strong>． FR.OB(事件观察者)</strong><strong></strong></p>
<p>                     fireEvent<strong><em>//</em></strong><strong><em>触发一个有</em></strong><strong><em>FR.OB</em></strong><strong><em>对象定义的事件</em></strong></p>
<p>on<strong><em>//</em></strong><strong><em>给</em></strong><strong><em>FR.OB</em></strong><strong><em>对象添加一个事件</em></strong></p>
<p>                     once<strong><em>//</em></strong><strong><em>给</em></strong><strong><em>FR.OB</em></strong><strong><em>对象添加一个仅执行一次的事件</em></strong></p>
<p>                     un<strong><em>//</em></strong><strong><em>从一个</em></strong><strong><em>FR.OB</em></strong><strong><em>中移除掉指定事件</em></strong></p>
<p>                     purgeListeners<strong><em> //</em></strong><strong><em>移除掉一个</em></strong><strong><em>FR.OB</em></strong><strong><em>下的所有事件</em></strong></p>
<p><strong>8</strong><strong>． FR.Widget(控件) extends OB</strong><strong></strong></p>
<p>                     isEnable<strong><em> //</em></strong><strong><em>判断一个控件是否可用</em></strong></p>
<p>                     isVisible<strong><em>//</em></strong><strong><em>判断一个控件是否可见</em></strong></p>
<p>                     enable<strong><em>//</em></strong><strong><em>使控件可用</em></strong></p>
<p>                     disable<strong><em>//</em></strong><strong><em>使控件不可用</em></strong></p>
<p><strong>9</strong><strong>． FR.Form(表单) extends OB</strong><strong></strong></p>
<p>                     formSubmit<strong><em>//</em></strong><strong><em>表单提交</em></strong></p>
<p>                     getValueByName<strong><em>//</em></strong><strong><em>根据名字获取表单对象中控件的值</em></strong></p>
<p>                     getWidgetByName<strong><em>//</em></strong><strong><em>很据名字获取表单对象中的控件</em></strong></p>
<p>                     getWidgetByCell<strong><em>//</em></strong><strong><em>根据单元格获取控件</em></strong></p>
<p><strong>10</strong><strong>． FR.BasePane extends Widget</strong><strong></strong></p>
<p>                     Load<strong><em>//</em></strong><strong><em>加载报表页面</em></strong><strong><em>(</em></strong><strong><em>展现、填报</em></strong><strong><em>)</em></strong></p>
<p>                     loadReportPane</p>
<p>                     zoom<strong><em>//</em></strong><strong><em> IE6</em></strong><strong><em>下的放大镜</em></strong></p>
<p><strong>11</strong><strong>． FR.BaseEditor extends Widget</strong><strong></strong></p>
<p>                     getValue<strong><em>//</em></strong><strong><em>获取编辑器的值</em></strong></p>
<p>setValue<strong><em>//</em></strong><strong><em>设置编辑器的值</em></strong></p>
<p>                     reset<strong><em>//</em></strong><strong><em>重置编辑器的值，设为字符串</em></strong></p>
<p>                     isValidate<strong><em>//</em></strong><strong><em>判断当前编辑器的值是否有效</em></strong></p>
<p>                     getErrorMsg<strong><em>//</em></strong><strong><em>获取编辑器值无效时的错误信息</em></strong></p>
<p>                     startEditing<strong><em>//</em></strong><strong><em>编辑器开始编辑</em></strong></p>
<p>                     stopEditing<strong><em>//</em></strong><strong><em>编辑器停止编辑</em></strong></p>
<p><strong>12</strong><strong>． </strong><strong></strong></p>
<p>FR.FileUploadEditor(文件上传控件) extends BaseEditor</p>
<p>              FR.CheckBoxGroup(复选按钮组控件) extends BaseEditor</p>
<p>              FR.RadioGroup(单选按钮组控件) extends BaseEditor</p>
<p>              FR.ToogleButton extends BaseEditor</p>
<p>                     Selected<strong><em>//</em></strong><strong><em>检查</em></strong><strong><em>button</em></strong><strong><em>的选中状态或者设置</em></strong><strong><em>button</em></strong><strong><em>的选中状态</em></strong></p>
<p>FR.CheckBox extends ToogleButton</p>
<p>FR.Radio extends ToogleButton</p>
<p>FR.TextEditor(文本控件) extends BaseEditor</p>
<p>                     selectText<strong><em>//</em></strong><strong><em>选取文本编辑器值的指定位置的字符串</em></strong></p>
<p>              FR.NumberEditor(数字控件) extends TextEditor</p>
<p>              FR.DateTimeEditor(日期时间控件) extends TextEditor</p>
<p>              FR.TriggerEditor extends TextEditor</p>
<p>                     onTriggerClick<strong><em>//</em></strong><strong><em>点击</em></strong><strong><em>trigger</em></strong><strong><em>图标的事件</em></strong></p>
<p>FR.ComboBoxEditor(下拉框控件) extends TriggerEditor</p>
<p>                     onTriggerClick</p>
<p>setMode<strong>//</strong><strong>设置下拉框的模式，通过该设置可以让下拉框强制重新加载数据</strong></p>
<p>                     isExpanded<strong> //</strong><strong>判断下拉框的下拉菜单是否已经展现</strong></p>
<p>                     expand<strong>//</strong><strong>打开下拉框的下拉菜单</strong></p>
<p>                     collapse<strong>//</strong><strong>关闭下拉框的下拉菜单</strong></p>
<p>FR.CheckboxEditor(下拉复选框) extends ComboBoxEditor</p>
<p>FR.TreeComboBoxEditor(下拉树) extends CheckboxEditor</p>
<p><strong>13.</strong><strong></strong></p>
<p>FR.PagePane extends BasePane</p>
<p>                     currentPageIndex<strong>//</strong><strong>全局变量：该</strong><strong>ReportPage</strong><strong>所属的</strong><strong>ReportPage</strong><strong>集中的序号</strong></p>
<p>                     reportTotalPage<strong>//</strong><strong>全局变量：该</strong><strong>ReportPage</strong><strong>所属的</strong><strong>ReportPage</strong><strong>集所生成的总的</strong><strong>ReportPage</strong><strong>的个数</strong></p>
<p>                     gotoPage<strong>//</strong><strong>将页面跳转到指定页</strong></p>
<p>                     gotoFirstPage<strong> //</strong><strong>页面跳转至首页</strong></p>
<p>                     gotoLastPage<strong>//</strong><strong>页面跳转至最后一页</strong></p>
<p>                     gotoPreviousPage<strong> //</strong><strong>页面跳转至当前页的上一页</strong></p>
<p>                     gotoNextPage<strong>//</strong><strong>页面跳转至当前页的下一页</strong></p>
<p>                     printReportServer<strong><em>//</em></strong><strong><em>服务器打印</em></strong></p>
<p>                     emailReport /<strong><em>/</em></strong><strong><em>邮件发送</em></strong></p>
<p>                     pdfPrint<strong><em>//</em></strong><strong><em> PDF</em></strong><strong><em>打印</em></strong></p>
<p>                     appletPrint<strong><em>//</em></strong><strong><em> Applet</em></strong><strong><em>打印</em></strong></p>
<p>                     flashPrint<strong><em>//</em></strong><strong><em> Flash</em></strong><strong><em>打印</em></strong></p>
<p>                     exportReportToPDF<strong><em> //</em></strong><strong><em>将报表导出成</em></strong><strong><em>PDF</em></strong></p>
<p>                     exportReportToExel<strong><em>//</em></strong><strong><em>将报表导出成</em></strong><strong><em>excel</em></strong></p>
<p>                     exportReportToWord<strong><em>//</em></strong><strong><em>将报表导出成</em></strong><strong><em>word</em></strong></p>
<p><strong>14.</strong><strong></strong></p>
<p>              FR.WritePane extends BasePane</p>
<p>                     curLGP<strong><em>//</em></strong><strong><em>变量：填报页面当前的逻辑数据处理对象</em></strong></p>
<p>getCellValue<strong><em> //</em></strong><strong><em>获取指定格子的值</em></strong></p>
<p>                     setCellValue<strong><em>//</em></strong><strong><em>设置指定格子的值</em></strong></p>
<p>                     stopEditing<strong><em>//</em></strong><strong><em>停止当前填报面板的编辑</em></strong></p>
<p>                     verifyAndWriteReport<strong><em>//</em></strong><strong><em>在自动校验后才提交报表入库，如果校验失败，则不会入库</em></strong></p>
<p>                     writeReport<strong><em>//</em></strong><strong><em>直接提交报表入库</em></strong></p>
<p>                     saveReport<strong><em>//</em></strong><strong><em>保存报表</em></strong></p>
<p>                     verifyReport<strong><em>//</em></strong><strong><em>校验报表</em></strong></p>
<p>                     pdfPrint<strong><em>//</em></strong><strong><em> PDF</em></strong><strong><em>打印</em></strong></p>
<p>                     flashPrint<strong><em>//</em></strong><strong><em> Flash</em></strong><strong><em>打印</em></strong></p>
<p>                     exportReportToPDF<strong><em>//</em></strong><strong><em>将报表导出成</em></strong><strong><em>PDF</em></strong></p>
<p>                     exportReportToExcel<strong><em>//</em></strong><strong><em>将报表导出成</em></strong><strong><em>Excel</em></strong></p>
<p>                     exportReportToWord<strong><em>//</em></strong><strong><em>将报表导出成</em></strong><strong><em>Word</em></strong></p>
<p>                     printReportServer<strong><em>//</em></strong><strong><em>服务器端打印</em></strong></p>
<p>                     emailReport<strong><em>//</em></strong><strong><em>邮件发送</em></strong></p>
<p>              FR.WLGP(WritePane的逻辑数据处理对象) extends FR.OB</p>
<p>                     Idx<strong><em>//</em></strong><strong><em>变量：报表索引</em></strong></p>
<p>                     getCellValue<strong><em>//</em></strong><strong><em>获取指定格子的值</em></strong></p>
<p>                     setCellValue<strong><em>//</em></strong><strong><em>设置指定格子的值</em></strong></p>
<p>                     fireCellValueChange<strong><em>//</em></strong><strong><em>单元格值改变后出发该函数</em></strong></p>
<p>                     isSelectable<strong><em>//</em></strong><strong><em>判断该</em></strong><strong><em>dom</em></strong><strong><em>的</em></strong><strong><em>tdCell</em></strong><strong><em>是否可被选中</em></strong></p>
<p>                     selectTDCell<strong><em>//</em></strong><strong><em>选中</em></strong><strong><em>domtdCell</em></strong><strong><em>。也就是加个黑边框，并确保</em></strong><strong><em>tdCell</em></strong><strong><em>在屏幕显示范围内</em></strong></p>
<p>                     editTDCell<strong><em>//</em></strong><strong><em>编辑</em></strong><strong><em>domtdCell</em></strong></p>
<p>                     clearCellSelection<strong><em>//</em></strong><strong><em>清除格子的选中状态</em></strong></p>
<p>                     displayTDCell<strong><em> //</em></strong><strong><em>把值显示在</em></strong><strong><em>td</em></strong><strong><em>里面</em></strong></p>

<p><strong>Web报表主题相关文章：</strong></p>
<ul>
<li><a href="http://reportblog.cn/archives/1741">Apache和tomcat整合</a></li>
<li><a href="http://reportblog.cn/archives/1700">IIS集成配置</a></li>
<li><a href="http://reportblog.cn/archives/1697">Jboss 服务器 JNDI 配置数据源连接数据库</a></li>
<li><a href="http://reportblog.cn/archives/1694">Oracle 数据库实现自增长列</a></li>
<li><a href="http://reportblog.cn/archives/1689">Weblogic 10.1 配置JNDI 数据源</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://reportblog.cn/archives/966/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Web报表工具内置JS使用之十二</title>
		<link>http://reportblog.cn/archives/964</link>
		<comments>http://reportblog.cn/archives/964#comments</comments>
		<pubDate>Fri, 01 Oct 2010 02:48:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web报表工具-技术园地]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[web报表工具]]></category>

		<guid isPermaLink="false">http://reportblog.cn/?p=964</guid>
		<description><![CDATA[       用户在使用Web报表工具时，默认情况下，填报预览时，焦点所在的编辑框是用黑色加重显示的，其实通常 下面就以FineReport报表工具来说明用红色加重显示焦点框。 1.1    打开reportlets\doc\Tutorial\Form\stuff.cpt 报表。 1.2    引用CSS改变焦点框颜色 l         在WebReport目录下新建一个文件夹，文件名为write，在write文件夹下新建一个名为custom_cell.css的文件,文件内容为： .fDtop, .fDbottom, .fDleft, .fDright, .fDdot{ border:1px solid red; }说明：该语句是用来改变焦点框的颜色 l         引用CSS 打开stuff报表，依次点击菜单报表&#124;报表web属性&#124;引用Css，在控件自定义样式界面点插入按钮后写上custom_cell.css的相对路径： write/custom_cell.css 确定后保存报表 1.3    分页预览 点击设计器中的分页预览，可以看到进入编辑状态的焦点框变成红色了 注：同理，冻结线也可以按照类似的步骤进行自定义。 文章转自：http://javareport.blog.chinabyte.com/2010/09/28/105/ Web报表主题相关文章： Apache和tomcat整合 IIS集成配置 Jboss 服务器 JNDI 配置数据源连接数据库 Oracle 数据库实现自增长列 Weblogic 10.1 配置JNDI 数据源]]></description>
			<content:encoded><![CDATA[<p>       用户在使用<a title="Web报表工具" href="http://www.finereport.com/knowledge/professional/webreport.html">Web报表</a>工具时，默认情况下，填报预览时，焦点所在的编辑框是用黑色加重显示的，其实通常<a class="mceWPmore" title="更多..." href="http://www.finereport.com/cn/articles/mode.htmlhttp://www.finereport.com/knowledge/professional/webreport.html。&lt;img src="></a></p>
<p>下面就以FineReport<a title="报表工具" href="http://www.finereport.com/knowledge">报表工具</a>来说明用红色加重显示焦点框。</p>
<p>1.1    打开reportlets\doc\Tutorial\Form\stuff.cpt 报表。</p>
<p>1.2    引用CSS改变焦点框颜色</p>
<p>l         在WebReport目录下新建一个文件夹，文件名为write，在write文件夹下新建一个名为custom_cell.css的文件,文件内容为：</p>
<p>.fDtop, .fDbottom, .fDleft, .fDright, .fDdot{ border:1px solid red; }说明：该语句是用来改变焦点框的颜色</p>
<p>l         引用CSS</p>
<p>打开stuff报表，依次点击菜单<strong>报表|报表web属性|引用Css</strong>，在控件自定义样式界面点插入按钮后写上custom_cell.css的相对路径：</p>
<p>write/custom_cell.css</p>
<p>确定后保存报表</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/964"><img class="aligncenter" src="http://www.finereport.com/forumimages/e231.png" alt="设置报表web属性" width="554" height="372" /></a></p>
<p>1.3    分页预览</p>
<p>点击设计器中的分页预览，可以看到进入编辑状态的焦点框变成红色了</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/964"><img src="http://www.finereport.com/forumimages/e232.png" alt="报表预览" width="557" height="410" /></a><a href="http://reportblog.cn/archives/964"></a></p>
<p><strong>注：同理，冻结线也可以按照类似的步骤进行自定义。</strong></p>
<p>文章转自：<a href="http://javareport.blog.chinabyte.com/2010/09/28/105/">http://javareport.blog.chinabyte.com/2010/09/28/105/</a></p>

<p><strong>Web报表主题相关文章：</strong></p>
<ul>
<li><a href="http://reportblog.cn/archives/1741">Apache和tomcat整合</a></li>
<li><a href="http://reportblog.cn/archives/1700">IIS集成配置</a></li>
<li><a href="http://reportblog.cn/archives/1697">Jboss 服务器 JNDI 配置数据源连接数据库</a></li>
<li><a href="http://reportblog.cn/archives/1694">Oracle 数据库实现自增长列</a></li>
<li><a href="http://reportblog.cn/archives/1689">Weblogic 10.1 配置JNDI 数据源</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://reportblog.cn/archives/964/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web报表工具内置JS的使用之十</title>
		<link>http://reportblog.cn/archives/957</link>
		<comments>http://reportblog.cn/archives/957#comments</comments>
		<pubDate>Fri, 24 Sep 2010 03:10:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web报表工具-技术园地]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[web报表工具]]></category>

		<guid isPermaLink="false">http://reportblog.cn/?p=957</guid>
		<description><![CDATA[自定义填报     在使用Web报表工具填报时，个别用户为了需求，需要自定义填报。     下面以FineReport Web报表工具在报表属性中的填报页面设置中可以自定义填报功能。 实例：      该实例实现首先在web报表工具栏上加一个按钮，通知服务器要做填报；然后服务器获得当前的SessionIDInfor，取出当前的报表，获得报表中A1、B1扩展后的格子，再把这组数据insert到数据库中；最后返回客户端一个讯息，表示填报成功了，客户端再弹个对话框，提示填报成功了。 1.    连接数据库FRDemo  2.    报表设计 2.1    新建报表 2.2    模板设计 添加一个名为ds1的数据库查询：SELECT * FROM customer，表样设计，如图 2.3    自定义报表填报属性 2.4    定义单元格空间属性 2.5    自定义报表Web属性 点击菜单栏报表&#124;报表Web属性，进入报表Web属性窗口，在填报页面设置栏目中，将左边需要显示的按钮拖到中间的窗口中，并在右边窗口添加加载结束事件，实现自定义的填报功能，如图所示 在加载结束事件窗口中添加事件的JS代码 具体js代码如下 var $toolbar = $(&#8216;.FR-ToolBar-disabled &#62; table &#62;tbody&#62;tr&#8217;); var option = { //”icon”: “css:x-emb-email”, “listeners”: [ {"once": false, "action": function(e){ var xml = _g('${SessionID}').generateReportXML();  $.ajax({ url [...]]]></description>
			<content:encoded><![CDATA[<h3>自定义填报</h3>
<p>    在使用<a title="Web报表工具" href="http://www.finereport.com/knowledge/professional/webreport.html">Web报表</a>工具填报时，个别用户为了需求，需要自定义填报。</p>
<p>    下面以FineReport Web<a title="报表工具" href="http://www.finereport.com/knowledge">报表工具</a>在报表属性中的填报页面设置中可以自定义填报功能。<span id="more-957"></span></p>
<p>实例：</p>
<p>     该实例实现首先在web报表工具栏上加一个按钮，通知服务器要做填报；然后服务器获得当前的SessionIDInfor，取出当前的报表，获得报表中A1、B1扩展后的格子，再把这组数据insert到数据库中；最后返回客户端一个讯息，表示填报成功了，客户端再弹个对话框，提示填报成功了。</p>
<ol>
<li><strong>1.    </strong><strong>连接数据库FRDemo</strong><strong> </strong></li>
<li><strong>2.    </strong><strong>报表设计</strong><strong></strong></li>
</ol>
<p>2.1    新建<a title="报表" href="http://www.finereport.com">报表</a></p>
<p>2.2    模板设计</p>
<p style="text-align: left">添加一个名为ds1的数据库查询：<strong><em>SELECT * FROM customer</em></strong>，表样设计，如图</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/957"><img class="aligncenter" src="http://www.finereport.com/forumimages/e218.png" alt="报表工具模板设计" width="307" height="60" /></a></p>
<p style="text-align: left">2.3    自定义报表填报属性</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/957"><img class="aligncenter" src="http://www.finereport.com/forumimages/e219.png" alt="报表填报属性" width="555" height="390" /></a></p>
<p>2.4    定义单元格空间属性</p>
<p>2.5    自定义报表Web属性</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/957"><img class="aligncenter" src="http://www.finereport.com/forumimages/e220.png" alt="报表单元格属性" width="572" height="72" /></a></p>
<p style="text-align: left">点击菜单栏<strong>报表|报表Web属性</strong>，进入报表Web属性窗口，在填报页面设置栏目中，将左边需要显示的按钮拖到中间的窗口中，并在右边窗口添加加载结束事件，实现自定义的填报功能，如图所示</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/957"><img class="aligncenter" src="http://www.finereport.com/forumimages/e221.png" alt="报表工具web属性" width="555" height="471" /></a></p>
<p style="text-align: left">在加载结束事件窗口中添加事件的JS代码</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/957"><img class="aligncenter" src="http://www.finereport.com/forumimages/e222.png" alt="报表工具js" width="522" height="418" /></a></p>
<p>具体js代码如下</p>
<p>var $toolbar = $(&#8216;.FR-ToolBar-disabled &gt; table &gt;tbody&gt;tr&#8217;);</p>
<p>var option = {</p>
<p>//”icon”: “css:x-emb-email”,</p>
<p>“listeners”: [ {"once": false,</p>
<p>"action": function(e){</p>
<p>var xml = _g('${SessionID}').generateReportXML();</p>
<p> $.ajax({</p>
<p>url : "test.jsp",</p>
<p>type : 'POST',</p>
<p>data : {op : 'test1', sessionID : '${SessionID}',</p>
<p>reportXML : xml},</p>
<p>complete : function(res, status) {</p>
<p>FR.showDialog("Relation", 300, 400, res.responseText);</p>
<p>}})</p>
<p>},</p>
<p>"eventName": "click"</p>
<p>}],</p>
<p>“text”: “测试”,</p>
<p>“invisible”: false,</p>
<p>“type”: “button”,</p>
<p>“disabled”: false,</p>
<p>“render”: true};</p>
<p>$button = $(&#8216;&lt;div&gt;&lt;/div&gt;&#8217;);</p>
<p>FR.comp.create($button, “button”, option);</p>
<p>$tc = $(“&lt;td&gt;”).append($button);</p>
<p>$toolbar.append($tc);</p>
<p>此段JS代码引用了一个test.jsp，代码为：</p>
<p>&lt;%@ page import=”com.fr.web.CustomSubmit” %&gt;</p>
<p>&lt;%@ page contentType=”text/html” %&gt;</p>
<p>&lt;%  </p>
<p>     CustomSubmit.dealWithTest(request, response);</p>
<p>%&gt;</p>
<p>将该test.jsp文件放在设计器安装的WebReport目录下。</p>
<p>该test.jsp文件又引用了一个CustomSubmit类，将该类编译后的.class文件放在</p>
<p>%WebReport\WEB-INF\classes\com\fr\web目录下，该类的代码具体如下</p>
<p><strong>package</strong>com.fr.web;</p>
<p><strong>import</strong>java.io.PrintWriter;</p>
<p><strong>import</strong>java.util.ArrayList;</p>
<p><strong>import</strong>java.util.List;</p>
<p><strong>import</strong>javax.servlet.http.HttpServletRequest;</p>
<p><strong>import</strong>javax.servlet.http.HttpServletResponse;</p>
<p><strong>import</strong>com.fr.base.ColumnRow;</p>
<p><strong>import</strong>com.fr.report.Report;</p>
<p><strong>import</strong>com.fr.report.core.FormReport;</p>
<p><strong>import</strong>com.fr.report.core.PackedReport;</p>
<p><strong>import</strong>com.fr.web.ParameterConsts;</p>
<p><strong>import</strong>com.fr.web.core.SessionDealWith;</p>
<p><strong>import</strong>com.fr.web.core.SessionIDInfor;</p>
<p><strong>import</strong>com.fr.web.core.WebUtils;</p>
<p><strong>publicclass</strong>CustomSubmit {</p>
<p><strong>publicstaticvoid</strong>dealWithTest(HttpServletRequestreq, HttpServletResponse res) <strong>throws</strong> Exception {</p>
<p>String sessionID = WebUtils.getHTTPRequestParameter(req,ParameterConsts.SESSION_ID);</p>
<p>SessionIDInforsessionIDInfor = SessionDealWith.getSessionIDInfor(sessionID);</p>
<p>            List cellRelation = <strong>new</strong>ArrayList();</p>
<p>    <strong>for</strong>(<strong>int</strong> i = 0, len = sessionIDInfor.getWorkBook2Show().getReportCount(); i &lt;len; i++) {</p>
<p>            Report report = sessionIDInfor.getWorkBook2Show().getReport(i);</p>
<p>            <strong>if</strong> (report <strong>instanceof</strong>FormReport&amp;&amp; report <strong>instanceof</strong>PackedReport) {</p>
<p>                Report fr = (PackedReport)report;</p>
<p>//请注意这步，我想要取的是A1和B1两个格子扩展以后的他们之间关系和值，如果是想拿A1,B1,D5，对应添加ColumnRow.valueOf(“D5&#8243;)既可</p>
<p>List rl = ((FormReport)report).getExtendColumnRowList(<strong>new</strong>ColumnRow[] {ColumnRow.valueOf(“A1&#8243;), ColumnRow.valueOf(“B1&#8243;)});</p>
<p>                <strong>for</strong> (<strong>int</strong> c = 0, cl = rl.size(); c &lt; cl; c++) {</p>
<p>                    ColumnRow[] crs = (ColumnRow[])rl.get(c);</p>
<p>                    ColumnRowValue[] crvs = <strong>new</strong>ColumnRowValue[crs.length];</p>
<p>                    <strong>for</strong> (<strong>int</strong> index = 0, il = crs.length; index &lt;il; index++) {</p>
<p>crvs[index] = <strong>new</strong>ColumnRowValue(crs[index], fr.getCellValue(crs[index].column, crs[index].row));</p>
<p>                    }</p>
<p>                    cellRelation.add(crvs);</p>
<p>                }</p>
<p>            }</p>
<p>        }  </p>
<p>        //cellRelation里面存放着扩展以后的格子之间的关系和格子的值</p>
<p>//以111.cpt模板为例，数据列扩展后城市NewYork对应ID 1和4，在cellRelation里面就是cellRelation.get(0)和cellRelation.get(1)，对应着两个ColumnRowValue[]</p>
<p>//第一个ColumnRowValue数组的ColumnRowValue[0]的ColumnRow是A1，Value是NewYork,ColumnRowValue[1]的ColumnRow是B1，Value是1</p>
<p>//第二个ColumnRowValue数组的ColumnRowValue[0]的ColumnRow是A1，Value是NewYork,ColumnRowValue[1]的ColumnRow是B2，Value是4</p>
<p>        <strong>if</strong> (cellRelation.size() &gt; 0) {</p>
<p>            PrintWriter writer = WebUtils.createPrintWriter(res);</p>
<p>            <strong>for</strong> (<strong>int</strong> i = 0, len = cellRelation.size(); i &lt;len; i++) {</p>
<p>                ColumnRowValue[] crvs = (ColumnRowValue[])cellRelation.get(i);</p>
<p>                StringBuffersb = <strong>new</strong>StringBuffer();</p>
<p>                <strong>for</strong> (<strong>int</strong> v = 0, vl = crvs.length; v &lt;vl; v++) {</p>
<p>                    <strong>if</strong> (v != 0) {</p>
<p>                        sb.append(” “);</p>
<p>                    }</p>
<p>                    sb.append(crvs[v].toString());</p>
<p>                    <strong>if</strong> (v == vl &#8211; 1) {</p>
<p>                        sb.append(“&lt;br /&gt;”);</p>
<p>                    }</p>
<p>                }</p>
<p>                writer.println(sb.toString());</p>
<p>            }          </p>
<p>            writer.flush();</p>
<p>            writer.close();</p>
<p>        }</p>
<p>        }</p>
<p>    <strong>publicstaticclass</strong>ColumnRowValue {</p>
<p>        <strong>private</strong>ColumnRowcr;</p>
<p>        <strong>private</strong> Object value;</p>
<p>        <strong>public</strong>ColumnRowValue(ColumnRowcr, Object value) {</p>
<p>            <strong>this</strong>.cr = cr;</p>
<p>            <strong>this</strong>.value = value;</p>
<p>        }</p>
<p>        <strong>public</strong>ColumnRowgetColumnRow() {</p>
<p>            <strong>return</strong>cr;</p>
<p>        }</p>
<p>        <strong>public</strong> Object getValue() {</p>
<p>            <strong>return</strong> value;</p>
<p>        }</p>
<p>        <strong>public</strong> String toString() {</p>
<p><strong>returnnew</strong> StringBuffer().append(cr.toString()).append(“:”).append(value.toString()).toString();</p>
<p>                }</p>
<p>            }</p>
<p>}</p>
<ol>
<li><strong>3.    </strong><strong>保存并预览</strong></li>
</ol>
<p>点击填报预览，BS界面除了FR报表自带的提交按钮和数据校验按钮外，还多了一个测试按钮</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/957"><img class="aligncenter" src="http://www.finereport.com/forumimages/e223.png" alt="报表预览" width="206" height="408" /></a></p>
<p style="text-align: left">点击测试按钮，出现测试界面</p>
<p style="text-align: left"> </p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/957"><img class="aligncenter" src="http://www.finereport.com/forumimages/e224.png" alt="报表预览测试界面" width="426" height="450" /></a></p>
<p>文章转自：<strong><a href="http://blog.csdn.net/best_report/archive/2010/09/24/5902877.aspx">http://blog.csdn.net/best_report/archive/2010/09/24/5902877.aspx</a></strong></p>

<p><strong>Web报表主题相关文章：</strong></p>
<ul>
<li><a href="http://reportblog.cn/archives/1741">Apache和tomcat整合</a></li>
<li><a href="http://reportblog.cn/archives/1700">IIS集成配置</a></li>
<li><a href="http://reportblog.cn/archives/1697">Jboss 服务器 JNDI 配置数据源连接数据库</a></li>
<li><a href="http://reportblog.cn/archives/1694">Oracle 数据库实现自增长列</a></li>
<li><a href="http://reportblog.cn/archives/1689">Weblogic 10.1 配置JNDI 数据源</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://reportblog.cn/archives/957/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>web报表工具内置JS的使用之八</title>
		<link>http://reportblog.cn/archives/948</link>
		<comments>http://reportblog.cn/archives/948#comments</comments>
		<pubDate>Sun, 19 Sep 2010 02:20:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web报表工具-技术园地]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[web报表工具]]></category>

		<guid isPermaLink="false">http://reportblog.cn/?p=948</guid>
		<description><![CDATA[      在使用web报表工具填报时，提交会出现两种结果，提交成功和提交失败，可以对这两种结果进行判断并作出反应，从而跳转到其他页面。        以FineReport为例，介绍如何在web报表工具中实现表单提交超级链接，原V6.2版本中可以在报表填报属性中添加，如下图所示 在V6.5版本中同样可以通过报表&#124;报表Web属性&#124;填报页面设置添加提交成功和提交失败事件进行编辑。主要用到的事件为加载页面事件： // 通过页面路径加载相应页面 window.open(“[URL]“) 实例： 1． 打开模板 2． 添加提交事件 点击填报&#124;报表Web属性，选择填报页面设置，进入填报页面设置窗口，在右边栏中添加提交成功和提交失败事件，如下图所示  具体的填报成功事件和填报失败事件代码如下 填报成功事件，添加JS代码：window.open(“http://www.finereport.com”)； 在填报成功后，连接到相应页面。 提交失败事件，JS代码： window.open(“http://localhost:8075/WebReport/ReportServer?op=fs”)； 该代码用于填报提交失败后打开产品演示文档。 文章转自：http://blog.donews.com/finereport/archive/2010/09/16/1583622.aspx Web报表主题相关文章： Apache和tomcat整合 IIS集成配置 Jboss 服务器 JNDI 配置数据源连接数据库 Oracle 数据库实现自增长列 Weblogic 10.1 配置JNDI 数据源]]></description>
			<content:encoded><![CDATA[<p>      在使用<a title="Web报表工具" href="http://www.finereport.com/knowledge/professional/webreport.html">web报表</a>工具填报时，提交会出现两种结果，提交成功和提交失败，可以对这两种结果进行判断并作出反应，从而跳转到其他页面。<span id="more-948"></span></p>
<p style="text-align: left">       以FineReport为例，介绍如何在web<a title="报表工具" href="http://www.finereport.com/knowledge">报表工具</a>中实现表单提交超级链接，原V6.2版本中可以在报表填报属性中添加，如下图所示</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/948"><img class="aligncenter" src="http://www.finereport.com/forumimages/e212.png" alt="Web报表工具填报属性" /></a></p>
<p style="text-align: left">在V6.5版本中同样可以通过<strong>报表</strong><strong>|</strong><strong>报表Web</strong><strong>属性|</strong><strong>填报页面设置</strong>添加提交成功和提交失败事件进行编辑。主要用到的事件为加载页面事件：</p>
<p><strong><em>// </em></strong><strong><em>通过页面路径加载相应页面</em></strong></p>
<p>window.open(“[URL]“)</p>
<p>实例：</p>
<p><strong>1． </strong><strong>打开模板</strong></p>
<p><strong>2． </strong><strong>添加提交事件</strong></p>
<p style="text-align: left">点击<strong>填报</strong><strong>|</strong><strong>报表Web</strong><strong>属性</strong>，选择填报页面设置，进入填报页面设置窗口，在右边栏中添加提交成功和提交失败事件，如下图所示 </p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/948"><img class="aligncenter" src="http://www.finereport.com/forumimages/e213.png" alt="Web报表工具web属性" /></a></p>
<p>具体的填报成功事件和填报失败事件代码如下</p>
<p>填报成功事件，添加JS代码：window.open(“http://www.finereport.com”)；</p>
<p style="text-align: left">在填报成功后，连接到相应页面。</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/948"><img class="aligncenter" src="http://www.finereport.com/forumimages/e214.png" alt="报表工具js" /></a></p>
<p style="text-align: left">提交失败事件，JS代码：</p>
<p style="text-align: left">window.open(“http://localhost:8075/WebReport/ReportServer?op=fs”)；</p>
<p>该代码用于填报提交失败后打开产品演示文档。</p>
<p>文章转自：<a href="http://blog.donews.com/finereport/archive/2010/09/16/1583622.aspx">http://blog.donews.com/finereport/archive/2010/09/16/1583622.aspx</a></p>

<p><strong>Web报表主题相关文章：</strong></p>
<ul>
<li><a href="http://reportblog.cn/archives/1741">Apache和tomcat整合</a></li>
<li><a href="http://reportblog.cn/archives/1700">IIS集成配置</a></li>
<li><a href="http://reportblog.cn/archives/1697">Jboss 服务器 JNDI 配置数据源连接数据库</a></li>
<li><a href="http://reportblog.cn/archives/1694">Oracle 数据库实现自增长列</a></li>
<li><a href="http://reportblog.cn/archives/1689">Weblogic 10.1 配置JNDI 数据源</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://reportblog.cn/archives/948/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>web报表工具内置JS的使用之七</title>
		<link>http://reportblog.cn/archives/939</link>
		<comments>http://reportblog.cn/archives/939#comments</comments>
		<pubDate>Thu, 16 Sep 2010 06:28:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web报表工具-技术园地]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[web报表工具]]></category>

		<guid isPermaLink="false">http://reportblog.cn/?p=939</guid>
		<description><![CDATA[        在使用web报表工具实现填报时，有时需要在编辑完数据后跟其他具体某个格子对比，进行及时校验。当报表中提供的及时校验不能满足需求时，可以通过JS事件来进行及时校验。         以FineReport为例，介绍下如何用web报表工具内置JS及时校验-跨格数据校验 1.    设计模板  2.1  新建报表 2.2   模板设计，如下图所示 2.3   控件设置 2.4   添加事件 l         对B2单元格控件添加编辑结束事件： var D2value = arguments[1].getCellValue(“D2&#8243;); if (this.getValue() &#60; D2value){ FR.Msg.alert(FR.i18n.Alert, “该值不能小于” + D2value);  return false; } 说明：D2value是自定义变量，用于获得D2单元格的值，if语句是用来判断该单元格输入后的值是否小于D2value，如果是则弹出警告：该值不能小于6。   对B3单元格控件添加编辑结束事件： var D3value = arguments[1].getCellValue(“D3&#8243;); if (this.getValue() != D3value){     FR.Msg.alert(FR.i18n.Alert, “该值应等于” + D3value); return false; } 说明：D3value是自定义变量，用于获得D3单元格的值，if语句是用来判断该单元格输入后的值是否等于D3value，如果不是是则弹出警告：该值应等于abc。 2.    保存并预览  点击填报预览，在B2单元格中输入数字5，并按回车确定，则弹出警告，如图 在B3单元格中输入add，并按回车确定，也弹出校验警告，如图 文章转自：http://blog.donews.com/finereport/archive/2010/09/14/1583608.aspx [...]]]></description>
			<content:encoded><![CDATA[<p>        在使用<a title="报表工具" href="http://www.finereport.com/knowledge/professional/webreport.html">web报表</a>工具实现填报时，有时需要在编辑完数据后跟其他具体某个格子对比，进行及时校验。当报表中提供的及时校验不能满足需求时，可以通过JS事件来进行及时校验。 <span id="more-939"></span></p>
<p>       以FineReport为例，介绍下如何用<a title="Web报表工具" href="http://www.finereport.com/knowledge/professional/webreport.html">web报表</a>工具内置JS及时校验-跨格数据校验</p>
<ol>
<li><strong>1.    </strong><strong>设计模板</strong><strong> </strong></li>
</ol>
<p>2.1  新建报表</p>
<p>2.2   模板设计，如下图所示</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/939"><img class="aligncenter" src="http://www.finereport.com/forumimages/e206.png" alt="Web报表工具模板设计" width="393" height="96" /></a></p>
<p style="text-align: left">2.3   控件设置</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/939"><img class="aligncenter" src="http://www.finereport.com/forumimages/e207.png" alt="Web报表工具单元格设置" width="395" height="73" /></a></p>
<p>2.4   添加事件</p>
<p>l         对B2单元格控件添加编辑结束事件：</p>
<p>var D2value = arguments[1].getCellValue(“D2&#8243;);</p>
<p>if (this.getValue() &lt; D2value){</p>
<p>FR.Msg.alert(FR.i18n.Alert, “该值不能小于” + D2value); </p>
<p>return false;</p>
<p>}</p>
<p>说明：D2value是自定义变量，用于获得D2单元格的值，if语句是用来判断该单元格输入后的值是否小于D2value，如果是则弹出警告：该值不能小于6。</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/939"><img class="aligncenter" src="http://www.finereport.com/forumimages/e208.png" alt="报表工具js" /></a></p>
<p style="text-align: left">  对B3单元格控件添加编辑结束事件：</p>
<p>var D3value = arguments[1].getCellValue(“D3&#8243;);</p>
<p>if (this.getValue() != D3value){    </p>
<p>FR.Msg.alert(FR.i18n.Alert, “该值应等于” + D3value);</p>
<p>return false;</p>
<p>}</p>
<p style="text-align: center">说明：D3value是自定义变量，用于获得D3单元格的值，if语句是用来判断该单元格输入后的值是否等于D3value，如果不是是则弹出警告：该值应等于abc。<br />
<a href="http://reportblog.cn/archives/939"><img class="aligncenter" src="http://www.finereport.com/forumimages/e209.png" alt="报表工具js" width="445" height="277" /></a></p>
<ol>
<li><strong>2.    </strong><strong>保存并预览</strong><strong> </strong></li>
</ol>
<p style="text-align: center">点击填报预览，在B2单元格中输入数字5，并按回车确定，则弹出警告，如图<br />
<a href="http://reportblog.cn/archives/939"><img class="aligncenter" src="http://www.finereport.com/forumimages/e210.png" alt="报表预览" width="386" height="243" /></a>在B3单元格中输入add，并按回车确定，也弹出校验警告，如图<br />
<a href="http://reportblog.cn/archives/939"><img class="aligncenter" src="http://www.finereport.com/forumimages/e211.png" alt="报表预览" width="394" height="231" /></a></p>
<p>文章转自：<a href="http://blog.donews.com/finereport/archive/2010/09/14/1583608.aspx"><strong>http://blog.donews.com/finereport/archive/2010/09/14/1583608.aspx</strong></a></p>

<p><strong>Web报表主题相关文章：</strong></p>
<ul>
<li><a href="http://reportblog.cn/archives/1741">Apache和tomcat整合</a></li>
<li><a href="http://reportblog.cn/archives/1700">IIS集成配置</a></li>
<li><a href="http://reportblog.cn/archives/1697">Jboss 服务器 JNDI 配置数据源连接数据库</a></li>
<li><a href="http://reportblog.cn/archives/1694">Oracle 数据库实现自增长列</a></li>
<li><a href="http://reportblog.cn/archives/1689">Weblogic 10.1 配置JNDI 数据源</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://reportblog.cn/archives/939/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web报表工具内置JS的使用之六</title>
		<link>http://reportblog.cn/archives/933</link>
		<comments>http://reportblog.cn/archives/933#comments</comments>
		<pubDate>Wed, 08 Sep 2010 06:34:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web报表工具-技术园地]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[web报表工具]]></category>

		<guid isPermaLink="false">http://reportblog.cn/?p=933</guid>
		<description><![CDATA[表单填报触发事件 表单控件的取值与置数         使用FineReport报表工具时，在填报页面，也可以得到各控件的值及对控件进行置数，方法与参数界面中类似。 // 获得当前控件输入的值  var[Value] = this.getValue(); // 通过单元格名称获取其他单元格的值 var[curLGP] = arguments[1];//首先，获得当前form对象 var [Cellvalue] = curLGP.getCellValue(“[Cell]“);//通过单元格名称获得Cell单元格的值 // 对单元格进行置数并显示 var[curLGP] = arguments[1];//首先，获得当前form对象 curLGP.setCellValue(“[Cell]“, null, [Value]);//给单元格Cell置数，改变其实际值，但不显示，字符串需要加上引号 curLGP.displayTDCell($(“#[Cell]-0&#8243;), [Value]);//表示显示出Cell单元格的实际值Value 实例： 该实例实现了在填报页面上用一个表单控件控制另一个表单控件，当控件1输入之后，取控件2的值，判断一下条件，若不符合条件，则置数，符合则不变。 1.    设计模板 1.1    新建报表 1.2    模板设计，如图所示 1.3    设置控件属性 1.4    添加事件 在A2单元格控件的事件编辑中添加编辑结束事件，具体JS代码为： varcurLGP = arguments[1]; var C2value = curLGP.getCellValue(“C2&#8243;); if(C2value != 10){ curLGP.setCellValue(“C2&#8243;, null, “10&#8243;); curLGP.displayTDCell($(“#C2-0&#8243;), [...]]]></description>
			<content:encoded><![CDATA[<h2>表单填报触发事件</h2>
<h3>表单控件的取值与置数</h3>
<p>        使用FineReport<a title="报表工具" href="http://www.finereport.com/knowledge">报表工具</a>时，在填报页面，也可以得到各控件的值及对控件进行置数，方法与参数界面中类似。<span id="more-933"></span></p>
<p><strong><em>// </em></strong><strong><em>获得当前控件输入的值</em></strong><strong><em> </em></strong></p>
<p>var[Value] = this.getValue();<strong><em></em></strong></p>
<p><strong><em>// </em></strong><strong><em>通过单元格名称获取其他单元格的值</em></strong><strong><em></em></strong></p>
<p>var[curLGP] = arguments[1];<strong><em>//</em></strong><strong><em>首先，获得当前form对象</em></strong></p>
<p>var [Cellvalue] = curLGP.getCellValue(“[Cell]“);<strong><em>//</em></strong><strong><em>通过单元格名称获得Cell单元格的值</em></strong><strong><em></em></strong></p>
<p><strong><em>// </em></strong><strong><em>对单元格进行置数并显示</em></strong></p>
<p>var[curLGP] = arguments[1];<strong><em>//</em></strong><strong><em>首先，获得当前form对象</em></strong><strong><em></em></strong></p>
<p>curLGP.setCellValue(“[Cell]“, null, [Value]);<strong><em>//</em></strong><strong><em>给单元格Cell置数，改变其实际值，但不显示，字符串需要加上引号</em></strong></p>
<p>curLGP.displayTDCell($(“#[Cell]-0&#8243;), [Value]);<strong><em>//</em></strong><strong><em>表示显示出Cell单元格的实际值Value</em></strong></p>
<p>实例：</p>
<p>该实例实现了在填报页面上用一个表单控件控制另一个表单控件，当控件1输入之后，取控件2的值，判断一下条件，若不符合条件，则置数，符合则不变。</p>
<ol>
<li><strong>1.    </strong><strong>设计模板</strong><strong></strong></li>
</ol>
<p>1.1    新建<a title="报表" href="http://www.finereport.com">报表</a></p>
<p>1.2    模板设计，如图所示</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/933"><img class="aligncenter" src="http://www.finereport.com/forumimages/e201.png" alt="Web报表工具模板设计" /></a></p>
<p style="text-align: left">1.3    设置控件属性</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/933"><img class="aligncenter" src="http://www.finereport.com/forumimages/e202.png" alt="Web报表工具单元格设置" /></a></p>
<p>1.4    添加事件</p>
<p>在A2单元格控件的事件编辑中添加编辑结束事件，具体JS代码为：</p>
<p>varcurLGP = arguments[1];</p>
<p>var C2value = curLGP.getCellValue(“C2&#8243;);</p>
<p>if(C2value != 10){</p>
<p>curLGP.setCellValue(“C2&#8243;, null, “10&#8243;);</p>
<p>curLGP.displayTDCell($(“#C2-0&#8243;), “10&#8243;);</p>
<p>}</p>
<p>说明：</p>
<p>varcurLGP = arguments[1];<strong><em>//</em></strong><strong><em>获得本form对象</em></strong></p>
<p>varC1value = curLGP.getCellValue(“C2&#8243;);<strong><em>//</em></strong><strong><em>获得C2单元格的值</em></strong></p>
<p>curLGP.setCellValue(“C2&#8243;, null, “10&#8243;);<strong><em>//</em></strong><strong><em>给C2置数，改变其实际值，但不显示</em></strong></p>
<p>curLGP.displayTDCell($(“#C2-0&#8243;), “10&#8243;);<strong><em>//</em></strong><strong><em>表示显示出C2的实际值</em></strong></p>
<p>具体如图所示</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/933"><img class="aligncenter" src="http://www.finereport.com/forumimages/e203.png" alt="报表工具js" /></a></p>
<ol>
<li><strong>2.    </strong><strong>保存并预览</strong></li>
</ol>
<p>点击<a title="web报表" href="http://www.finereport.com/knowledge/professional/webreport.html">web报表</a>设计器中的填报预览，效果如图</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/933"><img class="aligncenter" src="http://www.finereport.com/forumimages/e204.png" alt="报表预览" /></a></p>
<p style="text-align: left">在控件1中输入数据后回车，这时触发编辑结束事件，取C2单元格的值，根据判断，不是10，此时将C2单元格置数为10</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/933"><img class="aligncenter" src="http://www.finereport.com/forumimages/e205.png" alt="报表预览" /></a></p>
<h2>文章转自：<a href="http://blog.chinaunix.net/u/17568/showart.php?id=2320670">http://blog.chinaunix.net/u/17568/showart.php?id=2320670</a></h2>

<p><strong>Web报表主题相关文章：</strong></p>
<ul>
<li><a href="http://reportblog.cn/archives/1741">Apache和tomcat整合</a></li>
<li><a href="http://reportblog.cn/archives/1700">IIS集成配置</a></li>
<li><a href="http://reportblog.cn/archives/1697">Jboss 服务器 JNDI 配置数据源连接数据库</a></li>
<li><a href="http://reportblog.cn/archives/1694">Oracle 数据库实现自增长列</a></li>
<li><a href="http://reportblog.cn/archives/1689">Weblogic 10.1 配置JNDI 数据源</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://reportblog.cn/archives/933/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web报表工具内置JS的使用之五</title>
		<link>http://reportblog.cn/archives/931</link>
		<comments>http://reportblog.cn/archives/931#comments</comments>
		<pubDate>Sat, 04 Sep 2010 08:20:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web报表工具-技术园地]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[web报表工具]]></category>

		<guid isPermaLink="false">http://reportblog.cn/?p=931</guid>
		<description><![CDATA[参数控件动态显示          在使用FineReport报表工具时，由于业务的需要，很多情况下需要当满足某个条件时，某些查询条件才显示出来，此时参数控件就需要动态的控制其是否可见。     //通过控件的visible()、invisible()属性控制其可视、不可视     var [Widget] = form.getWidgetByName(“[ParaName]“); //通过控件名获取控件     [Widget].visible(); //设置该控件可见 [Widget].invisible(); //设置该控件不可见 实例： 该实例实现效果：当选择日报时，右侧出现一个日期查询控件，选择月报时，则让用户选择年月，例如2008年3月，选择年报时，即让用户选择年份。 1.      模板设计        1.1 新建报表 1.2 添加数据源 新建一个名为ds1的数据库查询，SQL语句： SELECT equipment,amount,costs,updatetime,equipmentId FROM EquipmentDetail where 1=1 ${if(type=&#8217;日报&#8217;,” and format(updatetime,&#8217;yyyy-mm-dd&#8217;) = &#8216;” + date + “&#8216;”,”")} ${if(type=&#8217;月报&#8217;,” and month(updatetime) = “+ month + ” and year(updatetime) = ” + year,”")} [...]]]></description>
			<content:encoded><![CDATA[<h3>参数控件动态显示</h3>
<p>         在使用FineReport<a title="报表工具" href="http://www.finereport.com/cn/products.html">报表工具</a>时，由于业务的需要，很多情况下需要当满足某个条件时，某些查询条件才显示出来，此时参数控件就需要动态的控制其是否可见。<span id="more-931"></span></p>
<p>    <strong><em>//</em></strong><strong><em>通过控件的visible()、invisible()属性控制其可视、不可视</em></strong></p>
<p>    var [Widget] = form.getWidgetByName(“[ParaName]“); <strong><em>//</em></strong><strong><em>通过控件名获取控件</em></strong></p>
<p>    [Widget].visible(); <strong><em>//</em></strong><strong><em>设置该控件可见</em></strong></p>
<p>[Widget].invisible(); <strong><em>//</em></strong><strong><em>设置该控件不可见</em></strong></p>
<p>实例：</p>
<p>该实例实现效果：当选择日报时，右侧出现一个日期查询控件，选择月报时，则让用户选择年月，例如2008年3月，选择年报时，即让用户选择年份。</p>
<ol>
<li><strong>1.      </strong><strong>模板设计</strong></li>
</ol>
<p>       1.1 新建<a title="报表" href="http://www.finereport.com/cn/knowledge.html">报表</a></p>
<p>1.2 添加数据源</p>
<p>新建一个名为ds1的数据库查询，SQL语句：</p>
<p><strong><em>SELECT equipment,amount,costs,updatetime,equipmentId </em></strong></p>
<p><strong><em>FROM EquipmentDetail </em></strong></p>
<p><strong><em>where 1=1 </em></strong></p>
<p><strong><em>${if(type=&#8217;</em></strong><strong><em>日报&#8217;,” and format(updatetime,&#8217;yyyy-mm-dd&#8217;) = &#8216;” + date + “&#8216;”,”")}</em></strong></p>
<p><strong><em>${if(type=&#8217;</em></strong><strong><em>月报&#8217;,” and month(updatetime) = “+ month + ” and year(updatetime) = ” + year,”")}</em></strong></p>
<p><strong><em>${if(type=&#8217;</em></strong><strong><em>年报&#8217;,” and year(updatetime) = ” + year,”")}</em></strong> </p>
<p>其中设置参数type的默认值日报，data的默认值是字符串2009-01-13</p>
<p>1.3 模板设计</p>
<p>模板样式如下</p>
<p style="text-align: center">        <a href="http://reportblog.cn/archives/931"><img class="aligncenter" src="http://www.finereport.com/forumimages/e190.png" alt="Web报表工具模板设计" /></a></p>
<p>2.4 绑定数据列</p>
<p>按照下表进行数据列绑定</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/931"><img class="aligncenter" src="http://www.finereport.com/forumimages/e191.png" alt="Web报表工具单元格设置" /></a></p>
<p>2.5 参数设计</p>
<p>        2.5.1 打开参数设计界面，参数界面布局如下</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/931"><img class="aligncenter" src="http://www.finereport.com/forumimages/e192.png" alt="Web报表工具参数设计" /></a>         </p>
<p>              2.5.2 控件设置</p>
<p>l         type控件设置</p>
<p style="text-align: center">右击type控件，选择<strong>控件设置</strong>，打开控件设置面板，控件类型为下拉框，控件名选择type，自定义数据，如下图所示<br />
<a href="http://reportblog.cn/archives/931"><img class="aligncenter" src="http://www.finereport.com/forumimages/e193.png" alt="Web报表工具控件设置" /></a></p>
<p>l         date控件设置</p>
<p style="text-align: center">右击date的控件，选择<strong>控件设置</strong>，打开控件设置面板，控件类型为日期，控件名选择date，自定义数据，如下图所示<br />
<a href="http://reportblog.cn/archives/931"><img class="aligncenter" src="http://www.finereport.com/forumimages/e194.png" alt="Web报表工具控件设置" /></a></p>
<p>l         year控件设置</p>
<p>右击year的控件，选择<strong>控件设置</strong>，打开控件设置面板，控件类型为下拉框，控件名选择year，使用公式，dyear控件是由type的类型来决定他是否需要显示的，且我们默认的类型为日报，因此默认设置它为不可见，如下图所示</p>
<p style="text-align: center"><strong> </strong><br />
<a href="http://reportblog.cn/archives/931"><img class="aligncenter" src="http://www.finereport.com/forumimages/e195.png" alt="Web报表工具控件设置" /></a><strong> </strong></p>
<p>l         month控件设置</p>
<p style="text-align: center"> </p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/931"><img src="http://www.finereport.com/forumimages/e196.png" alt="Web报表工具控件设置" /></a></p>
<ol>
<li><strong>2.      </strong><strong>事件编辑</strong></li>
</ol>
<p>右击type控件，选择<strong>控件设置</strong>，打开控件设置面板，添加编辑后事件，如下图所示：</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/931"><img class="aligncenter" src="http://www.finereport.com/forumimages/e197.png" alt="报表工具js" /></a></p>
<p>    在function fun(){}中添加如下代码：</p>
<p>    var form = this.options.form;</p>
<p>var DateWidget = form.getWidgetByName(“date”);</p>
<p>var YearWidget = form.getWidgetByName(“year”);</p>
<p>var MonthWidget = form.getWidgetByName(“month”);</p>
<p>var value = this.getValue();</p>
<p>if(value == “日报”){</p>
<p>        DateWidget.visible();</p>
<p>        YearWidget.invisible();</p>
<p>        MonthWidget.invisible();</p>
<p>}else if(value == “月报”){</p>
<p>        DateWidget.invisible();</p>
<p>        YearWidget.visible();</p>
<p>        MonthWidget.visible();</p>
<p>}else if(value == “年报”){</p>
<p>        DateWidget.invisible();</p>
<p>        YearWidget.visible();</p>
<p>        MonthWidget.invisible();</p>
<p>}else{</p>
<p>        DateWidget.invisible();</p>
<p>        YearWidget.invisible();</p>
<p>        MonthWidget.invisible();</p>
<p>}</p>
<p>说明：此段代码的作用是选择日报，那么在其下方出现一个日期选择框；选择月报时，即让用户选择年月，例如2008年3月；年报与月报同理，即让用户选择年份。</p>
<ol>
<li><strong>3.      </strong><strong>保存并预览</strong></li>
</ol>
<p>默认为日报，只显示出日期控件，预览效果如图</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/931"><img class="aligncenter" src="http://www.finereport.com/forumimages/e198.png" alt="报表预览" /></a>    </p>
<p style="text-align: left">当选择月报时，右边弹出月份和年份下拉框，预览效果如图</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/931"><img class="aligncenter" src="http://www.finereport.com/forumimages/e199.png" alt="报表预览" /></a>      </p>
<p style="text-align: left">当选择年报时，右边弹出年份下拉框，预览效果如图</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/931"><img class="aligncenter" src="http://www.finereport.com/forumimages/e200.png" alt="报表预览" /></a></p>
<p>文章转自：<a href="http://ajavareport.cn/archives/450">http://ajavareport.cn/archives/450</a></p>

<p><strong>Web报表主题相关文章：</strong></p>
<ul>
<li><a href="http://reportblog.cn/archives/1741">Apache和tomcat整合</a></li>
<li><a href="http://reportblog.cn/archives/1700">IIS集成配置</a></li>
<li><a href="http://reportblog.cn/archives/1697">Jboss 服务器 JNDI 配置数据源连接数据库</a></li>
<li><a href="http://reportblog.cn/archives/1694">Oracle 数据库实现自增长列</a></li>
<li><a href="http://reportblog.cn/archives/1689">Weblogic 10.1 配置JNDI 数据源</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://reportblog.cn/archives/931/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web报表工具内置JS的使用之四</title>
		<link>http://reportblog.cn/archives/929</link>
		<comments>http://reportblog.cn/archives/929#comments</comments>
		<pubDate>Wed, 01 Sep 2010 13:55:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web报表工具-技术园地]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[web报表工具]]></category>

		<guid isPermaLink="false">http://reportblog.cn/?p=929</guid>
		<description><![CDATA[参数校验-日期校验 在使用FineReport报表工具时，内置参数查询界面当中可进行一些数据校验，例如有两个参数：开始时间和结束时间，结束时间必须在开始时间之后，否则进行提示。 1.  在提交按钮的事件编辑中写JS代码 1.1 新建报表 1.2 模板设计 按照下图设计模板 1.3 添加数据源          新建一个名为ds1的数据库查询，SQL语句：SELECT * FROM EMPLOYEE     1.4 绑定数据列 按照下表进行数据列绑定 双击B5单元格，在过滤页面当中，定义条件类型为单元格 ，添加条件： BIRTHDATE 大于或等于 $begintime AND BIRTHDATE 小于 $endtime 1.5 定义参数 打开菜单栏中报表&#124;报表参数，新定义两个个名为begintime,endtime的参数，如图     1.6 参数设计 l  打开参数设计界面，参数界面布局如下                      l  日期控件设置 右击begintime的控件，选择控件设置，控件类型选择日期，控件名选择begintime，具体设置如下图所示 endtime的控件同上 1.7 数据校验 右击查询按钮，选择控件设置，打开控件设置面板，添加点击事件，如下图所示         在function fun(){}函数中写入如下JS语句：         var start = [...]]]></description>
			<content:encoded><![CDATA[<h3>参数校验-日期校验</h3>
<p>在使用FineReport<a title="报表工具" href="http://www.finereport.com/knowledge">报表工具</a>时，内置参数查询界面当中可进行一些数据校验，例如有两个参数：开始时间和结束时间，结束时间必须在开始时间之后，否则进行提示。<span id="more-929"></span></p>
<p><strong>1.  </strong><strong>在提交按钮的事件编辑中写JS代码</strong></p>
<p>1.1 新建<a title="报表" href="http://www.finereport.com">报表</a></p>
<p>1.2 模板设计</p>
<p>按照下图设计模板</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/929"><img class="aligncenter" src="http://www.finereport.com/forumimages/e179.png" alt="Web报表工具模板设计" /></a></p>
<p>1.3 添加数据源<strong> </strong></p>
<p>        新建一个名为ds1的数据库查询，SQL语句：<strong><em>SELECT * FROM EMPLOYEE</em></strong></p>
<p>    1.4 绑定数据列</p>
<p>按照下表进行数据列绑定</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/929"><img class="aligncenter" src="http://www.finereport.com/forumimages/e180.png" alt="Web报表工具单元格设置" /></a></p>
<p>双击B5单元格，在过滤页面当中，定义条件类型为单元格 ，添加条件： BIRTHDATE 大于或等于 $begintime AND BIRTHDATE 小于 $endtime</p>
<p>1.5 定义参数</p>
<p>打开菜单栏中<strong>报表|</strong><strong>报表参数</strong>，新定义两个个名为begintime,endtime的参数，如图     <strong></strong></p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/929"><img class="aligncenter" src="http://www.finereport.com/forumimages/e181.png" alt="报表参数" /></a></p>
<p>1.6 参数设计</p>
<p>l  打开参数设计界面，参数界面布局如下</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/929"><img class="aligncenter" src="http://www.finereport.com/forumimages/e182.png" alt="报表工具参数设计" /></a>                    </p>
<p>l  日期控件设置</p>
<p>右击begintime的控件，选择<strong>控件设置</strong>，控件类型选择日期，控件名选择begintime，具体设置如下图所示</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/929"><img class="aligncenter" src="http://www.finereport.com/forumimages/e183.png" alt="Web报表工具控件设置" /></a></p>
<p>endtime的控件同上</p>
<p>1.7 数据校验</p>
<p>右击查询按钮，选择<strong>控件设置</strong>，打开控件设置面板，添加点击事件，如下图所示</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/929"><img class="aligncenter" src="http://www.finereport.com/forumimages/e184.png" alt="报表工具js" /></a></p>
<p>        在function fun(){}函数中写入如下JS语句：</p>
<p>        var start = this.options.form.getWidgetByName(“begintime”).getValue();</p>
<p>      var end = this.options.form.getWidgetByName(“endtime”).getValue();</p>
<p>      if( start == “”){</p>
<p>          alert(“错误,开始时间不能为空”);</p>
<p>          return false;</p>
<p>};</p>
<p>      if(end == “”){</p>
<p>          alert(“错误,结束时间不能为空”);</p>
<p>      return false;</p>
<p>};</p>
<p>      if( start &gt; end){</p>
<p>          alert(“错误,开始时间不能大于结束时间”);</p>
<p>          return false;</p>
<p>} </p>
<p>1.8 保存并预览</p>
<p>       begintime输入为空，如下图所示</p>
<p style="text-align: center"> <a href="http://reportblog.cn/archives/929"><img class="aligncenter" src="http://www.finereport.com/forumimages/e185.png" alt="报表预览" /></a></p>
<p>endtime输入为空，如下图所示</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/929"><img class="aligncenter" src="http://www.finereport.com/forumimages/e186.png" alt="报表预览" /></a></p>
<p>输入的endtime在begintime之前，校验如下图所示：</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/929"><img class="aligncenter" src="http://www.finereport.com/forumimages/e187.png" alt="报表预览" /></a></p>
<p><strong>2.  </strong><strong>在参数控件的事件编辑中写JS代码</strong></p>
<p>2.1 设计模板</p>
<p>具体操作同上。</p>
<p>2.2 数据校验</p>
<p>l  右击begintime的控件，选择<strong>控件设置</strong>，添加编辑后事件，如下图所示：</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/929"><img class="aligncenter" src="http://www.finereport.com/forumimages/e188.png" alt="报表工具js" /></a></p>
<p>        在function fun(){}函数中写入如下JS语句：</p>
<p>        var start = this.options.form.getWidgetByName(“begintime”).getValue();</p>
<p>        if( start == “”){</p>
<p>            alert(“错误,开始时间不能为空”);</p>
<p>            return false;</p>
<p>        };</p>
<p>        说明：这段代码是为了验证begintime输入不能为空。</p>
<p>l  右击endtime的控件，选择<strong>控件设置</strong>，添加编辑后事件，如下图所示</p>
<p><strong> </strong></p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/929"><img class="aligncenter" src="http://www.finereport.com/forumimages/e189.png" alt="报表工具js" /></a></p>
<p>        在function fun(){}函数中写入如下Js语句：</p>
<p>        var end = this.options.form.getWidgetByName(“endtime”).getValue();</p>
<p>        if(end == “”){</p>
<p>             alert(“错误,结束时间不能为空”);</p>
<p>        return false;</p>
<p>};</p>
<p>        if( start &gt; end){</p>
<p>            alert(“错误,开始时间不能大于结束时间”);</p>
<p>        return false;</p>
<p>}</p>
<p>        说明：这段代码是为了校验endtime输入不能为空以及结束时间大于开始时间。</p>
<p>2.3 保存并预览</p>
<p>        效果与在提交按钮的事件编辑中写JS代码一样</p>
<p>文章转自：<a href="http://ajavareport.cn/archives/444">http://ajavareport.cn/archives/444</a></p>

<p><strong>Web报表主题相关文章：</strong></p>
<ul>
<li><a href="http://reportblog.cn/archives/1741">Apache和tomcat整合</a></li>
<li><a href="http://reportblog.cn/archives/1700">IIS集成配置</a></li>
<li><a href="http://reportblog.cn/archives/1697">Jboss 服务器 JNDI 配置数据源连接数据库</a></li>
<li><a href="http://reportblog.cn/archives/1694">Oracle 数据库实现自增长列</a></li>
<li><a href="http://reportblog.cn/archives/1689">Weblogic 10.1 配置JNDI 数据源</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://reportblog.cn/archives/929/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web报表工具内置JS的使用之三</title>
		<link>http://reportblog.cn/archives/927</link>
		<comments>http://reportblog.cn/archives/927#comments</comments>
		<pubDate>Tue, 24 Aug 2010 05:35:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web报表工具-技术园地]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[web报表工具]]></category>

		<guid isPermaLink="false">http://reportblog.cn/?p=927</guid>
		<description><![CDATA[参数控件触发事件 参数控件的取值与置数 参数界面中，最常见的就是获取参数的值进行运算或者将其作为另一个参数的判断依据，在FineReport报表工具网页脚本中，也提供了获取参数控件实际值，显示值并给参数置数的方法。 //取当前控件的实际值 var [ParaValue] = this.getValue(); //通过参数控件名称来获取参数控件实际值 var [ParaValue] = this.options.form.getWidgetByName(“[ParaName]“).getValue(); //通过arguments[i]获取当前参数控件显示值 var [DisplayedValue] = arguments[0]; //通过控件A获取控件B的显示值 var [DisplayedValue] = this.options.form.getWidgetByName(“[ParaName]“).options.items[0].text; //获取某个参数控件，并给其置数（实际值） var [Para] = this.options.form.getWidgetByName(“[ParaName]“); [Para].setValue([Value]); 实例： 该实例通过添加参数控件的编辑后事件来实现用一个参数控制另一个参数，如用参数username来对state置数，username为下拉框自定义的几个用户名，state为单选按钮组表示状态1和2。当username有值时，state的状态置为1否则置为2。 1.  模板设计 1.1 新建报表 1.2 定义参数 在菜单栏中选择报表&#124;报表参数，打开参数定义面板，定义参数state和username，如下图 1.3 参数设计 打开参数设计界面，参数控件布局如下 l  username控件类型为下拉框，数据自定义，如图   l  state控件类型选择单选按钮组，数据也为自定义，如图  1.4 添加事件 在username的事件编辑中添加编辑后事件，JS代码如下 var state= this.options.form.getWidgetByName(“state”); var username = [...]]]></description>
			<content:encoded><![CDATA[<h2>参数控件触发事件</h2>
<h3>参数控件的取值与置数</h3>
<p>参数界面中，最常见的就是获取参数的值进行运算或者将其作为另一个参数的判断依据，在FineReport<a title="报表工具" href="http://www.finereport.com/cn/products.html">报表工具</a>网页脚本中，也提供了获取参数控件实际值，显示值并给参数置数的方法。<span id="more-927"></span></p>
<p><strong><em>//</em></strong><strong><em>取当前控件的实际值</em></strong></p>
<p>var [ParaValue] = this.getValue();</p>
<p><strong><em>//</em></strong><strong><em>通过参数控件名称来获取参数控件实际值</em></strong></p>
<p>var [ParaValue] = this.options.form.getWidgetByName(“[ParaName]“).getValue();</p>
<p><strong><em>//</em></strong><strong><em>通过arguments[i]获取当前参数控件显示值</em></strong></p>
<p>var [DisplayedValue] = arguments[0];</p>
<p><strong><em>//</em></strong><strong><em>通过控件A获取控件B的显示值</em></strong></p>
<p>var [DisplayedValue] = this.options.form.getWidgetByName(“[ParaName]“).options.items[0].text;</p>
<p><strong><em>//</em></strong><strong><em>获取某个参数控件，并给其置数（实际值）</em></strong></p>
<p>var [Para] = this.options.form.getWidgetByName(“[ParaName]“);</p>
<p>[Para].setValue([Value]);</p>
<p>实例：</p>
<p>该实例通过添加参数控件的编辑后事件来实现用一个参数控制另一个参数，如用参数username来对state置数，username为下拉框自定义的几个用户名，state为单选按钮组表示状态1和2。当username有值时，state的状态置为1否则置为2。</p>
<p><strong>1.  </strong><strong>模板设计</strong></p>
<p>1.1 新建<a title="报表" href="http://www.finereport.com/cn/knowledge.html">报表</a></p>
<p>1.2 定义参数</p>
<p>在菜单栏中选择报表|报表参数，打开参数定义面板，定义参数state和username，如下图</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/927"><img class="aligncenter" src="http://www.finereport.com/forumimages/e173.png" alt="报表参数" /></a></p>
<p>1.3 参数设计</p>
<p>打开参数设计界面，参数控件布局如下</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/927"><img class="aligncenter" src="http://www.finereport.com/forumimages/e174.png" alt="Web报表工具参数设计" /></a></p>
<p>l  username控件类型为下拉框，数据自定义，如图</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/927"><img class="aligncenter" src="http://www.finereport.com/forumimages/e175.png" alt="Web报表工具控件设置" /></a> </p>
<p>l  state控件类型选择单选按钮组，数据也为自定义，如图 </p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/927"><img class="aligncenter" src="http://www.finereport.com/forumimages/e176.png" alt="Web报表工具控件设置" /></a></p>
<p>1.4 添加事件</p>
<p>在username的事件编辑中添加编辑后事件，JS代码如下</p>
<p>var state= this.options.form.getWidgetByName(“state”);</p>
<p>var username = this.options.form.getWidgetByName(“username”).getValue();</p>
<p>if (!username){</p>
<p>    state.setValue(2);</p>
<p>}else{</p>
<p>    state.setValue(1);</p>
<p>}</p>
<p>该段代码是用来对state参数置数，当username为空时，!username为真，此时将state置数为2,否则当username有值时，将state置数为1，如图所示</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/927"><img class="aligncenter" src="http://www.finereport.com/forumimages/e177.png" alt="报表工具js" /></a></p>
<p><strong>2.  </strong><strong>保存并预览</strong></p>
<p>点击设计器分页预览，当username有值时，state置为1</p>
<p style="text-align: center"><a href="http://reportblog.cn/archives/927"><img class="aligncenter" src="http://www.finereport.com/forumimages/e178.png" alt="报表预览" /></a></p>
<p><strong> </strong><strong>注意：state无法通过username置数为0，JS里面，state为0，默认返回false</strong></p>
<p><strong>且一个控件无法对另一个控件的显示值进行置数</strong></p>

<p><strong>Web报表主题相关文章：</strong></p>
<ul>
<li><a href="http://reportblog.cn/archives/1741">Apache和tomcat整合</a></li>
<li><a href="http://reportblog.cn/archives/1700">IIS集成配置</a></li>
<li><a href="http://reportblog.cn/archives/1697">Jboss 服务器 JNDI 配置数据源连接数据库</a></li>
<li><a href="http://reportblog.cn/archives/1694">Oracle 数据库实现自增长列</a></li>
<li><a href="http://reportblog.cn/archives/1689">Weblogic 10.1 配置JNDI 数据源</a></li>
</ul><br />
]]></content:encoded>
			<wfw:commentRss>http://reportblog.cn/archives/927/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

