以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 增加行前查找 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=120130) |
-- 作者:13775189031 -- 发布时间:2018/6/7 17:18:00 -- 增加行前查找 Case "领料情况_不分机组" If e.newvalue = False Then DataTables("领料清单").DeleteFor("编号=\'" & e.DataRow("编号") & "\'") Else If e.DataRow("物资说明") = "紧固件" Then Dim ndr1 As DataRow = DataTables("领料清单").Find("预算编号 = \'" & e.NewValue & "\'") If ndr1 Is Nothing Then Dim ndr2 As DataRow = DataTables("领料清单").AddNew ndr2("编号") = e.DataRow("编号") ndr2("预算编号") = e.DataRow("预算编号") ndr2("生产令号") = e.DataRow("生产令号") ndr2("项目名称") = e.DataRow("项目名称") ndr2("物资说明") = e.DataRow("物资说明") ndr2("单位") = "批" ndr2("领料数量") = "1" ndr2("领料日期") = Date.today Else e.Cancel = True End If End If 想实现,增加行之前查找如果预算编号相同的,则不再增加行,要怎么改?
|
-- 作者:有点甜 -- 发布时间:2018/6/7 17:23:00 -- Case "领料情况_不分机组" |
-- 作者:13775189031 -- 发布时间:2018/6/8 9:24:00 -- 显示未声明名称ndr2,现改成以下: If e.newvalue = False Then DataTables("领料清单").DeleteFor("编号=\'" & e.DataRow("编号") & "\'") Else If e.DataRow("物资说明") = "紧固件" Then Dim ndr1 As DataRow = DataTables("领料清单").Find("预算编号 = \'" & e.DataRow("预算编号") & "\'") If ndr1 Is Nothing Then Dim ndr As DataRow = DataTables("领料清单").AddNew End If ndr1("编号") = e.DataRow("编号") ndr1("预算编号") = e.DataRow("预算编号") ndr1("生产令号") = e.DataRow("生产令号") ndr1("项目名称") = e.DataRow("项目名称") ndr1("物资说明") = e.DataRow("物资说明") ndr1("单位") = "批" ndr1("领料数量") = "1" ndr1("领料日期") = Date.today End If End If 但调试过程中显示: .NET Framework 版本:2.0.50727.8762 Foxtable 版本:2018.3.9.1 错误所在事件:表,物资明细表,DataColChanged 详细错误信息: 调用的目标发生了异常。 未将对象引用设置到对象的实例。 |
-- 作者:有点甜 -- 发布时间:2018/6/8 9:25:00 -- Case "领料情况_不分机组" If e.newvalue = False Then DataTables("领料清单").DeleteFor("编号=\'" & e.DataRow("编号") & "\'") Else If e.DataRow("物资说明") = "紧固件" Then Dim ndr2 As DataRow = DataTables("领料清单").Find("预算编号 = \'" & e.DataRow("预算编号") & "\'") If ndr2 Is Nothing Then ndr2 = DataTables("领料清单").AddNew End If ndr2("编号") = e.DataRow("编号") ndr2("预算编号") = e.DataRow("预算编号") ndr2("生产令号") = e.DataRow("生产令号") ndr2("项目名称") = e.DataRow("项目名称") ndr2("物资说明") = e.DataRow("物资说明") ndr2("单位") = "批" ndr2("领料数量") = "1" ndr2("领料日期") = Date.today End If |
-- 作者:13775189031 -- 发布时间:2018/6/8 9:45:00 -- 以下是要生成两行的情况,先生成两行,然后查找如果预算编号相同则不再生成! Case "领料情况_分机组" If e.newvalue = False ThenDataTables("领料清单").DeleteFor("编号=\'" & e.DataRow("编号") & "\'") ElseIf e.DataRow("物资说明") = "紧固件" Then For i As Integer = 1 To 2 Next Dim ndr1 As DataRow = DataTables("领料清单").Find("预算编号 = \'" & e.DataRow("预算编号") & "\'") If ndr1 Is Nothing Then End If Dim ndr As DataRow = DataTables("领料清单").AddNew ndr("编号") = e.DataRow("编号") ndr("预算编号") = e.DataRow("预算编号") ndr("物资说明") = e.DataRow("物资说明") ndr("单位") = "批" ndr("领料数量") = "0.5" ndr("领料日期") = Date.today End If End If 我这样编出来生成的是一行,而且没有查找!怎么改?
|
-- 作者:有点甜 -- 发布时间:2018/6/8 9:49:00 -- Case "领料情况_分机组" If e.newvalue = False Then DataTables("领料清单").DeleteFor("编号=\'" & e.DataRow("编号") & "\'") ElseIf e.DataRow("物资说明") = "紧固件" Then Dim ndr1 As DataRow = DataTables("领料清单").Find("预算编号 = \'" & e.DataRow("预算编号") & "\'") If ndr1 Is Nothing Then For i As Integer = 1 To 2 Dim ndr As DataRow = DataTables("领料清单").AddNew ndr("编号") = e.DataRow("编号") ndr("预算编号") = e.DataRow("预算编号") ndr("物资说明") = e.DataRow("物资说明") ndr("单位") = "批" ndr("领料数量") = "0.5" ndr("领料日期") = Date.today Next End If End If |
-- 作者:13775189031 -- 发布时间:2018/6/8 10:17:00 -- Case "领料情况_分机组" If e.newvalue = False Then DataTables("领料清单").DeleteFor("编号=\'" & e.DataRow("编号") & "\'") Else If e.DataRow("物资说明") = "原材料" Then For i As Integer = 1 To 2 Dim ndr As DataRow = DataTables("领料清单").AddNew ndr("编号") = e.DataRow("编号") ndr("预算编号") = e.DataRow("预算编号") ndr("物资说明") = e.DataRow("物资说明") ndr("名称") = e.DataRow("物资名称") ndr("规格") = e.DataRow("规格") ndr("材质") = e.DataRow("材质") ndr("中标单位") = e.DataRow("中标情况_中标单位") ndr("领料日期") = Date.today Next End If If e.DataRow("物资说明") = "紧固件" Then Dim ndr1 As DataRow = DataTables("领料清单").Find("预算编号 = \'" & e.DataRow("预算编号") & "\'") If ndr1 Is Nothing Then For i As Integer = 1 To 2 Dim ndr As DataRow = DataTables("领料清单").AddNew ndr("编号") = e.DataRow("编号") ndr("预算编号") = e.DataRow("预算编号") ndr("物资说明") = e.DataRow("物资说明") ndr("单位") = "批" ndr("领料数量") = "0.5" ndr("领料日期") = Date.today Next End If End If 和另一组代码合并后,提示错误编码else |
-- 作者:有点甜 -- 发布时间:2018/6/8 10:21:00 -- Select Case e.DataCol.name Case "领料情况_分机组" If e.newvalue = False Then DataTables("领料清单").DeleteFor("编号=\'" & e.DataRow("编号") & "\'") Else If e.DataRow("物资说明") = "原材料" Then For i As Integer = 1 To 2 Dim ndr As DataRow = DataTables("领料清单").AddNew ndr("编号") = e.DataRow("编号") ndr("预算编号") = e.DataRow("预算编号") ndr("物资说明") = e.DataRow("物资说明") ndr("名称") = e.DataRow("物资名称") ndr("规格") = e.DataRow("规格") ndr("材质") = e.DataRow("材质") ndr("中标单位") = e.DataRow("中标情况_中标单位") ndr("领料日期") = Date.today Next End If If e.DataRow("物资说明") = "紧固件" Then Dim ndr1 As DataRow = DataTables("领料清单").Find("预算编号 = \'" & e.DataRow("预算编号") & "\'") If ndr1 Is Nothing Then For i As Integer = 1 To 2 Dim ndr As DataRow = DataTables("领料清单").AddNew ndr("编号") = e.DataRow("编号") ndr("预算编号") = e.DataRow("预算编号") ndr("物资说明") = e.DataRow("物资说明") ndr("单位") = "批" ndr("领料数量") = "0.5" ndr("领料日期") = Date.today Next End If End If end if end select |
-- 作者:13775189031 -- 发布时间:2018/6/8 10:33:00 -- Select Case e.DataCol.Name Case "到货数量","到货_批次" If e.DataRow("到货数量") = 0 Then DataTables("物资检验详单").DeleteFor("编号=\'" & e.DataRow("编号") & "\'") Else If e.DataRow("物资说明") = "原材料" Then For i As Integer = 1 To e.DataRow("到货_批次") Dim ndr As DataRow = DataTables("物资检验详单").AddNew ndr("编号") = e.DataRow("编号") ndr("预算编号") = e.DataRow("预算编号") ndr("生产令号") = e.DataRow("生产令号") ndr("项目名称") = e.DataRow("项目名称") ndr("物资说明") = e.DataRow("物资说明") ndr("物资名称") = e.DataRow("物资名称") ndr("规格") = e.DataRow("规格") ndr("材质") = e.DataRow("材质") Next End If End select 上面的代码可以根据到货数量删减增加行,但是“到货批次”修改的话,无法删减,比如“到货批次”由原来的3改成2,则自动生成不能删减为2行,而是另外增加2行,总共增加了5行! 要怎么改? |
-- 作者:有点甜 -- 发布时间:2018/6/8 11:03:00 -- Select Case e.DataCol.Name
Case "到货数量","到货_批次"
If e.DataRow("到货数量") = 0 Then
DataTables("物资检验详单").DeleteFor("编号=\'" & e.DataRow("编号") & "\'")
Else
If e.DataRow("物资说明") = "原材料" Then
DataTables("物资检验详单").DeleteFor("编号=\'" & e.DataRow("编号") & "\'")
For i As Integer = 1 To e.DataRow("到货_批次")
Dim ndr As DataRow = DataTables("物资检验详单").AddNew
ndr("编号") = e.DataRow("编号")
ndr("预算编号") = e.DataRow("预算编号")
ndr("生产令号") = e.DataRow("生产令号")
ndr("项目名称") = e.DataRow("项目名称")
ndr("物资说明") = e.DataRow("物资说明")
ndr("物资名称") = e.DataRow("物资名称")
ndr("规格") = e.DataRow("规格")
ndr("材质") = e.DataRow("材质")
Next
End If
End select
|