Foxtable(狐表)用户栏目专家坐堂 → 选中合计行再保存报错


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

主题:选中合计行再保存报错

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


加好友 发短信
等级:小狐 帖子:348 积分:2667 威望:0 精华:0 注册:2018/11/11 15:52:00
选中合计行再保存报错  发帖心情 Post By:2023/1/18 20:30:00 [只看该作者]

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.1.1
错误所在事件:窗口,入库通知单登记,保存,Click
详细错误信息:
未将对象引用设置到对象的实例。


Tables("入库明细").Cols("厂发数量").GrandTotal = True '指定要合计的列
Tables("入库明细").Cols("厂发重量").GrandTotal = True
Tables("入库明细").Cols("理计数量").GrandTotal = True '指定要合计的列
Tables("入库明细").Cols("理计重量").GrandTotal = True
Tables("入库明细").Cols("码单数量").GrandTotal = True '指定要合计的列
Tables("入库明细").Cols("码单重量").GrandTotal = True
Tables("入库明细").Cols("含税金额").GrandTotal = True
Tables("入库明细").GrandTotal = True '显示合计模式


操作时选中合计行再保存会报错

[此贴子已经被作者于2023/1/18 20:31:46编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109474 积分:557032 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/1/19 9:12:00 [只看该作者]

调试看哪一句代码出错:http://www.foxtable.com/webhelp/topics/1485.htm

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


加好友 发短信
等级:小狐 帖子:348 积分:2667 威望:0 精华:0 注册:2018/11/11 15:52:00
  发帖心情 Post By:2023/1/19 10:31:00 [只看该作者]

Dim sts As String() = {"入库单号", "入库日期", "结算单位", "项目名称", "仓库名称", "业务类别", "采购类型"}
For Each st As String In sts '关联字段任一字段为空的话,不能新增明细表数据
    If Forms("入库通知单登记").controls(st).value Is Nothing Then
        MessageBox.Show("请将红色必填字段 " & st & " 填写完整!", "提醒")
        Return
    End If
Next

MessageBox.Show(1)

If Tables("入库明细").rows.count = 0 Then
    MessageBox.Show("入库明细没有数据!", "提醒")
    Return
End If

MessageBox.Show(2)

Dim dr As String() = {"品名", "材质", "规格", "产地", "厂发数量", "厂发重量","厂发单价", "含税金额"}
For Each mx As String In dr
    If Tables("入库明细").Current.isnull(mx) = True Then
        MessageBox.Show("入库明细中  " & mx & "  填写完整!", "提醒")
        Return
    End If
Next

MessageBox.Show(3)

For Each dt As DataTable In DataTables
    If dt.HasChanges Then
        e.Form.Controls("Label16").text = "正在保存数据..."
        Application.Doevents
        dt.Save
        e.Form.Controls("Label16").text = ""
    Else
        e.Form.Controls("Label16").text = ""
        e.Form.Controls("新单").Enabled = True
        e.Form.Controls("退出").Enabled = True
    End If
Next

MessageBox.Show(4)

'录入码单勾选
Tables("入库明细码单").AllowEdit =  False
Dim gx As WinForm.CheckBox = e.Form.Controls("需要录入码单")
gx.Checked = False
e.Form.Controls("码单增加").Enabled = False
e.Form.Controls("码单编辑").Enabled = False
e.Form.Controls("码单行复制").Enabled = False
e.Form.Controls("码单删除").Enabled = False
e.Form.Controls("码单保存").Enabled = False

MessageBox.Show(5)

 

 

MessageBox.Show(3)没有通过,提示这个错误代码。没看出什么问题,老师帮忙看下谢谢

 

 

[此贴子已经被作者于2023/1/19 10:32:18编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109474 积分:557032 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/1/19 10:34:00 [只看该作者]

"入库明细"没有数据,判断一下current:http://www.foxtable.com/webhelp/topics/0445.htm,理解一下里面的“完美”的代码

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


加好友 发短信
等级:小狐 帖子:348 积分:2667 威望:0 精华:0 注册:2018/11/11 15:52:00
  发帖心情 Post By:2023/1/19 10:36:00 [只看该作者]

保存只要选择的当前不是合计行不会报错,当前选到合计行去保存报错

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109474 积分:557032 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/1/19 12:10:00 [只看该作者]

看4楼,加个判断

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


加好友 发短信
等级:小狐 帖子:348 积分:2667 威望:0 精华:0 注册:2018/11/11 15:52:00
  发帖心情 Post By:2023/1/19 19:25:00 [只看该作者]

Dim dr As String() = {"品名", "材质", "规格", "产地", "厂发数量", "厂发重量", "厂发单价", "含税金额"}
If Tables("入库明细").Current IsNot Nothing Then 
    For Each mx As String In dr
        If Tables("入库明细").Current.isnull(mx) = True Then
            MessageBox.Show("入库明细中  " & mx & "  填写完整!", "提醒")
            Return
        End If
    Next
End If
加了红色的不出错提示了,意思是当前行不是空行?

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109474 积分:557032 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/1/19 20:10:00 [只看该作者]

在汇总模式下,Current只返回数据行,不返回分组行;如果你选择了分组行,此时Current返回Nothing。
所以为了在命令窗口显示订单表当前行的客户列内容,“完美”的代码是:

If Tables("订单").Current IsNot Nothing Then
    Output.Show(
Tables("订单").Current("客户"
))
End If


 回到顶部