SSRS 通过Customer Code访问Dataset

A dataset in Reporting Services is not the same type of object as an ADO.Net dataset.  A report dataset is an internal object managed by the SSRS runtime (it‘s actually derived from a DataReader object) and not an XML structure containing datatables, etc. and cannot be passed into the report‘s custom code.

我们在SSRS中创建了DataSet,然后试图通过Customer Code来访问该DataSet。在一番查询之后,发现似乎没有办法直接在Customer Code中调用DataSet...

然而,Customer Code是可以访问Parameter的,而Parameter又和DataSet能够关联,于是就有了如下的方案来实现Customer Code 遍历DataSet。

1,创建DataSet,命名为Test_DataSet

创建测试用例,该DataSet有2列,分别为Id和Name

Select 1 As ‘Id‘,1000 As ‘Name‘ Union All
Select 2 As ‘Id‘,2000 As ‘Name‘

2,创建Parameter,命名为Test_Parameter

在General页签,选择Data Type为Text,Allow multiple values为True,Hidden为True

在Availabe Values页签,选择Get values from a query,DataSet选择Test_DataSet,Value Filed选择Id,Label Field选择Name

在Default Values页签,选择Get vaules from a query,DataSet选择Test_DateSet,Value Field选择Id

在Advanced页签,选择Never refresh

3,选中Report,查看属性,在Code中输入如下Vb Code

这实现了根据输入的Id,遍历DataSet得到对应的Name的效果

Public Function GetValue(Id As Integer) As String
    Dim i As Integer
    i=0
    For i = 0 to Report.Parameters!Test_Parameter.Count()
        If Report.Parameters!Test_Parameter.Value(i) = Id Then
            GetValue = Report.Parameters!Test_Parameter.Label(i)
            Exit For
        End If
    Next i
End Function

4,在Report中,对应的单元格中,使用如下Expression进行调用

=Code.VerValue(1)

Preview Report,该单元格中显示值1000

时间: 2024-10-05 14:13:34

SSRS 通过Customer Code访问Dataset的相关文章

【转】java 访问.net webservice返回的数据集

转自[转的也是转的][http://blog.csdn.net/fox123871/article/details/8637839] 1. 概述 很多正在开发或者打算开发XML Web Services的程序员都问过这样的一个问题:"我的WebService返回的结果是一个DataSet类型的对象,但如果我的客户端不是用.NET写的(因而没有内建的DataSet类型),那该如何调用这个WebService并访问DataSet中的数据呢?". 对于这个问题,首先应该说的是:1)在多种语言

访问权限PPP(public、private、protected、default)之成员变量、成员变量权限解析

首先,我们需要清楚一下方法是由哪些部分构成的: [权限修饰符列表][别的修饰符列表] 返回值类型 方法名(参数列表){   方法体:} 然后我们需要知道成员变量和成员方法访问有几种情况:1.当前包同一个类  2.当前包里面别的类  3.别的包里别的类  4.自己包继承关系的类  5.从别的包里有继承关系的类 第一步先创建一个别的类的代码,示例: package com.java; public class admin{ //成员变量的访问权限 public int i1 = 10; protec

C#之数据集:DataSet对象

ADO.NET数据访问技术的一个突出的特点就是支持离线访问,而实现这种离线访问技术的核心就是DataSet对象,该对象通过将数据驻留在内存来实现离线访问. DataSet对象概述 DataSet对象由一组DataTable对象组成,这些对象与DataRelation对象互相关联.这些DataSet对象又包含Rows集合,Columns集合,Rows集合由多个DataRow对象组成,Columns集合由多个DataColumn对象组成. 由于DataSet对象很像数据库,所以可以像访问关系型数据库

c# dataset 索引没有值 解决办法

c# dataset 索引没有值 解决办法 发表回复 datsSet 绑定到dataGrieView,在刷新dataSet的数据时,常会bug:索引0没有值或索引(int)x没有值   IndexOutOfRangeException 昨天弄了一个下午,发现bug原因:dataGridView中有数据时,默认会选中第一行.当我们把dataSet中的数据清空时,dataGridview中就没有内容了,但是dataGrieView还是在选中第一行,所以就会出现索引0没有值的错误.如果我们选中第二行,

【ADO.NET基础知识】SqlConnection、command、DataSet 、DataTable、dataAdapter

1.使用Connection连接数据库的步骤: (1).添加命名空间 System.Data.SqlClient(注意:初学者经常会忘记) (2)定义连接字符串.连接SQL Server 数据库时: server=服务器名;database=数据库名;uid=用户名;pwd=密码;例如:要连接本机上的StudentManagement数据库,用户名为sa,密码为111 string connString="server=.;database=StudentManagement;uid=sa;pw

ado.dataset

DataSet是ADO.NET的中心概念.可以把DataSet当成内存中的数据库,DataSet是不依赖与数据库的独立数据集合.所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataSet依然是可用的.DataSet在内部是用XML来描述数据的,由于XML是一种与平台无关.与语言无关的数据描述语言,而且可以描述复杂关系的数据,比如父子关系的数据,所以DataSet实际上可以容纳具有复杂关系的数据,而且不在依赖于数据库链路. 正是由于DataSet才使得程序员在编程时可以屏蔽数据库之间的差异

第5章分布式系统模式 在 .NET 中使用 DataSet 实现 Data Transfer Object

要在 .NET Framework 中实现分布式应用程序.客户端应用程序需要显示一个窗体,该窗体要求对 ASP.NET Web Service 进行多个调用以满足单个用户请求.基于性能方面的考虑,我们发现,进行多个调用会降低应用程序性能.为了提高性能,需要通过对 Web Service 进行一次调用就能检索到用户请求所需的所有数据. 背景信息 注意:以下是在 .NET 中使用类型化 DataSet 实现 Data Transfer Object 中所描述的同一个示例应用程序. 下面是一个简化的

DATASET()用法

DataSet是ADO.NET的中心概念.可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合.所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataSet依然是可用的,DataSet在内部是用XML来描述数据的,由于XML是一种与平台无关.与语言无关的数据描述语言,而且可以描述复杂关系的数据,比如父子关系的数据,所以DataSet实际上可以容纳具有复杂关系的数据,而且不再依赖于数据库链路. 在典型的多层实现中,用于创建和刷新 DataSet 并依次更新原始

Flutter入门(二):配置编辑器(VS Code)

安装VS Code 访问官网,下载最新版本的VS Code,并安装 安装Flutter插件 1. 启动VS Code 2. 搜索插件flutter 3. Install并重启 运行Flutter Doctor验证设置 1. 调用View > Command Palette… 2. 输入‘doctor’搜索,然后选择‘Flutter:Run Flutter Doctor’ 3. 查看‘OUTPUT’窗口看输出正常 原文地址:https://www.cnblogs.com/Kwongwt/p/121