以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 这段代码的表达式是否有问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=132646) |
||||
-- 作者:ZJZK2018 -- 发布时间:2019/3/26 16:02:00 -- 这段代码的表达式是否有问题 下面红色代码可以计算出结果,但换在控件计算不出结果,为什么? Dim tb As Table = Tables(e.Form.name & "_Table01") Dim xfl As String = e.Form.Controls("cmb_xfl").text Dim ndr As Row For Each dc As Col In tb.Cols If dc.Name = xfl Then For i As Decimal = -2 To 1 Step 0.2 ndr = tb1.AddNew() ndr("下浮点") = i If i < 0 Then \'ndr("总个数") = tb.Compute("Count([开标日期])", "中标下浮率_风险控件价 >= " & i/100 & " And 中标下浮率_风险控件价 < " & (i+0.2)/100) ndr("总个数") = tb.Compute("Count([开标日期])", "[xfl] >= " & i/100 & " And [xfl] < " & (i+0.2)/100) ElseIf i > 0 Then ndr("总个数") = tb.Compute("Count([开标日期])","[xfl] > " & (i-0.2)/100 & " And [xfl] <= " & i/100) Else ndr("总个数") = tb.Compute("Count([开标日期])","[xfl] = 0") End If Next End If Next |
||||
-- 作者:有点甜 -- 发布时间:2019/3/26 16:35:00 -- ndr("总个数") = tb.Compute("Count([开标日期])", xfl & " >= " & i/100 & " And " & xfl & " < " & (i+0.2)/100) |
||||
-- 作者:ZJZK2018 -- 发布时间:2019/3/26 20:43:00 -- 老师还是有点问题: 下面红色代码数据统计不出来: Dim xfl As String = e.Form.Controls("cmb_xfl").text Dim xfl1 As Double = e.Form.Controls("cmb_xfl1").Value Dim xfl2 As Double = e.Form.Controls("cmb_xfl2").Value Dim xfln As Double = e.Form.Controls("cmb_xfl3").Value Dim ndr As Row For Each dc As Col In tb.Cols If dc.Name = xfl Then For i As Decimal = xfl1 To xfl2 Step xfln ndr = tb1.AddNew() ndr("下浮点") = i If i < 0 Then ndr("总个数") = tb.Compute("Count([开标日期])", xfl & " >= " & i/100 & " And " & xfl & " < " & (i+xfln)/100) ElseIf i > 0 Then ndr("总个数") = tb.Compute("Count([开标日期])",xfl & " > " & (i-xfln)/100 & " And " & xfl & " <= " & i/100) Else ndr("总个数") = tb.Compute("Count([开标日期])","xfl Is Null") \'来源表中是空值,但空值个数没有统计出来 End If For Each clnm As String In lst \'下面代码无法统计出来个数 If i < 0 Then ndr(clnm) = tb.Compute("Count([xlf])",xfl & " >= " & i/100 & " And " & xfl & " < " & (i+xfln)/100 & " And Convert(开标日期,\'System.String\') Like \'%" & clnm & "%\'" ) ElseIf i > 0 Then ndr(clnm) = tb.Compute("Count([xfl])",xfl & " > " & (i-xfln)/100 & " And " & xfl & " <= " & i/100 & " And Convert(开标日期,\'System.String\') Like \'%" & clnm & "%\'" ) Else ndr(clnm) = tb.Compute("Count([xfl])","xfl Is Null And Convert(开标日期,\'System.String\') Like \'%" & clnm & "%\'" ) End If Next Next End If Next |
||||
-- 作者:ZJZK2018 -- 发布时间:2019/3/27 9:51:00 -- 咋不回复我的???? |
||||
-- 作者:有点甜 -- 发布时间:2019/3/27 10:43:00 -- 1、ndr("总个数") = tb.Compute("Count([开标日期])", xfl & " Is Null")
2、ndr(clnm) = tb.Compute("Count(" & xlf & ")",xfl & " >= " & i/100 & " And " & xfl & " < " & (i+xfln)/100 & " And Convert(开标日期,\'System.String\') Like \'%" & clnm & "%\'" ) |
||||
-- 作者:ZJZK2018 -- 发布时间:2019/3/27 11:11:00 -- 下面红色代码数据统计不出来: If i < 0 Then ndr(clnm) = tb.Compute("Count(" & xfl & ")",xfl & " >= " & i/100 & " And " & xfl & " < " & (i+xfln)/100 & " And Convert(开标日期,\'System.String\') Like \'%" & clnm & "%\'" ) ElseIf i > 0 Then ndr(clnm) = tb.Compute("Count(" & xfl & ")",xfl & " > " & (i-xfln)/100 & " And " & xfl & " <= " & i/100 & " And Convert(开标日期,\'System.String\') Like \'%" & clnm & "%\'" ) Else ndr(clnm) = tb.Compute("Count(" & xfl & ")",xfl & " Is Null And Convert(开标日期,\'System.String\') Like \'%" & clnm & "%\'" ) End If |
||||
-- 作者:有点甜 -- 发布时间:2019/3/27 11:20:00 -- 改成,比如
ndr(clnm) = tb.Compute("Count(_Identify)",xfl & " Is Null And Convert(开标日期,\'System.String\') Like \'%" & clnm & "%\'" ) |
||||
-- 作者:ZJZK2018 -- 发布时间:2019/3/27 11:45:00 -- 还是不行,我改“_SortKey”也不行 |
||||
-- 作者:有点甜 -- 发布时间:2019/3/27 12:49:00 -- 实例发上来测试。 |
||||
-- 作者:ZJZK2018 -- 发布时间:2019/3/27 20:51:00 -- 我做了个实例是对的,详见下面附件及附图,但在我的正式软件中又不对,二个唯一不同点是:正式软件中是先生成“查询表”,而附件中是直接从内部数据表中生成??
正式软件中是先生成“查询表”,代码如下: Dim mdt As DataTable Dim nids As String = DataTables("系统编号").GetComboListString("系统编号") Dim jb As New SQLJoinTableBuilder("开标记录汇总表","系统编号") jb.C jb.AddTable("系统编号","系统编号","开标记录","系统编号") jb.AddTable("系统编号","系统编号","招标信息","系统编号") jb.AddCols("{系统编号}.系统编号","{系统编号}.项目编号","{系统编号}.项目名称","{系统编号}.咨询类型","{系统编号}.归属部门","{系统编号}.业务性质","{系统编号}.投标地区","{系统编号}.工程类别","{系统编号}.报价方式", _ "{开标记录}.评标方式","{开标记录}.开标日期","{开标记录}.开标时间","中标报价","公司报价","中标球号","公司球号","投标家数","中标单位","评标基准价","开标情况", _ "交易中心","开标室","工期要求","投资总额","本期概算","收费计费额","收费基价","预算审核价","招标控制价","最高限价","风险控制价","最低限价","报价区间") jb.AddExp("球号比例_中标","Case When 中标球号 > 0 And 投标家数 > 0 Then 中标球号 / 投标家数 Else 0 End") jb.AddExp("球号比例_公司","Case When 公司球号 > 0 And 投标家数 > 0 Then 公司球号 / 投标家数 Else 0 End") jb.AddExp("中标下浮率_收费基价","Case When 收费基价 <> 0 Then (收费基价 - 中标报价) / 收费基价 Else Null End") jb.AddExp("中标下浮率_预算审核价","Case When 预算审核价 <> 0 Then (预算审核价 - 中标报价) / 预算审核价 Else Null End") jb.AddExp("中标下浮率_招标控制价","Case When 招标控制价 <> 0 Then (招标控制价 - 中标报价) / 招标控制价 Else Null End") jb.AddExp("中标下浮率_最高限价","Case When 最高限价 <> 0 Then (最高限价 - 中标报价) / 最高限价 Else Null End") jb.AddExp("中标下浮率_风险控制价","Case When 风险控制价 <> 0 Then (风险控制价 - 中标报价) / 风险控制价 Else Null End") jb.AddExp("中标下浮率_最低限价","Case When 最低限价 <> 0 Then (最低限价 - 中标报价) / 最低限价 Else Null End") jb.AddExp("中标下浮率_中标与评标价差值","Case When 评标基准价 <> 0 Then (评标基准价 - 中标报价) / 评标基准价 Else Null End") jb.AddExp("公司下浮率_收费基价","Case When 收费基价 <> 0 Then (收费基价 - 公司报价) / 收费基价 Else Null End") jb.AddExp("公司下浮率_预算审核价","Case When 预算审核价 <> 0 Then (预算审核价 - 公司报价) / 预算审核价 Else Null End") jb.AddExp("公司下浮率_招标控制价","Case When 招标控制价 <> 0 Then (招标控制价 - 公司报价) / 招标控制价 Else Null End") jb.AddExp("公司下浮率_最高限价","Case When 最高限价 <> 0 Then (最高限价 - 公司报价) / 最高限价 Else Null End") jb.AddExp("公司下浮率_风险控制价","Case When 风险控制价 <> 0 Then (风险控制价 - 公司报价) / 风险控制价 Else Null End") jb.AddExp("公司下浮率_最低限价","Case When 最低限价 <> 0 Then (最低限价 - 公司报价) / 最低限价 Else Null End") jb.AddExp("基准价下浮率_收费基价","Case When 收费基价 <> 0 Then (收费基价 - 评标基准价) / 收费基价 Else Null End") jb.AddExp("基准价下浮率_预算审核价","Case When 预算审核价 <> 0 Then (预算审核价 - 评标基准价) / 预算审核价 Else Null End") jb.AddExp("基准价下浮率_招标控制价","Case When 招标控制价 <> 0 Then (招标控制价 - 评标基准价) / 招标控制价 Else Null End") jb.AddExp("基准价下浮率_最高限价","Case When 最高限价 <> 0 Then (最高限价 - 评标基准价) / 最高限价 Else Null End") jb.AddExp("基准价下浮率_风险控制价","Case When 风险控制价 <> 0 Then (风险控制价 - 评标基准价) / 风险控制价 Else Null End") jb.AddExp("基准价下浮率_最低限价","Case When 最低限价 <> 0 Then (最低限价 - 评标基准价) / 最低限价 Else Null End") jb.Filter = "{系统编号}.系统编号 In (\'" & nids.Replace("|","\',\'") & "\') And 中标单位 Is Not Null" \'这个地方加载是有问题的 jb.Order = "开标日期 DESC,开标时间" \'指定排序列 \'mdt = jb.Build(True) \'参数设置为True,生成一个临时表,不在主界面显示 mdt = jb.Build() \'参数设置为True,生成一个临时表,在主界面显示 \'jb.Build(True) \'参数设置为True,生成一个临时表,不在主界面显示 Vars("KBJLHZB") = mdt \'生成变量--开标记录汇总表 |