iceman 发表于 2014-10-10 11:17:00

回复 10楼lifesky2006的帖子

指定打印机的属性为:fpSpread.hDCPrinter
For Each x In Printers
   If x.DeviceName = "Brother HL-5170DN series" Then
      Set Printer = x
      fpSpread1.hDCPrinter = x.hDC
      fpSpread1.PrintSheet
      Exit For
   End If
Next

iceman 发表于 2014-10-10 11:24:00

回复 10楼lifesky2006的帖子

很抱歉,目前没有提供指定打印纸张大小相关属性。

lifesky2006 发表于 2014-10-11 11:03:00

好吧,那么如何自定义打印时候的标题呢?
比如我要打印一个表,自己定义一个标题“XX数据测试表格",显示在最上方(即列标题的上方,页眉的下方)
这个功能应该怎么实现?
spread导出的时候怎么也加上这个标题?
而且spread导出的时候好像不会自动导出列标题,应该怎么实现列标题和自定义标题一起导出?

iceman 发表于 2014-10-11 13:39:00

回复 13楼lifesky2006的帖子

建议您通过设置多行ColumnHeader来模拟这个使用场景。

lifesky2006 发表于 2014-10-11 14:35:00

打印的时候如果设置了columheader格式,那么原来的控件也就变成了新的格式
如何不改变原来控件的格式,而设置新格式只用于打印?

或者如何将一个spread的数据(含标题)赋给另一个控件

我用dim fps as fpspread的方式
set fps=fpspread1
但是改变了fps后,fpspread1也变了

您有没有好的自定义表头的打印例程给我看看?
谢谢

lifesky2006 发表于 2014-10-11 16:28:00

或者spread如何自动调整列宽?在绑定数据记录之后

iceman 发表于 2014-10-11 18:03:00

回复 15楼lifesky2006的帖子

这样我建议您在后台创建另一个 Spread用于打印,不影响界面上展示的 Spread。

lifesky2006 发表于 2014-10-11 21:57:00

我也用了后台spread,所以才有上面说的问题

或者如何将一个spread的数据(含标题)赋给另一个控件
我用dim fps as fpspread的方式
set fps=fpspread1
但是改变了fps后,fpspread1也变了

lifesky2006 发表于 2014-10-11 22:06:00

请帮忙看看代码,有个小问题实在不知道怎么解决

我通过其他方法实现了,目前看来是可以的
我通过一个fpspread类型变量fpsprint传递form2中fpspread1的数据

set form1.fpsprint=fpspread1
form1.show

form1里放一个fps
set fps.datasource=fpsprint.datasource
这样好像改变fps后不会再改变form2里的fpspread1的内容了

但是我遇到了另外一个问题,我做了打印,所有代码都是自己编写,其中用到了你上面提到的打印机设置.hdcprinter属性,但是只要一用这个设置,就乱套了。
比如进入设置界面后,点击确定按钮,打印预览就乱了(自动横向),而点击取消按钮,fpspread1的打印页数就变成-1了,而且打印预览变成空白了,我测试了好久,实在不知道是为什么,屏蔽了所有代码一点点进行测试,发现只要去掉frmPageSet页面确定按钮里那个frmPrint.fps.hDCPrinter = X.hDC就没问题了。也就是说就是这个.hDCPrinter导致的。
我做了一个简单的示例,在附件里,麻烦您尽快帮忙看看怎么解决,很着急谢谢!


iceman 发表于 2014-10-13 14:27:00

回复 19楼lifesky2006的帖子

抱歉,这个工程目前我运行不起来,错误请参考截图:



我的测试环境是:
Spread for ActiveX 8.0 + Microsoft Visual Basic 6.0
页: 1 [2] 3 4 5
查看完整版本: 请尽快提供一份完整可用的打印实例(代码)