Foxtable(狐表)用户栏目专家坐堂 → [求助]转表的同步删除问题


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

主题:[求助]转表的同步删除问题

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


加好友 发短信
等级:童狐 帖子:257 积分:4399 威望:0 精华:0 注册:2011/7/5 9:38:00
[求助]转表的同步删除问题  发帖心情 Post By:2011/11/7 17:17:00 [只看该作者]

Select Case e.DataCol.name
    Case "科室_签收"
        If e.DataRow.IsNull("科室_签收") Then

            '应该在此加入同步删除但写不上来了,请帮忙写一下.谢谢!
        Else
            Dim p() As String = e.DataRow("检验项目").split(",")
            Dim dr As Row = Tables("表B").AddNew()
            dr("检验项目") = p(0)
            dr("样品编号") = e.DataRow("样品编号")
            If p.length > 1 Then
                Dim dr1 As Row = Tables("表B").AddNew()
                dr1("检验项目") = p(1)
                dr1("样品编号") = E.DataRow("样品编号")
                If p.length > 2 Then
                    Dim dr2 As Row = Tables("表B").AddNew()
                    dr2("检验项目") = p(2)
                    dr2("样品编号") = E.DataRow("样品编号")
                    If p.length > 3 Then
                        Dim dr3 As Row = Tables("表B").AddNew()
                        dr3("检验项目") = p(3)
                        dr3("样品编号") = E.DataRow("样品编号")
                        If p.length > 4 Then
                            Dim dr4 As Row = Tables("表B").AddNew()
                            dr4("检验项目") = p(4)
                            dr4("样品编号") = E.DataRow("样品编号")
                            If p.length > 5 Then
                                Dim dr5 As Row = Tables("表B").AddNew()
                                dr5("检验项目") = p(5)
                                dr5("样品编号") = E.DataRow("样品编号")
                            End If
                        End If
                    End If
                End If
            End If
        End If
End Select

 

问题见附件。

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


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


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

呵呵,不做任何解释,一段代码贴出来,让人猜谜吗?

至少说明一下自己的设计目的吧,系统是你自己设计的,旁人是不清楚你在干什么的,


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


加好友 发短信
等级:童狐 帖子:257 积分:4399 威望:0 精华:0 注册:2011/7/5 9:38:00
  发帖心情 Post By:2011/11/7 18:37:00 [只看该作者]

本编码的目的是将“表A”中“检验项目”的分项目,在流程中,分拣到“表B”的不同行,这个功能在附件中已通过验证,现在的问题是如果要改签,如何实现“表B”的同步删除问题,看一下附件演示应该会明白的,我认为已经做的很详细了。
[此贴子已经被作者于2011-11-7 19:30:10编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/11/7 20:43:00 [只看该作者]

Tables("表A").Current("科室_拒签或退回") = User.Name
Tables("表A").Current("科室_签收") = Nothing
DataTables("表B").DeleteFor("[样品编号] = '" & Tables("表A").current("样品编号") & "'")
With Tables("表A")
    .Position = .Position + 1
End With

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


加好友 发短信
等级:童狐 帖子:257 积分:4399 威望:0 精华:0 注册:2011/7/5 9:38:00
  发帖心情 Post By:2011/11/7 22:30:00 [只看该作者]

   

谢谢!就是这个语句不会写了,一直套用For Each但就是不成;测试发现不是很流畅,掐头去尾,仅保留:

DataTables("B").DeleteFor("[样品编号] = '" & Tables("A").current("样品编号") & "'"),并改写为:

DataTables("B").DeleteFor("[样品编号] = '" & e.DataRow("样品编号") & "'")就流畅了。

在此之前,我也应用如:“dr("样品编号") = Tables("A").Current("样品编号")”,单个签字可以,一用全签就出问题了,

不知“Tables("A").Current("样品编号")”与“e.DataRow("样品编号")”,的区别在那里。


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/11/7 23:07:00 [只看该作者]

e.DataRow 是你操作的行,

Tables("A").Current 是焦点跑到任何一行的“当前行”

你用了position+1,所以不知道是否先跑到下一行后,才执行current,此时的current就不是原来的current了。。


 回到顶部