以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于CurrentChanged  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62795)

--  作者:sara
--  发布时间:2015/1/8 9:59:00
--  关于CurrentChanged

在CurrentChanged中添加代码,

Dim Filter As String
Dim drs1 As List (of DataRow)
Dim dr11 As DataRow
Dim dr12 As DataRow
Dim dr As DataRow
MessageBox.Show("aa")
If e.Table.Cols(0).Name <> "第一列" Then
    dr = DataTables("物料信息表").Find("物料规格 =  \'" & e.Table.Current("原材料规格") & "\'")
    If dr("物料类型") = "零部件ASS-Y" Then
        Dim dtb As New DataTableBuilder("组成临时表")
        dtb.AddDef("ERP编码", Gettype(String), 32)
        dtb.AddDef("原材料规格", Gettype(String), 100)
        dtb.AddDef("所属物料", Gettype(String), 100)
        dtb.AddDef("单机数量", Gettype(Integer))
        dtb.AddDef("单位", Gettype(String), 50)
        dtb.AddDef("位号", Gettype(String), 50)
        dtb.AddDef("仓库", Gettype(String), 50)
        dtb.AddDef("损耗", Gettype(String), 50)
        dtb.Build()
        drs1 = DataTables("BOM组成表").Select("[所属物料编号] = \'"& dr("ERP编码") &"\'")
        For Each dr1 As DataRow In drs1
            dr11= DataTables("组成临时表").AddNew()
            dr12 = DataTables("物料信息表").Find("[ERP编码] = \'"& dr1("原材料规格编号") &"\'")
            dr11("ERP编码") = dr("ERP编码")
            dr11("原材料规格") = dr12("物料规格")
            dr11("所属物料") = dr("物料规格")
            dr11("单机数量") = dr1("单机数量")
            dr11("位号") = dr1("位号")
            dr11("仓库") = dr12("仓库")
            dr11("损耗") = dr1("损耗")
        Next
        Tables("主窗口_原材料详细信息").DataSource = DataTables("组成临时表")
        Tables("主窗口_原材料详细信息").AllowEdit = False
    Else
        Filter = "物料规格 =  \'" & e.Table.Current("原材料规格") & "\'"
        Tables("主窗口_原材料详细信息").DataSource = DataTables("物料信息表")
        Tables("主窗口_原材料详细信息").Filter = Filter
        Tables("主窗口_原材料详细信息").AllowEdit = False
    End If
End If

只能执行一次,后来打印输出aa就没反应了,怎么回事


--  作者:Bin
--  发布时间:2015/1/8 10:02:00
--  
调试一下,是哪里出问题
--  作者:Bin
--  发布时间:2015/1/8 10:03:00
--  
If e.Table.Cols(0).Name <> "第一列" Then
    dr = DataTables("物料信息表").Find("物料规格 =  \'" & e.Table.Current("原材料规格") & "\'")
    If dr("物料类型") = "零部件ASS-Y" Then

某个IF条件不成立 可能是

--  作者:sara
--  发布时间:2015/1/8 10:17:00
--  
我的输出是在If之外啊
--  作者:sara
--  发布时间:2015/1/8 10:18:00
--  
是不是跟动态创建临时表有关系
--  作者:有点甜
--  发布时间:2015/1/8 10:18:00
--  
 加入msgbox看一下有没有进去啊,最基本的调试啊
--  作者:Bin
--  发布时间:2015/1/8 10:18:00
--  
你所谓的输出是什么,代码请发全
--  作者:sara
--  发布时间:2015/1/8 10:20:00
--  
你从上往下看,有个MessageBox.Show("aa"), 我在CurrentChanged中添加,应该每次点击都输出“aa”吧,但是添加下面这段代码之后,只能点击输出一次,第二次就不输出了
--  作者:Bin
--  发布时间:2015/1/8 10:21:00
--  
CurrentChanged  要选择不同的行才会触发
--  作者:sara
--  发布时间:2015/1/8 10:22:00
--  
就是选择不同的行了,但是不触发啊