使用DundasScript编写数据脚本
1.概述
Dundas BI使用自己的脚本语言DundasScript用于数据级别的转换和其他自定义,包括公式、计算元素、桥接参数、一些数据连接器和脚本令牌。本文概述了DundasScript引擎,包括一些示例和需要注意的限制。
2.DundasScript引擎
DundasScript可以被认为是c#编程语言的一个子集,但是如果您使用过其他语言(如Java、JavaScript或C),则会对其语法很熟悉,并且它支持动态类型。
2.1.语法
DundasScript引擎语法由以下元素组成:
- 关键词:
Break case catch continue default do else false finally for foreach if in is new null return
Switch throw true try var while - 内置数据类型:
Bool字节char十进制双浮点int长对象字符串
- 操作人员(按标准顺序操作):
() ++——!* / % + - < > <= >= == != | && | ??= *= /= += -= |=
- 索引器,用于访问集合、列表或数组中的项。
- 异常,用于在脚本执行不支持的操作时处理错误:
string[]部分;try {parts = someVariable.Split();} catch(/* NullReferenceException */) {parts = new string[];}
- 泛型,如果泛型类型注册到引擎(请参阅下面可用的类型):
List
myIntList = new List ();myIntList.Add (3);myIntList.Add (2);myIntList.Add (1);myIntList.Sort (); - 访问对象的所有公共方法、属性和字段。
- 单维数组(注意不支持内联数组初始化):
int[] bunchOfValues = new int[4];束ofvalues [0] = 1;束ofvalues [1] = 1;bunchOfValues[2] = 2;bunchOfValues[3] = 3;
- IEnumerable < >列表和其他集合的扩展方法(不带lambda表达式):
int last = myIntList.Last();int avg = myIntList.Average();
- 字符串,它可以是多行@逐字的标识符对于字符串字面值:
string line = "正则字符串";字符串multiline = @“多行字符串”;
- 两种类型的评论:
//描述你的代码/*注释很有用。* /
2.2.数值
在代码中键入没有任何小数点的数值将被解释为积分数字,或者int类型。包括小数点,或使用f或d显式地将数字字面值声明为浮动或双价值观:
- 12——整数
- 12 f——浮点
- 12 d-双精度浮点数
的0 xPrefix也可以用来指定十六进制的整数,例如0我为12.
在大多数编程语言中,两个整数的除法总是得到一个整数。的结果值r在下面的脚本中是2.0:
双r = 12 / 5;
使用下面的脚本来获得的结果2.4:
双r = 12.0 / 5;// Or: double r = 12d / 5;
2.3.特性
DundasScript引擎实现了一个自定义解释器。虽然语法与c#相近,但它是一种动态类型的脚本语言。这产生了以下特性:
- 您不需要知道对象的类型或强制转换它来访问它的一个属性。
- 你可以使用var关键字取代任何类型名称以简化脚本。
- 可以在实例变量上调用静态方法。
- 没有变量作用域。这意味着,如果您重新定义一个变量,它不是一个错误,但之前的值将被覆盖/丢失。例如:
//创建一个新的字符串:string foo = "Hello world";if (someCondition){//从现在开始,foo是整型,而不是字符串!Int foo = 10;}
2.4.限制
以下元素是不DundasScript支持:
- 多维数组。
- 具有多个参数的索引器。
- 代表。
- 每行声明多个变量。
- 创建自定义事件。
- 可空类型。
- 裁判和出参数。
- Lambda表达式。
- 以下操作符:
& ^ &= ^= >> << >>= typeof sizeof ~x ++x——x
- 条件运算符(x ?Y: z)。
- 使用初始化器创建数组:
Int [] a = new Int [] {1,2,3};
2.5.标准的。net类
只能使用已注册的类型,提供沙盒这使得脚本很难使您的项目表现不佳或崩溃。
下面的类、结构和枚举在DundasScript引擎中公开。它们直接访问. net类型,并且没有在引擎中重新实现。所有的公共方法、属性和字段都将按照微软的文档工作:
- 数组-提供创建、操作、搜索和排序数组的方法,从而作为公共语言运行库中所有数组的基类。
- 保龄球-布尔值(true或false)
- 布尔—与bool相同。
- 字节—8位无符号整数。
- 字节-与byte相同。
- CalendarWeekRule—定义不同的规则来确定一年的第一周。
- 捕获-单个成功的子表达式捕获。
- 字符—单个UTF-8字符。
- 字符-和夏尔一样。
- 收集< >-泛型集合。
- 颜色-用alpha、红色、绿色和蓝色通道描述颜色。
- 颜色-一组预定义的颜色,如CornFlowerBlue。
- 转换-将一个基本数据类型转换为另一个基本数据类型。
- CultureInfo-关于特定区域性的信息,包括区域性的名称、书写系统、使用的日历、字符串的排序顺序以及日期和数字的格式。
- DateTime—日期和时间值。
- DateTimeKind-指定DateTime对象是表示本地时间、UTC时间还是未知时间。
- DateTimeOffset-一个时间点,通常表示为一天中的日期和时间,相对于UTC。
- DayOfWeek-指定星期几。
- 小数—固定精度的十进制值。
- 小数-与小数相同。
- 字典<、>—键和值的集合。
- 双—双精度浮点值。
- 双-和double一样。
- 枚举-枚举的基类。
- 异常—应用程序执行过程中出现的错误。
- 浮动-单精度浮点值(更快,但精度较低)。
- 集团—单个抓包组的结果。
- Guid—表示全局唯一标识符。
- IConvertible-定义将实现引用或值类型的值转换为具有等价值的公共语言运行时类型的方法。
- ICollection < >-定义所有泛型集合的大小、枚举数和同步方法。
- IDictionary < >-键/值对的通用集合。
- IEnumerable < >许多集合类型实现了这个接口,它提供了各种有用的扩展方法。
- int—32位有符号整数。
- Int16—16位有符号整数。
- Int32—32位有符号整数。
- Int64—64位带符号整数。
- IList < >-可以通过索引单独访问的对象的通用集合。
- IReadOnlyCollection < >—强类型的只读元素集合。
- IReadOnlyDictionary < >-键/值对的通用只读集合。
- IReadOnlyList < >—可通过索引访问的元素的只读集合。
- KeyValuePair <、>—可以设置或检索的键/值对。
- <列表>-可通过索引访问的对象列表。
- 长—64位整型值。
- 匹配-表示单个正则表达式匹配的结果。
- 数学—提供常用数学函数的常量和静态方法。
- MidpointRounding-指定数学舍入方法应该使用的策略来舍入一个数字。
- 对象-所有。net类层次结构的基类。
- 对象-与对象相同。
- 点-二维空间中的x和y坐标对。
- 随机-伪随机数生成器。
- 正则表达式—不可变正则表达式。
- RegexOptions—用于设置正则表达式选项的枚举值。
- sbyte—8位有符号整数。
- SByte-和sbyte一样。
- 短—16位有符号整数。
- 单-单精度浮点数。
- 字符串—字符串。
- 字符串-与string相同。
- 接受StringComparison-特定的String重载所使用的区域性、大小写和排序规则。比较和字符串。=方法。
- StringSplitOptions-是否适用字符串。拆分方法重载包括或省略返回值中的空子字符串。
- 时间间隔—表示时间间隔。
- TimeZoneInfo-世界上的时区。
- 使用uint—32位有符号整数。
- UInt16—16位无符号整数。
- UInt32—32位无符号整数。
- UInt64—64位无符号整数。
- ulong—64位无符号整数。
- Uri—统一资源标识符(uniform resource identifier, URI)的对象表示,并且易于访问URI的各个部分。
- UriBuilder-为统一资源标识符(Uri)提供自定义构造函数,并修改Uri类的Uri。
- UriComponents-指定Uri的组成部分。
- UriFormat-控制URI信息的转义方式。
- UriHostNameType—定义可以在URI中指定的主机名类型。
- UriKind—定义不同类型的uri。
- UriPartial-定义在某些方法中获取URI的哪些部分。
- ushort—16位无符号整数。
方法创建新对象新在DundasScript引擎中注册的任何类的关键字。
2.6.邓达斯类
如果在脚本执行时需要有关当前用户会话的信息,可以访问该变量会话.
- 会话(类型:会话) -表示脚本运行时的当前登录会话。
3.调试
要查看实时值并帮助修复脚本问题,可以使用该语句跟踪号在脚本中传递要输入的值Dundas BI的应用程序日志.
有关详细信息,请参见使用TRACE语句.