以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  同时提取多行信息赋值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102943)

--  作者:cqlistone
--  发布时间:2017/6/28 8:35:00
--  同时提取多行信息赋值
你好!
目的把需要产品的检验标准提取到检验报告里(AA产品是提取后的状态),帮我修改下代码

Dim r As WinForm.TextBox = e.Form.Controls("TextBox4")
Dim ct As Integer = DataTables("检验标准").SQLCompute("Count(产品名称)","产品名称 = \'" & r.text & "\'")
Dim dr As DataRow = DataTables("检验标准").SQLFind("产品名称","产品名称= \'" & r.text & "\'")
Tables("检验报告").addnew(ct)
Dim dr2 As DataRow = DataTables("检验报告").AddNew
If dr IsNot Nothing Then        
    dr2("检验项目") = dr("检验项目")
    dr2("技术要求") = dr("技术要求")
    dr2("标准上限") = dr("控制上限")
    dr2("标准下限") = dr("控制下限")
    dr2("检验方法") = dr("检验方法")
End If

检验标准
产品名称 检验项目 技术要求 控制上限 控制下限 检验方法
AA 外观 AA1 6 2 AAA1
AA 尺寸 AA2 10 5 AAA2
BB 外观 BB1 35 30 BBB1
BB 尺寸 BB2 50 45 BBB2
检验报告
产品名称 检验项目 技术要求 标准上限 标准下限 检验方法 样本01 样本02
AA 外观 AA1 6 2 AAA1    
AA 尺寸 AA2 10 5 AAA2    


--  作者:有点色
--  发布时间:2017/6/28 9:41:00
--  

Dim r As WinForm.TextBox = e.Form.Controls("TextBox4")
For Each dr As DataRow In DataTables("检验标准").Select("产品名称= \'" & r.text & "\'")
    Dim dr2 As DataRow = DataTables("检验报告").AddNew    

    dr2("产品名称") = dr("产品名称")
    dr2("检验项目") = dr("检验项目")
    dr2("技术要求") = dr("技术要求")
    dr2("标准上限") = dr("控制上限")
    dr2("标准下限") = dr("控制下限")
    dr2("检验方法") = dr("检验方法")
Next

[此贴子已经被作者于2017/6/28 11:45:28编辑过]

--  作者:cqlistone
--  发布时间:2017/6/28 10:35:00
--  
你好!
报错

.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2017.6.12.1
错误所在事件:窗口,来料检验报告,Button1,Click
详细错误信息:
无法找到列 产品名称= \'AA\'。


--  作者:cqlistone
--  发布时间:2017/6/28 10:48:00
--  
你好!
我已改好了,谢谢

--  作者:wyz20130512
--  发布时间:2017/6/28 10:49:00
--  
Dim r As WinForm.TextBox = e.Form.Controls("TextBox4")
For Each dr As DataRow In DataTables("检验标准").Select("产品名称= \'" & r.text & "\'")
    Dim dr2 As DataRow = DataTables("检验报告").AddNew    
    dr2("产品名称") = dr("产品名称")
    dr2("检验项目") = dr("检验项目")
    dr2("技术要求") = dr("技术要求")
    dr2("标准上限") = dr("控制上限")
    dr2("标准下限") = dr("控制下限")
    dr2("检验方法") = dr("检验方法")
Next
[此贴子已经被作者于2017/6/28 10:49:10编辑过]

--  作者:cqlistone
--  发布时间:2017/6/30 21:34:00
--  
你好!
在表A明细中检测样本(检测样本多个)有多项检测项目,同一个样本只要任何一项检测项目的判定结果为不合格,则该产品为不合格,怎么统计不合格数量
Select Case e.DataCol.name
    Case "不良总数","送检单号","物料名称"
        Dim ybs As List(Of String) = DataTables("表A明细").SQLGetValues("样本编号","物料名称 is not null and 送检单号 is not null and 物料名称=\'" & e.DataRow("物料名称") & "\' and 送检单号=\'" & e.DataRow("送检单号") & "\'")
        For i As Integer = 0 To ybs.Count - 1
            Dim sl As Integer = DataTables("表A明细").SQLCompute("Count(判定结果)","样本编号=\'" & ybs(i) & "\' And 判定结果=\'不合格\' and 判定结果 is not null")
            
            e.DataRow("不良总数")=
        Next
End Select


表A主表
物料名称 送检单号 不良总数
    2
表A明细
检验项目 标准上限 标准下限 样本编号 实测参数 判定结果 物料名称 送检单号
A1 10 3 01 5 合格    
A2 6 1 01 7 不合格    
A1 10 3 02 2 不合格    
A2 6 1 02 7 不合格    

--  作者:有点蓝
--  发布时间:2017/6/30 22:14:00
--  
Select Case e.DataCol.name
    Case "送检单号","物料名称"
        Dim ybs As List(Of String()) = DataTables("表A明细").SQLGetValues("样本编号|判定结果","物料名称=\'" & e.DataRow("物料名称") & "\' and 送检单号=\'" & e.DataRow("送检单号") & "\' And 判定结果=\'不合格\' ")
        e.DataRow("不良总数")=ybs.Count
End Select