Foxtable(狐表)用户栏目专家坐堂 → [求助]开一个帖请教问题~


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

主题:[求助]开一个帖请教问题~

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/13 11:51:00 [显示全部帖子]

 代码

 

Tables("装配表").DataTable.DeleteFor(" [日期] = '" & e.Form.Controls("DateTimePicker1").Value & "'")
Tables("装配表").Filter=" [日期] = '" & e.Form.Controls("DateTimePicker1").Value & "'"
SystemReady = False
Dim n,n1,n2 As Integer

Dim d As Date = e.Sender.Text

Dim drs As List(Of DataRow) = DataTables("蔬菜采收表").Select("日期 = #" & d & "#")
Dim drs_y As List(Of DataRow) = DataTables("蔬菜采收表").Select("日期 = #" & d.AddDays(-1) & "#")
Dim drs_by As List(Of DataRow) = DataTables("蔬菜采收表").Select("日期 = #" & d.AddDays(-2) & "#")
For Each dr As DataRow In DataTables("当天配送会员").Select("日期 = #" & d & "#")
    '统计是否满足装箱总斤数
    n=0
    n1=0
    n2=0
    Dim idx As Integer = 0
    For Each cdr As DataRow In drs
        Dim ndr As DataRow = DataTables("装配表").addnew
        If idx < drs_y.Count - 1 Then
            ndr("昨天品种") = drs_y(idx)("品种")
            Dim fdr_y As DataRow = DataTables("蔬菜喜好表").Find("会员编号 = '" & dr("会员编号") & "' and 产品 = '" & drs_y(idx)("品种") & "'")
            If fdr_y IsNot Nothing Then
                If fdr_y("喜好") = "吃" Then
                    ndr("昨天配比") = 1
                ElseIf fdr_y("喜好") = "爱吃" Then
                    ndr("昨天配比") = 2
                Else
                    ndr("昨天配比") = 0
                End If
                '没有找到记录     '
            Else
                n1=n1+1
                If n1<=5 Then
                    ndr("昨天配比") = 1
                Else
                    ndr("昨天配比") = 0
                End If
            End If
           
        End If
        If idx < drs_by.Count - 1 Then
            ndr("前天品种") = drs_by(idx)("品种")
            Dim fdr_by As DataRow = DataTables("蔬菜喜好表").Find("会员编号 = '" & dr("会员编号") & "' and 产品 = '" & drs_by(idx)("品种") & "'")
            If fdr_by IsNot Nothing Then
                If fdr_by("喜好") = "吃" Then
                    ndr("前天配比") = 1
                ElseIf fdr_by("喜好") = "爱吃" Then
                    ndr("前天配比") = 2
                Else
                    ndr("前天配比") = 0
                End If
                '没有找到记录     '
            Else
                n2=n2+1
                If n2<=5 Then
                    ndr("前天配比") = 1
                Else
                    ndr("前天配比") = 0
                End If
            End If
        End If
        ndr("日期") = dr("日期")
        ndr("会员编号") = dr("会员编号")
        ndr("品种") = cdr("品种")
        ndr("装箱总斤数")=dr("装箱斤数")
        Dim fdr As DataRow = DataTables("蔬菜喜好表").Find("会员编号 = '" & dr("会员编号") & "' and 产品 = '" & cdr("品种") & "'")
       
        If fdr IsNot Nothing Then
            ndr("喜好") = fdr("喜好")
            If fdr("喜好") = "吃" Then
                ndr("配比") = 1
            ElseIf fdr("喜好") = "爱吃" Then
                ndr("配比") = 2
            Else
                ndr("配比") = 0
            End If
            '没有找到记录     '
        Else
            n=n+1
            If n<=5 Then
                ndr("喜好")="吃"
                ndr("配比") = 1
            Else
                ndr("喜好")="不吃"
                ndr("配比") = 0
            End If
        End If
       
       
        idx += 1
    Next
Next
For Each dr As DataRow In DataTables("装配表").Select("日期 = #" & d & "#")
    dr("小计") = DataTables("装配表").compute("sum(配比)", "日期 = #" & dr("日期") & "# and 会员编号 = '" & dr("会员编号") & "'")
    dr("装箱参考")=dr("配比")
Next

SystemReady = True

Dim t As Table = Forms("装配窗体").Controls("Table1").Table
Dim b As New GroupTableBuilder("统计表1", DataTables("装配表"))
b.Groups.AddDef("品种") '根据产品分组
b.Totals.AddDef("配比", AggregateEnum.Sum, "总数量") '对数量进行统计
b.Filter = "日期 = #" & d & "#"
t.DataSource = b.BuildDataSource '生成统计表
t.DataTable.DataCols.Add("实际产量", Gettype(Integer))
For Each r As Row In t.Rows
    Dim fdr As DataRow = DataTables("蔬菜采收表").Find("日期 = #" & d & "# And 品种 = '" & r("品种") & "'")
    If fdr IsNot Nothing Then
        r("实际产量") = fdr("实际产量")
    End If
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/13 12:26:00 [显示全部帖子]

 把 If idx < drs_by.Count - 1 Then

 

 改成 If idx < drs_by.Count Then


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/14 20:58:00 [显示全部帖子]

Dim d As Date = e.Sender.Text
If DataTables("装配表").Find("日期 = #" & Date.Today & "#") Is Nothing Then
SystemReady = False
Dim n,n1,n2 As Integer
Dim drs As List(Of DataRow) = DataTables("蔬菜采收表").Select("日期 = #" & d & "#")
Dim drs_y As List(Of DataRow) = DataTables("蔬菜采收表").Select("日期 = #" & d.AddDays(-1) & "#")
Dim drs_by As List(Of DataRow) = DataTables("蔬菜采收表").Select("日期 = #" & d.AddDays(-2) & "#")
For Each dr As DataRow In DataTables("当天配送会员").Select("日期 = #" & d & "#")
    '统计是否满足装箱总斤数
    n=0
    n1=0
    n2=0
    Dim idx As Integer = 0
    For Each cdr As DataRow In drs
        Dim ndr As DataRow = DataTables("装配表").addnew
        If idx < drs_y.Count  Then
            ndr("昨天品种") = drs_y(idx)("品种")
            Dim fdr_y As DataRow = DataTables("蔬菜喜好表").Find("会员编号 = '" & dr("会员编号") & "' and 产品 = '" & drs_y(idx)("品种") & "'")
            If fdr_y IsNot Nothing Then
                If fdr_y("喜好") = "吃" Then
                    ndr("昨天配比") = 1
                ElseIf fdr_y("喜好") = "爱吃" Then
                    ndr("昨天配比") = 2
                Else
                    ndr("昨天配比") = 0
                End If
                '没有找到记录     '
            Else
                n1=n1+1
                If n1<=5 Then
                    ndr("昨天配比") = 1
                Else
                    ndr("昨天配比") = 0
                End If
            End If
           
        End If
        If idx < drs_by.Count  Then
            ndr("前天品种") = drs_by(idx)("品种")
            Dim fdr_by As DataRow = DataTables("蔬菜喜好表").Find("会员编号 = '" & dr("会员编号") & "' and 产品 = '" & drs_by(idx)("品种") & "'")
            If fdr_by IsNot Nothing Then
                If fdr_by("喜好") = "吃" Then
                    ndr("前天配比") = 1
                ElseIf fdr_by("喜好") = "爱吃" Then
                    ndr("前天配比") = 2
                Else
                    ndr("前天配比") = 0
                End If
                '没有找到记录     '
            Else
                n2=n2+1
                If n2<=5 Then
                    ndr("前天配比") = 1
                Else
                    ndr("前天配比") = 0
                End If
            End If
        End If
        ndr("日期") = dr("日期")
        ndr("会员编号") = dr("会员编号")
        ndr("品种") = cdr("品种")
        ndr("装箱总斤数")=dr("装箱斤数")
        Dim fdr As DataRow = DataTables("蔬菜喜好表").Find("会员编号 = '" & dr("会员编号") & "' and 产品 = '" & cdr("品种") & "'")
       
        If fdr IsNot Nothing Then
            ndr("喜好") = fdr("喜好")
            If fdr("喜好") = "吃" Then
                ndr("配比") = 1
            ElseIf fdr("喜好") = "爱吃" Then
                ndr("配比") = 2
            Else
                ndr("配比") = 0
            End If
            '没有找到记录     '
        Else
            n=n+1
            '配比超过5斤
            If n<=5 Then
                ndr("喜好")="吃"
                ndr("配比") = 1
            Else
                ndr("喜好")="吃"
                ndr("配比") = 0
            End If
        End If
       
       
        idx += 1
    Next
Next
For Each dr As DataRow In DataTables("装配表").Select("日期 = #" & d & "#")
    dr("小计") = DataTables("装配表").compute("sum(配比)", "日期 = #" & dr("日期") & "# and 会员编号 = '" & dr("会员编号") & "'")
    dr("装箱参考")=dr("配比")
Next
SystemReady = True
End If


Dim t As Table = Forms("装配窗体").Controls("Table1").Table
Dim b As New GroupTableBuilder("统计表1", DataTables("装配表"))
b.Groups.AddDef("品种") '根据产品分组
b.Totals.AddDef("配比", AggregateEnum.Sum, "总数量") '对数量进行统计
b.Filter = "日期 = #" & d & "#"
t.DataSource = b.BuildDataSource '生成统计表
t.DataTable.DataCols.Add("实际产量", Gettype(Integer))
For Each r As Row In t.Rows
    Dim fdr As DataRow = DataTables("蔬菜采收表").Find("日期 = #" & d & "# And 品种 = '" & r("品种") & "'")
    If fdr IsNot Nothing Then
        r("实际产量") = fdr("实际产量")
    End If
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/14 21:26:00 [显示全部帖子]

Dim d As Date = e.Sender.Text
If DataTables("装配表").Find("日期 = #" & Date.Today & "#") Is Nothing Then
    SystemReady = False
    Dim n,n1,n2 As Integer
    Dim drs As List(Of DataRow) = DataTables("蔬菜采收表").Select("日期 = #" & d & "#")
    Dim drs_y As List(Of DataRow) = DataTables("蔬菜采收表").Select("日期 = #" & d.AddDays(-1) & "#")
    Dim drs_by As List(Of DataRow) = DataTables("蔬菜采收表").Select("日期 = #" & d.AddDays(-2) & "#")
    For Each dr As DataRow In DataTables("当天配送会员").Select("日期 = #" & d & "#")
        '统计是否满足装箱总斤数
        n=0
        n1=0
        n2=0
        Dim idx As Integer = 0
        For Each cdr As DataRow In drs
            Dim ndr As DataRow = DataTables("装配表").addnew
            If idx < drs_y.Count  Then
                ndr("昨天品种") = drs_y(idx)("品种")
                Dim fdr_y As DataRow = DataTables("蔬菜喜好表").Find("会员编号 = '" & dr("会员编号") & "' and 产品 = '" & drs_y(idx)("品种") & "'")
                If fdr_y IsNot Nothing Then
                    If fdr_y("喜好") = "吃" Then
                        n1=n1+1
                        If n1<=5 Then
                            ndr("昨天配比") = 1
                        Else
                            ndr("昨天配比") = 0
                        End If
                    ElseIf fdr_y("喜好") = "爱吃" Then
                        ndr("昨天配比") = 2
                        n1=n1+2
                        If n1<=5 Then
                            ndr("昨天配比") = 2
                        Else
                            ndr("昨天配比") = 0
                        End If
                    Else
                        ndr("昨天配比") = 0
                    End If
                    '没有找到记录     '
                Else
                    n1=n1+1
                    If n1<=5 Then
                        ndr("昨天配比") = 1
                    Else
                        ndr("昨天配比") = 0
                    End If
                End If
               
            End If
            If idx < drs_by.Count  Then
                ndr("前天品种") = drs_by(idx)("品种")
                Dim fdr_by As DataRow = DataTables("蔬菜喜好表").Find("会员编号 = '" & dr("会员编号") & "' and 产品 = '" & drs_by(idx)("品种") & "'")
                If fdr_by IsNot Nothing Then
                    If fdr_by("喜好") = "吃" Then
                        n2=n2+1
                        If n2<=5 Then
                            ndr("前天配比") = 1
                        Else
                            ndr("前天配比") = 0
                        End If
                    ElseIf fdr_by("喜好") = "爱吃" Then
                        n2=n2+2
                        If n2<=5 Then
                            ndr("前天配比") = 2
                        Else
                            ndr("前天配比") = 0
                        End If
                    Else
                        ndr("前天配比") = 0
                    End If
                    '没有找到记录     '
                Else
                    n2=n2+1
                    If n2<=5 Then
                        ndr("前天配比") = 1
                    Else
                        ndr("前天配比") = 0
                    End If
                End If
            End If
            ndr("日期") = dr("日期")
            ndr("会员编号") = dr("会员编号")
            ndr("品种") = cdr("品种")
            ndr("装箱总斤数")=dr("装箱斤数")
            Dim fdr As DataRow = DataTables("蔬菜喜好表").Find("会员编号 = '" & dr("会员编号") & "' and 产品 = '" & cdr("品种") & "'")
           
            If fdr IsNot Nothing Then
                ndr("喜好") = fdr("喜好")
                If fdr("喜好") = "吃" Then
                    n=n+1
                    '配比超过5斤
                    If n<=5 Then
                        ndr("配比") = 1
                    Else
                        ndr("配比") = 0
                    End If
                ElseIf fdr("喜好") = "爱吃" Then
                    n=n+2
                    '配比超过5斤
                    If n<=5 Then
                        ndr("配比") = 1
                    Else
                        ndr("配比") = 0
                    End If
                Else
                    ndr("配比") = 0
                End If
                '没有找到记录     '
            Else
                n=n+1
                '配比超过5斤
                If n<=5 Then
                    ndr("喜好")="吃"
                    ndr("配比") = 1
                Else
                    ndr("喜好")="吃"
                    ndr("配比") = 0
                End If
            End If
           
           
            idx += 1
        Next
    Next
    For Each dr As DataRow In DataTables("装配表").Select("日期 = #" & d & "#")
        dr("小计") = DataTables("装配表").compute("sum(配比)", "日期 = #" & dr("日期") & "# and 会员编号 = '" & dr("会员编号") & "'")
        dr("装箱参考")=dr("配比")
    Next
    SystemReady = True
End If


'后面不写了

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/14 22:08:00 [显示全部帖子]

 currentChanged 事件,加入代码

 

Dim r As Row = e.Table.Current
If r Is Nothing Then Return

If Forms("装配窗体").Opened Then
    Dim fdr As DataRow = DataTables("蔬菜喜好表").Find("会员编号 = '" & r("会员编号") & "' and 产品 = '" & r("品种") & "'")
    If fdr IsNot Nothing Then
        Forms("装配窗体").Controls("TextBox1").Text = fdr("备注")
    End If
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/22 10:35:00 [显示全部帖子]

ndr("配比") = 1 
ndr("喜好参考")=1

 

改成

 

ndr("配比") = not ndr("昨天配比")     
ndr("喜好参考")=1

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/22 10:48:00 [显示全部帖子]

 那就这样改

 

ndr("配比") = 1 
ndr("喜好参考")=1

 

改成

 

ndr("配比") = IIF(ndr("昨天配比")>0, 0, 1)
ndr("喜好参考")=1


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/22 11:16:00 [显示全部帖子]

这个就没办法,你要求的是根据配比来做,吃或不吃,你的数据没有体现出来。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/22 11:23:00 [显示全部帖子]

 那现在代码有什么问题,这句代码明细没有错啊 ndr("配比") = IIF(ndr("昨天配比")>0, 0, 1)

 

[此贴子已经被作者于2014-7-22 11:22:55编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/22 11:44:00 [显示全部帖子]

 需要单独去做一个权限表

 

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

 


 回到顶部
总数 12 1 2 下一页