以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  项目打开时,当入库订单表、入库明细表、出库明细表中,没有一行数据时,系统出错,无法新增数据等操作?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=133295)

--  作者:fengwenliuyan
--  发布时间:2019/4/11 15:01:00
--  项目打开时,当入库订单表、入库明细表、出库明细表中,没有一行数据时,系统出错,无法新增数据等操作?



项目打开时,当入库订单表、入库明细表、出库明细表中,没有一行数据时,系统出错,无法新增数据等操作?

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



--  作者:有点甜
--  发布时间:2019/4/11 15:24:00
--  

修改删除红色代码

 

\'systemready = False

If e.Table.current Is Nothing Then Return
systemready = False
Dim dr As DataRow = e.Table.Current.DataRow
Dim wz As Integer = Tables("入库订单表").FindRow(dr)
If wz >=0 Then
    Tables("入库订单表").Position = wz
End If
\'SystemReady = True

\'换行时,同客户列同步:
Tables("客户表").filter = ""
Dim i = Tables("客户表").FindRow("客户 = \'" & e.Table.current("客户") & "\'")
If i>=0 Then
    Tables("客户表").position = i
Else
    Tables("客户表").filter = "1=2"
End If

\'入库订单表_入库明细表--模拟关联表:
If Forms("仓管表窗口").Opened() \'一定要判断用于模拟关联表的窗口是否已经打开
    Dim t2 As Table = Tables("仓管表窗口_入库明细表")
    With e.Table
        If .Current Is Nothing Then
            t2.Filter = "False"
        Else
            t2.Filter = "订单编号 = \'" & .Current("订单编号") & "\'"
        End If
    End With
End If
\' "入库订单表"选择换行时,判断窗口是否已打开,若已打开,则更新Tables("仓管表窗口_入库明细表")的Filter属性,显示新选定的行.

\'入库订单表_出库明细表--模拟关联表:
If Forms("仓管表窗口").Opened() \'一定要判断用于模拟关联表的窗口是否已经打开
    Dim t3 As Table = Tables("仓管表窗口_出库明细表")
    With e.Table
        If .Current Is Nothing Then
            t3.Filter = "False"
        Else
            t3.Filter = "订单编号 = \'" & .Current("订单编号") & "\'"
        End If
    End With
End If
\' "入库订单表"选择换行时,判断窗口是否已打开,若已打开,则更新Tables("仓管表窗口_出库明细表")的Filter属性,显示新选定的行.
systemready = True


--  作者:fengwenliuyan
--  发布时间:2019/4/11 15:46:00
--  回复:(有点甜)修改删除红色代码 'systemr...
测试了,删除没问题,但是无法“仓管表窗口_入库订单表”中,直接新增一行
却必须得在“入库订单表”主表中新增一行,并输入客户内容,跳出编号,然后再选中“仓管表窗口_入库订单表”,再点击“仓管表窗口”下方的“全显”按钮,才能在“仓管表窗口_入库订单表”中,显示新增的这一行,
这样实在繁琐,求帮助?

--  作者:有点甜
--  发布时间:2019/4/11 15:59:00
--  
我测试没问题,请认真测试
--  作者:fengwenliuyan
--  发布时间:2019/4/11 16:10:00
--  回复:(有点甜)我测试没问题,请认真测试
反复测试了5次,bin也删过,确实无法直接在空表时,在“仓管表窗口_入库订单表”中,直接右键新增,或点击左侧的“新增一行”按钮,并在“仓管表窗口_入库订单表”中,直接显示出新增的一行?

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


--  作者:有点甜
--  发布时间:2019/4/11 16:17:00
--  

 

上传的实例,我测试没问题。可以新增和显示。

 

 


--  作者:fengwenliuyan
--  发布时间:2019/4/11 16:28:00
--  回复:(有点甜) 上传的实例,我测试没问题。...
很神奇的,
要不,你再试试,进入项目,先点击客户表的表头,再点选仓管表,再去新增一行,会发现无论怎样都新增不了?

--  作者:有点甜
--  发布时间:2019/4/11 16:42:00
--  

 

那你删除【客户表】的currentChanged事件。

 

 


--  作者:fengwenliuyan
--  发布时间:2019/4/11 16:51:00
--  回复:(有点甜) 那你删除【客户表】的curren...
删除后,客户表不就不同步了?那可不行


--  作者:有点甜
--  发布时间:2019/4/11 17:25:00
--  
以下是引用fengwenliuyan在2019/4/11 16:51:00的发言:
删除后,客户表不就不同步了?那可不行

 

那修改代码

 

\'下拉窗口
If Forms("仓管表窗口").Opened() \'一定要判断用于模拟关联表的窗口是否已经打开
    Dim t As Table = Tables("仓管表窗口_入库明细表")
    With e.Table
        If .Current Is Nothing Then
            t.Filter = "客户 is null"
        Else
            t.Filter = "客户 = \'" & .Current("客户") & "\'"
        End If
    End With
End If
 \' "客户表"选择换行时,判断窗口是否已打开,若已打开,则更新Tables("仓管表窗口_入库明细表")的Filter属性,显示新选定的行.

If Forms("仓管表窗口").Opened() \'一定要判断用于模拟关联表的窗口是否已经打开
    Dim ct As Table = Tables("仓管表窗口_出库明细表")
    With e.Table
        If .Current Is Nothing Then
            ct.Filter = "客户 is null"
        Else
            ct.Filter = "客户 = \'" & .Current("客户") & "\'"
        End If
    End With
End If
 \' "客户表"选择换行时,判断窗口是否已打开,若已打开,则更新Tables("仓管表窗口_出库明细表")的Filter属性,显示新选定的行.

If Forms("仓管表窗口").Opened() \'一定要判断用于模拟关联表的窗口是否已经打开
    Dim dt As Table = Tables("仓管表窗口_入库订单表")
    With e.Table
        If .Current Is Nothing Then
            dt.Filter = "客户 is null"
        Else
            dt.Filter = "客户 = \'" & .Current("客户") & "\'"
        End If
    End With
End If
 \' "客户表"选择换行时,判断窗口是否已打开,若已打开,则更新Tables("仓管表窗口_入库订单表")的Filter属性,显示新选定的行.