以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关于指定的转换无效  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=179549)

--  作者:洮沙
--  发布时间:2022/8/29 15:49:00
--  [求助]关于指定的转换无效
老师,又不会了,麻烦看一下,谢谢!
问题一:
Dim cr As Color
Dim ht As Integer
Dim ydr As DataRow = DataTables("打印页面设置").Find("表名 = \'科目余额表\'")
If ydr IsNot Nothing Then
    If ydr("默认") = False Then
        If ydr("纸张类型") = "A4" Then
            doc.PageSetting.PaperKind = 9 \'纸张类型改为A4
        Else
            doc.PageSetting.PaperKind = 9 \'纸张类型改为A4,目前先写死  
        End If
        If ydr("纸张方向") = "横向" Then
            doc.PageSetting.Landscape = True \'横向打印
        Else
            doc.PageSetting.Landscape = False \'竖向打印
        End If
        doc.PageSetting.LeftMargin = ydr("左边距")\'设置左边距
        doc.PageSetting.RightMargin = ydr("右边距") \'设置右边距
        doc.PageSetting.TopMargin = ydr("上边距") \'设置上边距
        doc.PageSetting.BottomMargin = ydr("下边距") \'设置下边距  
        cr = ydr("网格线颜色")
        ht = ydr("行高")
    Else
        doc.PageSetting.PaperKind = 9 \'纸张类型改为A4
        doc.PageSetting.Landscape = True \'横向打印
        doc.PageSetting.LeftMargin = 30 \'设置左边距
        doc.PageSetting.RightMargin = 30 \'设置右边距
        doc.PageSetting.TopMargin = 20 \'设置上边距
        doc.PageSetting.BottomMargin = 20 \'设置下边距  
        cr = Color.Gray
        ht = 6
    End If
Else
    doc.PageSetting.PaperKind = 9 \'纸张类型改为A4
    doc.PageSetting.Landscape = True \'横向打印
    doc.PageSetting.LeftMargin = 30 \'设置左边距
    doc.PageSetting.RightMargin = 30 \'设置右边距
    doc.PageSetting.TopMargin = 20 \'设置上边距
    doc.PageSetting.BottomMargin = 20 \'设置下边距  
    cr = Color.Gray
    ht = 6 
End If
打印页面设置表结构如下:

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20220829154809.png
图片点击可在新窗口打开查看

执行出现以下错误提示:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:自定义函数,科目余额表打印
详细错误信息:
调用的目标发生了异常。
指定的转换无效。

问题二,用以下代码设置行高,最前和最后会各出现一行空白行:
\'重新定义行高
For i As Integer = 0 To rt.Rows.Count
    rt.Rows(i).Height = ht \'设置行高
Next

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20220829154647.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2022/8/29 15:49:51编辑过]

--  作者:有点蓝
--  发布时间:2022/8/29 16:08:00
--  
1、调试看那一句代码出错
2、For i As Integer = 0 To rt.Rows.Count - 1

--  作者:洮沙
--  发布时间:2022/8/29 16:19:00
--  
 问题一是从这一行开始共行有问题。
     doc.PageSetting.LeftMargin = ydr("左边距")\'设置左边距
        doc.PageSetting.RightMargin = ydr("右边距") \'设置右边距
        doc.PageSetting.TopMargin = ydr("上边距") \'设置上边距
        doc.PageSetting.BottomMargin = ydr("下边距") \'设置下边距  
        cr = ydr("网格线颜色")
        

[此贴子已经被作者于2022/8/29 16:28:38编辑过]

--  作者:有点蓝
--  发布时间:2022/8/29 16:29:00
--  
 doc.PageSetting.LeftMargin = cint(ydr("左边距"))

注意专业报表的单位是毫米

--  作者:洮沙
--  发布时间:2022/8/29 16:33:00
--  
老师,边距合适了,另外颜色的赋值怎么转换?
cr = ydr("网格线颜色")

--  作者:有点蓝
--  发布时间:2022/8/29 16:35:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=179462&replyID=197214&skin=1
--  作者:洮沙
--  发布时间:2022/8/29 16:44:00
--  
蓝老师,颜色值本身就是整数,改如何引用?

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20220829164246.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20220829164404.png
图片点击可在新窗口打开查看


找见了,FromARGB还可以根据一个整数来生成颜色

Dim clr As Color = Color.FromARGB(-16181)


今天太麻烦你了,谢谢!
[此贴子已经被作者于2022/8/29 16:46:54编辑过]

--  作者:有点蓝
--  发布时间:2022/8/29 16:46:00
--  
http://www.foxtable.com/webhelp/topics/0496.htm