找回密码
 立即注册

QQ登录

只需一步,快速开始

AllForAsking

初级会员

2

主题

9

帖子

455

积分

初级会员

积分
455

活字格认证

最新发帖
AllForAsking
初级会员   /  发表于:2013-8-30 11:06  /   查看:10317  /  回复:11
页面中有多个spread表,想一并打印出来
但在我设置完其他属性后
printSpread.Sheets[0].PrintInfo = printSet;
printSpread.PrintSheet(0);
只能加载一个表进行打印,求多表打印方法
先感谢了

11 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-8-30 11:30:00
沙发
回复 1楼AllForAsking的帖子

AllForAsking 你好,

“页面中有多个spread表” 指的是页面中有多个 Spread 的吗?
有两种解决方法:
1.逐一调用多个 Spread 的 PrintSheet 方法,推荐使用。
2.复制其他 Spread 中的表单到同一个 Spread 中,再打印,这样比较耗费性能,而且操作复杂。
回复 使用道具 举报
AllForAsking
初级会员   /  发表于:2013-8-30 11:44:00
板凳
回复 2楼iceman的帖子

是页面中有多个spread表,尝试过第一种方法,
您的意思是不是重复加载printSpread.PrintSheet(0);
我尝试过,不过每次运行到都产生一次预览,而且多个表格不是打印在同一张上
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-8-30 14:53:00
地板
回复 3楼AllForAsking的帖子

看到你提到预览,那就必须把所有的表单合并到一个表单中才能正常预览所有内容。

如果你的情况是页面上只有一个 Spread 控件,并且这个唯一的 Spread 控件上有多个表。
那可以通过遍历单元格的方式把所有数据集中到一个临时表中,打印临时表,之后删除。

大体的处理方法如代码所示:

  1. SheetView sv = new SheetView();

  2.             //如果是多个 Spread ,请先遍历 Spread。
  3.             for (int i = 0; i < this.fpSpread1.Sheets.Count; i++)
  4.             {
  5.                 for (int j = 0; j < this.fpSpread1.Sheets[0].ColumnCount; i++)
  6.                 {
  7.                     for (int k = 0; k < this.fpSpread1.Sheets[0].RowCount; k++)
  8.                     {
  9.                         //这里需要累积各个Sheet的行数
  10.                         sv.Cells[i, j].Value = "XXX";
  11.                     }
  12.                 }
  13.             }
  14.             this.fpSpread1.Sheets.Add(sv);
  15.             this.fpSpread1.PrintSheet(sv);
  16.             this.fpSpread1.Sheets.Remove(sv);
复制代码


如果有遗漏或不解的地方,欢迎补充和提出。
谢谢
回复 使用道具 举报
AllForAsking
初级会员   /  发表于:2013-8-31 18:52:00
5#
回复 4楼iceman的帖子

好的,我先试试,看看能不能实现,先谢谢啦
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-9-1 11:32:00
6#
回复 5楼AllForAsking的帖子

客气,有问题欢迎继续提问。
回复 使用道具 举报
AllForAsking
初级会员   /  发表于:2013-9-2 11:32:00
7#
回复 6楼iceman的帖子

又出现一个新的问题,我现在一个界面上有多个spread控件,每个控件内又有不同的数据格式,同时,界面上还有不在spread内的textbox,以及图片都需要打印,该怎么办?把所有spread的数据都取出来,遍历,全都插到同一个表中么?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-9-2 14:36:00
8#
回复 7楼AllForAsking的帖子

AllForAsking 你好,

关于 Spread 打印,可以通过遍历插入到同一表单实现。

不好意思,Spread 控件的打印方法只针对 Spread 控件内部表单进行打印。无法打印外部的 TextBox 及图片。
回复 使用道具 举报
AllForAsking
初级会员   /  发表于:2013-9-6 08:40:00
9#
回复 8楼iceman的帖子

由于之前不能一起打印,所以我换了一种方式,直接把其他各表直接存入一个spread内,然后再进行打印,不过目前问题是spread可以插入图片进行打印么?还是只能像例子中,图片插到页眉页脚才能打印啊?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-9-6 10:26:00
10#
回复 9楼AllForAsking的帖子

AllforAsking 你好,

Spread for Winforms 7.0可以打印插入的图片,可以直接使用设计器测试。

“直接把其他各表直接存入一个spread内,然后再进行打印”指的是在一个表单内还是多个表单?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部