<?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>FineReport报表官网—专业Web报表软件 &#187; 报表填报专题</title>
	<atom:link href="http://www.finereport.com/category/knowledge/write/feed" rel="self" type="application/rss+xml" />
	<link>http://www.finereport.com</link>
	<description>一款高效易用的类Excel、纯Java报表工具，集数据展示(报表)、数据查询(参数)和数据录入(填报)于一身，是制作复杂中式报表的首选商业报表软件。</description>
	<lastBuildDate>Wed, 11 Jan 2012 13:49:09 +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>自定义FineReport网格式填报表打印样式</title>
		<link>http://www.finereport.com/knowledge/write/grid-print.html</link>
		<comments>http://www.finereport.com/knowledge/write/grid-print.html#comments</comments>
		<pubDate>Mon, 19 Sep 2011 07:31:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表填报专题]]></category>
		<category><![CDATA[Java报表]]></category>
		<category><![CDATA[java报表打印]]></category>
		<category><![CDATA[java报表教程]]></category>
		<category><![CDATA[java报表软件]]></category>
		<category><![CDATA[填报表]]></category>
		<category><![CDATA[报表填报]]></category>
		<category><![CDATA[报表打印]]></category>
		<category><![CDATA[网格式报表]]></category>

		<guid isPermaLink="false">http://www.finereport.com/knowledge/write/%e8%87%aa%e5%ae%9a%e4%b9%89finereport%e7%bd%91%e6%a0%bc%e5%bc%8f%e5%a1%ab%e6%8a%a5%e8%a1%a8%e6%89%93%e5%8d%b0%e6%a0%b7%e5%bc%8f.html</guid>
		<description><![CDATA[对于填报网格式报表，每行前面有个复选框，希望实现点击页面中设置的打印按钮希望将选中的复选框中的值按照一定的样式实现报表打印，如分栏、页面固定显示几行等格式。 可以定义另外一个有固定格式的报表模板，此模板的数据是根据填报网格式报表中选中的值进行过滤，而在填报网格式报表中则需要在按钮的点击事件中定义js，js首先要获取选中行的数据，然后调用java报表软件FineReport内置的打印方法，将选中的值以参数的方式加入到打印方法的URL中传到被打印的模板中。 预览模板效果如下所示 选中一些数据让其按照以如下图所示的样式进行报表打印，下面我们来看下具体的实现步骤。 1. 新建需要打印格式模板 1.1 定义报表参数 由于此模板要根据选中的值进行打印，因此要在此模板中定义参数，在此我们将参数定义成数据集参数。 1.2 定义报表数据集 新建工作簿，增加数据集ds1，SQL语句为： SELECT * FROM 订单 where 订单ID in (${productID})。 1.3 报表表样设计 将表样设计成要打印的效果，在此我们将模板设置成如下样式： 将B2单元格的左父格设置成无，并将其余单元格的左父格设置为B2。 将B3和D3设置形态。 同样也可以对模板进行分栏。 1.4 保存报表模板 保存模板，具体的设置可参考模板： %FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\FormFAQ\PrintCol.cpt 2. 修改预览报表模板 2.1 打开报表模板 打开模板： %FR_HOME%\WebReport\WEB-INF\reportlets\doc\Tutorial\Form\LineForm\LineForm9.cpt 2.2 修改报表模板 此模板，我们只要修改按钮的名称和按钮的js即可，因此我们将按钮名称修改成“打印”，并将js修改成如下代码： var $span = $(".x-checkbox-checkon"); //获取选中的复选框 var darray = []; var $tds = $("td").has($span); //获得选中复选框的单元格 for (var [...]]]></description>
			<content:encoded><![CDATA[<p>对于填报网格式报表，每行前面有个复选框，希望实现点击页面中设置的打印按钮希望将选中的复选框中的值按照一定的样式实现<a href="http://www.finereport.com/knowledge/aquire/bulkprint.html" title="报表打印">报表打印</a>，如分栏、页面固定显示几行等格式。<br />
可以定义另外一个有固定格式的<a href="http://www.finereport.com/knowledge/design" title="报表模板">报表模板</a>，此模板的数据是根据填报网格式报表中选中的值进行过滤，而在填报网格式报表中则需要在按钮的点击事件中定义js，js首先要获取选中行的数据，然后调用<a href="http://www.finereport.com/products/advantages" title="java报表软件">java报表软件</a>FineReport内置的打印方法，将选中的值以参数的方式加入到打印方法的URL中传到被打印的模板中。<br />
预览模板效果如下所示<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid-print1.png" title="报表模板效果预览"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid-print1.png" alt="报表模板效果预览" class="centered"></a><span id="more-2164"></span><br />
选中一些数据让其按照以如下图所示的样式进行报表打印，下面我们来看下具体的实现步骤。<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid-print2.png" title="报表打印效果"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid-print2.png" alt="报表打印效果" class="centered"></a><br />
<b>1. 新建需要打印格式模板</b><br />
<b>1.1 定义报表参数</b><br />
由于此模板要根据选中的值进行打印，因此要在此模板中定义参数，在此我们将参数定义成数据集参数。<br />
<b>1.2 定义报表数据集</b><br />
新建工作簿，增加数据集ds1，SQL语句为：<br />
<b>SELECT * FROM 订单 where 订单ID in (${productID})</b>。<br />
<b>1.3 报表表样设计</b><br />
将表样设计成要打印的效果，在此我们将模板设置成如下样式：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid-print3.png" title="报表表样设计"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid-print3.png" alt="报表表样设计" class="centered"></a><br />
将B2单元格的左父格设置成无，并将其余单元格的左父格设置为B2。<br />
将B3和D3设置形态。<br />
同样也可以对模板进行分栏。<br />
<b>1.4 保存报表模板</b><br />
保存模板，具体的设置可参考模板：<br />
<b>%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\FormFAQ\PrintCol.cpt</b><br />
<b>2. 修改预览报表模板</b><br />
<b>2.1 打开报表模板</b><br />
打开模板：<br />
<b>%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Tutorial\Form\LineForm\LineForm9.cpt</b><br />
<b>2.2 修改报表模板</b><br />
此模板，我们只要修改按钮的名称和按钮的js即可，因此我们将按钮名称修改成“打印”，并将js修改成如下代码：</p>
<pre>
var $span = $(".x-checkbox-checkon");  //获取选中的复选框
var darray = [];
var $tds = $("td").has($span); //获得选中复选框的单元格
for (var i = 0, len = $tds.length; i < len; i ++) {    //遍历选中的单元格
   var id = $($tds[i]).attr("id");  //给选中的单元格增加id属性
var idn = id.replace("A","B"); //将复选框所在的A列换成客户编号所在的B列
var vv=document.getElementById(idn).innerHTML;    //获取选中单元格所在B列的数据
  darray.push(vv);
}
FR.doURLPDFPrint("${sevletURL}ReportServer?reportlet=/doc/Form/FormFAQ
/PrintCol.cpt&#038;productID="+darray);  //调用打印方法，URL为之前做好的模板路径</pre>
<p><b>注：若获取的vv值为字符串，要将其放入数组中则需要修改成darray.push("'"+vv+"'")</b><br />
<b>2.3 保存模板</b><br />
保存模板，具体的设置可参考模板：<br />
<b>%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\FormFAQ\PrintOtherStyle.cpt</b><br />
<b>3. 效果查看</b><br />
填报预览PrintOtherStyle.cpt，选中几行数据后，点击打印按钮，就会按照上图的效果进行打印。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/write/grid-print.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FineReport报表填报主键空值问题</title>
		<link>http://www.finereport.com/knowledge/write/write-null.html</link>
		<comments>http://www.finereport.com/knowledge/write/write-null.html#comments</comments>
		<pubDate>Mon, 25 Jul 2011 03:22:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表填报专题]]></category>
		<category><![CDATA[java报表教程]]></category>
		<category><![CDATA[web报表软件]]></category>
		<category><![CDATA[报表填报]]></category>
		<category><![CDATA[报表教程]]></category>

		<guid isPermaLink="false">http://www.finereport.com/knowledge/write/%e6%8a%a5%e8%a1%a8%e5%a1%ab%e6%8a%a5%e4%b8%bb%e9%94%ae%e7%a9%ba%e5%80%bc%e9%97%ae%e9%a2%98.html</guid>
		<description><![CDATA[1. 问题描述 在使用Web报表软件FineReport制作填报模板时可能会遇到以下问题：数据库中的A字段为主键，在定义报表填报属性时设置别的字段为主键，数据库中有一条记录是某个报表主键对应的字段值为空，当对这条记录进行更新时，却进行了插入提交。 注：在Java报表软件FineReport中，报表填报属性设置主键，即判断单元格中的值与数据库中是否相同，若有相同的则进行更新，若没有则进行插入。 2. 原因 当有空值时，那么在执行update语句时则where条件后面是“某字段=null”，而在填报属性中若where 某字段=null时，update语句会失效然后便会转向insert语句，这样就造成了插入重复数据的现象。 3. 解决方案 首先要知道可能为空的报表主键对应数据库中的数据类型，然后在报表填报属性设置里面给对应的字段的值设置公式：以字符串为例，字符串对应的空值就是空字符串”"，则公式为if(单元格=null,”",单元格)。 下面以一个实例看一下问题。 3.1 实例 新建工作簿，将A1,B1,C1,D1单元格的控件类型定义成文本型。 以Employee表为例，此表中的EmpID为主键，然后在报表填报属性处设置EmpName和Sex为主键，最后的填报属性界面如下： 填报预览，在A1,B1,D1分别输入1，Jack，团员，C1不输入值，点击提交，提示提交成功。然后同样再在这几个单元格中分别插入A1,B1,D1中分别输入2，Jack，党员，C1同样不输入值，本来应该只剩一条后输入的记录的，但是两条都存在，如下图所示： 将有可能为空的字段即Sex字段对应的值改成if(C1=null,”",C1)，然后将数据库中的这两个值删除掉，将这两条记录重新插入，数据库中只剩一条记录了即对第一条数据进行了更新操作，如下图所示：]]></description>
			<content:encoded><![CDATA[<p>1. 问题描述<br />
在使用<a href="http://www.finereport.com" title="web报表软件">Web报表软件</a>FineReport制作填报模板时可能会遇到以下问题：数据库中的A字段为主键，在定义报表填报属性时设置别的字段为主键，数据库中有一条记录是某个报表主键对应的字段值为空，当对这条记录进行更新时，却进行了插入提交。<br />
注：在<a href="http://www.finereport.com/products/advantages" title="java报表软件">Java报表软件</a>FineReport中，报表填报属性设置主键，即判断单元格中的值与数据库中是否相同，若有相同的则进行更新，若没有则进行插入<span id="more-2158"></span>。<br />
2. 原因<br />
当有空值时，那么在执行update语句时则where条件后面是“某字段=null”，而在填报属性中若<b>where 某字段=null</b>时，update语句会失效然后便会转向insert语句，这样就造成了插入重复数据的现象。<br />
3. 解决方案<br />
首先要知道可能为空的报表主键对应数据库中的数据类型，然后在<a href="http://www.finereport.com/knowledge/write" title="报表填报">报表填报</a>属性设置里面给对应的字段的值设置公式：以字符串为例，字符串对应的空值就是空字符串”"，则公式为<b>if(单元格=null,”",单元格)</b>。<br />
下面以一个实例看一下问题。<br />
3.1 实例<br />
新建工作簿，将A1,B1,C1,D1单元格的控件类型定义成文本型。<br />
以Employee表为例，此表中的EmpID为主键，然后在报表填报属性处设置EmpName和Sex为主键，最后的填报属性界面如下：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/write-null1.png" title="报表填报属性界面"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/write-null1.png" alt="报表填报属性界面" class="centered"></a><br />
填报预览，在A1,B1,D1分别输入1，Jack，团员，C1不输入值，点击提交，提示提交成功。然后同样再在这几个单元格中分别插入A1,B1,D1中分别输入2，Jack，党员，C1同样不输入值，本来应该只剩一条后输入的记录的，但是两条都存在，如下图所示：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/write-null2.png" title="报表填报预览1"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/write-null2.png" alt="报表填报预览1" class="centered"></a><br />
将有可能为空的字段即Sex字段对应的值改成<b>if(C1=null,”",C1)</b>，然后将数据库中的这两个值删除掉，将这两条记录重新插入，数据库中只剩一条记录了即对第一条数据进行了更新操作，如下图所示：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/write-null3.png" title="报表填报预览2"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/write-null3.png" alt="报表填报预览2" class="centered"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/write/write-null.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FineReport报表软件多个内置SQL的执行顺序</title>
		<link>http://www.finereport.com/knowledge/write/built-in.html</link>
		<comments>http://www.finereport.com/knowledge/write/built-in.html#comments</comments>
		<pubDate>Mon, 11 Jul 2011 08:35:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表填报专题]]></category>
		<category><![CDATA[java报表教程]]></category>
		<category><![CDATA[web报表软件]]></category>
		<category><![CDATA[报表填报]]></category>
		<category><![CDATA[报表教程]]></category>

		<guid isPermaLink="false">http://www.finereport.com/success/cases/finereport%e6%8a%a5%e8%a1%a8%e8%bd%af%e4%bb%b6%e5%a4%9a%e4%b8%aa%e5%86%85%e7%bd%aesql%e7%9a%84%e6%89%a7%e8%a1%8c%e9%a1%ba%e5%ba%8f.html</guid>
		<description><![CDATA[如果报表模板既有查询模块又有填报模块，并且希望在填报的时候，如果查询出来数据就删除掉然后再进行保存或者希望点击提交的时候有多个入库操作的话，就可以使用多个内置SQL，即在报表填报属性界面插入多个内置SQL，并且您设置的这些执行语句是按照您定义的顺序依次执行的。 下面我们看一下web报表软件FineReport的实例说明。 1. 报表模板设计 新建报表工作簿，添加数据集ds1，SQL语句：SELECT * FROM  运输方式 报表表样设计如下： 2. 报表参数设计 在报表&#124;报表参数中增加一个参数，参数名$p1。 点击参数设计面板，使用默认参数界面。 按照如上步骤设置好后返回报表设计界面，在A1单元格中填上=$p1，然后给A1单元格设置条件属性，设置行高为0。 3. 填报属性设置 选择报表&#124;报表填报属性，添加内置SQL1，提交类型选择删除提交，选择数据库FRDemo中的运输方式表，添加ID字段，并设置其为主键，值中填写B2。 再添加一内置SQL2，还是选择表运输方式，但是选择智能提交，添加ID和运输方式字段，设置ID为主键，值中分别填写B2，C2。 4. 填报预览 在查询的条件中填入‘2’，点击查询出现如图所示效果： 点击增加记录 点击提交，弹出成功对话框后，查询数据，可以看出原来的ID为2的已经删除，并增加了一条新的记录： 通过如上的操作可以看出，填报时如果有多个内置sql，会按照内置sql的顺序执行。]]></description>
			<content:encoded><![CDATA[<p>如果报表模板既有查询模块又有填报模块，并且希望在填报的时候，如果查询出来数据就删除掉然后再进行保存或者希望点击提交的时候有多个入库操作的话，就可以使用多个内置SQL，即在报表填报属性界面插入多个内置SQL，并且您设置的这些执行语句是按照您定义的顺序依次执行的。<br />
下面我们看一下<a href="http://www.finereport.com" title="web报表软件">web报表软件</a>FineReport的实例说明<span id="more-2156"></span>。<br />
<b>1. 报表模板设计</b><br />
新建报表工作簿，添加数据集ds1，SQL语句：<b>SELECT * FROM  运输方式</b><br />
报表表样设计如下：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/built-in1.png" title="报表表样设计"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/built-in1.png" alt="报表表样设计" class="centered"></a><br />
<b>2. 报表参数设计</b><br />
在<b>报表|报表参数</b>中增加一个参数，参数名$p1。<br />
点击参数设计面板，使用默认参数界面。<br />
按照如上步骤设置好后返回<a href="http://www.finereport.com/knowledge/design" title="报表设计">报表设计</a>界面，在A1单元格中填上=$p1，然后给A1单元格设置条件属性，设置行高为0。<br />
<b>3. 填报属性设置</b><br />
选择<b>报表|报表填报属性</b>，添加内置SQL1，提交类型选择删除提交，选择数据库FRDemo中的运输方式表，添加ID字段，并设置其为主键，值中填写B2。<br />
再添加一内置SQL2，还是选择表运输方式，但是选择智能提交，添加ID和运输方式字段，设置ID为主键，值中分别填写B2，C2。<br />
<b>4. 填报预览</b><br />
在查询的条件中填入‘2’，点击查询出现如图所示效果：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/built-in2.png" title="报表填报预览1"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/built-in2.png" alt="报表填报预览1" class="centered"></a><br />
点击增加记录<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/built-in3.png" title="报表填报预览2"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/built-in3.png" alt="报表填报预览2" class="centered"></a><br />
点击提交，弹出成功对话框后，查询数据，可以看出原来的ID为2的已经删除，并增加了一条新的记录：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/built-in4.png" title="报表数据查看"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/built-in4.png" alt="报表数据查看" class="centered"></a><br />
通过如上的操作可以看出，填报时如果有多个内置sql，会按照内置sql的顺序执行。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/write/built-in.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FineReport报表工具之填报显示值实际值问题</title>
		<link>http://www.finereport.com/knowledge/write/actual-show.html</link>
		<comments>http://www.finereport.com/knowledge/write/actual-show.html#comments</comments>
		<pubDate>Tue, 03 May 2011 07:06:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表填报专题]]></category>
		<category><![CDATA[报表填报]]></category>
		<category><![CDATA[报表工具]]></category>
		<category><![CDATA[报表教程]]></category>

		<guid isPermaLink="false">http://www.finereport.com/knowledge/write/%e6%8a%a5%e8%a1%a8%e5%a1%ab%e6%8a%a5%e6%98%be%e7%a4%ba%e5%80%bc%e5%ae%9e%e9%99%85%e5%80%bc%e9%97%ae%e9%a2%98.html</guid>
		<description><![CDATA[在FineReport报表工具实际值显示值问题的处理上，处理方式是在填报预览中用户在该位置输入的内容显示为显示值， 当用户点击选中另外一个控件时，刚才的显示值会变为实际值。这么做的用意在于用户可以看见需要保存或者修改的实际内容。可是在一些情况下用户并不想让实际值被别人看到，或者用户需要看见就是显示值的时候。 如下拉框，当不设置单元格的实际值与显示值之前，选择Double后，当鼠标离开后显示的又是实际值了，如下图： 如何才能让当鼠标离开后下拉框中的值还是显示值呢？ 1. 解决方案 给对应的填报单元格设置形态，设置其显示值和实际值，下面以下拉框为例说明问题 2. 实现步骤 2.1 报表模板设置 新建报表工作簿，添加数据集ds1，SQL语句为： SELECT * FROM CUSTOMER。设计一个如下图的报表模板： 设置报表单元格B1的控件类型为下拉框，采用动态SQL方式，SQL语句为： SELECT * FROM CUSTOMER，实际值的序列号为1，显示值的序列号位2，如下图 右击该报表单元格，选择形态&#124;数据字典，在数据字典中选择数据集ds1，实际值的序列号为1，显示值的序列号位2，如下图 2.2 填报预览 在第一栏选择Double，显示如图： 将光标移到其他栏后，第一栏显示的还是显示值，如下图： 注：密码框的问题，也可以通过给密码框所在的单元格设置公式形态来解决当密码框失去焦点后值显示的问题。]]></description>
			<content:encoded><![CDATA[<p>在FineReport<a href="http://www.finereport.com/knowledge" title="报表工具">报表工具</a>实际值显示值问题的处理上，处理方式是在<a href="http://www.finereport.com/knowledge/write" title="报表填报">填报</a>预览中用户在该位置输入的内容显示为显示值， 当用户点击选中另外一个控件时，刚才的显示值会变为实际值。这么做的用意在于用户可以看见需要保存或者修改的实际内容。可是在一些情况下用户并不想让实际值被别人看到，或者用户需要看见就是显示值的时候<span id="more-2145"></span>。<br />
如下拉框，当不设置单元格的实际值与显示值之前，选择Double后，当鼠标离开后显示的又是实际值了，如下图：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/actual-show1.png" title="报表填报实际值预览"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/actual-show1.png" alt="报表填报实际值预览" class="centered"></a><br />
如何才能让当鼠标离开后下拉框中的值还是显示值呢？<br />
1. 解决方案<br />
给对应的填报单元格设置形态，设置其显示值和实际值，下面以下拉框为例说明问题<br />
2. 实现步骤<br />
2.1 报表模板设置<br />
新建报表工作簿，添加数据集ds1，SQL语句为：<br />
<b>SELECT * FROM CUSTOMER</b>。设计一个如下图的报表模板：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/actual-show2.png" title="报表模板设计"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/actual-show2.png" alt="报表模板设计" class="centered"></a><br />
设置报表单元格B1的控件类型为下拉框，采用动态SQL方式，SQL语句为：<br />
<b>SELECT * FROM CUSTOMER</b>，实际值的序列号为1，显示值的序列号位2，如下图<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/actual-show3.png" title="报表控件设置"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/actual-show3.png" alt="报表控件设置" class="centered"></a><br />
右击该报表单元格，选择<b>形态|数据字典</b>，在数据字典中选择数据集ds1，实际值的序列号为1，显示值的序列号位2，如下图<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/actual-show4.png" title="报表数据字典设置"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/actual-show4.png" alt="报表数据字典设置" class="centered"></a><br />
2.2 填报预览<br />
在第一栏选择Double，显示如图：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/actual-show5.png" title="报表填报预览1"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/actual-show5.png" alt="报表填报预览2" class="centered"></a><br />
将光标移到其他栏后，第一栏显示的还是显示值，如下图：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/actual-show6.png" title="报表填报预览2"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/actual-show6.png" alt="报表填报预览2" class="centered"></a><br />
注：密码框的问题，也可以通过给密码框所在的单元格设置公式形态来解决当密码框失去焦点后值显示的问题。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/write/actual-show.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用FineReport报表工具实现字段拼接回填数据库</title>
		<link>http://www.finereport.com/knowledge/write/joint.html</link>
		<comments>http://www.finereport.com/knowledge/write/joint.html#comments</comments>
		<pubDate>Mon, 27 Dec 2010 08:37:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表填报专题]]></category>
		<category><![CDATA[报表填报]]></category>
		<category><![CDATA[报表工具]]></category>
		<category><![CDATA[报表教程]]></category>

		<guid isPermaLink="false">http://www.finereport.com/knowledge/write/%e7%94%a8finereport%e6%8a%a5%e8%a1%a8%e5%b7%a5%e5%85%b7%e5%ae%9e%e7%8e%b0%e5%ad%97%e6%ae%b5%e6%8b%bc%e6%8e%a5%e5%9b%9e%e5%a1%ab%e6%95%b0%e6%8d%ae%e5%ba%93.html</guid>
		<description><![CDATA[数据表中需要新建一个字段district，该字段内容需要由另两个字段country和city加上汉字拼接而成，手动添加数据非常麻烦，这时候用FineReport报表工具的填报功能可以简单且快捷地实现字段拼接并回填至数据库，实现该字段内容的更新。 下面看一下Java报表工具FineReport实现这一效果的具体步骤。 1. 绑定数据列 在报表表样中，A3单元格绑定country字段，B3单元格绑定city字段 C3单元格时对应district字段的，district字段由country字段和city字段拼接而成，因而在C3单元格中写入公式：=”国家：”+A3+”城市：”+B3 2. 设置填报属性 设置报表填报属性，使得每个单元格的值能够回填至对应的数据表字段中，如下图 3. 设置控件属性 设置报表控件属性，方便修改单元格的值，并进而实现各字段的更新，这里将3个单元格都设置为文本控件，如下图 4. 填报预览 点击报表设计器上的“填报预览”按钮，可以在浏览器中预览到C3单元格的值已经自动拼接了，如下图 点击“提交”按钮，弹出提交成功对话框，表示更新的字段已经回填至数据库中 5. 检查数据表中district字段 查看数据表，发现原先为空的district字段已经更新]]></description>
			<content:encoded><![CDATA[<p>数据表中需要新建一个字段district，该字段内容需要由另两个字段country和city加上汉字拼接而成，手动添加数据非常麻烦，这时候用FineReport<a href="http://www.finereport.com/knowledge" title="报表工具">报表工具</a>的填报功能可以简单且快捷地实现字段拼接并回填至数据库，实现该字段内容的更新。<br />
下面看一下<a href="http://www.finereport.com/javareport" title="java报表工具">Java报表工具</a>FineReport实现这一效果的具体步骤<span id="more-2130"></span>。<br />
<b>1. 绑定数据列</b><br />
在<a href="http://www.finereport.com" title="报表">报表</a>表样中，A3单元格绑定country字段，B3单元格绑定city字段<br />
C3单元格时对应district字段的，district字段由country字段和city字段拼接而成，因而在C3单元格中写入公式：<b>=”国家：”+A3+”城市：”+B3</b><br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/joint-frame.png"><img class="centered" title="Java报表工具FineReport表样设计" src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/joint-frame.png" alt="Java报表工具FineReport表样设计" /></a><br />
<b>2. 设置填报属性</b><br />
设置<a href="http://www.finereport.com/knowledge/write" title="报表填报">报表填报</a>属性，使得每个单元格的值能够回填至对应的数据表字段中，如下图<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/joint-write.jpg"><img class="centered" title="Java报表工具FineReport填报属性设置" src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/joint-write.jpg" alt="Java报表工具FineReport填报属性设置" /></a><br />
<b>3. 设置控件属性</b><br />
设置报表控件属性，方便修改单元格的值，并进而实现各字段的更新，这里将3个单元格都设置为文本控件，如下图<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/joint-input.jpg"><img class="centered" title="Java报表工具FineReport控件设置" src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/joint-input.jpg" alt="Java报表工具FineReport控件设置" /></a><br />
<b>4. 填报预览</b><br />
点击<a href="http://www.finereport.com/knowledge/design" title="报表设计">报表设计</a>器上的“填报预览”按钮，可以在浏览器中预览到C3单元格的值已经自动拼接了，如下图<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/joint-preview.png"><img class="centered" title="Java报表工具FineReport填报预览" src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/joint-preview.png" alt="Java报表工具FineReport填报预览" /></a><br />
点击“提交”按钮，弹出提交成功对话框，表示更新的字段已经回填至数据库中<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/joint-success.png"><img class="centered" title="Java报表工具FineReport提交成功" src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/joint-success.png" alt="Java报表工具FineReport提交成功" /></a><br />
<b>5. 检查数据表中district字段</b><br />
查看数据表，发现原先为空的district字段已经更新<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/joint-table.jpg"><img class="centered" title="Java报表工具FineReport数据表" src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/joint-table.jpg" alt="Java报表工具FineReport数据表" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/write/joint.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用FineReport报表工具制作主子填报表</title>
		<link>http://www.finereport.com/knowledge/write/super-sub.html</link>
		<comments>http://www.finereport.com/knowledge/write/super-sub.html#comments</comments>
		<pubDate>Tue, 06 Jul 2010 08:11:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表填报专题]]></category>
		<category><![CDATA[报表填报]]></category>
		<category><![CDATA[报表教程]]></category>

		<guid isPermaLink="false">http://www.finereport.com/CN/wordpress/knowledge/write/%e7%94%a8finereport%e6%8a%a5%e8%a1%a8%e5%b7%a5%e5%85%b7%e5%88%b6%e4%bd%9c%e4%b8%bb%e5%ad%90%e5%a1%ab%e6%8a%a5%e8%a1%a8.html</guid>
		<description><![CDATA[上图所示为一张主子填报表，分上下两部分，上半部分为订单的主表，下半部分为订单明细，这两部分数据分别来自不同的物理表,用户修改数据后，同时保存到两张物理表中，并保持数据库事务一致性。 下面我们就来看一下用FineReport报表工具实现上述报表的过程。 1.连接数据库frDemo 2.设计报表 2.1新建报表 2.2表样设计 按照下图设计好报表的基本框架。 2.3新建一数据集 新建数据集ds1： SQL语句：select * from 订单明细 新建数据库ds2： SQL语句：select * from 订单where 订单ID=10248 2.4绑定数据列 按照下列表格将数据集的字段拖入对应报表单元格内，并作相应的设置。 单元格 内容 基本属性设置 B3 ds2.订单ID 从上到下扩展，其余默认 D3 ds2.发货日期 从上到下扩展，其余默认 F3 ds2.到货日期 从上到下扩展，其余默认 B4 ds2.客户ID 从上到下扩展，其余默认 F4 ds2.货主名称 从上到下扩展，其余默认 B5 ds2.运货商 从上到下扩展，其余默认 D5 ds2.运货费 从上到下扩展，其余默认 F5 ds2.货主城市 从上到下扩展，其余默认 A8 =&#38;B8 &#160; B8 ds1.产品ID 从上到下扩展，其余默认 C8 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/super-sub1.jpg"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/super-sub1.jpg" alt="主子填报表" width="442" height="199" /></a></p>
<p>上图所示为一张主子填报表，分上下两部分，上半部分为订单的主表，下半部分为订单明细，这两部分数据分别来自不同的物理表,用户修改数据后，同时保存到两张物理表中，并保持数据库事务一致性。</p>
<p><strong>下面我们就来看一下用FineReport<a href="http://www.finereport.com/knowledge" title="报表工具">报表工具</a>实现上述报表的过程</strong>。</p>
<p><span id="more-2009"></span></p>
<p><strong>1.连接数据库</strong><strong><em>frDemo</em></strong></p>
<p><strong>2.设计报表</strong></p>
<p>2.1新建报表</p>
<p>2.2表样设计<br />
按照下图设计好报表的基本框架。</p>
<p><a href="http://reportblog.cn/archives/425/frame14"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/super-sub2.jpg" alt="报表表样设计" width="470" height="218" /></a></p>
<p>2.3新建一数据集</p>
<p>新建数据集ds1：<br />
<strong>SQL语句：</strong><strong><em>select * from </em></strong>订单明细</p>
<p>新建数据库ds2：<br />
<strong>SQL语句：</strong><strong><em>select * from </em></strong>订单<strong><em>where</em></strong> 订单ID=10248</p>
<p>2.4绑定数据列</p>
<p><a href="http://reportblog.cn/archives/425/datacolum10"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/super-sub3.jpg" alt="绑定数据列" width="467" height="217" /></a></p>
<p>按照下列表格将数据集的字段拖入对应报表单元格内，并作相应的设置。</p>
<table class="centered" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="64" valign="top">单元格</td>
<td width="132" valign="top">内容</td>
<td width="243" valign="top">基本属性设置</td>
</tr>
<tr>
<td width="64" valign="top">B3</td>
<td width="132" valign="top">ds2.订单ID</td>
<td width="243" valign="top"><strong>从上到下</strong>扩展，其余默认</td>
</tr>
<tr>
<td width="64" valign="top">D3</td>
<td width="132" valign="top">ds2.发货日期</td>
<td width="243" valign="top"><strong>从上到下</strong>扩展，其余默认</td>
</tr>
<tr>
<td width="64" valign="top">F3</td>
<td width="132" valign="top">ds2.到货日期</td>
<td width="243" valign="top"><strong>从上到下</strong>扩展，其余默认</td>
</tr>
<tr>
<td width="64" valign="top">B4</td>
<td width="132" valign="top">ds2.客户ID</td>
<td width="243" valign="top"><strong>从上到下</strong>扩展，其余默认</td>
</tr>
<tr>
<td width="64" valign="top">F4</td>
<td width="132" valign="top">ds2.货主名称</td>
<td width="243" valign="top"><strong>从上到下</strong>扩展，其余默认</td>
</tr>
<tr>
<td width="64" valign="top">B5</td>
<td width="132" valign="top">ds2.运货商</td>
<td width="243" valign="top"><strong>从上到下</strong>扩展，其余默认</td>
</tr>
<tr>
<td width="64" valign="top">D5</td>
<td width="132" valign="top">ds2.运货费</td>
<td width="243" valign="top"><strong>从上到下</strong>扩展，其余默认<strong></strong></td>
</tr>
<tr>
<td width="64" valign="top">F5</td>
<td width="132" valign="top">ds2.货主城市</td>
<td width="243" valign="top"><strong>从上到下</strong>扩展，其余默认<strong></strong></td>
</tr>
<tr>
<td width="64" valign="top">A8</td>
<td width="132" valign="top">=&amp;B8</td>
<td width="243" valign="top">&nbsp;</td>
</tr>
<tr>
<td width="64" valign="top">B8</td>
<td width="132" valign="top">ds1.产品ID</td>
<td width="243" valign="top"><strong>从上到下</strong>扩展，其余默认<strong></strong></td>
</tr>
<tr>
<td width="64" valign="top">C8</td>
<td width="132" valign="top">ds1.单价</td>
<td width="243" valign="top"><strong>从上到下</strong>扩展，其余默认<strong></strong></td>
</tr>
<tr>
<td width="64" valign="top">D8</td>
<td width="132" valign="top">ds1.折扣</td>
<td width="243" valign="top"><strong>从上到下</strong>扩展，其余默认<strong></strong></td>
</tr>
<tr>
<td width="64" valign="top">E8</td>
<td width="132" valign="top">ds1.数量</td>
<td width="243" valign="top"><strong>从上到下</strong>扩展，其余默认<strong></strong></td>
</tr>
<tr>
<td width="64" valign="top">F8</td>
<td width="132" valign="top">=C8*E8</td>
<td width="243" valign="top">&nbsp;</td>
</tr>
</tbody>
</table>
<p>2.5单元格设置过滤<br />
双击B8，进入单元格数据列对话框，点击过滤，设置过滤条件为：<strong>订单ID等于B3</strong>。</p>
<p><a href="http://reportblog.cn/archives/425/order-filter"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/super-sub4.jpg" alt="单元格过滤" width="554" height="396" /></a></p>
<p>2.6单元格的表单属性设置<br />
对B3,D3,F3,B4,F4,B5,D5,F5,A8,B8,C8,D8,E8,F8单元格设置表单属性，其中D3,F3为日期型，C8,D8,E8均为数字型，并且允许小数，其余均为文本类型。设置完后如图：</p>
<p><a href="http://reportblog.cn/archives/425/menu-set"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/super-sub5.jpg" alt="表单属性设置" width="438" height="177" /></a></p>
<p>2.7设置报表填报属性<br />
打开<strong>报表|报表填报属性</strong>对话框，如图所示：</p>
<p><a href="http://reportblog.cn/archives/425/write-set"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/super-sub6.jpg" alt="填报属性设置" width="557" height="427" /></a></p>
<p>点击左上角的添加按钮，添加一个新的<strong>内置SQL</strong>。</p>
<p>数据库选择<strong>frDemo</strong>，模式为空，表选择<strong>订单</strong>，如图所示：</p>
<p><a href="http://reportblog.cn/archives/425/add-sql-2"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/super-sub7.jpg" alt="添加内置sql" width="555" height="428" /></a></p>
<p>点击<strong>智能添加字段</strong>，出现下图所示的对话框，用来将模板中的所要填入的字段和数据表中的字段对应，您可以自由选择所需对应的字段。</p>
<p><a href="http://reportblog.cn/archives/425/add-filed-2"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/super-sub8.jpg" alt="智能添加字段" width="551" height="430" /></a></p>
<p>添加完后，单击<strong>智能添加单元格</strong>，填入对应的单元格。可以选<strong>单元格不改变时不参与更新</strong>，这样可以加快填报后数据更新速度。添加完后点击<strong>确定</strong>，显示如下图，可以看到在预览中已经自动生成了相对应的更新数据库的SQL语句。</p>
<p><a href="http://reportblog.cn/archives/425/add-cell"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/super-sub9.jpg" alt="智能添加单元格" width="516" height="446" /></a></p>
<p>再添加一个内置SQL2，数据库选择frDemo，模式为空，表选择订单明细。以同样的方式智能添加字段à智能添加单元格，设置好后如图</p>
<p><a href="http://reportblog.cn/archives/425/add-sql2"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/super-sub10.jpg" alt="智能添加sql2" width="520" height="446" /></a></p>
<p><strong>3.保存预览</strong></p>
<p>保存为：<br />
<em>%FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/form/9.2.cpt</em></p>
<p>启动报表服务器，点击设计器右上角的填报预览，就可以进行预览填报了。或者在浏览器里直接数据地址：<br />
<em>http://localhost:8075/WebReport/ReportServer?reportlet=com/doc/form/9.2.cpt&amp;op=write</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/write/super-sub.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FineReport报表填报的日期自动计算</title>
		<link>http://www.finereport.com/knowledge/write/autodate.html</link>
		<comments>http://www.finereport.com/knowledge/write/autodate.html#comments</comments>
		<pubDate>Tue, 06 Jul 2010 08:08:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表填报专题]]></category>
		<category><![CDATA[报表填报]]></category>
		<category><![CDATA[报表教程]]></category>

		<guid isPermaLink="false">http://www.finereport.com/CN/wordpress/knowledge/write/finereport%e6%8a%a5%e8%a1%a8%e5%a1%ab%e6%8a%a5%e7%9a%84%e6%97%a5%e6%9c%9f%e8%87%aa%e5%8a%a8%e8%ae%a1%e7%ae%97.html</guid>
		<description><![CDATA[如上图所示的报表中，多了一个年龄字段，而在数据库中没有这个字段，这就得通过日期的计算获得。 下面我们就来看一下用Java报表工具FineReport实现上述报表的过程。 1.设计报表 1.1表样设计 按照下图设计好报表的基本框架。 1.2日期自动计算 在E6单元格中填入=year(now())-year(E5)+1 ，year(now())-year(E5)+1指的是用当前年份减去出生年份再加一即为年龄。 3.保存预览 保存为： %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/form/5.3.cpt 启动报表服务器，点击报表设计器右上角的填报预览，就可以进行预览填报了。或者在浏览器里直接数据地址： http://localhost:8075/WebReport/ReportServer?reportlet=com/doc/form/5.3.cpt&#38;op=write]]></description>
			<content:encoded><![CDATA[<p><a href="http://reportblog.cn/archives/418/auto-date"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/autodate1.jpg" alt="日期自动计算" width="382" height="153" /></a></p>
<p>如上图所示的报表中，多了一个年龄字段，而在数据库中没有这个字段，这就得通过日期的计算获得。</p>
<p><strong>下面我们就来看一下用<a href="http://www.finereport.com/javareport" title="java报表工具">Java报表工具</a>FineReport实现上述报表的过程</strong>。</p>
<p><span id="more-2008"></span></p>
<p><strong>1.设计报表</strong></p>
<p>1.1表样设计<br />
按照下图设计好报表的基本框架。</p>
<p><a href="http://reportblog.cn/archives/418/frame13"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/autodate2.jpg" alt="报表表样设计" width="418" height="181" /></a></p>
<p>1.2日期自动计算<br />
在E6单元格中填入<strong>=year(now())-year(E5)+1</strong> ，<strong>year(now())-year(E5)+1</strong>指的是用当前年份减去出生年份再加一即为年龄。</p>
<p><strong>3.保存预览</strong></p>
<p>保存为：<br />
<em>%FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/form/5.3.cpt</em></p>
<p>启动报表服务器，点击报表设计器右上角的填报预览，就可以进行预览填报了。或者在浏览器里直接数据地址：<br />
<em>http://localhost:8075/WebReport/ReportServer?reportlet=com/doc/form/5.3.cpt&amp;op=write</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/write/autodate.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FineReport报表填报的数值自动计算</title>
		<link>http://www.finereport.com/knowledge/write/autocalcu.html</link>
		<comments>http://www.finereport.com/knowledge/write/autocalcu.html#comments</comments>
		<pubDate>Tue, 06 Jul 2010 08:03:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表填报专题]]></category>
		<category><![CDATA[报表填报]]></category>
		<category><![CDATA[报表教程]]></category>

		<guid isPermaLink="false">http://www.finereport.com/CN/wordpress/knowledge/write/finereport%e6%8a%a5%e8%a1%a8%e5%a1%ab%e6%8a%a5%e7%9a%84%e6%95%b0%e5%80%bc%e8%87%aa%e5%8a%a8%e8%ae%a1%e7%ae%97.html</guid>
		<description><![CDATA[自动计算，就是指报表填报的时候，用户录入了某些数据后，系统会自动算出另外一部分单元格的值，由此简化用户的输入，减少错误率。如图所示，当用户输入货物数量后，系统自动根据运货费和货物数量算出总运货费。 下面我们来看一下用FineReport报表工具实现上述报表的过程。 1.连接数据库frDemo 2.设计报表 2.1新建报表 2.2表样设计 按照下图设计好报表的基本框架。 2.3新建一数据集名为emp_sql SQL语句：select * from 订单 where 雇员ID=5 2.4绑定数据列 按照下列表格将数据集的字段拖入对应报表单元格内，并作相应的设置。 单元格 内容 基本属性设置 A2 emp_sql.订购日期 从上到下扩展，其余默认 B2 emp_sql.发货日期 从上到下扩展，其余默认 C2 emp_sql.运货商 从上到下扩展，其余默认 D2 emp_sql.运货费 从上到下扩展，其余默认 E2 emp_sql.货主地址 从上到下扩展，其余默认 2.5计算总运货费 在G2单元格中填入=E2*F2 。 2.6单元格的表单属性设置 点击D2，右击&#124;表单属性，出现如下对话框，勾选是否可写选项，类型选择数字，设置如图： 设置完后显示如图： 3.保存预览 保存为： %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/form/3.9.2.cpt 启动报表服务器，点击设计器右上角的填报预览，就可以进行预览填报了。或者在浏览器里直接数据地址： http://localhost:8075/WebReport/ReportServer?reportlet=com/doc/form/3.9.2.cpt&#38;op=write]]></description>
			<content:encoded><![CDATA[<p><a href="http://reportblog.cn/archives/407/auto-calcu"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/autocalcu1.jpg" alt="报表填报之自动计算" width="320" height="101" /></a></p>
<p>自动计算，就是指报表填报的时候，用户录入了某些数据后，系统会自动算出另外一部分单元格的值，由此简化用户的输入，减少错误率。如图所示，当用户输入货物数量后，系统自动根据运货费和货物数量算出总运货费。</p>
<p><strong>下面我们来看一下用FineReport<a href="http://www.finereport.com/knowledge" title="报表工具">报表工具</a>实现上述报表的过程。</strong></p>
<p><span id="more-2007"></span></p>
<p><strong>1.连接数据库</strong><strong><em>frDemo</em></strong></p>
<p><strong>2.设计报表</strong></p>
<p>2.1新建报表</p>
<p>2.2表样设计<br />
按照下图设计好报表的基本框架。</p>
<p><a href="http://reportblog.cn/archives/407/frame12"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/autocalcu2.jpg" alt="报表表样设计" width="552" height="63" /></a></p>
<p>2.3新建一数据集名为<strong>emp_sql</strong><br />
<strong>SQL语句：</strong><strong><em>select * from </em></strong>订单<strong><em> where </em></strong>雇员ID=5</p>
<p>2.4绑定数据列</p>
<p><a href="http://reportblog.cn/archives/407/datacolum9"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/autocalcu3.jpg" alt="绑定数据列" width="552" height="62" /></a></p>
<p>按照下列表格将数据集的字段拖入对应报表单元格内，并作相应的设置。</p>
<table class="centered"  border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="64" valign="top">单元格</td>
<td width="132" valign="top">内容</td>
<td width="207" valign="top">基本属性设置</td>
</tr>
<tr>
<td width="64" valign="top">A2</td>
<td width="132" valign="top">emp_sql.订购日期</td>
<td width="207" valign="top"><strong>从上到下</strong>扩展，其余默认</td>
</tr>
<tr>
<td width="64" valign="top">B2</td>
<td width="132" valign="top">emp_sql.发货日期</td>
<td width="207" valign="top"><strong>从上到下</strong>扩展，其余默认</td>
</tr>
<tr>
<td width="64" valign="top">C2</td>
<td width="132" valign="top">emp_sql.运货商</td>
<td width="207" valign="top"><strong>从上到下</strong>扩展，其余默认</td>
</tr>
<tr>
<td width="64" valign="top">D2</td>
<td width="132" valign="top">emp_sql.运货费</td>
<td width="207" valign="top"><strong>从上到下</strong>扩展，其余默认</td>
</tr>
<tr>
<td width="64" valign="top">E2</td>
<td width="132" valign="top">emp_sql.货主地址</td>
<td width="207" valign="top"><strong>从上到下</strong>扩展，其余默认<strong></strong></td>
</tr>
</tbody>
</table>
<p>2.5计算总运货费<br />
在G2单元格中填入<strong>=E2*F2</strong> 。</p>
<p>2.6单元格的表单属性设置<br />
点击D2，<strong>右击|表单属性</strong>，出现如下对话框，勾选<strong>是否可写选项</strong>，类型选择数字，设置如图：</p>
<p><a href="http://reportblog.cn/archives/407/writable"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/autocalcu4.jpg" alt="表单属性设置" width="556" height="373" /></a></p>
<p>设置完后显示如图：</p>
<p><a href="http://reportblog.cn/archives/407/writable-show"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/autocalcu5.jpg" alt="表单可写属性显示" width="552" height="62" /></a></p>
<p><strong>3.保存预览</strong></p>
<p>保存为：<br />
<em>%FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/form/3.9.2.cpt</em></p>
<p>启动报表服务器，点击设计器右上角的填报预览，就可以进行预览填报了。或者在浏览器里直接数据地址：<br />
<em>http://localhost:8075/WebReport/ReportServer?reportlet=com/doc/form/3.9.2.cpt&amp;op=write</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/write/autocalcu.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FineReport报表填报数据校验</title>
		<link>http://www.finereport.com/knowledge/write/datacheck.html</link>
		<comments>http://www.finereport.com/knowledge/write/datacheck.html#comments</comments>
		<pubDate>Tue, 06 Jul 2010 07:56:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表填报专题]]></category>
		<category><![CDATA[报表填报]]></category>
		<category><![CDATA[报表教程]]></category>

		<guid isPermaLink="false">http://www.finereport.com/CN/wordpress/knowledge/write/finereport%e6%8a%a5%e8%a1%a8%e5%a1%ab%e6%8a%a5%e6%95%b0%e6%8d%ae%e6%a0%a1%e9%aa%8c.html</guid>
		<description><![CDATA[如上图报表所示，当用户在F6中输入了不符合条件的数据，点击数据校验或者提交时就会弹出错误对话框，提示输入了非法的数据 下面我们来看一下在《用FineReport报表工具实现网格式填报表》的基础上实现上述报表的过程。 1.设计报表 1.1设置数据校验 点击报表&#124;填报属性&#124;数据校验打开数据校验对话框，如图： 点击插入，插入一条数据校验记录，输入如下数据： 2.保存预览 保存为： %FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/3.8.3.cpt 启动报表服务器，在浏览器中输入以下地址进行浏览： http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/3.8.3.cpt]]></description>
			<content:encoded><![CDATA[<p><a href="http://reportblog.cn/archives/396/datacheck"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/datacheck1.jpg" alt="数据校验" width="552" height="383" /></a></p>
<p>如上图报表所示，当用户在F6中输入了不符合条件的数据，点击<strong>数据校验</strong>或者<strong>提交</strong>时就会弹出错误对话框，提示输入了非法的数据</p>
<p><strong>下面我们来看一下在<a title="网格式填报表" href="http://www.finereport.com/knowledge/write/grid.html" target="_blank">《用FineReport报表工具实现网格式填报表》</a>的基础上实现上述报表的过程</strong>。</p>
<p><span id="more-2006"></span></p>
<p><strong>1.设计报表</strong></p>
<p>1.1设置数据校验<br />
点击<strong>报表|填报属性|数据校验</strong>打开数据校验对话框，如图：</p>
<p><a href="http://reportblog.cn/archives/396/open-check"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/datacheck2.jpg" alt="打开报表填报属性" width="555" height="430" /></a></p>
<p>点击<strong>插入</strong>，插入一条数据校验记录，输入如下数据：</p>
<p><a href="http://reportblog.cn/archives/396/insert-check"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/datacheck3.jpg" alt="设置报表填报属性" width="553" height="427" /></a></p>
<p><strong>2.保存预览</strong></p>
<p>保存为：<br />
<em>%FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/3.8.3.cpt</em></p>
<p>启动报表服务器，在浏览器中输入以下地址进行浏览：<br />
<em>http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/3.8.3.cpt</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/write/datacheck.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用FineReport实现网格式填报表</title>
		<link>http://www.finereport.com/knowledge/write/grid.html</link>
		<comments>http://www.finereport.com/knowledge/write/grid.html#comments</comments>
		<pubDate>Tue, 06 Jul 2010 07:53:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表填报专题]]></category>
		<category><![CDATA[报表填报]]></category>
		<category><![CDATA[报表教程]]></category>

		<guid isPermaLink="false">http://www.finereport.com/CN/wordpress/knowledge/write/%e7%94%a8finereport%e5%ae%9e%e7%8e%b0%e7%bd%91%e6%a0%bc%e5%bc%8f%e5%a1%ab%e6%8a%a5%e8%a1%a8.html</guid>
		<description><![CDATA[如上图报表所示，网格式填报表和普通的网格式报表类似，只是多了一个填写的功能。 下面我们就来看一下用FineReport报表工具实现上述报表的过程。 1.连接数据库frDemo 2.设计报表 2.1新建报表 2.2表样设计 按照下图设计好报表的基本框架。 2.3新建一数据集名为emp_sql SQL语句：select * from 订单 where 雇员ID=5 2.4绑定数据列 按照下列表格将数据集的字段拖入对应报表单元格内，并作相应的设置。 单元格 内容 基本属性设置 A2 ds1.订单ID 从上到下扩展，其余默认 B2 ds1.客户ID 从上到下扩展，其余默认 C2 ds1.订购日期 从上到下扩展，其余默认 D2 ds1.发货日期 从上到下扩展，其余默认 E2 ds1.运货商 从上到下扩展，其余默认 F2 ds1.运货费 从上到下扩展，其余默认 G2 ds1.货主地址 从上到下扩展，其余默认 2.5单元格的表单属性设置 点击A2，右击&#124;表单属性，出现如下对话框，勾选是否可写选项，类型默认为文本。 以同样的方式设置B2,C2,D2,E2,F2,G2的表单属性，其中C2和D2的类型选择日期，设置如图： F2的类型选择数字，设置如图： 设置完之后，每个单元格的右下角会出现一个蓝色的小圆圈，表示设置了表单属性，如图 2.6设置报表填报属性 打开报表&#124;报表填报属性对话框，如图所示： 点击左上角的添加按钮，添加一个新的内置SQL。数据库选择frDemo，模式为空，表选择订单，如图所示： 点击智能添加字段，出现下图所示的对话框，用来将模板中的所要填入的字段和数据表中的字段对应，您可以自由选择所需对应的字段。 可选列中包含数据表中所有的字段，值对应模板中的数据字段，这里需要建立数据表中的字段和模板字段的一一对应关系，选择右边的智能添加单元格按钮，可选列自动选择订单ID，值选择时你只需要点击相应的单元格A2，单元格值就会自动传入对话框界面，这里还可以把订单ID作为主键，然后依次当可选列选择客户ID，值选择对应B2，以此类推，如图： 主键：主键的作用在于回填数据库时按照将这个字段作为主键，主键字段的各个字段名是唯一的，修改后的内容如果是主键中的已有记录则会覆盖以前的内容，如是不同则增加这个记录。 可以选单元格不改变时不参与更新，这样可以加快填报后数据更新速度。 添加完后点击确定，显示如下图，可以看到在预览中已经自动生成了相对应的更新数据库的SQL语句。 3.保存预览 保存为： [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid1.jpg"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid1.jpg" alt="网格式填报表" width="558" height="324" /></a></p>
<p>如上图报表所示，网格式填报表和普通的网格式报表类似，只是多了一个填写的功能。</p>
<p><strong>下面我们就来看一下用FineReport<a href="http://www.finereport.com/knowledge" title="报表工具">报表工具</a>实现上述报表的过程</strong>。</p>
<p><span id="more-2005"></span></p>
<p><strong>1.连接数据库<em>frDemo</em></strong></p>
<p><strong>2.设计报表</strong></p>
<p>2.1新建报表</p>
<p>2.2表样设计<br />
按照下图设计好报表的基本框架。</p>
<p><a href="http://reportblog.cn/archives/379/frame11"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid2.jpg" alt="表样设计" width="559" height="77" /></a></p>
<p>2.3新建一数据集名为<strong>emp_sql</strong><br />
<strong>SQL语句：<em>select * from </em></strong>订单<strong><em> where </em></strong>雇员ID=5</p>
<p>2.4绑定数据列</p>
<p><a href="http://reportblog.cn/archives/379/datacolum8"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid3.jpg" alt="绑定数据列" width="557" height="76" /></a><br />
按照下列表格将数据集的字段拖入对应报表单元格内，并作相应的设置。</p>
<table class="centered"  border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="64" valign="top">单元格</td>
<td width="132" valign="top">内容</td>
<td width="255" valign="top">基本属性设置</td>
</tr>
<tr>
<td width="64" valign="top">A2</td>
<td width="132" valign="top">ds1.订单ID</td>
<td width="255" valign="top"><strong>从上到下</strong>扩展，其余默认</td>
</tr>
<tr>
<td width="64" valign="top">B2</td>
<td width="132" valign="top">ds1.客户ID</td>
<td width="255" valign="top"><strong>从上到下</strong>扩展，其余默认</td>
</tr>
<tr>
<td width="64" valign="top">C2</td>
<td width="132" valign="top">ds1.订购日期</td>
<td width="255" valign="top"><strong>从上到下</strong>扩展，其余默认</td>
</tr>
<tr>
<td width="64" valign="top">D2</td>
<td width="132" valign="top">ds1.发货日期</td>
<td width="255" valign="top"><strong>从上到下</strong>扩展，其余默认</td>
</tr>
<tr>
<td width="64" valign="top">E2</td>
<td width="132" valign="top">ds1.运货商</td>
<td width="255" valign="top"><strong>从上到下</strong>扩展，其余默认</td>
</tr>
<tr>
<td width="64" valign="top">F2</td>
<td width="132" valign="top">ds1.运货费</td>
<td width="255" valign="top"><strong>从上到下</strong>扩展，其余默认</td>
</tr>
<tr>
<td width="64" valign="top">G2</td>
<td width="132" valign="top">ds1.货主地址</td>
<td width="255" valign="top"><strong>从上到下</strong>扩展，其余默认<strong></strong></td>
</tr>
</tbody>
</table>
<p>2.5单元格的表单属性设置<br />
点击A2，<strong>右击|表单属性</strong>，出现如下对话框，勾选<strong>是否可写选项</strong>，类型默认为文本。</p>
<p><a href="http://reportblog.cn/archives/379/menu-editor"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid4.jpg" alt="表单编辑器属性" width="556" height="373" /></a><br />
以同样的方式设置B2,C2,D2,E2,F2,G2的表单属性，其中C2和D2的<strong>类型</strong>选择<strong>日期</strong>，设置如图：</p>
<p><a href="http://reportblog.cn/archives/379/menu-date"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid5.jpg" alt="日期属性" width="552" height="370" /></a><br />
F2的类型选择数字，设置如图：</p>
<p><a rel="attachment wp-att-385" href="http://www.finereport.com/?attachment_id=385"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid6.jpg" alt="数字属性" width="554" height="371" /></a><br />
设置完之后，每个单元格的右下角会出现一个蓝色的小圆圈，表示设置了表单属性，如图</p>
<p><a rel="attachment wp-att-386" href="http://www.finereport.com/?attachment_id=386"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid7.jpg" alt="表单属性" width="554" height="62" /></a></p>
<p>2.6设置报表填报属性<br />
打开<strong>报表|报表填报属性</strong>对话框，如图所示：</p>
<p><a href="http://reportblog.cn/archives/379/write-attri"><img title="填报属性" class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid8.jpg" alt="填报属性" width="555" height="427" /></a><br />
点击左上角的添加按钮，添加一个新的<strong>内置SQL</strong>。数据库选择<strong>frDemo</strong>，模式为空，表选择<strong>订单</strong>，如图所示：</p>
<p><a href="http://reportblog.cn/archives/379/build-in"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid9.jpg" alt="新增内置SQL" width="556" height="426" /></a><br />
点击<strong>智能添加字段</strong>，出现下图所示的对话框，用来将模板中的所要填入的字段和数据表中的字段对应，您可以自由选择所需对应的字段。</p>
<p><a href="http://reportblog.cn/archives/379/intelligence"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid10.jpg" alt="智能添加字段" width="554" height="426" /></a></p>
<p>可选列中包含数据表中所有的字段，值对应模板中的数据字段，这里需要建立数据表中的字段和模板字段的一一对应关系，选择右边的智能添加单元格按钮，可选列自动选择订单ID，值选择时你只需要点击相应的单元格A2，单元格值就会自动传入对话框界面，这里还可以把<strong>订单ID</strong>作为<strong>主键</strong>，然后依次当可选列选择<strong>客户ID</strong>，值选择对应<strong>B2</strong>，以此类推，如图：<br />
<a href="http://reportblog.cn/archives/379/intelli-add"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid11.jpg" alt="智能添加单元格" width="554" height="271" /></a></p>
<p><strong>主键</strong>：主键的作用在于回填数据库时按照将这个字段作为主键，主键字段的各个字段名是唯一的，修改后的内容如果是主键中的已有记录则会覆盖以前的内容，如是不同则增加这个记录。</p>
<p>可以选单元格不改变时不参与更新，这样可以加快填报后数据更新速度。</p>
<p>添加完后点击确定，显示如下图，可以看到在预览中已经自动生成了相对应的更新数据库的SQL语句。</p>
<p><a href="http://reportblog.cn/archives/379/sql-preview"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid12.jpg" alt="SQL更新" width="556" height="426" /></a></p>
<p><strong>3.保存预览</strong></p>
<p>保存为：<br />
<em>%FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/form/2.1.cpt</em></p>
<p>启动报表服务器，点击报表设计器右上角的填报预览，就可以进行预览填报了。</p>
<p><a href="http://reportblog.cn/archives/379/write-preview"><img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/grid13.jpg" alt="填报预览" width="555" height="180" /></a></p>
<p>或者在浏览器里直接数据地址：<br />
<em>http://localhost:8075/WebReport/ReportServer?reportlet=com/doc/form/2.1.cpt&amp;op=write</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/write/grid.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

