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


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

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

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


加好友 发短信
等级:幼狐 帖子:184 积分:1148 威望:0 精华:0 注册:2014/6/10 20:24:00
还有最后一个问题请教下~  发帖心情 Post By:2014/7/14 21:49:00 [只看该作者]

有点甜大哥 还有最后一个问题~
我现在 在蔬菜喜好表中添加了一列备注  在蔬菜喜好表中 每个客户第一行后面有备注  
想实现装配窗体中 点击对应客户  在窗口当中右下角的控件TextBox中显示 对应客户的备注~  (客服需要根据备注手工微调整配比的值)
比如:7195客户 第一行备注列 值为7195备注测试 当在窗体当中点击会员编号是7195时 右下角TextBox控件值同步为 7195备注测试

这个可以实现吗?要写在什么事件里面呢??
图片点击可在新窗口打开查看此主题相关图片如下:31.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:32.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


加好友 发短信
等级:幼狐 帖子:184 积分:1148 威望:0 精华:0 注册:2014/6/10 20:24:00
可以了 ~非常感谢  发帖心情 Post By:2014/7/14 22:23:00 [只看该作者]

可以了 ~非常感谢!32个赞图片点击可在新窗口打开查看

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


加好友 发短信
等级:幼狐 帖子:184 积分:1148 威望:0 精华:0 注册:2014/6/10 20:24:00
有个新的问题麻烦请教下~  发帖心情 Post By:2014/7/22 10:28:00 [只看该作者]

现在是有个新需求  为了保证昨天跟今天配的菜 不一样~做一些特殊处理  是把今天配比的值 乘以 昨天配比取反的值(昨天有配比过 就变为0)
比如 3007客户 苋菜今天配比值为1  昨天苋菜配比也为1  则苋菜 今天配比的最终值为 今天配比的值1 乘以 昨天苋菜的配比1取反变为0(有配比值就变为0) 最终值变为0  (这样避免每天配的样品重复 后期客服再去手工调整下)

这样代码怎么修改呢,之前代码是这样的:
Tables("装配表").Filter=" [日期] = '" & e.Form.Controls("DateTimePicker1").Value & "'"
Dim d As Date = e.Sender.Text
If DataTables("装配表").Find("日期 = #" & d & "#") 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          大概是这里一段
图片点击可在新窗口打开查看此主题相关图片如下:41.png
图片点击可在新窗口打开查看
改成 1* ndr("昨天配比")取反值吧  取反怎么取呢?
                        ndr("喜好参考")=1
                    Else
                        ndr("配比") = 0
                        ndr("喜好参考")=1
                    End If
                ElseIf fdr("喜好") = "爱吃" Then
                    n=n+2
                    '配比超过5斤
                    If n<=5 Then
                        ndr("配比") = 1
                        ndr("喜好参考")=2
                    Else
                        ndr("配比") = 0
                        ndr("喜好参考")=2
                    End If
                Else
                    ndr("配比") = 0
                    ndr("喜好参考")=0
                End If
                '没有找到记录     '
            Else
                n=n+1
                '配比超过5斤
                If n<=5 Then
                    ndr("喜好")="吃"
                    ndr("配比") = 1
                    ndr("喜好参考")=1
                Else
                    ndr("喜好")="吃"
                    ndr("配比") = 0
                    ndr("喜好参考")=1
                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



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 


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


加好友 发短信
等级:幼狐 帖子:184 积分:1148 威望:0 精华:0 注册:2014/6/10 20:24:00
问题  发帖心情 Post By:2014/7/22 10:46:00 [只看该作者]

改了下面记录 变-2了 本来期望1 变0 就好了的 。。。。。
代码:
Tables("装配表").Filter=" [日期] = '" & e.Form.Controls("DateTimePicker1").Value & "'"
Dim d As Date = e.Sender.Text
If DataTables("装配表").Find("日期 = #" & d & "#") 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斤
图片点击可在新窗口打开查看此主题相关图片如下:44.png
图片点击可在新窗口打开查看
                    If n<=5 Then
                        'ndr("配比") = 1
                        ndr("配比") = not ndr("昨天配比")   
                        ndr("喜好参考")=1
                    Else
                        'ndr("配比") = 0
                        ndr("配比") = not ndr("昨天配比")   
                        ndr("喜好参考")=1
                    End If
                ElseIf fdr("喜好") = "爱吃" Then
                    n=n+2
                    '配比超过5斤
                    If n<=5 Then
                        'ndr("配比") = 1
                        ndr("配比") = not ndr("昨天配比")   
                        ndr("喜好参考")=2
                    Else
                        'ndr("配比") = 0
                        ndr("配比") = not ndr("昨天配比")   
                        ndr("喜好参考")=2
                    End If
                Else
                    ndr("配比") = 0
                    ndr("喜好参考")=0
                End If
                '没有找到记录     '
            Else
                n=n+1
                '配比超过5斤
                If n<=5 Then
                    ndr("喜好")="吃"
                    'ndr("配比") = 1
                    ndr("配比") = not ndr("昨天配比")   
                    ndr("喜好参考")=1
                Else
                    ndr("喜好")="吃"
                    'ndr("配比") = 0
                    ndr("配比") = not ndr("昨天配比")   
                    ndr("喜好参考")=1
                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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


加好友 发短信
等级:幼狐 帖子:184 积分:1148 威望:0 精华:0 注册:2014/6/10 20:24:00
这样写的话 好像有点小问题~  发帖心情 Post By:2014/7/22 11:13:00 [只看该作者]

就是 昨天配比假设为0的 有可能是该客户不吃这个品种导致值为0  取相反 今天配比就为1了  这个好像就不对了?

之前想法是 今天配比的值 乘以 昨天配比取反的值    这样昨天配比取反为1  但今天配比还是0 最终计算出结果还是为0    

就是好像会有这样一个问题....

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


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

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

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


加好友 发短信
等级:幼狐 帖子:184 积分:1148 威望:0 精华:0 注册:2014/6/10 20:24:00
..  发帖心情 Post By:2014/7/22 11:21:00 [只看该作者]

今天配比的值 可以体现出该客户吃还是不吃的吧?  因为不吃的话 今天配比原先设置都是0  吃和爱吃都为1 
然后我们在此基础上   今天配比值 乘以 昨天配比的值 得到 最终的 今天配比值   就能保证不重样 
而且 不吃的原先今天配比值0 乘以任何值都为0吧   
吃的今天配比值1  乘以昨天配过的反值 会变为0   乘以昨天没配过的反值 值仍为1  
这个思想貌似行的通吧?


 回到顶部
总数 27 上一页 1 2 3 下一页