找回密码
 立即注册

QQ登录

只需一步,快速开始

苏小北

论坛元老

5

主题

15

帖子

5055

积分

论坛元老

积分
5055

活字格认证

苏小北
论坛元老   /  发表于:2014-3-24 14:22  /   查看:12185  /  回复:16
①Module里定义了一个结构体,并经过处理后对这个结构体赋值。
  问:如何在Script里获取到这个结构体里面的值。
②Module里定义了一个方法,
问:如何在Script里调用这个方法。
先谢谢各位了。

16 个回复

倒序浏览
苏小北
论坛元老   /  发表于:2014-3-24 14:35:00
沙发
补充一下,环境是VS2013 ActiveReports 7。
.rpx帐票。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-3-24 16:35:00
板凳
回复 2楼苏小北的帖子

最直接的办法,过一遍自带的文档,关于Script里面调用VB.net数据、方法的文档:

ActiveReports 7 > ActiveReports User Guide > How To > Section Report How To > Add Code to Layouts Using Script
回复 使用道具 举报
苏小北
论坛元老   /  发表于:2014-3-24 16:42:00
地板
回复 3楼roger.wang的帖子

你好,版主。
我已经看了帮助文档了,还是没有成功。麻烦您了~
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-3-24 17:18:00
5#
回复 4楼苏小北的帖子

看到您很着急, 最快的办法是:您上传一个demo,我在这个基础上修改修改试试看。
回复 使用道具 举报
苏小北
论坛元老   /  发表于:2014-3-24 18:07:00
6#
Module1.vb中
Module Module1
    Public Structure tpdInfo
        Dim strCD As String          '
    End Structure
    Public g_tpdInfo As tpdInfo
    Public Sub PrintReport()
        With g_tpdInfo
            .strCD = "a123"
        End With
    End Sub

   Public Sub A()
   End Sub
End Module

然后在Script中
ReportStart方法中如何取得g_tpdInfo.strCD的值和调用A()

您说个大概就行。。。
回复 使用道具 举报
苏小北
论坛元老   /  发表于:2014-3-24 21:08:00
7#
回复 5楼roger.wang的帖子

您好,查帮助文档说,要想访问工程下其他类里的方法用AddNamedItem这个方法。
但里面给的例子不是基于.rpx报表的。所以想知道到底怎样用AddNamedItem这个方法。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-3-25 09:38:00
8#
回复 7楼苏小北的帖子

原理如下:
1 写一段VB.net 代码,如clsMyItem 类和public函数getMyItem用于返回字符串
Public Class clsMyItem
      Public Function getMyItem() As String
            getMyItem = "Hello"
      End Function
End Class

2 双击报表,点击脚本, 选择
   对象:ActiveReports
   事件:ReportStart
则会生成下面的函数
在函数里面添加如下代码:相当于实例化了一个clsMyItem,全局变量名为myItem.
这样您可使用myItem.getMyItem()了。

Private Sub rptAddNamedItem_ReportStart(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.ReportStart
      Me.AddNamedItem("myItem", New clsMyItem())
End Sub




参考:
1 ActiveReports 区域报表中的事件介绍
2 报表和脚本调用互动,请过一下ActiveReports 8 > ActiveReports User Guide > How To > Section Report How To > Add Code to Layouts Using Script  【虽然要花费一些时间,但这个是最快速整体掌握这个知识点最有效的途径,没有之一

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
苏小北
论坛元老   /  发表于:2014-3-25 10:50:00
9#
回复 8楼roger.wang的帖子

十分感谢您的解答。
我按照您说的写的代码,但还是编译不过。

发现有几点不一样的地方:
2 双击报表,点击脚本, 选择
   对象:ActiveReports
   事件:ReportStart
我这边自动生成的是
sub ActiveReports_ReportStart()
End sub
并且,不是Me.AddNamedItem,而是rpt.AddNamedItem.

另外补充一点,脚本里的语言是vb.net。
头一次接触ActiveReports,一个头两个大。这个问题纠结几天了没得到解决。
麻烦您了。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-3-25 11:02:00
10#
回复 9楼苏小北的帖子

不客气。

我帮您修改一下程序, 请把demo压缩包上传。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部