Foxtable(狐表)用户栏目专家坐堂 → 这段代码的表达式是否有问题


  共有2928人关注过本帖树形打印复制链接

主题:这段代码的表达式是否有问题

帅哥哟,离线,有人找我吗?
ZJZK2018
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
这段代码的表达式是否有问题  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/26 16:35:00 [只看该作者]

ndr("总个数") = tb.Compute("Count([开标日期])",  xfl & " >= " & i/100 & " And " & xfl & " < " & (i+0.2)/100)

 回到顶部
帅哥哟,离线,有人找我吗?
ZJZK2018
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By: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


图片点击可在新窗口打开查看此主题相关图片如下:aaa.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:bbb.png
图片点击可在新窗口打开查看



 回到顶部
帅哥哟,离线,有人找我吗?
ZJZK2018
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2019/3/27 9:51:00 [只看该作者]

咋不回复我的????

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/27 11:20:00 [只看该作者]

改成,比如

 

ndr(clnm) = tb.Compute("Count(_Identify)",xfl & " Is Null And Convert(开标日期,'System.String') Like '%" & clnm & "%'" )


 回到顶部
帅哥哟,离线,有人找我吗?
ZJZK2018
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2019/3/27 11:45:00 [只看该作者]

还是不行,我改“_SortKey”也不行

图片点击可在新窗口打开查看此主题相关图片如下:pppp.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/27 12:49:00 [只看该作者]

实例发上来测试。

 回到顶部
帅哥哟,离线,有人找我吗?
ZJZK2018
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2019/3/27 20:51:00 [只看该作者]

我做了个实例是对的,详见下面附件及附图,但在我的正式软件中又不对,二个唯一不同点是:正式软件中是先生成“查询表”,而附件中是直接从内部数据表中生成??

图片点击可在新窗口打开查看此主题相关图片如下:yyy.png
图片点击可在新窗口打开查看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:下浮率汇总.foxdb

正式软件中是先生成“查询表”,代码如下:

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  '生成变量--开标记录汇总表


 回到顶部
总数 20 1 2 下一页