以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]累计列不能自动刷新问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77923)

--  作者:xianzheng
--  发布时间:2015/11/27 21:13:00
--  [求助]累计列不能自动刷新问题

[求助]累计列不能自动刷新问题

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目8.foxdb

 

帮看这段代码有什么问题

Dim d As Date = Date.Today
Dim str As String = "年 <= \'" & d.year & "\' And 月份 <= #" & d & "# and 公司名称 = \'abc\'"
d = d.AddMonths(-12)
str &= " and 年 >= \'" & d.year & "\' and 月份 >= #" & d & "#"
Dim sum As Double = DataTables("明细表").Compute("sum(收入)", str)
With DataTables("总表")
    Dim s As String = CurrentTable.Current("年")
    Dim s1 As String
    Dim s0 As Date = Date.Today
    s1 = s0.year
    If s = s1 Then
        e.DataRow("连续12月累计收入") = sum
    End If
End With




[此贴子已经被作者于2015/11/28 8:30:17编辑过]

--  作者:xianzheng
--  发布时间:2015/11/27 21:17:00
--  
"连续12月累计收入"列不能自动刷新,保存再打开也一样没有更新,只有把上面数据改动了,才刷新,不知道什么原因
--  作者:Hyphen
--  发布时间:2015/11/28 9:16:00
--  
DataColChanged事件本来就是这样,想打开表就刷新,代码也放到AfterLoad事件

--  作者:xianzheng
--  发布时间:2015/11/28 9:54:00
--  

放到AfterLoad事件,帮我改下

With DataTables("总表")
    Dim s As String = CurrentTable.Current("年")
    Dim s1 As String
    Dim d As Date = Date.Today
    s1 = d.year
    If s = s1 Then
        Dim str As String = "年 <= \'" & d.year & "\' And 月份 <= #" & d & "# and 公司名称 = \'abc\'"
        d = d.AddMonths(-12)
        str &= " and 年 >= \'" & d.year & "\' and 月份 >= #" & d & "#"
        Dim sum As Double = DataTables("明细表").Compute("sum(收入)", str)
        \' e.DataRow("连续12月累计收入") = sum
        Tables("总表").Filter = "[连续12月累计收入] = sum "  ‘这行代码表达不对,如何写
    End If
End With


--  作者:xianzheng
--  发布时间:2015/11/28 10:05:00
--  
.NET Framework 版本:2.0.50727.8000
Foxtable 版本:2015.11.2.1
错误所在事件:窗口,窗口1,AfterLoad
详细错误信息:
System.NullReferenceException: 未将对象引用设置到对象的实例。
   在 UserCode.AszVIokRKZTjka7yN(FormEventArgs e)

--  作者:游
--  发布时间:2015/11/28 10:15:00
--  
Tables("总表").Filter = "[连续12月累计收入] = " & sum   ‘这行代码表达不对,如何写

--  作者:Hyphen
--  发布时间:2015/11/28 10:34:00
--  
With DataTables("总表")
    \'Dim s As String = CurrentTable.Current("年")
    Dim s1 As String
    Dim d As Date = Date.Today
    s1 = d.year
    Dim dr As DataRow = .Find("年 = \'" & s1 & "\' and 公司名称 = \'abc\'")
    If dr IsNot Nothing Then
        Dim str As String = "年 <= \'" & d.year & "\' And 月份 <= #" & d & "# and 公司名称 = \'abc\'"
        d = d.AddMonths(-12)
        str &= " and 年 >= \'" & d.year & "\' and 月份 >= #" & d & "#"
        Dim sum As Double = DataTables("明细表").Compute("sum(收入)", str)
        dr("连续12月累计收入") = sum
        \'Tables("总表").Filter = "[连续12月累计收入] = " & sum   \'这行代码表达不对,如何写
    End If
End With

--  作者:xianzheng
--  发布时间:2015/11/28 10:58:00
--  
谢谢,可以了
--  作者:xianzheng
--  发布时间:2015/11/28 11:26:00
--  
又有问题了,如果有多家公司,必须再改代码
--  作者:xianzheng
--  发布时间:2015/11/28 11:27:00
--  

 如果有多家公司如何修改这两行代码

Dim dr As DataRow = .Find("年 = \'" & s1 & "\' and 公司名称 = \'abc\'")

 Dim str As String = "年 <= \'" & d.year & "\' And 月份 <= #" & d & "# and 公司名称 = \'abc\'"