SSRS和SSAS是支持VB的

SSRS和SSAS是支持VB的,而且自定义Code其实也是只支持VB,或者其他语言可以编码成DLL再用咯。下面是官方VB函数库,基本上都能用,保存起来妥妥的。

https://msdn.microsoft.com/en-us/library/ms157328.aspx

https://msdn.microsoft.com/library/c157t28f.aspx

  其实我们一般都在SSRS和SSAS里面用得比较多都是一些字符函数,日期函数,判断函数,如果真心有很复杂的处理,建议在数据里面做比较好。下面贴出官方的函数例子。

Visual Basic 函数

您可以使用 Visual Basic 函数来处理文本框中所显示的数据,或者处理参数、属性或报表其他区域中所用的数据。 本部分举例说明了其中的一些函数。 有关详细信息,请参阅 Visual Basic Runtime Library Members(Visual Basic 运行时库成员)。

.NET Framework 提供了许多自定义格式选项,例如,特定日期格式。 有关详细信息,请参阅 MSDN 上的 格式化类型

数学函数

  • Round 函数可用于将数字舍入为最接近的整数。 下面的表达式将 1.3 舍入为 1:

    = Round(1.3)

    您也可以编写表达式以将某个值舍入到您指定的倍数,类似于 Excel 中的 MRound 函数。 用某个生成整数的因子乘以该值,对数字进行舍入,然后除以同一因子。 例如,若要将 1.3 舍入到 .2 (1.4) 的最接近的倍数,请使用下面的表达式:

    = Round(1.3*5)/5

日期函数

  • Today 函数可提供当前日期。 此表达式可用在文本框中以在报表上显示日期,或用在参数中以根据当前日期筛选数据。

    =Today()
  • 若要基于单个参数提供日期范围,可使用 DateAdd 函数。 下面的表达式提供名为 StartDate 的参数日期之后六个月的日期。
    =DateAdd(DateInterval.Month, 6, Parameters!StartDate.Value)
  • Year 函数可显示某个特定的日期的年份。 您可以使用此表达式将日期组合在一起,或者将年份显示为一组日期的标签。 此表达式可以提供一组给定的销售订单日期的年份。 Month 函数和其他函数也可用于日期操作。 有关详细信息,请参阅 Visual Basic 文档。
    =Year(Fields!OrderDate.Value)
  • 您可以在表达式中组合函数,以自定义格式。 下面的表达式将“月-日-年”的日期格式更改为“月-周-周数”。 例如,将“12/23/2009”更改为“December Week 3”:
    =Format(Fields!MyDate.Value, "MMMM") & " Week " &
    (Int(DateDiff("d", DateSerial(Year(Fields!MyDate.Value),
    Month(Fields!MyDate.Value),1), Fields!FullDateAlternateKey.Value)/7)+1).ToString

    当此表达式在数据集中用作计算字段时,您可以在图表上使用该表达式来按每个月内的周聚合值。

  • 以下表达式将 SellStartDate 值的格式设置为 MMM-YY。 SellStartDate 字段为 datetime 数据类型。
    =FORMAT(Fields!SellStartDate.Value, "MMM-yy")
  • 以下表达式将 SellStartDate 值的格式设置为 dd/MM/yyyy。 SellStartDate 字段为 datetime 数据类型。
    =FORMAT(Fields!SellStartDate.Value, "dd/MM/yyyy")
  • CDate 函数将值转换为日期。 Now 函数根据您的系统返回包含当前日期和时间的日期值。 DateDiff 返回一个指定两个日期值之间的时间间隔数的长整型值。

    以下示例显示了当前年份的开始日期

    =DateAdd(DateInterval.Year,DateDiff(DateInterval.Year,CDate("01/01/1900"),Now()),CDate("01/01/1900"))
  • 以下示例显示了基于当前月的上一个月的开始日期。
    =DateAdd(DateInterval.Month,DateDiff(DateInterval.Month,CDate("01/01/1900"),Now())-1,CDate("01/01/1900"))
  • 以下表达式生成介于 SellStartDate 和 LastReceiptDate 之间的间隔年。 这些字段在两个不同的数据集内,即 DataSet1 和 DataSet2。 First 函数(报表生成器和 SSRS) 是一个聚合函数,它返回 DataSet1 中 SellStartDate 的第一个值和 DataSet2 中 LastReceiptDate 的第一个值。
    =DATEDIFF(“yyyy”, First(Fields!SellStartDate.Value, "DataSet1"), First(Fields!LastReceiptDate.Value, "DataSet2"))
  • DatePart 函数返回一个整型值,该值包含给定日期值的指定组件。以下表达式返回 DataSet1 中 SellStartDate 的第一个值的年份。 指定数据集作用域是因为报表中有多个数据集。
    =Datepart("yyyy", First(Fields!SellStartDate.Value, "DataSet1"))
    
  • DateSerial 函数返回一个代表指定年、月和日的日期值,其时间信息设置为午夜。 以下示例显示了基于当前月的上一个月的结束日期。
    =DateSerial(Year(Now()), Month(Now()), "1").AddDays(-1)
  • 以下表达式基于用户选定的日期参数值显示不同日期。

示例说明

示例
昨天
=DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)-1)


两天前


=DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)-2)


一个月前


=DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value)-1,Day(Parameters!TodaysDate.Value))


两个月前


=DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value)-2,Day(Parameters!TodaysDate.Value))


一年前


=DateSerial(Year(Parameters!TodaysDate.Value)-1,Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value))


两年前


=DateSerial(Year(Parameters!TodaysDate.Value)-2,Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value))

字符串函数

  • 使用串联运算符和 Visual Basic 常量可将多个字段组合在一起。 以下表达式返回两个字段,它们分别位于同一文本框的不同行中:

    =Fields!FirstName.Value & vbCrLf & Fields!LastName.Value 
  • 使用 Format 函数可设置字符串中日期和数字的格式。 下面的表达式以长日期格式显示 StartDateEndDate 参数的值:
    =Format(Parameters!StartDate.Value, "D") & " through " &  Format(Parameters!EndDate.Value, "D")  

    如果文本框仅包含日期或数字,则应使用文本框的 Format 属性来应用格式设置,而不应在文本框中使用 Format 函数。

  • RightLenInStr 函数对于返回子字符串十分有用,例如将 DOMAIN\username 剪裁为用户名。 下面的表达式从名为 User 的参数返回反斜杠 (\) 字符右侧的字符串部分:
    =Right(Parameters!User.Value, Len(Parameters!User.Value) - InStr(Parameters!User.Value, "\"))

    下面的表达式使用 .NET Framework SystemString 类的成员而不是 Visual Basic 函数,可得到与上一个表达式相同的值:

    =Parameters!User.Value.Substring(Parameters!User.Value.IndexOf("\")+1, Parameters!User.Value.Length-Parameters!User.Value.IndexOf("\")-1)
  • 显示多值参数的所选值。 下面的示例使用 Join 函数,将参数 MySelection 的所选值串联到单个字符串中,该字符串可设置为报表项中文本框值的表达式:
    = Join(Parameters!MySelection.Value)

    以下示例的作用与上面的示例相同,另外在所选值列表之前显示文本字符串。

    =”Report for “ & JOIN(Parameters!MySelection.Value, “ & “)
    
  • .NET Framework System.Text.RegularExpressions 中的 Regex 函数对更改现有字符串的格式很有用,例如设置电话号码格式。 以下表达式使用 Replace 函数将字段中的十位电话号码格式从“nnn-nnn-nnnn”更改为“(nnn) nnn-nnnn”:
    =System.Text.RegularExpressions.Regex.Replace(Fields!Phone.Value, "(\d{3})[ -.]*(\d{3})[ -.]*(\d{4})", "($1) $2-$3")
    注意

    验证 Fields!Phone.Value 的值没有多余的空格并且类型为 String

查找

  • 通过指定键字段,您可以使用 Lookup 函数为一对一关系(例如键值对)从数据集检索值。 下面的表达式通过提供用于匹配的产品标识符,显示来自数据集(“Product”)的产品名称:

    =Lookup(Fields!PID.Value, Fields!ProductID.Value, Fields.ProductName.Value, "Product")

LookupSet

  • 通过指定键字段,您可以使用 LookupSet 函数为一对多关系从数据集检索一组值。 例如,一个人可以有多个电话号码。 在下面的示例中,假定数据集 PhoneList 在每一行中包含一个人员标识符和电话号码。 LookupSet 返回值的数组。 下面的表达式将返回值合并到单个字符串中,并且显示 ContactID 指定的人士的电话号码的列表:

    =Join(LookupSet(Fields!ContactID.Value, Fields!PersonID.Value, Fields!PhoneNumber.Value, "PhoneList"),",")

转换函数

使用 Visual Basic 函数可以将字段从一种数据类型转换为另一种不同的数据类型。 转换函数可用于将字段的默认数据类型转换为计算所需的数据类型或用于组合文本。

  • 以下表达式将常量 500 转换为十进制类型,以便将其与筛选表达式值字段中的 Transact-SQL money 数据类型进行比较。

    =CDec(500)
  • 下面的表达式显示为多值参数 MySelection 选择的值的数目。
    =CStr(Parameters!MySelection.Count)

决策函数

  • Iif 函数可根据表达式的计算结果(True 或 False)返回两个值中的一个。 下面的表达式使用 Iif 函数在 LineTotal 的值超过 100 时返回布尔值 True。 否则,它将返回 False

    =IIF(Fields!LineTotal.Value > 100, True, False)
  • 使用多个 IIF 函数(也称为“嵌套 IIF”)可以根据 PctComplete 的值返回三个值中的一个。 下面的表达式可放置在文本框的填充颜色中,从而根据文本框中的值更改背景色。
    =IIF(Fields!PctComplete.Value >= 10, "Green", IIF(Fields!PctComplete.Value >= 1, "Blue", "Red"))

    值大于或等于 10 时,显示绿色背景;介于 1 和 9 之间时,显示蓝色背景;小于 1 时,显示红色背景。

  • 还有另一种方法可以实现相同功能,即使用 Switch 函数。 如果您要测试三个或更多条件,Switch 函数将非常有用。 Switch 函数可返回与序列中计算结果为 True 的第一个表达式相关联的值:
    =Switch(Fields!PctComplete.Value >= 10, "Green", Fields!PctComplete.Value >= 1, "Blue", Fields!PctComplete.Value = 1, "Yellow", Fields!PctComplete.Value <= 0, "Red",)

    值大于或等于 10 时,显示绿色背景;介于 1 和 9 之间时,显示蓝色背景;等于 1 时显示黄色背景;小于或等于 0 时,显示红色背景。

  • 测试 ImportantDate 字段的值,如果该值大于一周,则返回“Red”;否则返回“Blue”。 此表达式可用于控制报表项中的文本框的 Color 属性:
    =IIF(DateDiff("d",Fields!ImportantDate.Value, Now())>7,"Red","Blue")
  • 测试 PhoneNumber 字段的值,如果为 null(在 Visual Basic 中为 Nothing),则返回“无值”;否则返回电话号码值。 此表达式可用于控制报表项中的文本框的值。
    =IIF(Fields!PhoneNumber.Value Is Nothing,"No Value",Fields!PhoneNumber.Value)
  • 测试 Department 字段的值,然后返回子报表名称或 null(在 Visual Basic 中为 Nothing)。 此表达式可用于条件性钻取子报表。
    =IIF(Fields!Department.Value = "Development", "EmployeeReport", Nothing)
  • 测试字段值是否为空。 此表达式可用于控制图像报表项的 Hidden 属性。 在下面的示例中,字段 [LargePhoto] 指定的图像仅当字段值非空时才会显示。
    =IIF(IsNothing(Fields!LargePhoto.Value),True,False)
  • MonthName 函数返回一个包含指定月的名称的字符串值。 以下示例在“月”字段(当该字段包含的值为 0 时)中显示 NA。
    IIF(Fields!Month.Value=0,"NA",MonthName(IIF(Fields!Month.Value=0,1,Fields!Month.Value)))
    

报表函数

在表达式中,您可以添加对使用报表中数据的附加报表函数的引用。 本部分举例说明了其中两个函数。 有关报表函数和示例的详细信息,请参阅 聚合函数引用(报表生成器和 SSRS)

Sum

  • Sum 函数可以对某个组或数据区域中的值求和。 此函数在组的组头或组尾中非常有用。 下面的表达式显示 Order 组或数据区域中的数据之和:

    =Sum(Fields!LineTotal.Value, "Order")
  • 还可以使用 Sum 函数进行条件聚合计算。 例如,如果数据集包含名为 State 的字段,其可能的值为 Not Started、Started、Finished,则将下列表达式放置在组头中时将只计算 Finished 值的聚合总数。
    =Sum(IIF(Fields!State.Value = "Finished", 1, 0))

RowNumber

  • RowNumber 函数,如果用在数据区域内的文本框中,则显示表达式所在文本框中的每个实例的行号。 此函数可用于为表中的各行编号。 还可以用于更复杂的情况,如根据行数插入分页符。 有关详细信息,请参阅本主题中的分页符。

    RowNumber 指定的作用域可控制开始重新计数的时间。 Nothing 关键字表示该函数将从最外面的数据区域中的第一行开始计数。 若要在嵌套数据区域中开始计数,可使用该数据区域的名称。 若要在某个组中开始计数,可使用该组的名称。

    =RowNumber(Nothing)
时间: 2024-08-07 04:09:46

SSRS和SSAS是支持VB的的相关文章

SSRS 2012 表达式 -- 介绍

SSRS 2012 表达式 -- 介绍 在SSRS设计报表时,界面提供了许多属性设置,可以用来修改项目的外观以及显示模式,而大多数的属性也都支持利用表达式的模式,只要看到属性值下拉菜单有出现"表达式-"或是"fx"的字样,就表示可以利用表达式的技术,根据逻辑判断以产生复杂的显示效果. 目前SSRS支持VB.NET的表达式语法,我们可以使用这些表达式将已有的全局属性进行处理后生成要显示的值,或是可以通过表达式的撰写,根据条件动态指定报表的属性值. 在介绍如何撰写SSR

SSRS(RDLC)报表开发的一点小技巧

说明: 开发工具为: SQL Server Data Tools     开发环境为: SQL Server 2012 一. 饼图数据外部显示 首先我们来看3张效果图:  内部显示 . 外部显示 . 3D效果-外部显示    默认是内部显示, 如何设置为外部显示呢?如下图: 设置好后数据是显示在外部了,但并没有出现数据和图之间的连接线条.想要显示线条,那么就要开启3D效果,步骤如下: 二. 将数值转为百分比显示 如示例一中的数值分别为: 76 , 39 ,  6 , 25 . 如果将其转为百分比

VB已死?还是会在Roslyn之下焕发新生?

(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 由于最初的ASP.NET 5测试版并未支持VB,导致社区有一种声音:觉得VB将死.今天我们就来简单的讨论一下这个有意思的话题. 我入门计算机编程就是初三的时候从一本GWBasic教程开始的,后来学习QB,VB.大学毕业前去考的MCSD也是VB语言.虽然在.NET平台上一开始就是以C#为主,其中只是把VB6移植到.NET上用过VB.NET.不过对VB还是有感情的,对VB也一直比较关注.今天InfoQ中

Dynamics CRM 2015中的SSRS Report集成配置

大家应该都知道,Dynamics CRM能集成SSRS Report,并且我也在之前的博文中讨论过如何制作一个简单的SSRS Report并部署到Dynamics CRM中.今天我们来看看一些比较实用的功能,比如:如何让报表显示在Form Level下的Run on current record选择中,以及如何支持Run on selected records功能. 如果我们想制作支持如下功能的报表,我们应该从何入手呢? 1. Run on selected records 2. Run on

支持打印和打印预览Word文档处理控件TX Text Control ActiveX

TX Text Control ActiveX 控件为软件开发人员提供了强大的所见所得的Word文档处理,可以加载.编辑和保存Wod格式(DOCX.DOC.RTF等),生成Word报表,文档转换,导出和直接创建PDF和PDF/A文件.该产品分发完全免费,包含了标准版.专业版和企业版. 具体功能: 支持打印和打印预览 文档可以分割为多个不同的段落,每个段落都可以单独的格式化 支持定义超链接,并加载和保存HTML文件 支持添加项目符号和数字列表 支持多层Undo和Redo操作 支持插入任何数量的列到

演练:使用Xamarin.Forms开发产品介绍性质的应用(VB版)

概述 Xamarin这个使用mono和.net core的跨平台开发框架这几年在不断发展.被微软收购后的Xamarin为个人开发者提供了免费版的Xamarin for Visual Studio,吸引了更多开发人员的关注. Xamarin.Forms用起来比较方便,因为用这种方式编写一次就能到处运行.但是不知道为什么,Xamarin目前只完整支持C#.他们宣称支持的F#实际上只是比C#多了一些文档和不常用的工具上的支持,缺少Xaml后代码生成器等重要功能支持. 而VB就更受冷落了.用户建议Xam

SSRS 2012 微图形 -- 数据条

SSRS 2012 微图形 -- 数据条 刚才介绍完了图形,虽然图形有非常多的功能,但是只有一个缺点,那就是太占空间.怎么说呢?因为如果我们是通过折线图来查看产品的销售趋势,如果有100种商品,岂不是要画出100张折线图才行.为了能够在有限的空间中展示最多的图表,因此微图形就因此而诞生. 微图形就是嵌入在数据格中的图形,可利用有限的空间做最充分的信息展现.有数据条.迷你图以及指示器. 数据条示例 说实在的,数据条其实并不会提供更多的信息.只是忠实地反映该数字格数字的绝对大小,但这的确可以让画面看

SSRS 2012 微图形 -- 迷你图

SSRS 2012 微图形 -- 迷你图 相较于数据条只能显示与单元格相同数据粒度的内容,迷你图则可以显示比单元格数据粒度更细的信息,因此可以用来呈现时间的趋势信息,所以,建议可以利用迷你图来集成原本需要产生多张折线图的现有报表.设计步骤如下: 步骤1: 先设计以产品大类为组的销售报表. 步骤2: 在销售金额旁边插入一个新的数据列,从工具箱拉入迷你图图形至销售金额旁的单元格.目前SSRS的迷你图支持插入列.线条图.区域图.范围图等. 步骤3: 接着,在"Values"中加入产品金额,因

支持对流数据进行编码和解码的Xceed Binary Encoding Library控件

Xceed Binary Encoding Library控件是一款为Windows软件开发人员准备的,使应用程序可以把编码二进制数据以及文件转换为文本或者把文本转换为编码二进制数据,该产品包含在 Xceed Ultimate Suite 套包中. 具体功能: 兼容RFC-2045, RFC-1741, RFC-2045 支持多种编码解码类型:UUEncode, XXEncode, Base64, Binhex, Quoted-Printable, plain Hexadecimal 完全支持对