ITPub博客

首页 > 应用开发 > IT综合 > DataTable.Compute强大的功能

DataTable.Compute强大的功能

原创 IT综合 作者:Fishwood 时间:2016-05-03 17:31:10 0 删除 编辑
作用:
          计算用来传递筛选条件的当前行上的给定表达式。 
格式為:
          Object Compute (string expression,string filter)

参数:
          expression:要计算的表达式。 expression 参数需要聚合函数。
          filter:要限制在表达式中进行计算的行的筛选器。 如:“Menu_ID=5” //表示Menu_ID為5的行
返回值:
          為Object型,为计算结果。

Expression說明:
          Expression 属性的一个用途是创建计算出的列。 第二个用途是创建聚合列。类似于计算出的值,聚合基于 DataTable 中的整个行集执行操作。

表达式语法
          在创建表达式时,使用 ColumnName属性(表中列的名稱)来引用表中的列。
用法:


点击(此处)折叠或打开

  1. //得到menu1表中order列中最大值
  2.             object s = dsSet.Tables["menu1"].Compute("Max(order)", "");

上面是纯开发的代码,重点理解方法的使用;在我们度量开发平台中使用:


点击(此处)折叠或打开

  1. dim dt=网格部件1.DataTable.Compute("Sum(种植面积)","地块号='"&dr["地块号"]&"'")

二、創建Expression說明:

2.1、在为筛选器创建表达式时,用单引号将字符串括起来: 
         "LastName = 'Jones'" 


         2.1.1特殊字符處理:
              下面的字符是特殊字符,如下面所解释的,如果它们用于列名称中,就必须进行转义。
"n (newline)
"t (tab)
"r (carriage return)
~
(
)
#
"
/
=
>
<
+
-
*
%
&
|
^
'
"
[

          2.1.2 轉義方法為:
              如果列名称包含上面的字符之一,该名称必须用中括号括起来。例如,若要在表达式中使用名为“Column#”的列,应写成“[Column#]”: 


点击(此处)折叠或打开

  1. Total * [Column[

2.2、用户定义的值处理
        2.2.1义的值可以用在将与列值进行比较的表达式内。字符串的值应括在单引号内。日期值应放在磅符号 (#) 内。对于数值,允许使用小数和科学记数法。例如: 

  

点击(此处)折叠或打开

  1. "FirstName = 'John'"
  2.              "Price <= 50.00"
  3.              "Birthdate < #1/31/82#"

      2.2.2含枚举值的列,将值强制转换为整数数据类型。例如: 


点击(此处)折叠或打开

  1. "EnumColumn = 5"

2.3、运算符
         2.3.1 使用布尔值 AND、OR 和 NOT 运算符时允许串联。可以使用括号来组合子句和强制优先级。AND 运算符优先于其他运算符。例如: 


点击(此处)折叠或打开

  1. (LastName ='Smith' OR LastName ='Jones') AND FirstName ='John

 2.3.2 在创建比较表达式时,允许使用下列运算符: 

<
>
<=
>=
<>
=
IN
LIKE

         2.3.3 在表达式中还支持下列算术运算符: 
+(加)
-(减)
*(乘)
/(除)
%(模数)

原文地址:http://bbs.delit.cn/thread-936-1-1.html
转载请注明出处
撰写人:度量科技www.delit.cn

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/328153/viewspace-2092876/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-09-17

  • 博文量
    184
  • 访问量
    937892