Foxtable(狐表)用户栏目专家坐堂 → 自动复制


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

主题:自动复制

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


加好友 发短信
等级:小狐 帖子:300 积分:2541 威望:0 精华:0 注册:2011/9/24 13:30:00
自动复制  发帖心情 Post By:2013/11/27 16:26:00 [只看该作者]


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


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

固定资产入库表有数量列,当输入3时固定资产库存表增加3行,固定资产库存表:入库单号、名称、规格 等于固定资产入库:入库单号、名称、规格,如果修改固定资产入库表数量列能自动更新,数量列输入2时固定资产库存表为2行。

我写了代码,只能增加行不能更新,并且 入库单号、名称、规格 只能复制增加的第一行

If e.DataCol.Name = "数量" Then
    If e.DataRow.Isnull("数量") = False
    Dim n As Integer = e.DataRow("数量")
    Dim nma() As String = {"入库单号","名称","规格"}
    Dim nmb() As String = {"入库单号","名称","规格"}
    Dim dr As DataRow = DataTables("固定资产库存").AddNew(n)
    For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    Next
  End If
End If

请指教代码,谢谢

[此贴子已经被作者于2013-11-27 16:28:38编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178530 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/27 16:32:00 [只看该作者]

If e.DataCol.Name = "数量" Then
    If e.DataRow.Isnull("数量") = False
    Dim n As Integer = e.DataRow("数量")
    Dim nma() As String = {"入库单号","名称","规格"}
    Dim nmb() As String = {"入库单号","名称","规格"}
    dim drlist as List(of datarow) = DataTables("固定资产库存").select("入库单号='" & e.datarow("入库单号") & "'")
    if drlist is nothing then
    for i as integer = 1 to n then
    Dim dr As DataRow = DataTables("固定资产库存").AddNew()
    For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    Next
    next
    else
    if drlist.count>n then
       for i as integer=0 to drlist.count-n-1
           drlist(i).Delete
       next
    end if
    end if
  End If
End If

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


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

建议:

1、两个表通过入库单号建立关联,固定资产入库表为父表,固定资产库存表为子表。

2、固定资产库存表的名称、规格改为表达式列,用表达式引用父表数据:

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

 

3、自动增加删除行的代码改为:

 

If e.DataCol.Name = "数量" OrElse e.DataCol.name = "入库单号" Then
    If e.DataRow.Isnull("数量") = False Then
        Dim n As Integer = e.DataRow("数量")
        Dim drs As List(of DataRow) = e.DataRow.GetChildRows("固定资产库存表")
        If drs.count > n Then
            For i As Integer = n  To drs.count - 1
                drs(i).delete
            Next
        Else
            For i As Integer = 0 To drs.count - 1
                Dim dr As DataRow = DataTables("固定资产库存").AddNew
                dr("入库单号") = e.DataRow("入库单号")
            Next
        End If
    End If
End If

 


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


加好友 发短信
等级:小狐 帖子:300 积分:2541 威望:0 精华:0 注册:2011/9/24 13:30:00
  发帖心情 Post By:2013/11/27 18:13:00 [只看该作者]

出现错误


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20131127181115.png
图片点击可在新窗口打开查看


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


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

 呃,楼主,你把 then 去掉就行了

If e.DataCol.Name = "数量" Then
    If e.DataRow.Isnull("数量") = False
    Dim n As Integer = e.DataRow("数量")
    Dim nma() As String = {"入库单号","名称","规格"}
    Dim nmb() As String = {"入库单号","名称","规格"}
    dim drlist as List(of datarow) = DataTables("固定资产库存").select("入库单号='" & e.datarow("入库单号") & "'")
    if drlist is nothing then
    for i as integer = 1 to n
    Dim dr As DataRow = DataTables("固定资产库存").AddNew()
    For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    Next
    next
    else
    if drlist.count>n then
       for i as integer=0 to drlist.count-n-1
           drlist(i).Delete
       next
    end if
    end if
  End If
End If

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


加好友 发短信
等级:小狐 帖子:300 积分:2541 威望:0 精华:0 注册:2011/9/24 13:30:00
  发帖心情 Post By:2013/11/27 19:18:00 [只看该作者]

For i As Integer = 1 To n 去掉出现这样


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20131127191558.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2013-11-27 19:18:30编辑过]

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


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

 试试这样

If e.DataCol.Name = "数量" Then
    If e.DataRow.Isnull("数量") = False
        Dim n As Integer = e.DataRow("数量")
        Dim nma() As String = {"入库单号","名称","规格"}
        Dim nmb() As String = {"入库单号","名称","规格"}
        dim drlist as List(of datarow) = DataTables("固定资产库存").Select("入库单号='" & e.DataRow("入库单号") & "'")
        If drlist Is Nothing Then
            For i As Integer = 1 To n
                Dim dr As DataRow = DataTables("固定资产库存").AddNew()
                For j As Integer = 0 To nma.Length - 1
                    dr(nmb(j)) = e.DataRow(nma(j))
                Next
            Next
        Else
            If drlist.count>n Then
                For i As Integer=0 To drlist.count-n-1
                    drlist(i).Delete
                Next
            End If
        End If
    End If
End If

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


加好友 发短信
等级:小狐 帖子:300 积分:2541 威望:0 精华:0 注册:2011/9/24 13:30:00
  发帖心情 Post By:2013/11/27 19:35:00 [只看该作者]

也不行

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目1.zip


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


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

 代码如下

If e.DataCol.Name = "数量" Then
    If e.DataRow.Isnull("数量") = False
        Dim n As Integer = e.DataRow("数量")
        Dim nma() As String = {"入库单号","名称","规格"}
        Dim nmb() As String = {"入库单号","名称","规格"}
        dim drlist as List(of datarow) = DataTables("固定资产库存").Select("入库单号='" & e.DataRow("入库单号") & "'")
        If drlist.count <= n Then
            For i As Integer = 1 To n - drlist.count
                Dim dr As DataRow = DataTables("固定资产库存").AddNew()
                For j As Integer = 0 To nma.Length - 1
                    dr(nmb(j)) = e.DataRow(nma(j))
                Next
            Next
        Else
            For i As Integer=0 To drlist.count-n-1
                drlist(i).Delete
            Next
        End If
    End If
End If
[此贴子已经被作者于2013-11-27 20:11:43编辑过]

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


加好友 发短信
等级:小狐 帖子:300 积分:2541 威望:0 精华:0 注册:2011/9/24 13:30:00
  发帖心情 Post By:2013/11/27 20:15:00 [只看该作者]

太谢谢


 回到顶部