none
关于报表打印的问题,控制表格内容问题.....求教朋友们! RRS feed

  • 问题

  • 设计器表格有5列分别为:

    编号  |   物品名称  |  价值 |   件数  |   说明

    现在遇到一个问题,第一列"编号"为8位编号,第二列出问题了,物品的名称往往是一个编号上有很多种不同的名称,这时"物品名称会自动折行"

    在打印当中,表格是固定的也就是说纸张的行高是固定的,比如只能在打印区域显示5行数据,第五行数据的第二列"物品名称"有至少6种,那么打印时在第一页上不能完全打印出第5行信息,会在第二页上显示第5行的"物品名称"信息

    不知是否说明白了,想知道有没有办法来判断如果在第一页不能完全打印后即把不能打印的记录直接移至第二页打印.这里面有很多不确定性,有时候可能一条记录的"物品名称"

    就能打印满一页,想了很多办法,比如判断"物品名称"字段的字符数,由代码实现折行都不能解决!

    希望能给一个解决方案!

     环境是vs2010 C# report报表

    2010年9月1日 5:29

答案

  • 我在做RDL报表时,曾经我是想把它截断,我想要每一页打印的内容都一样高,如果一条记录在一张纸的最后打不下,我就想让他能打多少打多少,实在打不下把剩下的打在下一页,可是它死活就是在一起,怎么都没法分开打...正好和你相反

    这个问题默认应该是不存在的,不会分开打在两页,除非这条100003记录本身高于一页的情况下,才会被截断。

    2010年9月6日 17:20

全部回复

  • 建个临时表,一行记录就是报表中的一行,按需要填充数据


    http://feiyun0112.cnblogs.com/
    2010年9月1日 8:09
    版主
  • 还是不能解决哦,版主,关键不是数据的问题,是怎么判断数据是否在页面上打印,比如我得票居是A4纸张不过要横向打印,票据的表格"物品名称"固定高度也就是抛去上下的边缘大概8厘米那么这个表格中要打印记录,有时候每一条记录的"物品名称"也就是几个字,比如“剃须刀”就是说每一条的记录这个字段就是不超过5个汉字那么正好可以打印15行

    现在遇到的问题是,物品名称这个字段不上每一条记录都一样的可能会不同,如何操作

    2010年9月1日 9:04
  • 谢谢版主,我这里打印统计分页,页面大小都没有问题! 就是不知道如何判断和处理我以上说的那个问题 就是第二列"物品名称"因为这一列的数据是不固定的,有时候可能一条记录的这一列也就四五个字,可是有时候其他的记录这一列的字符数可能会很多 比如"化妆品,电子产品,手工艺品,饰物"那么在这个情况下表格高度不会自动增加了,只有控制记录数了,如果该列能打印15行记录 如下格式: 编号 物品名称 价值 数量 说明 100001 剃须刀 100 2 订购 100002 打火机 300 3 订购 100003 光盘, 10000 7 订购 图书 照相机1 照相机2 照相机3 照相机4 100004 洗衣粉 50 5 订购 如上格式,但是在此种第二列“物品名称”是不固定的其他字段都没问题,在打印的时候要控制这样一个状态,如果100003这一条记录不能在当前页打印完 那么直接跳入第二页打印,就是说这条记录的所有信息必须显示在一页上不能分页显示。 很困惑这个需求,因为每条记录的这个“物品名称”字段都是不可预知的,到底有多少无法确定,但是打印要实现那样一个功能,脑袋都炸了。。。。。
    2010年9月2日 5:53
  • 谢谢版主,我这里打印统计分页,页面大小都没有问题!
    就是不知道如何判断和处理我以上说的那个问题
    就是第二列"物品名称"因为这一列的数据是不固定的,有时候可能一条记录的这一列也就四五个字,可是有时候其他的记录这一列的字符数可能会很多
    比如"化妆品,电子产品,手工艺品,饰物"那么在这个情况下表格高度不会自动增加了,只有控制记录数了,如果该列能打印15行记录
    如下格式:
    编号       物品名称  价值     数量    说明

    100001    剃须刀    100        2       订购
    100002    打火机    300        3       订购
    100003    光盘,      10000     7      订购
                  图书                   
                  照相机1
                  照相机2
                  照相机3  
                  照相机4
    100004    洗衣粉     50        5       订购


    如上格式,但是在此种第二列“物品名称”是不固定的其他字段都没问题,在打印的时候要控制这样一个状态,如果100003这一条记录不能在当前页打印完
    那么直接跳入第二页打印,就是说这条记录的所有信息必须显示在一页上不能分页显示。
    很困惑这个需求,因为每条记录的这个“物品名称”字段都是不可预知的,到底有多少无法确定,但是打印要实现那样一个功能,脑袋都炸了。。。。。

    2010年9月2日 5:56
  • 我在做RDL报表时,曾经我是想把它截断,我想要每一页打印的内容都一样高,如果一条记录在一张纸的最后打不下,我就想让他能打多少打多少,实在打不下把剩下的打在下一页,可是它死活就是在一起,怎么都没法分开打...正好和你相反

    这个问题默认应该是不存在的,不会分开打在两页,除非这条100003记录本身高于一页的情况下,才会被截断。

    2010年9月6日 17:20
  • 我在做RDL报表时,曾经我是想把它截断,我想要每一页打印的内容都一样高,如果一条记录在一张纸的最后打不下,我就想让他能打多少打多少,实在打不下把剩下的打在下一页,可是它死活就是在一起,怎么都没法分开打...正好和你相反

    这个问题默认应该是不存在的,不会分开打在两页,除非这条100003记录本身高于一页的情况下,才会被截断。


    呵呵,楼上兄弟,我另一个帖子中参数传递循环输出的问题就是想解决此帖....

    你说的情况的确存在,这条记录100003有可能高于一页

    现在想了一个办法,就是先将信息列在DataGridView中在dgv中增加一个checkbox列手动选择打印数据的行数,然后预览如果超出那么回来取掉一条记录,在打印!

    实在没办法了,呵呵呵!

    2010年9月7日 6:40