以文本方式查看主题

-  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=31625)

--  作者:yiyinggeng
--  发布时间:2013/4/18 11:36:00
--  [求助]根据数据填充时,只有一个时间有效。

对编码几乎不理解,请教如何修改。

 

Dim f As New Filler
f.SourceTable = DataTables("员工工资明细表") \'指定数据来源
f.SourceCols = "日期,姓名,工资" \'指定数据来源列
With e.Form.Controls("DateTimePicker1")
    If .Value IsNot Nothing Then
        If f.Filter >"" Then
            f.Filter = f.Filter & " And "
        End If
        f.Filter =  "日期 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("DateTimePicker2")
    If .Value IsNot Nothing Then
        If f.Filter >"" Then
            f.Filter = f.Filter & " And "
        End If
        f.Filter =  "日期 <= #" & .Value & "#"
    End If
End With
f.DataTable = DataTables("员工日工资表") \'指定数据接收表
f.DataCols = "日期,姓名,当天工资" \'指定数据接收列
f.Fill() \'填充数据


--  作者:XYT
--  发布时间:2013/4/18 11:39:00
--  
什么意思,只有1个日期的才行吗,其他不行?
--  作者:Bin
--  发布时间:2013/4/18 11:40:00
--  

对编码几乎不理解,请教如何修改。

 

Dim f As New Filler
f.SourceTable = DataTables("员工工资明细表") \'指定数据来源
f.SourceCols = "日期,姓名,工资" \'指定数据来源列
With e.Form.Controls("DateTimePicker1")
    If .Value IsNot Nothing Then
        If f.Filter >"" Then 
这个不是全局变量. 属于永远不会执行的代码.
            f.Filter = f.Filter & " And "
        End If 
        f.Filter =  "日期 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("DateTimePicker2")
    If .Value IsNot Nothing Then
        If f.Filter >"" Then    
            f.Filter = f.Filter & " And "
        End If 
        f.Filter =  "日期 <= #" & .Value & "#"
    End If
End With
f.DataTable = DataTables("员工日工资表") \'指定数据接收表
f.DataCols = "日期,姓名,当天工资" \'指定数据接收列
f.Fill() \'填充数据


[此贴子已经被作者于2013-4-18 14:32:18编辑过]

--  作者:yiyinggeng
--  发布时间:2013/4/18 12:26:00
--  
请教如何修改,2个日期能够同时有效。
--  作者:狐狸爸爸
--  发布时间:2013/4/18 14:30:00
--  

Dim f As New Filler
f.SourceTable = DataTables("员工工资明细表") \'指定数据来源
f.SourceCols = "日期,姓名,工资" \'指定数据来源列
With e.Form.Controls("DateTimePicker1")
    If .Value IsNot Nothing Then
        If f.Filter >"" Then
            f.Filter = f.Filter & " And "
        End If
        f.Filter =  "日期 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("DateTimePicker2")
    If .Value IsNot Nothing Then
        If f.Filter >"" Then   这个不是全局变量. 属于永远不会执行的代码.
            f.Filter = f.Filter & " And "
        End If
        f.Filter = f.Filter &  "日期 <= #" & .Value & "#"
    End If
End With
f.DataTable = DataTables("员工日工资表") \'指定数据接收表
f.DataCols = "日期,姓名,当天工资" \'指定数据接收列
f.Fill() \'填充数据

 


--  作者:yiyinggeng
--  发布时间:2013/4/18 14:55:00
--  

这里如何像 筛选窗口中那样定义组合成多种条件的。这一句只是解决了2个条件的。


--  作者:Bin
--  发布时间:2013/4/18 14:59:00
--  
以下是引用yiyinggeng在2013-4-18 14:55:00的发言:

这里如何像 筛选窗口中那样定义组合成多种条件的。这一句只是解决了2个条件的。

有什么条件 全部拼接进去即可.
--  作者:yiyinggeng
--  发布时间:2013/4/18 15:11:00
--  

这是设计查询窗口窗口时多个条件的代码设置。

我用Filler填充时,定义这些条件时,应怎样编写代码。试了半天,不行。代码很多理解太差。

现阶段,只能边比着葫芦画瓢。

 

 

Dim Filter As String
With
e.Form.Controls("cmbProduct")
   
If .Value IsNot Nothing Then
        Filter =
"产品 = \'" & .Value & "\'"
   
End If
End
With
With
e.Form.Controls("cmbCustomer")
   
If .Value IsNot Nothing Then
       
If Filter > "" Then
            Filter = Filter &
" And "
       
End If
        Filter = Filter &
"客户 = \'" & .Value & "\'"
   
End If
End
With
With
e.Form.Controls("cmbEmployee")
   
If .Value IsNot Nothing Then
       
If Filter >"" Then
            Filter = Filter &
" And "
       
End If
        Filter = Filter &
"雇员 = \'" & .Value & "\'"
   
End If
End
With
With
e.Form.Controls("StartDate")
   
If .Value IsNot Nothing Then
       
If Filter >"" Then
            Filter = Filter &
" And "
       
End If
        Filter = Filter &
"日期 >= #" & .Value & "#"
   
End If
End
With
With
e.Form.Controls("EndDate")
   
If .Value IsNot Nothing Then
       
If Filter >"" Then
            Filter = Filter &
" And "
       
End If
        Filter = Filter &
"日期 <= #" & .Value & "#"
   
End If
End
With
If
e.Form.Controls("rdoYifu").Checked = True \' 如果付款状态选择了"已付"
   
If Filter >"" Then
        Filter = Filter &
" And "
   
End If
    Filter = Filter &
"已付款 = True"
End
If
If
e.Form.Controls("rdoWeifu").Checked = True \' 如果付款状态选择了"未付"
    If
Filter >"" Then
       
Filter = Filter & " And "
   
End If
   
Filter = Filter & "已付款 = False Or 已付款 Is Null"
End If
If
Filter > "" Then
    Tables(
"订单").Filter = Filter
End If


--  作者:Bin
--  发布时间:2013/4/18 15:14:00
--  
代码看起来没问题啊.怎么会没效果呢.你在最后MEssagebox.SHow一下 Filter看看
--  作者:狐狸爸爸
--  发布时间:2013/4/18 15:18:00
--  

好好看看这一章:

http://www.foxtable.com/help/topics/1058.htm

 

实在搞不定,就做个简单的例子发上来。