以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关于加载数据按钮的代码(已解决)  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=10891)

--  作者:yyzlxc
--  发布时间:2011/6/28 15:00:00
--  [求助]关于加载数据按钮的代码(已解决)

想根据ComboBox所选定的值,通过按钮重新加载指定报表年月的数据;同时,用户组为“填报”时,只加载用户名对应的数据,其他用户组加载指定报表年月的全部数据,根据上述要求,该按钮代码应该如何写?请各位老师指教。谢谢!!

 

If e.Form.Controls("ComboBox1").Value Is Nothing Then
    MessageBox.Show("请输入报表年月")
    Return
End If
Dim dt As String = e.Form.Controls("ComboBox1").Value
DataTables("日报源表").LoadFilter =???
DataTables("日报源表").Load

 

 

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:生产日报b.zip

登录密码:123

[此贴子已经被作者于2011-6-28 19:37:38编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/6/28 15:33:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目89.rar


--  作者:yyzlxc
--  发布时间:2011/6/28 15:52:00
--  

谢谢狐爸老师!修改后存在两个问题:

1、填报用户组不能加载表,出错

 


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

2、报表年月是指报表的规定时间,是每月25日截止,具体在报表年月列已经反映,可以直接引用。

再次谢谢狐爸老师的指导!!


--  作者:狐狸爸爸
--  发布时间:2011/6/28 16:12:00
--  
 

If e.Form.Controls("ComboBox1").Value Is Nothing Then

    MessageBox.Show("请输入报表年月")

    Return

End If

Dim ym As String = e.Form.Controls("ComboBox1").Value

Dim y As Integer = ym.Substring(0,4)

Dim m As Integer = ym.SubString(4,2)

Dim dt2 As Date = new Date(y,m,25)

Dim dt1 As Date = dt2.AddMonths(-1)

Dim Filter As String = "日期 >= #" & dt1 &  "# And 日期 <= #" & dt2 & "#"

If user.Group = "填报" Then

   filter = filter & " And 单位 = \'"  & user.name & "\'"

End If

DataTables("日报源表").LoadFilter = filter

DataTables("日报源表").Load


--  作者:yyzlxc
--  发布时间:2011/6/28 17:11:00
--  

谢谢狐爸老师!填报用户组的问题已经解决,但是报表年月还是存在问题,主要是我没有表述清楚。因为一月份是1-25日,12月份是上月的26-本月的31日,其他月份是上月的26-本月的25日,所以用代码很麻烦,因此我已经增加一列辅助列--报表年月,与以上规律对应。因此,只要引用combobox1所选用的值,就可以作为加载数据的条件之一,问题是这一行代码不知如何写。所以,还请狐爸老师费神指教,再次感谢!!


--  作者:yyzlxc
--  发布时间:2011/6/28 19:08:00
--  

对狐爸老师的代码进行修改后运行出错,请各位老师帮忙看看,错在哪里?

 

If e.Form.Controls("ComboBox1").Value Is Nothing Then
    MessageBox.Show("请输入报表年月")
    Return
End If
Dim ym As String = e.Form.Controls("ComboBox1").Value
Dim Filter As String = "报表年月 = " & ym &  ""
If user.Group = "填报" Then
   filter = filter & " And 单位 = \'"  & user.name & "\'"
End If
DataTables("日报源表").LoadFilter = filter
DataTables("日报源表").Load

 

 


图片点击可在新窗口打开查看此主题相关图片如下:aa.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2011-6-28 19:08:41编辑过]

--  作者:yyzlxc
--  发布时间:2011/6/28 19:37:00
--  

终于找到问题所在,代码中缺少两个分号:

 

If e.Form.Controls("ComboBox1").Value Is Nothing Then
    MessageBox.Show("请输入报表年月")
    Return
End If
Dim ym As String = e.Form.Controls("ComboBox1").Value
Dim Filter As String = "报表年月 = \'" & ym &  "\'"
If user.Group = "填报" Then
   filter = filter & " And 单位 = \'"  & user.name & "\'"
End If
DataTables("日报源表").LoadFilter = filter
DataTables("日报源表").Load

 

问题全部解决,谢谢老师们的热心指教!!


--  作者:狐狸爸爸
--  发布时间:2011/6/29 8:03:00
--  
图片点击可在新窗口打开查看