以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  明细表问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=187525)

--  作者:lin98
--  发布时间:2023/7/24 9:25:00
--  明细表问题
老师,帮处理,实例不报错,能执行,就是窗口上明细导入数据,看不到数据,要重新打开窗口才能看到,这样不友好,请帮助处理,谢谢


[此贴子已经被作者于2023/7/24 10:10:04编辑过]

--  作者:有点蓝
--  发布时间:2023/7/24 10:03:00
--  
因为给单号设置了筛选条件,新增的行必须给单号列赋值,否则是看不到的
--  作者:lin98
--  发布时间:2023/7/24 10:06:00
--  
怎么处理,代码怎写?
--  作者:有点蓝
--  发布时间:2023/7/24 10:09:00
--  
dmi r as row = 新建的行比如tables("明细").addnew
r("单号") = tables("主表")。current(“单号”)

--  作者:lin98
--  发布时间:2023/7/24 10:23:00
--  
Dim nma() As String = {"编号", "型号", "规格", "数量", "日期"} \'
Dim nmb() As String = {"编号", "型号", "规格", "数量", "日期"} \'
Dim dh As String = Tables("订单主表").Current("单号")

For Each r As DataRow In DataTables("外来订单").Select("[选中] = true ")\'
\'
 If DataTables("订单明细").Find("编号 = \'" & r("编号") & "\'And 单号 = \'" & dh & "\'") Is Nothing Then \'
        Dim dr As Row = Tables("订单登记副表导入窗口_订单明细").AddNew \'
        dr("单号") = Tables("主表").Current("单号")
        For i As Integer = 0 To nma.Length - 1
            dr(nmb(i)) = r(nma(i))
        Next
    Else
        MessageBox.Show("已经存在相同型号和规格的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
        
    End If
Next
上面代码,加上红字代码,报错
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:窗口,外来订单导入窗口,Button2,Click
详细错误信息:
未将对象引用设置到对象的实例。





--  作者:有点蓝
--  发布时间:2023/7/24 10:30:00
--  

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

--  作者:lin98
--  发布时间:2023/7/24 10:49:00
--  
Dim nma() As String = {"编号", "型号", "规格", "数量", "日期"} \'
Dim nmb() As String = {"编号", "型号", "规格", "数量", "日期"} \'
Dim dh As String = Tables("订单主表").Current("单号")

For Each r As DataRow In DataTables("外来订单").Select("[选中] = true ")\'
\'
 If DataTables("订单明细").Find("编号 = \'" & r("编号") & "\'And 单号 = \'" & dh & "\'") Is Nothing Then \'
        Dim dr As Row = Tables("订单登记副表导入窗口_订单明细").AddNew \'
        dr("单号") = Tables("订单主表").Current("单号")
        For i As Integer = 0 To nma.Length - 1
            dr(nmb(i)) = r(nma(i))
        Next
    Else
        MessageBox.Show("已经存在相同型号和规格的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
        
    End If
Next

老师,如果红字有误,纠正 dr("单号") = Tables("订单主表").Current("单号"),没报错,但明细还是不见?

Dim nma() As String = {"编号", "型号", "规格", "数量", "日期"} \'
Dim nmb() As String = {"编号", "型号", "规格", "数量", "日期"} \'


For Each r As DataRow In DataTables("外来订单").Select("[选中] = true ")\'
\'
 If DataTables("订单明细").Find("编号 = \'" & r("编号") & "\'And 单号 = \'" & dh & "\'") Is Nothing Then \'
        Dim dr As Row = Tables("订单登记副表导入窗口_订单明细").AddNew \'
        Dim dh As String = Tables("订单主表").Current("单号")
        For i As Integer = 0 To nma.Length - 1
            dr(nmb(i)) = r(nma(i))
        Next
    Else
        MessageBox.Show("已经存在相同型号和规格的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
        
    End If
Next

上面代码,报错,提示红字未声明


--  作者:有点蓝
--  发布时间:2023/7/24 11:09:00
--  
方法1,主表新增的时候直接给主表单号复制,再设置明细表的筛选条件
2、在主表datacolchanged事件,主表单号发生变化的时候,重新设置明细表的筛选条件

--  作者:lin98
--  发布时间:2023/7/24 11:46:00
--  
主表新增,加下面,也没效果
Tables("订单登记副表导入窗口_订单明细").Filter = "单号 = \'" & r("单号") & "\'"

\'明细表-新增时
Dim r As Row = Tables("订单主表").Current \'
If r IsNot Nothing Then
    e.DataRow("单号") = r("单号") 
End If

无效

老师,您方法的代码是怎么写?

--  作者:有点蓝
--  发布时间:2023/7/24 12:06:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:明细表不见问题 - 副本.zip