<?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/acquire/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>Web报表软件FineReport的死循环问题处理</title>
		<link>http://www.finereport.com/knowledge/acquire/endless-loop.html</link>
		<comments>http://www.finereport.com/knowledge/acquire/endless-loop.html#comments</comments>
		<pubDate>Mon, 15 Aug 2011 06:53:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表心得杂谈]]></category>
		<category><![CDATA[web报表]]></category>
		<category><![CDATA[web报表工具]]></category>
		<category><![CDATA[web报表软件]]></category>
		<category><![CDATA[报表]]></category>

		<guid isPermaLink="false">http://www.finereport.com/knowledge/acquire/web%e6%8a%a5%e8%a1%a8%e8%bd%af%e4%bb%b6finereport%e7%9a%84%e6%ad%bb%e5%be%aa%e7%8e%af%e9%97%ae%e9%a2%98%e5%a4%84%e7%90%86.html</guid>
		<description><![CDATA[1. 问题描述 在Web报表软件FineReport中，有时预览一个报表模板或是做一个模板时，是否有时会出现报死循环类似的错误，那是什么原因出现这样的情况的呢？这个往往是由于设置的某个报表单元格的父格不当导致的。 2. 产生错误的原因 2.1 设置某个报表单元格的左、上父格导致出现死循环 报错情况： 报表设计器预览报表时，报如下错： 或分页预览时，报如下错误信息： 分析：看了如上错误信息后，我们来看下报表模板的设计界面： 图1： 图2： 会发现设计报表模板中，B4单元格的左父格，设置为D4了（图1），而C4与D4单元格，是不扩展的且这里是默认的，那就是C4与D4单元格的左父格均默认为B4（图2），即这里B4单元格的左父格，设置为D4且D4单元格的左父格均默认为B4，就矛盾，出现了逻辑错误。而把B4单元格的左父格，设置为默认后，即左父格为默认A4，这样就不会出现死循环的问题了。 解决方案：分析检查下报错信息中相关的报表单元格，看其左、上父格的设置是否存在矛盾的地方。 2.2 设置某些公式导致出现死循环 报错情况： 某些公式的设置，如：在某个单元格中输入=range(255)，在不设置扩展时，报表设计器预览，会报如下错： 接下来，我们看下这个报表模板的设计界面，如下： 分析：这里您设置的是一个单元格占用一行的，在显示255个数的时候，由于单元格默认是设置自动调整行高，所以此时单元格就会根据内容自动将单元格高度拉伸了。即实际是把一格的行高变为大于一页的高度了，所以就会报如上的错误。因此，要解决这个问题，我们可以使之一格占多行，让其分割开来显示，即：使之拆分为多行进行计算，这样就可以把一格的行高变为大于一页的高度，这样分页就不会再有问题了。 原因：我们进行分页计算时，是按行为单位的。这里255个数只用一格在一页中是显示不完的，超过了一页的高度。如一页，高度为400是放不下高度为500的行的，此时就会出问题。 注意：报表单元格的高度是不能超过页面的设置高度。 解决方案：合并几个报表单元格，使一格占多行，这样分页就不会有问题了。 2.3 其他原因 可能有时死循环错误信息，并不能真正看出其真实的错误原因，那么在检查过某些单元格的父格及公式设置正确后，若仍然出现如上问题，则可以找我们的技术支持，帮您具体看一下问题，看看其他方面可能出现的原因。W]]></description>
			<content:encoded><![CDATA[<p>1. 问题描述<br />
在<a href="http://www.finereport.com" title="web报表软件">Web报表软件</a>FineReport中，有时预览一个报表模板或是做一个模板时，是否有时会出现报死循环类似的错误，那是什么原因出现这样的情况的呢？这个往往是由于设置的某个报表单元格的父格不当导致的<span id="more-2161"></span>。<br />
2. 产生错误的原因<br />
2.1 设置某个报表单元格的左、上父格导致出现死循环<br />
报错情况：<br />
报表设计器预览报表时，报如下错：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/endless-loop1.png" title="报表设计器预览报错"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/endless-loop1.png" alt="报表设计器预览报错" class="centered"></a><br />
或分页预览时，报如下错误信息：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/endless-loop2.png" title="报表分页预览报错"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/endless-loop2.png" alt="报表分页预览报错" class="centered"></a><br />
分析：看了如上错误信息后，我们来看下报表模板的设计界面：<br />
图1：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/endless-loop3.png" title="报表模板设计界面1"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/endless-loop3.png" alt="报表模板设计界面1" class="centered"></a><br />
图2：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/endless-loop4.png" title="报表模板设计界面2"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/endless-loop4.png" alt="报表模板设计界面2" class="centered"></a><br />
会发现设计<a href="http://www.finereport.com/knowledge/design" title="报表模板设计">报表模板</a>中，B4单元格的左父格，设置为D4了（图1），而C4与D4单元格，是不扩展的且这里是默认的，那就是C4与D4单元格的左父格均默认为B4（图2），即这里B4单元格的左父格，设置为D4且D4单元格的左父格均默认为B4，就矛盾，出现了逻辑错误。而把B4单元格的左父格，设置为默认后，即左父格为默认A4，这样就不会出现死循环的问题了。<br />
解决方案：分析检查下报错信息中相关的报表单元格，看其左、上父格的设置是否存在矛盾的地方。<br />
2.2 设置某些公式导致出现死循环<br />
报错情况：<br />
某些公式的设置，如：在某个单元格中输入<b>=range(255)</b>，在不设置扩展时，报表设计器预览，会报如下错：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/endless-loop5.png" title="公式设置报错"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/endless-loop5.png" alt="公式设置报错" class="centered"></a><br />
接下来，我们看下这个报表模板的设计界面，如下：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/endless-loop6.png" title="报表模板设计界面3"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/endless-loop6.png" alt="报表模板设计界面3" class="centered"></a><br />
分析：这里您设置的是一个单元格占用一行的，在显示255个数的时候，由于单元格默认是设置自动调整行高，所以此时单元格就会根据内容自动将单元格高度拉伸了。即实际是把一格的行高变为大于一页的高度了，所以就会报如上的错误。因此，要解决这个问题，我们可以使之一格占多行，让其分割开来显示，即：使之拆分为多行进行计算，这样就可以把一格的行高变为大于一页的高度，这样分页就不会再有问题了。<br />
原因：我们进行分页计算时，是按行为单位的。这里255个数只用一格在一页中是显示不完的，超过了一页的高度。如一页，高度为400是放不下高度为500的行的，此时就会出问题。<br />
注意：<a href="http://www.finereport.com" title="报表">报表</a>单元格的高度是不能超过页面的设置高度。<br />
解决方案：合并几个报表单元格，使一格占多行，这样分页就不会有问题了。<br />
2.3 其他原因<br />
可能有时死循环错误信息，并不能真正看出其真实的错误原因，那么在检查过某些单元格的父格及公式设置正确后，若仍然出现如上问题，则可以找我们的技术支持，帮您具体看一下问题，看看其他方面可能出现的原因。W</p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/acquire/endless-loop.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FineReport报表工具报表和图表并存需注意扩展问题</title>
		<link>http://www.finereport.com/knowledge/acquire/report-chart.html</link>
		<comments>http://www.finereport.com/knowledge/acquire/report-chart.html#comments</comments>
		<pubDate>Mon, 25 Apr 2011 07:56:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表心得杂谈]]></category>
		<category><![CDATA[web报表]]></category>
		<category><![CDATA[web报表工具]]></category>
		<category><![CDATA[报表]]></category>
		<category><![CDATA[报表图表]]></category>
		<category><![CDATA[报表工具]]></category>

		<guid isPermaLink="false">http://www.finereport.com/knowledge/acquire/finereport%e6%8a%a5%e8%a1%a8%e5%b7%a5%e5%85%b7%e6%8a%a5%e8%a1%a8%e5%92%8c%e5%9b%be%e8%a1%a8%e5%b9%b6%e5%ad%98%e9%9c%80%e6%b3%a8%e6%84%8f%e6%89%a9%e5%b1%95%e9%97%ae%e9%a2%98.html</guid>
		<description><![CDATA[在FineReport报表工具中，当报表和图表都并存于同一张模板的时候，如果图表是作为单元格元素插入，就需要注意图表的扩展问题。 如下图的报表模板，图表作为单元格元素插入D1单元格 默认情况下，D1单元格的左父格为C2，这时整张报表模板的预览效果如下 这时，图表会随着前面单元格的分组而重复出现，破坏整张报表的完整性。 出现这种情况，就需要把图表所在的单元格D1的左父格设为“无”，如下图 此时预览报表效果如下图，报表和图表都正常显示]]></description>
			<content:encoded><![CDATA[<p>在FineReport报表工具中，当报表和图表都并存于同一张模板的时候，如果图表是作为单元格元素插入，就需要注意图表的扩展问题。<br />
如下图的报表模板，图表作为单元格元素插入D1单元格<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/report-chart1.jpg" title="报表模板"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/report-chart1.jpg" alt="报表模板" class="centered"></a><span id="more-2144"></span><br />
默认情况下，D1单元格的左父格为C2，这时整张报表模板的预览效果如下<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/report-chart2.jpg" title="默认报表和图表预览"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/report-chart2.jpg" alt="默认报表和图表预览" class="centered"></a><br />
这时，图表会随着前面单元格的分组而重复出现，破坏整张报表的完整性。<br />
出现这种情况，就需要把图表所在的单元格D1的左父格设为“无”，如下图<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/report-chart3.jpg" title="报表扩展属性设置"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/report-chart3.jpg" alt="报表扩展属性设置" class="centered"></a><br />
此时预览报表效果如下图，报表和图表都正常显示<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/report-chart4.jpg" title="报表和图表正式预览"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/report-chart4.jpg" alt="报表和图表正式预览" class="centered"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/acquire/report-chart.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于FineReport报表工具中字符串类型的数值排序</title>
		<link>http://www.finereport.com/knowledge/acquire/char-order.html</link>
		<comments>http://www.finereport.com/knowledge/acquire/char-order.html#comments</comments>
		<pubDate>Mon, 28 Mar 2011 08:44:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表心得杂谈]]></category>
		<category><![CDATA[web报表]]></category>
		<category><![CDATA[web报表工具]]></category>
		<category><![CDATA[报表]]></category>
		<category><![CDATA[报表工具]]></category>

		<guid isPermaLink="false">http://www.finereport.com/knowledge/acquire/%e5%85%b3%e4%ba%8efinereport%e6%8a%a5%e8%a1%a8%e5%b7%a5%e5%85%b7%e4%b8%ad%e5%ad%97%e7%ac%a6%e4%b8%b2%e7%b1%bb%e5%9e%8b%e7%9a%84%e6%95%b0%e5%80%bc%e6%8e%92%e5%ba%8f.html</guid>
		<description><![CDATA[如果数据源中的数值定义为字符串类型，则在FineReport报表工具中，会按照字符串排序的规则对数值进行排序，而这我们预期的效果是按照数值大小进行排序。下面介绍在Java报表工具FineReport中实现字符串类型的数据按照数值大小进行排序的小方法。 下图中报表数据集中的数据类型为字符串 则在FineReport报表工具中，对字符串类型的字段number排序如下图 所以，当数据源中的数据为字符串类型的数值时，如果需要进行数值的正常排序，在web报表工具FineReport中需要在排序时对数据类型进行转换，如下图 其中，公式tointeger(number)是将字段number转换为整数类型，然后排序就会按照数值大小排序，而不是按照字符串类型 报表效果预览如下图]]></description>
			<content:encoded><![CDATA[<p>如果数据源中的数值定义为字符串类型，则在FineReport<a href="http://www.finereport.com/products/functions" title="报表工具">报表工具</a>中，会按照字符串排序的规则对数值进行排序，而这我们预期的效果是按照数值大小进行排序。下面介绍在<a href="http://www.finereport.com/javareport" title="java报表工具">Java报表工具</a>FineReport中实现字符串类型的数据按照数值大小进行排序的小方法<span id="more-2139"></span>。<br />
下图中报表数据集中的数据类型为字符串<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/char-order1.jpg" title="原始数据源"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/char-order1.jpg" alt="原始数据源" class="centered"></a><!--more--><br />
则在FineReport<a href="http://www.finereport.com/products/functions" title="报表工具">报表工具</a>中，对字符串类型的字段number排序如下图<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/char-order2.png" title="字符串排序"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/char-order2.png" alt="字符串排序" class="centered"></a><br />
所以，当数据源中的数据为字符串类型的数值时，如果需要进行数值的正常排序，在<a href="http://www.finereport.com/web-reportingtool" title="web报表工具最优选择">web报表工具</a>FineReport中需要在排序时对数据类型进行转换，如下图<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/char-order3.png" title="将字符串转换为整数"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/char-order3.png" alt="将字符串转换为整数" class="centered"></a><br />
其中，公式tointeger(number)是将字段number转换为整数类型，然后排序就会按照数值大小排序，而不是按照字符串类型<br />
报表效果预览如下图<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/char-order4.png" title="报表预览"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/char-order4.png" alt="报表预览" class="centered"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/acquire/char-order.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用FineReport报表工具实现数字转换成大写货币样式</title>
		<link>http://www.finereport.com/knowledge/acquire/cnmoney.html</link>
		<comments>http://www.finereport.com/knowledge/acquire/cnmoney.html#comments</comments>
		<pubDate>Mon, 07 Mar 2011 08:59:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表心得杂谈]]></category>
		<category><![CDATA[web报表]]></category>
		<category><![CDATA[web报表工具]]></category>
		<category><![CDATA[报表]]></category>
		<category><![CDATA[报表工具]]></category>

		<guid isPermaLink="false">http://www.finereport.com/knowledge/acquire/%e7%94%a8finereport%e6%8a%a5%e8%a1%a8%e5%b7%a5%e5%85%b7%e5%ae%9e%e7%8e%b0%e6%95%b0%e5%ad%97%e8%bd%ac%e6%8d%a2%e6%88%90%e5%a4%a7%e5%86%99%e8%b4%a7%e5%b8%81%e6%a0%b7%e5%bc%8f.html</guid>
		<description><![CDATA[在中国式web报表中，通常需要用到大写的货币样式，手动将数字改成大写货币样式自然不错，但是FineReport报表工具提供了简便方法，可以直接通过函数将数字转换成大写货币样式，既简单方便，又不会出错。 FineReport报表工具提供了函数CNMONEY()，用以返回人民币大写。 比如，我们需要将125.26元转换为大写的货币，报表表样设计如下 报表预览结果如下]]></description>
			<content:encoded><![CDATA[<p>在<a href="http://www.finereport.com/web-reportingtool" title="中国式web报表工具最优选择">中国式web报表</a>中，通常需要用到大写的货币样式，手动将数字改成大写货币样式自然不错，但是FineReport<a href="http://www.finereport.com/products/functions" title="报表工具">报表工具</a>提供了简便方法，可以直接通过函数将数字转换成大写货币样式，既简单方便，又不会出错。<br />
	FineReport<a href="http://www.finereport.com/products/functions" title="报表工具">报表工具</a>提供了函数CNMONEY()，用以返回人民币大写<span id="more-2136"></span>。<br />
	比如，我们需要将125.26元转换为大写的货币，报表表样设计如下<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/cnmoney1.png" title="FineReport报表表样设计"><img class="centered" src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/cnmoney1.png" alt="FineReport报表表样设计" /></a><br />
报表预览结果如下<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/cnmoney2.png" title="FineReport报表效果预览"><img class="centered" src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/cnmoney2.png" alt="FineReport报表效果预览" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/acquire/cnmoney.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java报表打印之Flash打印</title>
		<link>http://www.finereport.com/knowledge/acquire/javareport-print.html</link>
		<comments>http://www.finereport.com/knowledge/acquire/javareport-print.html#comments</comments>
		<pubDate>Tue, 14 Dec 2010 04:54:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表心得杂谈]]></category>
		<category><![CDATA[Java报表]]></category>
		<category><![CDATA[java报表打印]]></category>
		<category><![CDATA[报表打印]]></category>

		<guid isPermaLink="false">http://www.finereport.com/knowledge/acquire/java%e6%8a%a5%e8%a1%a8%e6%89%93%e5%8d%b0%e4%b9%8bflash%e6%89%93%e5%8d%b0.html</guid>
		<description><![CDATA[Java报表工具FineReport支持APPLET打印，PDF打印，FLASH打印三种报表打印方式，适应多种不同的打印需求。其中，FineReport独创的FLASH报表打印技术，第一次完美解决了困扰java报表行业十几年的基于浏览器的打印问题。 现在的报表工具基本上都是基于java平台，报表的展现和编辑基于浏览器，自然需要基于浏览器的打印方式。但是由于浏览器的直接打印不能够精确分页，不支持连打，因此目前的Java报表工具多采用插件式的打印方式，如APPLET，PDF等，但这两种java报表打印方式均需安装较大的插件，实用性差。 基于以下几个原因，浏览器的直接打印并不能作为报表打印的解决方案： （1）不能精确分页 浏览器一般是根据用户设置的页面大小，web页面的内容多少，来自行决定分页位置，程序员很难控制。但是报表的展现和打印往往是按照规则的大小进行分页的。所以不能精确分页的打印控制难度较大。 （2）会有页脚页眉干扰 （3）不能准确对齐边边距及打印文字 （4）不能支持连续打印 在报表的打印中，特别是票据的套打中，连打是非常普通的一个需求，即每次不是仅打印一张票据，而是连续一次打印若干个票据。 由于以上的问题，不能够利用浏览器的直接打印功能。目前一般的报表工具采用的打印方式多为PDF打印，APPLET打印或者ActiveX打印，但是三者有一个共同的问题就是：都需要下载安装较大的插件，并且ActiveX的方式仅支持IE浏览器，而IE在越来越重视安全性的前提下，在较新的版本中都禁止了ActiveX，就给使用这种打印方式的报表造成很大困扰。 针对上述的问题和困难，Java报表工具FineReport独创了Flash打印技术，第一次完美解决了困扰报表行业十几年的基于浏览器的打印问题。Flash的分页或精确打印，都可以做到完美，并且几乎95%的浏览器都预装了Flash Player，打印之前不再需要安装Flash Player，即使需要安装也只有几百K的大小，非常的方便。 由于市场的需要，其它报表软件也相应出现了Flash打印的功能，但由于技术的问题，只有一两家最后成功了，具体如下表所示： Flash打印 2008年 FineReport独创 2009年—2010年 FineReport继续深化并将其应用面扩大 2011年 FineReport Flash打印完全成熟，国内另有一两家初步实现 FineReport报表工具首创的Flash打印在多年的经验积累下已经日趋完善，Flash打印更是可以做到打印报表无限制，不管什么报表，只要设计出来后，都可以使用FineReport的Flash打印实现精确打印。]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.finereport.com/javareport" title="java报表工具">Java报表工具</a>FineReport支持APPLET打印，PDF打印，FLASH打印三种报表打印方式，适应多种不同的打印需求。其中，FineReport独创的FLASH报表打印技术，第一次完美解决了困扰java报表行业十几年的基于浏览器的打印问题<span id="more-2125"></span>。</p>
<p>现在的<a href="http://www.finereport.com/knowledge" title="报表工具">报表工具</a>基本上都是基于java平台，报表的展现和编辑基于浏览器，自然需要基于浏览器的打印方式。但是由于浏览器的直接打印不能够精确分页，不支持连打，因此目前的Java报表工具多采用插件式的打印方式，如APPLET，PDF等，但这两种<a href="http://www.finereport.com/knowledge/acquire/javareport-print.html" title="java报表打印">java报表打印</a>方式均需安装较大的插件，实用性差。</p>
<p>基于以下几个原因，浏览器的直接打印并不能作为<a href="http://www.finereport.com/knowledge/aquire/bulkprint.html" title="报表打印">报表打印</a>的解决方案：<br />
（1）不能精确分页<br />
浏览器一般是根据用户设置的页面大小，web页面的内容多少，来自行决定分页位置，程序员很难控制。但是报表的展现和打印往往是按照规则的大小进行分页的。所以不能精确分页的打印控制难度较大。<br />
（2）会有页脚页眉干扰<br />
（3）不能准确对齐边边距及打印文字<br />
（4）不能支持连续打印<br />
在报表的打印中，特别是票据的套打中，连打是非常普通的一个需求，即每次不是仅打印一张票据，而是连续一次打印若干个票据。 </p>
<p>由于以上的问题，不能够利用浏览器的直接打印功能。目前一般的<a href="http://www.finereport.com/knowledge" title="报表工具知识园地">报表工具</a>采用的打印方式多为PDF打印，APPLET打印或者ActiveX打印，但是三者有一个共同的问题就是：都需要下载安装较大的插件，并且ActiveX的方式仅支持IE浏览器，而IE在越来越重视安全性的前提下，在较新的版本中都禁止了ActiveX，就给使用这种打印方式的报表造成很大困扰。</p>
<p>针对上述的问题和困难，Java报表工具FineReport独创了Flash打印技术，第一次完美解决了困扰报表行业十几年的基于浏览器的打印问题。Flash的分页或精确打印，都可以做到完美，并且几乎95%的浏览器都预装了Flash Player，打印之前不再需要安装Flash Player，即使需要安装也只有几百K的大小，非常的方便。</p>
<div class="wp-caption alignnone" style="width: 560px"><a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/flash-print.jpg"><img class="centered" title="FineReport报表打印方式" src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/flash-print.jpg" alt="FineReport报表打印方式" width="550" /></a><p class="wp-caption-text">FineReport报表打印方式</p></div>
<p>由于市场的需要，其它<a href="http://www.finereport.com/products" title="报表软件">报表软件</a>也相应出现了Flash打印的功能，但由于技术的问题，只有一两家最后成功了，具体如下表所示：</p>
<table border=1 cellspacing=0>
<tr>
<th rowspan="3">Flash打印</th>
<td>2008年</td>
<td>FineReport独创</td>
</tr>
<tr>
<td>2009年—2010年</td>
<td>FineReport继续深化并将其应用面扩大</td>
</tr>
<tr>
<td>2011年</td>
<td>FineReport Flash打印完全成熟，国内另有一两家初步实现</td>
</tr>
</table>
<p>FineReport报表工具首创的Flash打印在多年的经验积累下已经日趋完善，Flash打印更是可以做到打印报表无限制，不管什么报表，只要设计出来后，都可以使用FineReport的Flash打印实现精确打印。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/acquire/javareport-print.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Web报表打印功能对比—FineReport和润乾报表</title>
		<link>http://www.finereport.com/knowledge/acquire/vs_print.html</link>
		<comments>http://www.finereport.com/knowledge/acquire/vs_print.html#comments</comments>
		<pubDate>Mon, 25 Oct 2010 01:50:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表心得杂谈]]></category>
		<category><![CDATA[web报表打印]]></category>
		<category><![CDATA[报表打印]]></category>
		<category><![CDATA[润乾报表]]></category>

		<guid isPermaLink="false">http://www.finereport.com/knowledge/acquire/finereport%e5%92%8c%e6%b6%a6%e4%b9%be%e6%8a%a5%e8%a1%a8%e6%af%94%e8%be%83%e4%b9%8b%e6%89%93%e5%8d%b0%e7%af%87.html</guid>
		<description><![CDATA[一、Web报表打印方式灵活性 1．功能描述 现在的Web报表打印主要有Flash、PDF、Applet、activex等几种方式。不同的Web报表打印方式需要安装不同的程序，各自的安装繁琐程度不同。由于目前几乎所有的网页都安装了flash插件，所以几种Web报表打印方式中，flash报表打印是最优最便捷的一种打印方式。 支持程度： FineReport报表支持Flash、PDF、Applet、activex等多种Web报表打印方式，几乎不需要安装任何插件； 润乾报表只支持Applet、activex两种报表打印方式，需要安装插件。 2．示例 FineReport报表打印设置： 润乾报表打印设置： 二、Web报表打印时浏览器安全级别设置 1．问题描述 浏览器都有一个默认的安全级别，当下载什么插件或是浏览什么网页时，有时其会进行阻止或拦截。在润乾报表浏览界面进行报表打印时会弹出下载提示框。如果下载插件，浏览器的安全级别就会自动进行了调整，而在FineReport报表浏览界面进行报表打印时，就不会出现这个问题。 2．示例 润乾报表打印设置： 三、Web报表打印在线实时编辑功能 1．功能描述 由于现在报表都是基于java平台，而预览的页面都是html格式，这样在浏览器上预览时可能会出现一些偏差。这时就需要对展示页面进行实时的编辑，可能包括边框、格式、内容等。 在线实时编辑器，就是用于在线编辑报表的工具，编辑的内容是基于HTML的报表内容。 支持程度：FineReport报表完全支持，特别是套打功能。FineReport对web报表打印功能做了进一步提升，可以通过调整内容的对齐方式对内容的布局方式进行微调，以适应各种不同打印机在报表打印时的细微偏差，编辑后的报表可直接提交至打印机进行打印。 润乾报表:仅能更改内容。]]></description>
			<content:encoded><![CDATA[<p><strong>一、Web报表打印方式灵活性</strong><br />
1．功能描述</p>
<p>现在的<a href="http://www.finereport.com/knowledge/aquire/bulkprint.html" title="web报表打印">Web报表打印</a>主要有Flash、PDF、Applet、activex等几种方式。不同的Web报表打印方式需要安装不同的程序，各自的安装繁琐程度不同。由于目前几乎所有的网页都安装了flash插件，所以几种Web报表打印方式中，<a href="http://www.finereport.com/knowledge/acquire/javareport-print.html" title="java报表打印之flash打印">flash报表打印</a>是最优最便捷的一种打印方式。<br />
支持程度：<br />
FineReport报表支持Flash、PDF、Applet、activex等多种Web报表打印方式，几乎不需要安装任何插件；<br />
润乾报表只支持Applet、activex两种报表打印方式，需要安装插件。<span id="more-2111"></span></p>
<p>2．示例</p>
<p>FineReport报表打印设置：</p>
<p><a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/print1.jpg" title="finereport的web报表打印设置"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/print1.jpg" alt="finereport的web报表打印设置" /></a></p>
<p>润乾报表打印设置：</p>
<p><a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/print2.jpg" title="润乾报表的web报表打印设置"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/print2.jpg" alt="润乾报表的web报表打印设置" /></a></p>
<p><strong>二、Web报表打印时浏览器安全级别设置</strong></p>
<p>1．问题描述</p>
<p>浏览器都有一个默认的安全级别，当下载什么插件或是浏览什么网页时，有时其会进行阻止或拦截。在润乾报表浏览界面进行<a href="http://www.finereport.com/knowledge/aquire/bulkprint.html" title="报表打印">报表打印</a>时会弹出下载提示框。如果下载插件，浏览器的安全级别就会自动进行了调整，而在FineReport报表浏览界面进行报表打印时，就不会出现这个问题。</p>
<p>2．示例</p>
<p>润乾报表打印设置：</p>
<p><a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/print3.jpg" title="润乾报表的web报表打印的安全级别更改"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/print3.jpg" alt="润乾报表的web报表打印的安全级别更改" /></a></p>
<p><strong>三、Web报表打印在线实时编辑功能</strong></p>
<p>1．功能描述</p>
<p>由于现在<a href="http://www.finereport.com" title="报表">报表</a>都是基于java平台，而预览的页面都是html格式，这样在浏览器上预览时可能会出现一些偏差。这时就需要对展示页面进行实时的编辑，可能包括边框、格式、内容等。</p>
<p>在线实时编辑器，就是用于在线编辑报表的工具，编辑的内容是基于HTML的报表内容。</p>
<p>支持程度：FineReport报表完全支持，特别是套打功能。FineReport对<a href="http://www.finereport.com/knowledge/acquire/vs_print.html" title="web报表打印">web报表打印</a>功能做了进一步提升，可以通过调整内容的对齐方式对内容的布局方式进行微调，以适应各种不同打印机在<a href="http://www.finereport.com/knowledge/aquire/bulkprint.html" title="报表打印">报表打印</a>时的细微偏差，编辑后的报表可直接提交至打印机进行打印。</p>
<p><a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/print4.jpg" title="FineReport报表的web报表打印在线实时编辑"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/print4.jpg" alt="FineReport报表的web报表打印在线实时编辑" /></a></p>
<p>润乾报表:仅能更改内容。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/acquire/vs_print.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>程序数据集传参使用解决方案</title>
		<link>http://www.finereport.com/knowledge/acquire/parameter.html</link>
		<comments>http://www.finereport.com/knowledge/acquire/parameter.html#comments</comments>
		<pubDate>Mon, 05 Jul 2010 07:24: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/acquire/%e7%a8%8b%e5%ba%8f%e6%95%b0%e6%8d%ae%e9%9b%86%e4%bc%a0%e5%8f%82%e4%bd%bf%e7%94%a8%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88.html</guid>
		<description><![CDATA[通过TableData接口可以读取任何形式的数据源，FineReport报表工具的数据来源可以是数据库数据或是文本数据，并且还可以是其它任何类型的数据，因为这些所有的数据来源都实现了TableData接口，所以用户只要实现了TableData接口，也就可以用自定义类型的数据源了。对于传参，我们可以在程序数据集中写入传入的参数，此方案传入的参数为 tableName 和 columnNames 两项；即传入数据库表名以及所需要的列名取出所需要的值；这里连的数据库为FineReport报表的内置数据库，适用时可输入表名：stscore 列名 name；sex。具体步骤如下： 1. 定义程序数据源 1.1 TableData接口简介 TableData接口所需实现的方法 只要实现了TableData接口，FineReport报表引擎就能够读取数据源作为报表数据源使用。TableData接口主要有5个方法，如下： 1). public int getColumnCount(); //获取TableData的总列数 2). public String getColumnName(int columnIndex); //获取TableData中第columnIndex列的列名。 3). public boolean hasRow(int rowIndex); //判断是否存在第rowIndex行，这主要是用于处理超大数据时，完全遍历所有数据获取总行数相当困难，用这个方法来判断第rowIndex行是否存在，存在则可读取。 4). public int getRowCount(); //获取TableData的总行数。 5). public Object getValueAt(int rowIndex, int columnIndex); //获取TableData中第columnIndex列，第rowIndex行的数据。 1.2 以PramTableDataDemo为例描述如何实现TableData接口 因为AbstractTableData已经实现了默认的hasRow(int rowIndex)方法，所以可以从AbstractTableData扩展，定义ParamTableDataDemo，代码如下： private String splitMark = &#8220;;&#8221;; // 自定义间隔符暂定为‘；’即输入列名参数时需像如此 name；sex；age； [...]]]></description>
			<content:encoded><![CDATA[<p>通过TableData接口可以读取任何形式的数据源，FineReport<a href="http://www.finereport.com/products/functions" title="报表工具功能详解">报表工具</a>的数据来源可以是数据库数据或是文本数据，并且还可以是其它任何类型的数据，因为这些所有的数据来源都实现了TableData接口，所以用户只要实现了TableData接口，也就可以用自定义类型的数据源了。对于传参，我们可以在程序数据集中写入传入的参数，此方案传入的参数为 tableName 和 columnNames 两项；即传入数据库表名以及所需要的列名取出所需要的值；这里连的数据库为FineReport报表的内置数据库，适用时可输入表名：stscore 列名 name；sex。具体步骤如下：</p>
<p><span id="more-1953"></span></p>
<p><b>1.	 定义程序数据源</b></p>
<p>1.1	TableData接口简介<br />
TableData接口所需实现的方法<br />
只要实现了TableData接口，FineReport报表引擎就能够读取数据源作为报表数据源使用。TableData接口主要有5个方法，如下：<br />
1). public int getColumnCount(); //获取TableData的总列数<br />
2). public String getColumnName(int columnIndex); //获取TableData中第columnIndex列的列名。<br />
3). public boolean hasRow(int rowIndex);  //判断是否存在第rowIndex行，这主要是用于处理超大数据时，完全遍历所有数据获取总行数相当困难，用这个方法来判断第rowIndex行是否存在，存在则可读取。<br />
4). public int getRowCount(); //获取TableData的总行数。<br />
5). public Object getValueAt(int rowIndex, int columnIndex); //获取TableData中第columnIndex列，第rowIndex行的数据。</p>
<p>1.2	以PramTableDataDemo为例描述如何实现TableData接口<br />
因为AbstractTableData已经实现了默认的hasRow(int rowIndex)方法，所以可以从AbstractTableData扩展，定义ParamTableDataDemo，代码如下：<br />
private String splitMark = &#8220;;&#8221;;<br />
// 自定义间隔符暂定为‘；’即输入列名参数时需像如此 name；sex；age；<br />
private String[] columnNames = null;<br />
// 列字段名数组 保存在数据集窗口下一开始显示的数据列名称<br />
private int columnNum = 10;<br />
// 自定义需要列出的列数量 即在数据集窗口列出的数据集下的字段数量<br />
String[] colNames = null;<br />
// 保存取到的字段 即输入的参数字段，假如是name；sex 参数字段即为name 和 sex 两项<br />
private ArrayList valueList = null;<br />
// 保存查询得到的值列</p>
<p>1.3	构造函数<br />
public ParamTableDataDemo() {<br />
// 定义需要的参数 tablename columnNames<br />
this.parameters = new Parameter[] { new Parameter(&#8220;tableName&#8221;),<br />
new Parameter(&#8220;columnNames&#8221;) };<br />
// 初始化下列名，暂定为columnName#0，columnName#1&#8230;&#8230;显示在数据集窗体中的<br />
		  columnNames = new String[columnNum];<br />
		  for (int i = 0; i < columnNum; i++) {<br />
			columnNames[i] = “columnNames#” + String.valueOf(i);<br />
		    }<br />
	  }</p>
<p>1.4	匹配取值<br />
for (int i = 0; i < parameters.length; i++) {<br />
if (parameters[i].getName().equals(“tableName”)) // 做匹配<br />
tableName = parameters[i].getValue().toString();<br />
else colNames = this.getParameters()[i].getValue().toString().split(<br />
splitMark);}</p>
<p>1.5	构造SQL语句<br />
String sql = “select “;// 传入参数中输入的字段<br />
for (int i = 0; i < colNames.length; i++) {<br />
colNames[i].trim();<br />
if (i == colNames.length &#8211; 1)<br />
sql += colNames[i];<br />
else {sql += colNames[i] + “,”;} }<br />
sql += ” from ” + tableName + “;”;</p>
<p>1.6	获得数据库连接<br />
public Connection getConnection() {<br />
	  String driverName = “sun.jdbc.odbc.JdbcOdbcDriver”;// 加载驱动<br />
	 String url = “jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\ProgramFiles\\finereport\\FineReport6.5\\WebReport\\WEB-INF\\resources\\data\\FRDemo.mdb”;<br />
	   String username = “”;<br />
	   String password = “”;<br />
	   Connection con = null;<br />
	   try {<br />
			Class.forName(driverName);<br />
			con = DriverManager.getConnection(url, username, password);<br />
		} catch (Exception e) {<br />
			e.printStackTrace();<br />
			return null;<br />
		}<br />
		return con;<br />
	}<br />
		具体实现代码如附件所示<br />
编译ParamTableDataDemo.java，将生成的ParamTableDataDemo.class文件放到报表服务器的%\FineReport6.5\WebReport\WEB-INF\classes目录；注意：如该例子所示，其包名为com.demo,所以其类所在路径为com\demo</p>
<p><b>2.	 配置程序数据集</b></p>
<p>•	步骤一：选择“服务器|服务器数据集”，在弹出的窗口左上角点击<img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/parameter1.png">，选择添加程序，可以把默认名字更改为恰当的名字，如下图所示：<br />
<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/parameter2.png" alt="报表服务器数据集"><br />
•	步骤二：点击选择您定义好的类文件，此处选择上面定义好的ParamTableDataDemo.class，点击下方的确定即添加完成。如下图所示：<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/parameter3.png" alt="选择报表函数类"><br />
添加完成后的程序数据集并会在数据面板中出现，如下图所示：<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/parameter4.png" alt="添加后的报表程序数据集"><br />
在参数对话框中输入需要传递的参数tableName,columnNames如图所示：<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/parameter5.png" alt="输入参数"><br />
点击确定之后出现如下图面：<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/parameter6.png" alt="传参后的报表数据集"><br />
图片中的columnName#是在程序数据集中自定义的。</p>
<p><b>3. 使用程序数据集</b></p>
<p>因为columnNames输入的是两个数据列名，所以columnNames#0,columnNames#1字段中存入了相应的name,sex字段数据。</p>
<p>3.1 将columnNames#0,columnNames#1拖到B2,C2单元格中，表样设计如图所示：<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/parameter7.gif" alt="将列名拖入报表单元格"><br />
点击设计器预览：再次出现参数窗口，输入相应的参数：<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/parameter8.png" alt="输入参数"><br />
再次输入相应的参数，点击确定，预览效果图如下：<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/parameter9.gif" alt="报表预览"><br />
 注意：程序数据集中的代码在配置时需要改动相应的url，如图所示：<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/parameter10.png" alt="更改URL"><br />
此驱动和URL分别对应服务器|自定义数据连接中的driverName和URL。<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/parameter11.png" alt="对应的驱动和URL"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/acquire/parameter.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>发票打印方向解决方案</title>
		<link>http://www.finereport.com/knowledge/acquire/invoice.html</link>
		<comments>http://www.finereport.com/knowledge/acquire/invoice.html#comments</comments>
		<pubDate>Mon, 05 Jul 2010 07:17:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表心得杂谈]]></category>
		<category><![CDATA[报表打印]]></category>

		<guid isPermaLink="false">http://www.finereport.com/CN/wordpress/knowledge/acquire/%e5%8f%91%e7%a5%a8%e6%89%93%e5%8d%b0%e6%96%b9%e5%90%91%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88.html</guid>
		<description><![CDATA[解决问题：打印票据类文件的方向横向纵向设置问题 解决方案：在打印机设置中添加相应的纸张类型 解决步棸： 一、在以往的Windows 98操作系统中，打印机属性里的“纸张大小”中有“自定义”一项。而Windows 2000和Windows XP中自定义的位置是不同于Windows 98的。 这里用一个示例来表述。假定用户使用了一款15cm宽，20cm高的自制纸张，想分别在Windows XP和Windows 2000操作系统中添加这款纸张类型，以便使用时可以方便的选择。 由于在Window XP和Windows 2000操作系统中添加自定义纸张的步骤完全相同，这里只用一个在windowsXP下的示例作为代表。 在Windows XP操作系统中，步骤如下： 调出“服务器属性”界面。 在“控制面板”中选择“打印机和传真机”双击打开。然后点击“文件”，在下拉菜单中选择“服务器属性”。 创建，并且保存自定义的纸张。 在“服务器属性”中，勾选“创建新格式”。然后在“表格名”中为自己新定义的纸张起一个名字，比如：创建新格式。在“宽度”，“高度”中分别键入15，和20。“打印机区域边距”可根据需要自行制定。最后点击“保存”。 一个名叫“创建新格式”的格式就产生了。其代表一种宽度15cm高度20cm的纸张大小。 在打印机属性中选用这款新定义的纸张，下面以LQ-1600K4打印机为例进行说明。 二、所有的打印机限于它的机械结构（走纸系统、纸张感应系统）等原因，都有自己的对纸张大小的最基本的要求。并不是所有的纸张大小都可以支持到。 比如有的用户希望打印10cm以下宽度的纸张，比如7cm宽的卡片铭牌，自定义好纸张之后，却发现在自己的1600K4打印机的属性中没有这款纸型。这是因为1600K4打印机默许的最小纸宽为9.91cm，小于这个宽的的纸张由于打印机不能保证顺利进纸、正确走纸而不支持用户设定。因而用户看不到自己设定的7cm纸宽。]]></description>
			<content:encoded><![CDATA[<p><strong>解决问题</strong>：打印票据类文件的方向横向纵向设置问题</p>
<p><strong>解决方案</strong>：在打印机设置中添加相应的纸张类型</p>
<p><strong>解决步棸</strong>：</p>
<p>一、在以往的Windows 98操作系统中，打印机属性里的“纸张大小”中有“自定义”一项。而Windows 2000和Windows XP中自定义的位置是不同于Windows 98的。</p>
<p><span id="more-1952"></span></p>
<p>这里用一个示例来表述。假定用户使用了一款15cm宽，20cm高的自制纸张，想分别在Windows XP和Windows 2000操作系统中添加这款纸张类型，以便使用时可以方便的选择。</p>
<p>由于在Window XP和Windows 2000操作系统中添加自定义纸张的步骤完全相同，这里只用一个在windowsXP下的示例作为代表。</p>
<p>在Windows XP操作系统中，步骤如下：</p>
<ol>
<li>调出“服务器属性”界面。<br />
       在“控制面板”中选择“打印机和传真机”双击打开。然后点击“文件”，在下拉菜单中选择“服务器属性”。</p>
<p>       <img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/invoice1.jpg" alt="finereport报表服务器属性"></p>
<li>创建，并且保存自定义的纸张。
<p>       在“服务器属性”中，勾选“创建新格式”。然后在“表格名”中为自己新定义的纸张起一个名字，比如：创建新格式。在“宽度”，“高度”中分别键入15，和20。“打印机区域边距”可根据需要自行制定。最后点击“保存”。</p>
<p>       一个名叫“创建新格式”的格式就产生了。其代表一种宽度15cm高度20cm的纸张大小。</p>
<p>       <img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/invoice2.jpg" alt="finereport报表服务器新格式创建"></p>
<li>在打印机属性中选用这款新定义的纸张，下面以LQ-1600K4打印机为例进行说明。
<p>       <img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/invoice3.jpg" alt="finereport报表格式调用"></p>
</ol>
<p>二、所有的打印机限于它的机械结构（走纸系统、纸张感应系统）等原因，都有自己的对纸张大小的最基本的要求。并不是所有的纸张大小都可以支持到。</p>
<p>比如有的用户希望打印10cm以下宽度的纸张，比如7cm宽的卡片铭牌，自定义好纸张之后，却发现在自己的1600K4打印机的属性中没有这款纸型。这是因为1600K4打印机默许的最小纸宽为9.91cm，小于这个宽的的纸张由于打印机不能保证顺利进纸、正确走纸而不支持用户设定。因而用户看不到自己设定的7cm纸宽。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/acquire/invoice.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FineReport关于Linux下字体乱码终极解决方案</title>
		<link>http://www.finereport.com/knowledge/acquire/disordercode.html</link>
		<comments>http://www.finereport.com/knowledge/acquire/disordercode.html#comments</comments>
		<pubDate>Mon, 05 Jul 2010 07:13:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表心得杂谈]]></category>
		<category><![CDATA[报表问题]]></category>

		<guid isPermaLink="false">http://www.finereport.com/CN/wordpress/knowledge/acquire/finereport%e5%85%b3%e4%ba%8elinux%e4%b8%8b%e5%ad%97%e4%bd%93%e4%b9%b1%e7%a0%81%e7%bb%88%e6%9e%81%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88.html</guid>
		<description><![CDATA[1：在windows下找到系统使用到的字体，这里以楷体举例 •到c盘的windows文件夹的Fonts文件夹里面存放了windows中用到的所有字体，具体路径C:\WINDOWS\Fonts •找到楷体字体SIMKAI.TTF 2：将楷体字体拷贝到Linux下JRE下的\lib\fonts文件夹 •注意这个JRE必须是服务器用到的JDK下的JRE 例如服务器为tomcat 使用的 jdk是usr下/java/jdk1.5.0_13 登陆到linux系统 Cd到usr/java/jdk1.5.0_13/jre/lib/fonts •登陆到ftp 将之前准备好的楷体拷贝到当前目录下 ftp id 转到字体所在位置 get SIMKAL.TTF 到当前目录下 exit 退出ftp 3：重启服务器 解决linux下字体乱码问题]]></description>
			<content:encoded><![CDATA[<p><b>1：在windows下找到系统使用到的字体，这里以楷体举例</b><br />
•到c盘的windows文件夹的Fonts文件夹里面存放了windows中用到的所有字体，具体路径C:\WINDOWS\Fonts<br />
•找到楷体字体SIMKAI.TTF<br /><span id="more-1951"></span><br />
<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/disordercode.png" alt="楷体字体SIMKAI.TTF"> </p>
<p><b>2：将楷体字体拷贝到Linux下JRE下的\lib\fonts文件夹</b><br />
•注意这个JRE必须是服务器用到的JDK下的JRE<br />
例如服务器为tomcat<br />
使用的 jdk是usr下/java/jdk1.5.0_13<br />
登陆到linux系统<br />
Cd到usr/java/jdk1.5.0_13/jre/lib/fonts<br />
•登陆到ftp 将之前准备好的楷体拷贝到当前目录下<br />
ftp id<br />
转到字体所在位置<br />
get SIMKAL.TTF 到当前目录下<br />
exit 退出ftp</p>
<p><b>3：重启服务器 解决linux下字体乱码问题</b></p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/acquire/disordercode.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AIX字体丢失解决方案</title>
		<link>http://www.finereport.com/knowledge/acquire/aix.html</link>
		<comments>http://www.finereport.com/knowledge/acquire/aix.html#comments</comments>
		<pubDate>Mon, 05 Jul 2010 07:11:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表心得杂谈]]></category>
		<category><![CDATA[报表问题]]></category>

		<guid isPermaLink="false">http://www.finereport.com/CN/wordpress/knowledge/acquire/aix%e5%ad%97%e4%bd%93%e4%b8%a2%e5%a4%b1%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88.html</guid>
		<description><![CDATA[当图标中文显示为方框，AIX字体丢失时，解决办法：拷贝中文字体到操作系统。 1.将\WINDOWS\Fonts目录下SIMSUN.TTC（宋体）拷贝到AIX JDK安装目录jre/lib/fonts目录下。 2.在font.properties.zh 文件中，将simsun.ttc添加到字体配置文件中。 # font filenames filename.\u5b8b\u4f53=simsun.ttc。一般情况下如果AIX系统装有中文字体，只需按照1，2两步设置后。重新启动webserver后，即可马上生效。如果没有装中文字体，还需按以下步骤操作。 3.将\WINDOWS\Fonts目录下SIMSUN.TTC（宋体）拷贝到AIX系统/usr/lpp/X11/lib/X11/fonts/TrueType目录下。 4.修改fonts.dir。 fonts.dir的第一行一般是告诉Xwindows一共有多少行字体信息,从第二行开始起就是正式的字体设置信息(详见参考文档中的Linux字体设置fonts_dir文件分析.htm)并将simsun.ttc-jdk-simsun-Medium-R-Normal&#8211;0-0-0-0-P-0-gb2312.1980-0添加到usr\lpp\X11\lib\fonts\TrueType fonts.dir。 按3，4步骤操作后，要从新启动AIX系统方可生效。]]></description>
			<content:encoded><![CDATA[<p>当图标中文显示为方框，AIX字体丢失时，解决办法：拷贝中文字体到操作系统。</p>
<ol>
<li><strong>1.将\WINDOWS\Fonts目录下SIMSUN.TTC（宋体）拷贝到AIX JDK安装目录jre/lib/fonts目录下。</strong> </li>
<li><strong>2.在font.properties.zh 文件中，将simsun.ttc添加到字体配置文件中。</strong></li>
<p># font filenames  filename.\u5b8b\u4f53=simsun.ttc。一般情况下如果AIX系统装有中文字体，只需按照1，2两步设置后。重新启动webserver后，即可马上生效。如果没有装中文字体，还需按以下步骤操作。<span id="more-1950"></span></p>
<li><strong>3.将\WINDOWS\Fonts目录下SIMSUN.TTC（宋体）拷贝到AIX系统/usr/lpp/X11/lib/X11/fonts/TrueType目录下。</strong> </li>
<li><strong>4.修改fonts.dir。</strong> </li>
<p>fonts.dir的第一行一般是告诉Xwindows一共有多少行字体信息,从第二行开始起就是正式的字体设置信息(详见参考文档中的Linux字体设置fonts_dir文件分析.htm)并将simsun.ttc-jdk-simsun-Medium-R-Normal&#8211;0-0-0-0-P-0-gb2312.1980-0添加到usr\lpp\X11\lib\fonts\TrueType  fonts.dir。</p>
<li><strong>按3，4步骤操作后，要从新启动AIX系统方可生效。</strong> </li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/acquire/aix.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

