以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  专业报表提取打印参数出错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=47562)

--  作者:scott518
--  发布时间:2014/3/12 14:49:00
--  专业报表提取打印参数出错

用表中的整数型变量的值设置打印参数会提示出错。


此主题相关图片如下:a1.gif
按此在新窗口浏览图片

 

     \'检查当前表单是否设计了打印模板
                Dim dr As DataRow = DataTables("Argtb").Find("tbN = \'" & Mtb & "\'")
                If dr IsNot Nothing Then
                    \'设置打印纸张
                    doc.PageSetting.PaperKind = dr("PaperKind")
                    doc.PageSetting.Landscape = dr("Landscape") \'是否横向打印

                    \'Doc.PageSetting.LeftMargin = dr("PageL")  \'设置左边距
                    Doc.PageSetting.LeftMargin = CInt(dr("PageL")) \'设置左边距
                    Doc.PageSetting.RightMargin = CInt(dr("PageR")) \'设置右边距
                    Doc.PageSetting.TopMargin = CInt(dr("PageT")) \'设置上边距
                    Doc.PageSetting.BottomMargin = CInt(dr("PageB")) \'设置下边距
                Else
                    MessageBox.Show("当前表单未设计打印模板!","提示")
                    Return 
                End If

 

上面表中提取的数值全部是整数型的,但奇怪的是蓝色的两行代码执行不出错,下面设置页边距的四行不加Cint转换就会出错,是什么原因?谢谢!



--  作者:Bin
--  发布时间:2014/3/12 14:50:00
--  
你列PaperKind应该是字符串列,应该改为数值列.
--  作者:scott518
--  发布时间:2014/3/12 15:01:00
--  

 全部都是设置的整数型的,执行paperkind和Landscape两行时都没问题,执行第三行设置左边距时才出错的。


图片点击可在新窗口打开查看此主题相关图片如下:360截图20140312145700852.jpg
图片点击可在新窗口打开查看

--  作者:Bin
--  发布时间:2014/3/12 15:03:00
--  
你的LeftMargin 是否是空值. 空值的话就会报错了.
--  作者:scott518
--  发布时间:2014/3/12 15:23:00
--  
没有空值, 全部都有值的,现在是用Cint函数转换一下后面四行就不出错,打印输出就正确了,可能是程序bug吧。
先这样用了。谢谢!

--  作者:狐狸爸爸
--  发布时间:2014/3/12 15:28:00
--  

messagebox.show(dr("PageL") )

 

看看是什么。


--  作者:scott518
--  发布时间:2014/3/12 15:34:00
--  
就是1楼显示的10