Dim tb23 As Table = e.Form.Controls("table23").Table
Dim tb24 As Table = e.Form.Controls("table24").Table
SystemReady = False
Try
'【第一步】建表
Dim dtb As New DataTableBuilder("采购评估")
dtb.AddDef("物料编号", Gettype(String), 32)
dtb.AddDef("物料名称", Gettype(String), 50)
dtb.AddDef("物料类型", Gettype(String), 16)
dtb.AddDef("结算单位", Gettype(String), 16)
dtb.AddDef("计划量", Gettype(Single))
dtb.AddDef("供应商编号", Gettype(String), 16)
dtb.AddDef("供应商名称", Gettype(String), 50)
dtb.AddDef("供应商报价", Gettype(Single))
dtb.Build()
Dim db As DataTable = DataTables("采购评估")
'【第二步】合并采购计划各明细的总计划量
For Each tr1 As Row In tb23.rows '循环遍历每个记录
Dim dr1 As DataRow = db.find("物料编号 = '" & tr1("物料编号") & "'") '查询采购评估表是否已有此物料
If dr1 IsNot Nothing Then '如有则直接修改
dr1("计划量") = dr1("计划量") + tr1("计划量") '有,增加总需求量
Else '如果采购评估表中不存在,则新增记录,并查询其供应商报价
Dim dr1_1 As DataRow = db.addnew
dr1_1("物料编号") = tr1("物料编号")
dr1_1("物料名称") = tr1("物料名称")
dr1_1("物料类型") = tr1("物料类型")
dr1_1("结算单位") = tr1("结算单位")
dr1_1("计划量") = tr1("计划量")
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "sel ect a.报价,b.供应商编号,b.供应商名称 from 采购报价明细表 a left join 采购报价表 b on a.采购报价编号 = b.采购报价编号 where b.业务状态 = '2' and b.审核状态 = '2' and a.物料编号 = '" & tr1("物料编号") & "'"
Dim dtBJ As DataTable = cmd.ExecuteReader
If dtBJ.datarows.count = 0 Then '未找到有效报价,报错返回提示增加有效报价
msgbox("出现错误:以下物料未找到有效报价:" & vbcrlf & tr1("物料编号") & "|" & tr1("物料名称") & vbcrlf & vbcrlf & "原因可能是:" & vbcrlf & "1?原有报价过期失效;" & vbcrlf & "2?尚未进行报价." & vbcrlf & vbcrlf & "请检查清楚并处理后,再执行本操作.")
Return
ElseIf dtBJ.datarows.count = 1 Then '找到有效报价且唯一,直接采纳
Dim drBJ As DataRow = dtBJ.datarows(0)
dr1_1("供应商编号") = drBJ("供应商编号")
dr1_1("供应商名称") = drBJ("供应商名称")
dr1_1("报价") = drBJ("报价")
Else '找到有效报价且不唯一,则弹出窗体,提示选择其中一个供应商
vars("采购订单选择供应商") = tr1("物料编号") & "|" & tr1("物料名称")
forms("采购订单选择供应商").open
Dim drBJ As DataRow = dtBJ.find("供应商编号 = '" & vars("采购订单选择供应商") & "'")
dr1_1("供应商编号") = drBJ("供应商编号")
dr1_1("供应商名称") = drBJ("供应商名称")
dr1_1("报价") = drBJ("报价")
End If
End If
Next
Catch ex As Exception
MessageBox.Show("操作失败")
End Try
DataTables("采购评估").Save
tb24.DataSource = DataTables("采购评估")
SystemReady = True
【采购订单选择供应商】改为模式窗后,代码确实自动暂停了。
但是新问题出现了,
【采购订单选择供应商】里面的代码执行不了,点了没任何反应……
代码如下:
Dim tr As Row = e.Form.Controls("table1").Table.current
vars("采购订单选择供应商") = tr("供应商编号")
e.Form.Close
[此贴子已经被作者于2018/7/2 14:26:03编辑过]