以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 窗口禁止重复值录入 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144638) |
-- 作者:whx007 -- 发布时间:2019/12/26 4:31:00 -- 窗口禁止重复值录入 新增按钮代码: Dim cpxh As String = e.Form.Controls("Dropbox1").Value Dim dr As Row = Tables("新增产品明细_Table1").Find("产品型号 = \'" & cpxh & "\' And 订单号 = \'" & Tables("新增产品明细_Table1").current("订单号") & "\'") If dr IsNot Nothing Then MessageBox.Show("已经存在相同型号的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) e.Cancel = True End If 在同一个订单中,订单明细表中的产品型号一列不能重复录入产品型号,在窗口中我使用的是副本表。 执行上段代码错误提示: 没有可访问的find接受此数目的参数,因此重载决策失败。 是不是因为find只在DataTable查找符合条件的行,副本表不可以所以出现上面的错误,应该怎么写代码?
[此贴子已经被作者于2019/12/26 4:32:05编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/12/26 9:46:00 -- 改为DataTable使用即可,副本表的数据也是来自主表的DataTable的 |
-- 作者:whx007 -- 发布时间:2019/12/27 5:44:00 -- Dim cpxh As String = e.Form.Controls("Dropbox1").Value Dim fdr As DataRow = DataTables("销售明细表").Find("产品型号 = \'" & cpxh & "\' And 订单号 = \'" & Tables("销售明细表").Current("订单号") & "\'") If fdr IsNot Nothing Then MessageBox.Show("已经存在相同型号的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) e.Cancel = True End if 改成上面后仍然提示错误: .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2019.12.17.18 错误所在事件:窗口,新增产品明细,Button1,Click 详细错误信息: 未将对象引用设置到对象的实例。 红色字体部分引起的问题,应该怎么改代码?
|
-- 作者:有点蓝 -- 发布时间:2019/12/27 8:29:00 -- if Tables("销售明细表").Current isnot nothing then Dim cpxh As String = e.Form.Controls("Dropbox1").Value Dim fdr As DataRow = DataTables("销售明细表").Find("产品型号 = \'" & cpxh & "\' And 订单号 = \'" & Tables("销售明细表").Current("订单号") & "\'") If fdr IsNot Nothing Then MessageBox.Show("已经存在相同型号的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) e.Cancel = True End if end if |
-- 作者:whx007 -- 发布时间:2019/12/28 5:00:00 -- 按照上面的代码改好后,不管是相同的产品型号还是不同的产品型号,点添加按钮都不新增行,也没有任何提示。
|
-- 作者:有点蓝 -- 发布时间:2019/12/28 8:47:00 -- msgbox(1) \'能不能弹出 if Tables("销售明细表").Current isnot nothing thenmsgbox(2) \'能不能弹出
Dim cpxh As String = e.Form.Controls("Dropbox1").Value Dim fdr As DataRow = DataTables("销售明细表").Find("产品型号 = \'" & cpxh & "\' And 订单号 = \'" & Tables("销售明细表").Current("订单号") & "\'") msgbox(fdr is nothing) \'弹出什么值? If fdr IsNot Nothing Then MessageBox.Show("已经存在相同型号的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) \'\'\'e.Cancel = True这一句去掉 End if end if |
-- 作者:客人 -- 发布时间:2019/12/29 5:02:00 -- add product 完整代码: Dim sts() As String = {"dropbox1","NumericComboBox2"} For Each st As String In sts If e.Form.Controls(st).value Is Nothing MessageBox.show("Model and quantity must be filled in!","Remind") Return End If Next msgbox(1) If Tables("销售明细表").Current IsNot Nothing Then msgbox(2) Dim cpxh As String = e.Form.Controls("Dropbox1").Value Dim fdr As DataRow = DataTables("销售明细表").Find("产品型号 = \'" & cpxh & "\'And 订单号 = \'" & Tables("销售明细表").Current("订单号") & "\'") msgbox(fdr Is Nothing) If fdr IsNot Nothing Then MessageBox.Show("已经存在相同型号的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) \'e.Cancel = True End If End If Dim tbl As Table = Tables("销售明细表") Dim r As Row = tbl.AddNew() r("订单号") = Tables("订单修改1_Table2").Current("订单号") r("客户名称") = Tables("订单修改1_Table2").Current("客户名称") r("客户电话") = Tables("订单修改1_Table2").Current("客户电话") r("产品型号") = e.Form.Controls("dropbox1").Text r("产品类别") = e.Form.Controls("产品类别").Text r("单价成本") = e.Form.Controls("单价成本").Text r("销售单价") = e.Form.Controls("TextBox5").Text r("数量") = e.Form.Controls("NumericComboBox2").Text r("日期") = Date.Today If tbl.Current IsNot Nothing Then tbl.Current.Save() End If Dim tb As Table = Tables("订单出库明细表") If Tables("销售明细表").Current.Isnull("产品型号") = False AndAlso e.Form.Controls("NumericComboBox1").Value <> 0 Then Dim dr As Row = tb.AddNew() dr("提货日期") = Date.Today dr("订单号") = Tables("订单修改1_Table2").Current("订单号") dr("产品型号") = e.Form.Controls("dropbox1").Text dr("数量") = e.Form.Controls("NumericComboBox2").Text dr("已提数量") = e.Form.Controls("NumericComboBox1").Text If tb.Current IsNot Nothing Then tb.Current.Save() End If End If e.Form.Controls("DropBox1").Value = "" e.Form.Controls("textbox5").Value = "" e.Form.Controls("NumericComboBox2").Value = Nothing e.Form.Controls("未提数量").Text = "未知" 1、在当前的窗口新增明细表中没有的产品型号,msgbox(1)弹出1,后面再无弹出,但明细表能新增行和产品相关信息; 2、紧接着再新增明细表中没有的产品型号,msgbox(1)弹出1,msgbox(2)弹出2,msgbox(fdr is nothing)弹出TRUE,明细表也能新增行和产品相关信息; 3、接着新增明细表中有的一个产品型号,msgbox(1)弹出1,msgbox(2)弹出2,msgbox(fdr is nothing)弹出flase,弹出"已经存在相同型号的行!"对话框后,程序停止工作: |
-- 作者:whx007 -- 发布时间:2019/12/29 5:05:00 -- 1、在当前的窗口新增明细表中没有的产品型号,msgbox(1)弹出1,后面再无弹出,但明细表能新增行和产品相关信息;
2、紧接着再新增明细表中没有的产品型号,msgbox(1)弹出1,msgbox(2)弹出2,msgbox(fdr is nothing)弹出TRUE,明细表也能新增行和产品相关信息;
3、接着新增明细表中有的一个产品型号,msgbox(1)弹出1,msgbox(2)弹出2,msgbox(fdr is nothing)弹出flase,弹出"已经存在相同型号的行!"对话框后,程序停止工作:
4、如果没有步骤1,2,一开始就新增明细表中有的一个产品型号,msgbox(1)弹出1,后面再无弹出,程序停止工作和步骤3一样。 |
-- 作者:有点蓝 -- 发布时间:2019/12/29 21:06:00 -- 窗口表如果是副本,看看http://www.foxtable.com/webhelp/topics/1906.htm 至于程序停止工作的问题请上传实例测试
|
-- 作者:whx007 -- 发布时间:2019/12/30 3:04:00 -- 修改为副本表并将add product 所有代码重新组合后问题解决,谢谢蓝版。 |