以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  时间段问题求助!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63933)

--  作者:lisheng7177
--  发布时间:2015/2/1 14:29:00
--  时间段问题求助!


图片点击可在新窗口打开查看此主题相关图片如下:a2_xvg2lyw}xp6g~_syx7.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:e~50r7lhonnw1$m0w7)dxr.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:f}dlza1g9}~kovq)kjycp.png
图片点击可在新窗口打开查看

 

这三张表分别是“报名登记表、成绩录入表、鉴定统计表”,其中“鉴定统计表”的列和行是固定的,第1列是单位,数量是不变的,其它各列是从“报名登记表和成绩录入表”中统计相应的数据,现在的代码只能做到累计,但我想做到在“鉴定统计表”中按上半年、下半年、全年(比如2014年)点击按钮查询并导出或打印,下面的代码我应该怎么写?在帮助里也看了很久,也没有理解该怎么下手。
Dim dr As DataRow = e.DataRow
Dim dt As Table = Tables("报名登记表")
If e.DataCol.Name = "工作单位" Then
    dr("报名_初级工") = dt.Compute("Count(身份证号码)", "鉴定等级 = \'初级工\' and 工作单位 = \'" & dr("工作单位")  & "\'" )
    dr("报名_中级工") = dt.Compute("Count(身份证号码)", "鉴定等级 = \'中级工\' and 工作单位 = \'" & dr("工作单位")  & "\'" )
    dr("报名_高级工") = dt.Compute("Count(身份证号码)", "鉴定等级 = \'高级工\' And 工作单位 = \'" & dr("工作单位")  & "\'" )
    dr("报名_技师") = dt.Compute("Count(身份证号码)", "鉴定等级 = \'技师\' and 工作单位 = \'" & dr("工作单位")  & "\'" )
    dr("报名_高级技师") = dt.Compute("Count(身份证号码)", "鉴定等级 = \'高级技师\' And 工作单位 = \'" & dr("工作单位")  & "\'" )
    dt = Tables("成绩录入表")
    dr("理论_技师") = dt.Compute("Count(身份证号码)", "鉴定等级 = \'技师\' and 工作单位 = \'" & dr("工作单位")  & "\'" )
    dr("理论_高级技师") = dt.Compute("Count(身份证号码)", "鉴定等级 = \'高级技师\' And 工作单位 = \'" & dr("工作单位")  & "\'" )
    dr("实操_技师") = dt.Compute("Count(身份证号码)", "鉴定等级 = \'技师\' and 工作单位 = \'" & dr("工作单位")  & "\'" )
    dr("实操_高级技师") = dt.Compute("Count(身份证号码)", "鉴定等级 = \'高级技师\' And 工作单位 = \'" & dr("工作单位")  & "\'" )
    dt = Tables("证书编号表")
    dr("取证_初级工") = dt.Compute("Count(身份证号码)", "鉴定等级 = \'初级工\' and 工作单位 = \'" & dr("工作单位")  & "\'" )
    dr("取证_中级工") = dt.Compute("Count(身份证号码)", "鉴定等级 = \'中级工\' and 工作单位 = \'" & dr("工作单位")  & "\'" )
    dr("取证_高级工") = dt.Compute("Count(身份证号码)", "鉴定等级 = \'高级工\' And 工作单位 = \'" & dr("工作单位")  & "\'" )
    dr("取证_技师") = dt.Compute("Count(身份证号码)", "鉴定等级 = \'技师\' and 工作单位 = \'" & dr("工作单位")  & "\'" )
    dr("取证_高级技师") = dt.Compute("Count(身份证号码)", "鉴定等级 = \'高级技师\' And 工作单位 = \'" & dr("工作单位")  & "\'" )
   
End If


--  作者:lisheng7177
--  发布时间:2015/2/1 14:30:00
--  


图片点击可在新窗口打开查看此主题相关图片如下:v33vzru0b$u{qqu3b5xo3w2.jpg
图片点击可在新窗口打开查看

 

这是鉴定统计表的窗口


--  作者:lisheng7177
--  发布时间:2015/2/1 14:43:00
--  
另外问一下:我是不是还要购买正式版的进行发布?怎么买?我的项目比较简单,现在只差2、3个环节没解决,完成就可以发布用了,关键是领导要比较完整的功能才会批准购买,所以我必须解决好这些问题,否则我又得回到用EXCEL来管理工作了,请版主赐教!
--  作者:lisheng7177
--  发布时间:2015/2/1 16:58:00
--  
版主今天在吗?请赐教!
--  作者:黄训良
--  发布时间:2015/2/1 19:10:00
--  

参考下面的代码:fd 和 ld 换成你窗口中的日期控件的值

Dim Val As Date = Date.Today()
Dim Val1 As Date = Date.Today()
Dim ld As Date
Dim fd As Date
If InputValue(Val, "开始日期","请输入开始日期:" ) Then
    fd  = Format(val, "yyyy-MM-dd")
        If InputValue(Val1, "截止日期","请输截止入日期:" ) Then
        ld = Format(val1, "yyyy-MM-dd")
        e.Form.Controls("Table1").Table.DataTable.LoadFilter = "鉴定时间 >=  \'" & fd & "\' And 鉴定时间 <= \'" & ld & "\'"
        e.Form.Controls("Table1").Table.DataTable.Load
    End If
End If

[此贴子已经被作者于2015-2-1 19:09:59编辑过]

--  作者:lisheng7177
--  发布时间:2015/2/1 19:13:00
--  
图片点击可在新窗口打开查看谢谢!我去改下试试!
--  作者:lisheng7177
--  发布时间:2015/2/1 19:23:00
--  

这段代码应该是窗口中的“查询”按钮代码吧?有几个地方不明白,这个窗口表中涉及到的“报名登记表”和“成绩录入表”在哪体现出调用了它们?是“table1”?

 

2个窗口中的日期控件分别是:StartDateEndDate,都是DateTimePicker控件,我对代码理解能力很差,请赐教!

 


--  作者:Bin
--  发布时间:2015/2/2 8:21:00
--  
1.对的.
2.

Dim Val As Date = e.form.controls("StartDate").Value
Dim Val1 As Date = e.form.controls("EndDate").Value

--  作者:lisheng7177
--  发布时间:2015/2/2 9:32:00
--  

图片点击可在新窗口打开查看请Bin版明示,“查询”按钮就这两句代码就可以了吗?还是要写成下面这样的:

 

Dim Val As Date = e.form.controls("StartDate").Value
Dim Val1 As Date = e.form.controls("EndDate").Value
Dim ld As Date
Dim fd As Date
If InputValue(Val, "开始日期","请输入开始日期:" ) Then
    fd  = Format(val, "yyyy-MM-dd")
        If InputValue(Val1, "截止日期","请输截止入日期:" ) Then
        ld = Format(val1, "yyyy-MM-dd")
        e.Form.Controls("Table1").Table.DataTable.LoadFilter = "鉴定时间 >=  \'" & fd & "\' And 鉴定时间 <= \'" & ld & "\'"
        e.Form.Controls("Table1").Table.DataTable.Load
    End If
End If
 
或者是将1楼的表datecolchanged事件代码换过来?

--  作者:有点甜
--  发布时间:2015/2/2 9:55:00
--  

Dim fd As Date = e.form.controls("StartDate").Value
Dim ld As Date = e.form.controls("EndDate").Value

e.Form.Controls("Table1").Table.DataTable.LoadFilter = "鉴定时间 >= #" & fd & "# And 鉴定时间 <= #" & ld & "#"
e.Form.Controls("Table1").Table.DataTable.Load

[此贴子已经被作者于2015-2-2 9:55:04编辑过]