以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]在小计合计页设置打印行数 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=115922) |
||||
-- 作者:chnfo -- 发布时间:2018/3/16 16:32:00 -- [求助]在小计合计页设置打印行数 希望输出网点的销售额统计情况,要按各网点小计再合计。 但如果直接设置每页的输出行数为28行,会出现一些意外情况。 例如有23行数据,4个网点小计,再加一行合计,正好28行,一页就可以打得下。 但是按下面的模板设置,会打印两页,而且第二页是空表。 |
||||
-- 作者:有点甜 -- 发布时间:2018/3/16 16:57:00 -- 1、如果把28行改成18行或者20行,还有没问题?
2、模板应该是没问题的,是否你要打印的内容超出了纸张的大小导致的?
3、做个例子发上来看看。 |
||||
-- 作者:chnfo -- 发布时间:2018/3/16 17:13:00 -- 不是这样的,有可能是前面设置的打印列数,只针对明细,不包括各行的小计、各计在内。 因为我实际试了一次,比如说设定每页打印28行。 现在的明细数据总共有4个网点,每个网点有5行,总共有20行。 正常情况下,会补8个空行进去。 但是现在增加了4个网点的小计行,再加了一个所有网点的总计行,就导致总共有28+4+1=33行了。 而实际上,第一页就把所有的数据全部打印完了,第二页打印的就是全部的空行了。
|
||||
-- 作者:有点甜 -- 发布时间:2018/3/16 17:25:00 -- 你定义的-28,就是针对细节区的,和你其余的行无关。
如果要固定28行就换页,需要用vba插入换页符的。 |
||||
-- 作者:chnfo -- 发布时间:2018/3/19 9:32:00 -- 如果要固定28行就换页,需要用vba插入换页符的。 ----关键的问题是本身不需要第二页,插入换页符,它也要输出第二页(而实际第二页全是空数据) [此贴子已经被作者于2018/3/19 9:34:21编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/3/19 9:49:00 -- 如果第一页能正常容纳所有数据,第二页肯定不会出现空白,如果出现空白肯定是你要打印的内容刚好超过第一页一点点导致的。
不然,就是你模板设置有问题。上传实例说明。 |
||||
-- 作者:chnfo -- 发布时间:2018/3/19 21:15:00 --
报表设置如附件。 我在想另一种方法,是不是可以用代码直接生成与报表一样的结果,然后直接输出页面的所有数据,那就不用考虑太多因素了。
|
||||
-- 作者:有点蓝 -- 发布时间:2018/3/19 21:49:00 -- 确实如3楼所说的一样,-28的设置是不包含小计合计这些的,由于小计行个数未定,所以会导致实际的打印行数是未定的。 这种情况还是使用专业报表比较好控制一点
|
||||
-- 作者:chnfo -- 发布时间:2018/3/20 9:38:00 -- 所以,我在想,有没有什么代码是可以直接把表A汇总模式生成新的表B,把小计合计当做数据行存起来,这样,就避免了一系列的问题。直接在报表模板中设置从表B中直接取数就OK了 For i As Integer = 0 To Tables("D").Rows.Count(True) - 1 Dim dr As DataRow = DataTables("E").AddNew For Each c As Col In Tables("D").cols dr(c.Name) = Tables("D").Rows(i,True)(c.Name) Next Next 这样貌似可以。 [此贴子已经被作者于2018/3/20 10:36:02编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/3/20 9:58:00 -- 做一个临时表,清空。循环每一行,赋值过去。
http://www.foxtable.com/webhelp/scr/1911.htm
|