Foxtable(狐表)用户栏目专家坐堂 → [求助]关于指定的转换无效


  共有6385人关注过本帖树形打印复制链接

主题:[求助]关于指定的转换无效

帅哥哟,离线,有人找我吗?
洮沙
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:819 积分:7048 威望:0 精华:0 注册:2017/8/31 12:07:00
[求助]关于指定的转换无效  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109635 积分:557861 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/29 16:08:00 [只看该作者]

1、调试看那一句代码出错
2、For i As Integer = 0 To rt.Rows.Count - 1

 回到顶部
帅哥哟,离线,有人找我吗?
洮沙
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:819 积分:7048 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109635 积分:557861 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/29 16:29:00 [只看该作者]

 doc.PageSetting.LeftMargin = cint(ydr("左边距"))

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

 回到顶部
帅哥哟,离线,有人找我吗?
洮沙
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:819 积分:7048 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2022/8/29 16:33:00 [只看该作者]

老师,边距合适了,另外颜色的赋值怎么转换?
cr = ydr("网格线颜色")

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109635 积分:557861 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/29 16:35:00 [只看该作者]

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=179462&replyID=197214&skin=1

 回到顶部
帅哥哟,离线,有人找我吗?
洮沙
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:819 积分:7048 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2022/8/29 16:44:00 [只看该作者]

蓝老师,颜色值本身就是整数,改如何引用?

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

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


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

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


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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109635 积分:557861 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/29 16:46:00 [只看该作者]


 回到顶部