Foxtable(狐表)用户栏目专家坐堂 → 有个小项目 不知道怎么实施?


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

主题:有个小项目 不知道怎么实施?

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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20057 威望:0 精华:0 注册:2012/5/19 11:57:00
有个小项目 不知道怎么实施?  发帖心情 Post By:2014/10/27 9:02:00 [显示全部帖子]

要求:

有5个表 库存表 进货表 产品目录表 颜色表 仓库

当进货单录入数据时 根据产品编码 颜色  仓库 的变化,来同步更新库存表对应的产品及金额。库存表期初是没有数据的,根据进货单来决定增加的。

 

附上项目

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:库存进货(不用重置).rar


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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20057 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2014/10/27 9:21:00 [显示全部帖子]

代码我也设置了 但是有的问题


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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20057 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2014/10/28 14:43:00 [显示全部帖子]

当产品编码 颜色 仓库 发生变化时 库存相应也会变化

帮忙看一下 案例

 


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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20057 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2014/10/28 15:13:00 [显示全部帖子]

当两个要素同时变化了  库存原来的还存在 不能同步更新 变成2个一样的数据了

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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20057 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2014/10/28 15:22:00 [显示全部帖子]

第一个建议 可以考虑

第二个 如果两个列 都变动了 咋办 只能找到一个旧值

 


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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20057 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2014/10/28 15:27:00 [显示全部帖子]

譬如 产品的颜色 和所属仓库变化了 两个都变化了

 


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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20057 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2014/10/28 15:32:00 [显示全部帖子]

那要把所变化的值 都写上 代码很长 Select Case e.DataCol.Name
    Case "产品编码","颜色","分类编码","金额","仓库"
        Dim filter As String = "产品编码 ='" & e.DataRow("产品编码") & "'  And 颜色 ='" & e.DataRow("颜色") & "'And 仓库 ='" & e.DataRow("仓库") & "'"
        If e.DataRow.IsNull("产品编码") = False AndAlso e.DataRow.IsNull("颜色") = False AndAlso e.DataRow.IsNull("仓库") = False Then
            Dim dr1 As DataRow
            dr1 = DataTables("库存表").Find(filter)
            If dr1 IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
                dr1("金额") =dr1("金额")+ e.DataTable.Compute("sum(金额)", filter)
                             Else
      Dim dr As DataRow = 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.DataTable.Compute("sum(金额)", filter)
            End If
        End If
  End Select

 

 

那就要分开写了


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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20057 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2014/10/28 15:57:00 [显示全部帖子]

上面的代码帮我写一个 多谢


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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20057 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2014/10/28 18:59:00 [显示全部帖子]

If  e.DataCol.Name = "产品编码"  Then '如果内容发生变动的是产品编码列
msgbox(1)
    Dim dr1 As DataRow
    dr1 = DataTables("产品目录表").Find("产品编码 ='" & e.DataRow("产品编码") & "' ")
    If dr1 IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
        e.DataRow("产品名称")=dr1("产品名称")
        e.DataRow("分类名称")=dr1("分类名称")
        e.DataRow("分类编码")=dr1("分类编码")
    End If
End If
Select Case e.DataCol.Name
    Case "产品编码"
        If  e.DataRow.IsNull("产品编码") = False  AndAlso e.DataRow.IsNull("颜色") = False AndAlso e.DataRow.IsNull("仓库") = False Then
        Dim filter1 As String = "产品编码 ='" & e.DataRow("产品编码") & "'  And 颜色 ='" & e.DataRow("颜色") & "'And 仓库 ='" & e.DataRow("仓库") & "'"
            Dim dr1 As DataRow
            dr1 = DataTables("库存表").Find(filter1)
            If dr1 IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
                dr1("金额") = dr1("金额")+e.DataRow("金额")
            Else
                Dim dr As DataRow = 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("金额")
            End If
    Dim filter2 As String = "产品编码 ='" & e.oldvalue & "'  And 颜色 ='" & e.DataRow("颜色") & "'And 仓库 ='" & e.DataRow("仓库") & "'"
            Dim dr2 As DataRow
            dr2 = DataTables("库存表").Find(filter2)
            If dr2 IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
                dr2("金额") = dr2("金额")-e.DataRow("金额")
            Else
                Dim dr3 As DataRow = DataTables("库存表").AddNew()
                dr3("产品编码")=e.DataRow("产品编码")
                dr3("产品名称")=e.DataRow("产品名称")
                dr3("分类名称")=e.DataRow("分类名称")
                dr3("分类编码")=e.DataRow("分类编码")
                dr3("分类名称")=e.DataRow("分类名称")
                dr3("颜色")=e.DataRow("颜色")
                dr3("仓库")=e.DataRow("仓库")
                dr3("金额") = e.DataRow("金额")
            End If
        End If
     End Select

 

我写了一个 执行后结果不对


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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20057 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2014/10/28 19:09:00 [显示全部帖子]

还是有重复的库存


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