<?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, 01 Sep 2010 02:47:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<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[
上图所示为一张主子填报表，分上下两部分，上半部分为订单的主表，下半部分为订单明细，这两部分数据分别来自不同的物理表,用户修改数据后，同时保存到两张物理表中，并保持数据库事务一致性。
下面我们就来看一下实现上述报表的过程。

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
ds1.单价
从上到下扩展，其余默认


D8
ds1.折扣
从上到下扩展，其余默认


E8
ds1.数量
从上到下扩展，其余默认


F8
=C8*E8
&#160;



2.5单元格设置过滤
双击B8，进入单元格数据列对话框，点击过滤，设置过滤条件为：订单ID等于B3。

2.6单元格的表单属性设置
对B3,D3,F3,B4,F4,B5,D5,F5,A8,B8,C8,D8,E8,F8单元格设置表单属性，其中D3,F3为日期型，C8,D8,E8均为数字型，并且允许小数，其余均为文本类型。设置完后如图：

2.7设置报表填报属性
打开报表&#124;报表填报属性对话框，如图所示：

点击左上角的添加按钮，添加一个新的内置SQL。
数据库选择frDemo，模式为空，表选择订单，如图所示：

点击智能添加字段，出现下图所示的对话框，用来将模板中的所要填入的字段和数据表中的字段对应，您可以自由选择所需对应的字段。

添加完后，单击智能添加单元格，填入对应的单元格。可以选单元格不改变时不参与更新，这样可以加快填报后数据更新速度。添加完后点击确定，显示如下图，可以看到在预览中已经自动生成了相对应的更新数据库的SQL语句。

再添加一个内置SQL2，数据库选择frDemo，模式为空，表选择订单明细。以同样的方式智能添加字段à智能添加单元格，设置好后如图

3.保存预览
保存为：
%FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/form/9.2.cpt
启动服务器，点击设计器右上角的填报预览，就可以进行预览填报了。或者在浏览器里直接数据地址：
http://localhost:8075/WebReport/ReportServer?reportlet=com/doc/form/9.2.cpt&#38;op=write
]]></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>下面我们就来看一下实现上述报表的过程</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[
如图所示，多了一个年龄字段，而在数据库中没有这个字段，这就得通过日期的计算获得。
下面我们就来看一下实现上述报表的过程。

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>下面我们就来看一下实现上述报表的过程</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[
自动计算，就是指填报的时候，用户录入了某些数据后，系统会自动算出另外一部分单元格的值，由此简化用户的输入，减少错误率。如图所示，当用户输入货物数量后，系统自动根据运货费和货物数量算出总运货费。
下面我们来看一下实现上述报表的过程。

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>下面我们来看一下实现上述报表的过程。</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="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[
如图所示，网格式填报表和普通的网格式报表类似，只是多了一个填写的功能。
下面我们就来看一下实现上述报表的过程。

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.保存预览
保存为：
%FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/form/2.1.cpt
启动服务器，点击设计器右上角的填报预览，就可以进行预览填报了。

或者在浏览器里直接数据地址：
http://localhost:8075/WebReport/ReportServer?reportlet=com/doc/form/2.1.cpt&#38;op=write
]]></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>下面我们就来看一下实现上述报表的过程</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>
