以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]两个表格中数据对应行设置关联并增加对应那么多行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=52478)

--  作者:good131577
--  发布时间:2014/6/16 21:57:00
--  [求助]两个表格中数据对应行设置关联并增加对应那么多行
我是foxtable开发版用户 新手 ~
求助问题:
我有一个 当天配送会员表 以及 装配表 字段如图所示
要求 选择装配表里的日期 可以自动筛选出 当天配送会员表中对应日期的
图片点击可在新窗口打开查看此主题相关图片如下:31.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:32.png
图片点击可在新窗口打开查看
员编号并复制到装配表里面的会员编号字段 

比如 当天配送会员表 2014-06-12 有4个会员编号7012 7013 7014 7015 
想实现当点击装配表里面的日期选2014-06-12 时 自动增加4行 (增加的行数是根据当天配送会员表里的日期对应的会员数目确定的)
4行记录 日期都是2014-06-12 然后会员编号复制到每一行来

这个代码怎么实现啊~ 求大神指点 麻烦解决下 新手不懂

--  作者:有点甜
--  发布时间:2014/6/16 22:07:00
--  

 这个简单,编写Datacolchanged事件

 

SystemReady = False
Select Case e.DataCol.name
    Case "日期"
        If e.DataRow.Isnull("日期") = False Then
            For Each dr As DataRow In DataTables("当天配送会员").Select("日期 = #" & e.DataRow("日期") & "#")
                Dim ndr As DataRow = e.DataTable.addnew
                ndr("日期") = dr("日期")
                ndr("会员编号") = dr("会员编号")
            Next
            e.DataRow.Delete
        End If      
End Select
SystemReady = True

[此贴子已经被作者于2014-6-16 22:07:48编辑过]

--  作者:good131577
--  发布时间:2014/6/16 22:39:00
--  问一个
厉害了 功能实现了~
能不能麻烦在问个问题 我具体功能是这样的

还有个蔬菜采收表
当点击装配表里面的日期按钮 首
图片点击可在新窗口打开查看此主题相关图片如下:33.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:34.png
图片点击可在新窗口打开查看
先是根据日期筛选出对应日期 配送会员里面的所有会员
其次 是看蔬菜采收表对应日期里面 有多少品种的蔬菜 对每个客户编号那一行又变成 蔬菜采收表里面对应日期的品种数目行数并复制到对应的品种字段

例如 蔬菜采收表 2014-06-12有 5种品种 上海青 苦瓜 丝瓜 西红柿 黄瓜
我最终是想变成 当点击装配表里面的日期 如2014-06-12 生成4 * 5 =20行数据 
大概这样的形式:
2014-06-12 7012 上海青
2014-06-12 7012 苦瓜
2014-06-12 7012 丝瓜
2014-06-12 7012 西红柿
2014-06-12 7012 黄瓜
2014-06-12 7013 上海青
2014-06-12 7013 苦瓜
2014-06-12 7013 丝瓜
2014-06-12 7013 西红柿
2014-06-12 7013 黄瓜

麻烦能不能解决下~

--  作者:有点甜
--  发布时间:2014/6/16 22:49:00
--  

如下

 

SystemReady = False
Select Case e.DataCol.name
    Case "日期"
        If e.DataRow.Isnull("日期") = False Then
            Dim drs As List(Of DataRow) = DataTables("蔬菜收集表").Select("日期 = #" & e.DataRow("日期") & "#")
            For Each dr As DataRow In DataTables("当天配送会员").Select("日期 = #" & e.DataRow("日期") & "#")
                For Each cdr As DataRow In drs
                    Dim ndr As DataRow = e.DataTable.addnew
                    ndr("日期") = dr("日期")
                    ndr("会员编号") = dr("会员编号")
                    ndr("品种") = cdr("品种")
                Next
            Next
            e.DataRow.Delete
        End If
End Select
SystemReady = True

 


--  作者:good131577
--  发布时间:2014/6/16 23:11:00
--  腻害啊 可以了~
腻害啊 可以了~赞

最后一个进一步功能了 麻烦了
形成了 
2014-06-12 7012 上海青
2014-06-12 7012 苦瓜
2014-06-12 7012 丝瓜
2014-06-12 7012 西红柿
2014-06-12 7012 黄瓜
装配表里面还有两个字段 喜好 和 配比
 喜好 是从蔬菜喜好表 根据会员编号和产品来判断对应会员 吃不吃 根据这个表对喜好字段赋值过去
 配比字段 如果喜好是吃或者爱吃 配比设置为1 如果喜好是不吃 配比设置为0

最终形成大概这样:
2014-06-12 7012 上海青 吃     1
2014-06-12 7012 苦瓜   不吃   0
2014-06-12 7012 丝瓜   吃      1
2014-06-12 7012 西红柿 爱吃   1
2014-06-12 7012 黄瓜   吃      1

--  作者:good131577
--  发布时间:2014/6/16 23:13:00
--  
忘记附图了 不好意思~
图片点击可在新窗口打开查看此主题相关图片如下:35.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:36.png
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2014/6/16 23:19:00
--  
SystemReady = False
Select Case e.DataCol.name
    Case "日期"
        If e.DataRow.Isnull("日期") = False Then
            Dim drs As List(Of DataRow) = DataTables("蔬菜收集表").Select("日期 = #" & e.DataRow("日期") & "#")
            For Each dr As DataRow In DataTables("当天配送会员").Select("日期 = #" & e.DataRow("日期") & "#")
                For Each cdr As DataRow In drs
                    Dim ndr As DataRow = e.DataTable.addnew
                    ndr("日期") = dr("日期")
                    ndr("会员编号") = dr("会员编号")
                    ndr("品种") = cdr("品种")
                    Dim fdr As DataRow = DataTables("蔬菜喜好表").Find("会员编号 = \'" & dr("会员编号") & "\' and 产品 = \'" & dr("品种") & "\'")
                    If fdr IsNot Nothing Then
                        ndr("喜好") = fdr("喜好")
                        If fdr("喜好") = "吃" OrElse fdr("喜好") = "爱吃" Then
                            ndr("配比") = 1
                        Else
                            ndr("配比") = 0
                        End If
                    End If
                Next
            Next
            e.DataRow.Delete
        End If
End Select
SystemReady = True

--  作者:good131577
--  发布时间:2014/6/16 23:27:00
--  
.NET Framework 版本:2.0.50727.5456
Foxtable 版本:2014.5.12.1
错误所在事件:表,装配表,DataColChanged
详细错误信息:
调用的目标发生了异常。
列“品种”不属于表 当天配送会员。
出错
图片点击可在新窗口打开查看此主题相关图片如下:37.png
图片点击可在新窗口打开查看

--  作者:good131577
--  发布时间:2014/6/16 23:30:00
--  好像出错了
.NET Framework 版本:2.0.50727.5456
Foxtable 版本:2014.5.12.1
错误所在事件:表,装配表,DataColChanged
详细错误信息:
调用的目标发生了异常。
列“品种”不属于表 当天配送会员。
出错  品种属于其他表格的?

--  作者:有点甜
--  发布时间:2014/6/17 9:19:00
--  
SystemReady = False
Select Case e.DataCol.name
    Case "日期"
        If e.DataRow.Isnull("日期") = False Then
            Dim drs As List(Of DataRow) = DataTables("蔬菜收集表").Select("日期 = #" & e.DataRow("日期") & "#")
            For Each dr As DataRow In DataTables("当天配送会员").Select("日期 = #" & e.DataRow("日期") & "#")
                For Each cdr As DataRow In drs
                    Dim ndr As DataRow = e.DataTable.addnew
                    ndr("日期") = dr("日期")
                    ndr("会员编号") = dr("会员编号")
                    ndr("品种") = cdr("品种")
                    Dim fdr As DataRow = DataTables("蔬菜喜好表").Find("会员编号 = \'" & dr("会员编号") & "\' and 产品 = \'" & cdr("品种") & "\'")
                    If fdr IsNot Nothing Then
                        ndr("喜好") = fdr("喜好")
                        If fdr("喜好") = "吃" OrElse fdr("喜好") = "爱吃" Then
                            ndr("配比") = 1
                        Else
                            ndr("配比") = 0
                        End If
                    End If
                Next
            Next
            e.DataRow.Delete
        End If
End Select
SystemReady = True