找回密码
 立即注册

QQ登录

只需一步,快速开始

kingkl88

初级会员

18

主题

47

帖子

334

积分

初级会员

积分
334

[已处理] SPREAD 打印

kingkl88
初级会员   /  发表于:2017-7-18 13:14  /   查看:3376  /  回复:3

FpSpread1.Sheets(0).PrintInfo = lsprdPrintInfo
FpSpread1.PrintSheet(0)
FpSpread1.Sheets(0).Cells(0, 2).Value = "aaaaaaa"

在同一个函数里面  在执行前2句打印 之后 ,在对SHEET 操作  (例:给单元格赋值 ) ,会把赋值的单元格 一起打印出来。
但是打印应该之前就结束了, 为什么 会把后来赋值的 单元格 也会一起打印。
想请教下有办法 可以 关闭打印么? 然后我再赋值  。 也想明白 这个打印机制 是啥? 为什么会出现这样的现象,怎么解决那 。
大神求教 谢谢您!


3 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-18 15:26:34
沙发
打印是个异步的过程。所以你后面做的处理也被打印了。spread调用打印相关接口后就停不了了,要去系统相关操作里停止。
如果你需要再打印结束后进行一些操作可以在打印事件里做。
比如fpSpread1.PrintDocument
回复 使用道具 举报
kingkl88
初级会员   /  发表于:2017-7-19 09:18:30
板凳
那打印操作  何时结束那?
Private Sub FpSpread1_PrintDocument(ByVal sender As Object, ByVal e As   FarPoint.Win.Spread.PrintDocumentEventArgs) Handles FpSpread1.PrintDocument
        FpSpread1.Sheets(0).Cells(0, 2).Value = "aaaaaaa"
End Sub
还是没有用 ,还会把aaaa 打印上去 , 想问下  ,如果杀进程 可以么? SPREAD 打印接口怎么杀!
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-19 10:51:58
地板
您好,打印命令发出后spread就无法控制了。看了下也没有打印完成的回掉。这个都是操作系统完成的。
我测试了下,如果不preview 的话 ,下面接口可以实现。不过您这样设计也有问题啊,如果打印失败第二次重新打印,还是会打印多的数据啊。
        private void FpSpread1_PrintMessageBox(object sender, PrintMessageBoxEventArgs e)
        {
            if (!e.BeginPrinting)
                fpSpread1.ActiveSheet.Cells[3, 3].Value = 111111111111;
        }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部