以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  帮我修改下代码,谢谢  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=26121)

--  作者:lrh9537
--  发布时间:2012/11/25 11:34:00
--  帮我修改下代码,谢谢

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

 

 

要求:已婚未育妇女_总数=结婚时间在2011.10.31前子女数为0+结婚日期在2011.10.31前,并且末孩出生日期>2011.10.31的现有男孩为1或现有女孩为1的人数

[此贴子已经被作者于2012-11-25 12:08:59编辑过]

--  作者:唐尸三摆手
--  发布时间:2012/11/25 11:57:00
--  
Dim dt As DataTable
Dim flt As String = "结婚日期 <= #2011-10-31# And 末孩出生日期 > #2011-10-31# And (现有男孩数 = \'1\' Or 现有女孩数 = \'1\')"
dt.Compute("count(已婚未育妇女_总数)",flt)

--  作者:czy
--  发布时间: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
--  发布时间:2012/11/25 12:59:00
--  

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


--  作者:czy
--  发布时间: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


--  作者:lrh9537
--  发布时间:2012/11/25 14:32:00
--  Microsoft Jet 数据库引擎找不到对象''出生情况查询''怎么回事?

感谢CZY!我是建一个窗口,对窗口设计吗?还是在哪用代码?搞了几天头都大了


--  作者:czy
--  发布时间:2012/11/25 15:30:00
--  

放到原来的项目事件中。

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


--  作者:lrh9537
--  发布时间:2012/11/25 15:34:00
--  Microsoft Jet 数据库引擎找不到对象''出生情况查询''怎么回事?

多谢,刚开始学着整,好多不会,正在研究