Foxtable(狐表)用户栏目专家坐堂 → 多表内容的提取


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

主题:多表内容的提取

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


加好友 发短信
等级:幼狐 帖子:99 积分:852 威望:0 精华:0 注册:2015/6/19 14:35:00
多表内容的提取  发帖心情 Post By:2016/6/7 17:52:00 [只看该作者]

有价格表2015、价格表2016、价格表2014~~,这些表的结构完全一样。含零件图号、零件名称、车型、价格等。

现我需要一张汇总表:1、当上述表增加零件图号时,就把新零件图号增加到汇总表,但是不重复。2、通过零件图号导入零件名称、车型。3、不同列导入价格,即第一列的价格来源价格表2014,第一列的价格来源价格表2015,第一列的价格来源价格表2016.如果此图号仅在某一表有价格,那就此列有数据,其他列为空。

能否实现,谢谢


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/6/8 8:01:00 [只看该作者]

第一个问题,参考:

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

 

第二个和第三个问题,参考:

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

 

先参考上述帮助解决,如果搞不定,可以上传例子。

 


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


加好友 发短信
等级:幼狐 帖子:99 积分:852 威望:0 精华:0 注册:2015/6/19 14:35:00
  发帖心情 Post By:2016/6/14 11:15:00 [只看该作者]

 If e.Row("车型") IsNot "售后"  Then
Select Case e.DataCol.name
 
    Case "零件图号"
        Dim dr As DataRow = DataTables("价格汇总表").Find("零件

图号 = '" & e.OldValue & "'")
        If dr Is Nothing Then
            dr = DataTables("格汇总表").AddNew()
            dr("零件图号") = e.DataRow("零件图号")
            dr("零件名称") = e.DataRow("零件名称")
            dr("车型") = e.DataRow("车型")
        Else
            dr("零件图号") = e.DataRow("零件图号")
        End If
    Case "零件名称","车型"
        Dim dr As DataRow = DataTables("价格汇总表").Find("零件

图号 = '" & e.DataRow("零件图号") & "'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select

  增加功能已经具有了,但是还有判断没有实现:

 1、“车型”不是“售后”才执行此程序。

2、汇总表来自多表零件图号一致时,仅增加一行。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/14 12:25:00 [只看该作者]

If e.DataRow("车型") <> "售后"  Then
    Select Case e.DataCol.name
        Case "零件图号"
            Dim dr As DataRow = DataTables("价格汇总表").Find("零件图号 = '" & e.OldValue & "'")
            If dr Is Nothing Then
                dr = DataTables("价格汇总表").AddNew()
                dr("零件图号") = e.DataRow("零件图号")
                dr("零件名称") = e.DataRow("零件名称")
                dr("车型") = e.DataRow("车型")
            Else
                dr("零件图号") = e.DataRow("零件图号")
            End If
        Case "零件名称","车型"
            Dim dr As DataRow = DataTables("价格汇总表").Find("零件图号 = '" & e.DataRow("零件图号") & "'")
            If dr IsNot Nothing Then
                dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
            End If
    End Select
End If

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


加好友 发短信
等级:幼狐 帖子:99 积分:852 威望:0 精华:0 注册:2015/6/19 14:35:00
  发帖心情 Post By:2016/6/14 14:07:00 [只看该作者]

2、汇总表来自多表零件图号相同时,仅增加一行不能实现。如图,我希望只显示一行的图号就可以了。


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

随便问句:怎么固定按某一列排序显示,每次登陆都变化为按序号去了。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/14 14:18:00 [只看该作者]

If e.DataRow("车型") <> "售后"  Then
    Select Case e.DataCol.name
        Case "零件图号"
            If e.newvalue > "" Then
                Dim dr As DataRow = DataTables("价格汇总表").Find("零件图号 = '" & e.newValue & "'")
                If dr Is Nothing Then
                    dr = DataTables("价格汇总表").AddNew()
                    dr("零件图号") = e.DataRow("零件图号")
                    dr("零件名称") = e.DataRow("零件名称")
                    dr("车型") = e.DataRow("车型")
                End If
            End If
        Case "零件名称","车型"
            Dim dr As DataRow = DataTables("价格汇总表").Find("零件图号 = '" & e.DataRow("零件图号") & "'")
            If dr IsNot Nothing Then
                dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
            End If
    End Select
End If

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


加好友 发短信
等级:幼狐 帖子:99 积分:852 威望:0 精华:0 注册:2015/6/19 14:35:00
  发帖心情 Post By:2016/6/14 14:27:00 [只看该作者]

 

上述程序使这些价格表2015、价格表2016、价格表2014~~,不能录入相同图号了。

目的是使这些非关系的价格表2015、价格表2016、价格表2014~~,主要信息汇总,汇总唯一性是零件图号。但不能限制原表的任何东西。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/14 15:08:00 [只看该作者]

 6楼代码,不会影响各个表录入任意数据的啊。

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


加好友 发短信
等级:幼狐 帖子:99 积分:852 威望:0 精华:0 注册:2015/6/19 14:35:00
  发帖心情 Post By:2016/6/14 16:43:00 [只看该作者]

If e.DataCol.Name = "零件图号" Then
    Dim dr As DataRow
    dr = DataTables("价格表2015").Find("零件图号 = '" &

e.DataRow("零件图号") & "'" )
    If dr IsNot Nothing
        e.DataRow("年2015_A点_供应商简称")= dr("A点_供应商简称")
        e.DataRow("年2015_A点_含税单价")= dr("A点_含税单价_更新

后")
        e.DataRow("年2015_B点_供应商简称")= dr("B点_供应商简称")
        e.DataRow("年2015_B点_含税单价")= dr("B点_含税单价_更新

后")
    End If
End If
If e.DataCol.Name = "零件图号" Then
    Dim dr As DataRow
    dr = DataTables("价格表2016").Find("零件图号 = '" &

e.DataRow("零件图号") & "'" )
    If dr IsNot Nothing
        e.DataRow("年2016_A点_供应商简称")= dr("A点_供应商简称")
        e.DataRow("年2016_A点_含税单价")= dr("A点_含税单价_更新

后")
        e.DataRow("年2016_B点_供应商简称")= dr("B点_供应商简称")
        e.DataRow("年2016_B点_含税单价")= dr("B点_含税单价_更新

后")
    End If
End If

第二、第三个问题没有数据过来。而且希望是同步更新的那种。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/14 16:55:00 [只看该作者]

 拷贝6楼的代码,写到各个表(2014、2015、2016)的datacolchanged事件去


 回到顶部