Foxtable(狐表)用户栏目专家坐堂 → 帮我修改下代码,谢谢


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

主题:帮我修改下代码,谢谢

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/11/25 11:58:00 [显示全部帖子]

r("已婚未育妇女_总数") = DataTables("妇女信息").Compute("Count(_Identify)", filter & " And 结婚日期 <= #2011-10-31# And 末孩出生日期 > #2011-10-31# and (现有男孩数 = '0' And 现有女孩数 = '0')")

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/11/25 12:59:00 [显示全部帖子]

昨天看到过楼主的项目,规律性很强,为何要写这么烦锁的代码?


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/11/25 13:08:00 [显示全部帖子]

稍稍改了一下,应该可以通用的吧。

 

Dim name As String = MainTable.Name
If name.Contains("村级") Then
    Dim dt As DataTable = DataTables("出生")
    Dim y,m As Integer
    y = name.Replace("村级","").Replace("月","").Split("年")(0)
    m = name.Replace("村级","").Replace("月","").Split("年")(1)
    Dim d As Date = New Date(y,m,1)
    Dim d1 As Date = New Date(y,m,Date.DaysInMonth(y,m))
    MainTable.DataTable.DataRows.Clear
    Dim arys As List(Of String()) = dt.GetUniqueValues("", "单位名称", "组名称")
    For Each ary As String() In arys
        Dim r As Row = MainTable.AddNew
        r("单位") = ary(0)
        r("组名称") = ary(1)
        Dim filter As String = "单位名称 = '" & ary(0) & "' And 组名称 = '" & ary(1) & "'"
        r("总人口数") = DataTables("总人口").Compute("Count(_Identify)", filter & " And 出生日期 <= #" & d1 & "#") - DataTables("迁入").Compute("Count(_Identify)", filter & " And 变动日期 > #" & d1 & "#") + DataTables("迁出").Compute("Count(_Identify)", filter & " And 迁出日期 > #" & d1 & "#") + DataTables("死亡").Compute("Count(_Identify)", filter & " And 死亡日期 > #" & d1 & "#")
        r("出生_总数") = dt.Compute("Count(_Identify)", filter & " And 子女出生日期 >= #" & d & "#  And 子女出生日期 <= #" & d1 & "#")
        r("出生_政策内_一孩") = dt.Compute("Count(_Identify)", filter & " And 子女政策属性 = '政策内' And 子女孩次 = 1 And 子女出生日期 >= #" & d & "#  And 子女出生日期 <= #" & d1 & "#")
        r("出生_政策内_二孩") = dt.Compute("Count(_Identify)", filter & " And 子女政策属性 = '政策内' And 子女孩次 = 2 And 子女出生日期 >= #" & d & "#  And 子女出生日期 <= #" & d1 & "#")
        r("出生_政策内_多孩") = dt.Compute("Count(_Identify)", filter & " And 子女政策属性 = '政策内' And 子女孩次 > 2 And 子女出生日期 >= #" & d & "#  And 子女出生日期 <= #" & d1 & "#")
        r("出生_政策外_一孩") = dt.Compute("Count(_Identify)", filter & " And 子女政策属性 = '政策外' And 子女孩次 = 1 And 子女出生日期 >= #" & d & "#  And 子女出生日期 <= #" & d1 & "#")
        r("出生_政策外_二孩") = dt.Compute("Count(_Identify)", filter & " And 子女政策属性 = '政策外' And 子女孩次 = 2 And 子女出生日期 >= #" & d & "#  And 子女出生日期 <= #" & d1 & "#")
        r("出生_政策外_多孩") = dt.Compute("Count(_Identify)", filter & " And 子女政策属性 = '政策外' And 子女孩次 > 2 And 子女出生日期 >= #" & d & "#  And 子女出生日期 <= #" & d1 & "#")
        r("元月份以来节育手术人数_总数") = DataTables("手术").Compute("Count(_Identify)", filter & " And 手术日期 >= #" & d & "#  And 手术日期 <= #" & d1 & "#")
        r("元月份以来节育手术人数_其中_上环") = DataTables("手术").Compute("Count(_Identify)", filter & "And 手术类型 = '带铜宫内节育器' And 手术日期 >= #" & d & "#  And 手术日期 <= #" & d1 & "#")
        r("元月份以来节育手术人数_其中_绝育") = DataTables("手术").Compute("Count(_Identify)", filter & "And (手术类型 = '男性绝育术' Or 手术类型 = '女性绝育术')  And 手术日期 >= #" & d & "#  And 手术日期 <= #" & d1 & "#")
        r("元月份以来节育手术人数_其中_人工流产") = DataTables("手术").Compute("Count(_Identify)", filter & "And 手术类型 = '人工流产' And 手术日期 >= #" & d & "#  And 手术日期 <= #" & d1 & "#")
        'r("已婚未育妇女_总数") = DataTables("妇女信息").Compute("Count(_Identify)", filter & " And 结婚日期 <= #" & d1 & "# And 末孩出生日期 > #" & d1 & "# and (现有男孩数 = '0' And 现有女孩数 = '0')")
        r("死亡人数") = DataTables("死亡").Compute("Count(_Identify)", filter & " And 死亡日期 <= #" & d1 & "#")
        r("自增人数") = r("出生_总数") - r("死亡人数")
        r("迁移_迁入人数") = DataTables("迁入").Compute("Count(_Identify)", filter & " And 变动日期 <= #" & d1 & "#")
        r("迁移_迁出人数") = DataTables("迁出").Compute("Count(_Identify)", filter & " And 迁出日期 <= #" & d1 & "#")
        r("元月份以来新婚对数") = DataTables("新婚").Compute("Count(_Identify)", filter & " And 结婚日期 >= #" & New Date(y,1,1) & "# And 结婚日期 <= #" & d1 & "#")
    Next
    Dim nr As Row = MainTable.AddNew
    nr("单位") = "合计"
    For i As Integer = 2 To MainTable.Cols.Count - 1
        nr(MainTable.Cols(i).Name) = MainTable.Compute("Sum(" & MainTable.Cols(i).Name & ")")
    Next
End If


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/11/25 15:30:00 [显示全部帖子]

放到原来的项目事件中。

这段代码可以通用于N多个表,无需像你现在针对每个表都在写代码


 回到顶部