Foxtable(狐表)用户栏目专家坐堂 → [求助]报表批量设置代码改造求助


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

主题:[求助]报表批量设置代码改造求助

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


加好友 发短信
等级:六尾狐 帖子:1325 积分:9586 威望:0 精华:1 注册:2010/7/21 14:20:00
[求助]报表批量设置代码改造求助  发帖心情 Post By:2015/12/1 16:35:00 [只看该作者]

我想在报表打印时根据单个生成做成批量生成,用了一张表设置各种参数进行如下改造:
原:
Dim dw As prt.RenderText '定义一个文本对象单位名称
dw = New prt.RenderText() '创建文本对象
dw.Text = rp("bmunit") '设置文本对象的内容
dw.Width = 55 '自动设置宽度
dw.X = 150 '指定水平位置
dw.y =126 '指定垂直位置
doc.Body.Children.Add(dw) '将文本对象加入到报表

改造:
For Each dr As DataRow In DataTables("Cert_Print").Select("证书='管理人员' and Train_Class='主要负责人' ")
    
    Dim dr("英文字段")  As prt.RenderText '定义一个文本对象单位名称
    dr("英文字段")  = New prt.RenderText() '创建文本对象
    dr("英文字段") .Text = rp( dr("取值")  )    '设置文本对象的内容
    dr("英文字段") .Width = 55 '自动设置宽度
    dr("英文字段") .X = 150 '指定水平位置
    dr("英文字段") .y =126 '指定垂直位置
    doc.Body.Children.Add(dr("英文字段") ) '将文本对象加入到报表
    
Next

但是不行,不知道怎么改一下,望指点
[此贴子已经被作者于2015/12/1 16:35:48编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1325 积分:9586 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2015/12/1 16:39:00 [只看该作者]


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

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/1 16:41:00 [只看该作者]

For Each dr As DataRow In DataTables("Cert_Print").Select("证书='管理人员' and Train_Class='主要负责人' ")
    
    Dim dw As prt.RenderText '定义一个文本对象单位名称
    dw = New prt.RenderText() '创建文本对象
    dw.Text = rp( dr("取值")  )    '设置文本对象的内容
    dw .Width = 55 '自动设置宽度
    'dw.X = 150 '指定水平位置
    'dw.y =126 '指定垂直位置
    doc.Body.Children.Add(dw) '将文本对象加入到报表
    
Next

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


加好友 发短信
等级:六尾狐 帖子:1325 积分:9586 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2015/12/1 16:49:00 [只看该作者]

好像出不来,再试试

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


加好友 发短信
等级:六尾狐 帖子:1325 积分:9586 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2015/12/1 16:49:00 [只看该作者]

要不要用这个??

 

Dim Code As string
Code
= "Dim Val1 As Integer = 1" & vbcrlf
Code
= Code & "Dim Val2 As Integer = 2" & vbcrlf
Code
= Code & "Dim Sum As Integer = Val1 + Val2" & vbcrlf
Code
= Code & "Return Sum"
Functions.Add(
"Sum",Code)
Functions.Complie()


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/1 16:54:00 [只看该作者]

不需要,直接用3楼代码。

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


加好友 发短信
等级:六尾狐 帖子:1325 积分:9586 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2015/12/1 18:10:00 [只看该作者]

这句   dw.Text = rp( dr("取值")  )    '设置文本对象的内容
有问题:


代码执行出错,错误信息:
System.InvalidCastException: 指定的转换无效。
   在 UserCode.Test()
---------------------------
确定   
---------------------------


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


加好友 发短信
等级:六尾狐 帖子:1325 积分:9586 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2015/12/1 18:35:00 [只看该作者]

    Dim dw As prt.RenderText '定义一个文本对象单位名称`
    dw = New prt.RenderText() '创建文本对象
    dw.Text = rp(dr("取值")) '设置文本对象的内容
    dw .Width = 55 '自动设置宽度
    dw.X = CStr(dr("l_X")) '指定水平位置
    dw.y = CStr(dr("l_Y"))  '指定垂直位置
    doc.Body.Children.Add(dw) '将文本对象加入到报表


这样就可以了,谢谢袍哥!

 回到顶部