以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 列名作为表达式 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173893) |
-- 作者:蓝蚂蚁 -- 发布时间:2021/12/21 14:57:00 -- 列名作为表达式 DataColChanged代码: Dim dt As DataTable = DataTables("中继表") Select Case e.DataCol.name Case "N1" Dim m As String=e.DataCol.Name Dim z1 As Double = dt.Compute("Count(N1)","N1=\'1\' or N1=\'1/休\'") Dim dr1 As DataRow = DataTables("班次标记").Find("表头=\'一班人数\'") If dr1 IsNot Nothing Then dr1("N1") =z1 End If 其中红色字体的代码能不能换成: Dim z1 As Double =dt.Compute("Count(m &)","m &=\'1\' or m &=\'1/休\'"); dr1(m &) =z1 实现的功能:在中继表中统计N1列出现“1”和“1/休”的个数,之后把这个个数填到班次标记表中一班人数对应的N1列。由于列有N1、N2、..............N31(即日期1到31日)每列都是差不多的代码,所以想简化一下。
|
-- 作者:有点蓝 -- 发布时间:2021/12/21 15:27:00 -- …… Select Case e.DataCol.name Case "N1","N2",.... Dim m As String=e.DataCol.Name Dim z1 As Double = dt.Compute("Count(" & m & ")",m & "=\'1\' or " & m & "=\'1/休\'") Dim dr1 As DataRow = DataTables("班次标记").Find("表头=\'一班人数\'") If dr1 IsNot Nothing Then dr1(m) =z1 End If |
-- 作者:蓝蚂蚁 -- 发布时间:2021/12/21 20:21:00 -- Dim z1 As Double = dt.Compute("Count(" & m & ")",m & "=\'1\' or " & m & "=\'1/休\'") 如果加入列名为“勾选”(逻辑型)作为条件,这条语句是不是: Dim z1 As Double = dt.Compute("Count(" & m & ")",”勾选=true and m & "=\'1\' or " & m & "=\'1/休\'") |
-- 作者:有点蓝 -- 发布时间:2021/12/21 20:31:00 -- Dim z1 As Double = dt.Compute("Count(" & m & ")",m & "=\'1\' or " & m & "=\'1/休\' and 勾选=true") |