以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 指定的转换无效 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=181001) |
-- 作者:njzwm -- 发布时间:2022/10/21 22:44:00 -- 指定的转换无效 利用报表形式打印标签的设计中,如果标签的长宽我直接用数字表示一切正常无错,但是如果我用变量来替代(全局变量也不行),这样就总是出错,提示如图,不知是什么原因,望老师解答,谢谢! Dim doc As New PrintDoc \'定义一个报表 Dim rt As New prt.RenderText \'定义一个文本对象 Dim ph, pw, pm, hn, hd, vn, vd As Double \'定义纸长,纸宽,页边距、标签行数、行间距、列数、列间距 Doc.PageSetting.LeftMargin = pm \'设置左边距 Doc.PageSetting.RightMargin = pm \'设置右边距 Doc.PageSetting.TopMargin = pm \'设置上边距 Doc.PageSetting.BottomMargin = pm \'设置下边距 ph = 297 pw = 210 hn = 2 vn = 3 hd = 1 vd = 2 Dim lh, lw \'定义标签的高度、宽度 lh = (ph - 2 * pm - (hn - 1) * vd) / vn lw = (pw - 2 * pm - (vn - 1) * hd) / hn Dim rtt As prt.RenderText \'定义一个文本对象 doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight \'设置排列方式 For i As Integer = 1 To hn * vn rtt = New prt.RenderText() \'创建文本对象 rtt.Text = "Hello Foxtable " & i \'设置文本对象的内容 rtt.Height = 95 \'宽度毫米 rtt.Width = 99 \'宽度毫米 rtt.Style.Spacing.left = vd \'设置左边方向的间隔 rtt.Style.Spacing.top = hd \'设置顶部方向的间隔 rtt.Style.Borders.All = New prt.Linedef(1, Color.Red) \'设置边框 rtt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中 rtt.Style.TextAlignVert = prt.AlignVertEnum.Center \'垂直居中 doc.Body.Children.Add(rtt) \'将文本对象加入到报表 Next doc.Preview() \'预览 [此贴子已经被作者于2022/10/21 22:46:30编辑过]
|
-- 作者:洮沙 -- 发布时间:2022/10/22 7:45:00 -- 添加转换函数试试: 如:CDbl(hl) 我前阵子也遇到此现象,一直不得其解,反复折腾原来如此。 Dim hl As Double \'这样也不行 如下: doc.PageSetting.TopMargin = CInt(ydr("上边距")) \'设置上边距 doc.PageSetting.BottomMargin = CInt(ydr("下边距")) \'设置下边距 doc.PageSetting.LeftMargin = CInt(ydr("左边距"))\'设置左边距 doc.PageSetting.RightMargin = CInt(ydr("右边距")) \'设置右边距 cr = Color.FromARGB(CInt(ydr("网格线颜色"))) ht = CInt(ydr("行高")) [此贴子已经被作者于2022/10/22 7:51:59编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/10/22 9:45:00 -- Dim lh, lw as integer \'定义标签的高度、宽度 |
-- 作者:njzwm -- 发布时间:2022/10/22 22:07:00 -- 谢谢2位解答,我这里的问题还是dim定义没写全,低级错误,不好意思。蓝老师慧眼识错! |