Foxtable(狐表)用户栏目专家坐堂 → 关联表内容填充代码请求帮忙


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

主题:关联表内容填充代码请求帮忙

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


加好友 发短信
等级:二尾狐 帖子:573 积分:4653 威望:0 精华:0 注册:2014/7/3 15:28:00
关联表内容填充代码请求帮忙  发帖心情 Post By:2015/12/24 7:43:00 [只看该作者]

我做了个“物料中心”表并关联一个“交易明细”的子表,子表是空白的,想从一“采购单”下关联的“采购明细”子表和一“发料单”下关联的“发料明细”子表中的内容做填充(所有关联都采用物料编号为关联,交易明细是锁定不可编辑的)。

即:采购明细增加(或删除)一行,交易明细中对应的也增加(或删除)一行,发料明细增加(或删除)一行,也在交易明细中对应的物料行里增加(或者删除)一行,用来快速方便的查阅该物料的变动情况


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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/12/24 8:08:00 [只看该作者]


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


加好友 发短信
等级:二尾狐 帖子:573 积分:4653 威望:0 精华:0 注册:2014/7/3 15:28:00
  发帖心情 Post By:2015/12/24 17:23:00 [只看该作者]

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("规格型号")
             dr("入库单号") = e.DataRow("入库单号")
              dr("入库数量") = e.DataRow("入库数量")
             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

 

这样效果是达到了,不过只是选择物料编号后,其它列里不动的内容都可以填充,但是其中“入库数量”列输入数据后,物料明细表了对应列不发生改变,都是0,请教如何操作。


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


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

Case  "产品名称","规格型号"

 

改成

 

Case  "物料名称", "入库单号", "入库数量"


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


加好友 发短信
等级:二尾狐 帖子:573 积分:4653 威望:0 精华:0 注册:2014/7/3 15:28:00
  发帖心情 Post By:2015/12/24 18:07:00 [只看该作者]

这样的话,数据是发生变化了,但是效果明显没有第一种好,因为这样的话,会导致各个表操作后,都只在第一行发生变化,其它行都没有了


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


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

那你改成replacefor

 

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

 

 

 


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


加好友 发短信
等级:二尾狐 帖子:573 积分:4653 威望:0 精华:0 注册:2014/7/3 15:28:00
  发帖心情 Post By:2015/12/24 18:57:00 [只看该作者]

用replacefor怎样确定Value值啊?

DataTables("物料明细").ReplaceFor("入库数量", "入库数量")  ?


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


加好友 发短信
等级:二尾狐 帖子:573 积分:4653 威望:0 精华:0 注册:2014/7/3 15:28:00
  发帖心情 Post By:2015/12/24 19:14:00 [只看该作者]

经观察,采用3楼代码如果是先输入入库数量,后输入物料编号的情况下,则”物料明细“表的入库数量数据可以发生改变,如此的话,是否可以把3楼的代码改为按钮”保存“的代码,即先填写进内容后,再按保存按钮,不知道能否实现,请教代码如何改写,谢谢了


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


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

beforeSaveDataRow是事件

 

Dim dr As DataRow = DataTables("物料明细").Find("物料编号 = '" & e.DataRow("物料编号") & "'")
If dr IsNot Nothing Then
    dr("入库数量") = e.DataRow("入库数量")
End If


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


加好友 发短信
等级:二尾狐 帖子:573 积分:4653 威望:0 精华:0 注册:2014/7/3 15:28:00
  发帖心情 Post By:2015/12/24 19:53:00 [只看该作者]

9楼代码后,物料明细中也是只有一行的入库数量发生改变,后续的都不发生改变,只在第一行发生改变

 回到顶部
总数 47 1 2 3 4 5 下一页