以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  窗口导入数据在设计预览时不能触发表属性DATACOLCHANGED事件  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=146403)

--  作者:keli0917
--  发布时间:2020/2/23 10:27:00
--  窗口导入数据在设计预览时不能触发表属性DATACOLCHANGED事件

设计一个模式窗口,导入数据。代码如下

Dim dlg As New OpenFileDialog
dlg.MultiSelect = True
dlg.Filter= "Excel 工作薄(*.xls)|*.xls|Excel 工作薄(*.xlsx)|*.xlsx" \'设置筛选器
If dlg.ShowDialog = DialogResult.OK Then

 


        Dim nms() As String = {"统一社会信用代码","单位名称"}
        
        For j As Integer = 3 To Sheet.Rows.count - 1 

 Dim  bh  As  String =  Sheet(j,5).Text
            Dim drj As DataRow = DataTables("往来单位").SQLFind("单位名称 = \'"  &  bh  & "\'")
                        
            If  drj Is Nothing  Then \'如果当前表没找到此列
                Dim dr As DataRow = DataTables("往来单位").AddNew()

                For jj As Integer = 4 To 5
                    Dim m As Integer = jj-4
                   
                    dr(nms(m))  = sheet(j,jj).Value  

                    dr("录入日期") = Date.Today()
                    dr("录入人") = _username
                                         
                Next
                                 
            End If

  Next

End If

 

 

MessageBox.Show("数据导入完毕!")

 

 


往来单位表,表属性DATACOLCHANGED事件,根据单位名称自动生成类别。

 

Select e.DataCol.Name
    Case "单位名称"

 If e.DataRow.IsNull("单位名称") = True Then   \'如果往来单位表里单位名称是空值
            \'e.DataRow("单位编号") = Nothing
            e.DataRow("类别") = Nothing
        Else If  e.DataRow.IsNull("单位名称") = False  Then  \'------------------------如果往来单位里的单位名称有值
           
            \'------------------------------------------如果类别是空,则自动生成类别---开始---------------------
            If e.DataRow.IsNull("类别") = True Then  \'如果类别是空
                If AsC(e.DataRow("单位名称")) > 0  Then  \'如果单位名称是英文
                    e.DataRow("类别") = "客户"
                Else
                    Dim ss As String = e.DataRow("单位名称")
                    If ss.Length < 4 Then
                        e.DataRow("类别") = "个人"

                     Else
                        e.DataRow("类别") = "工厂"
                    End If
                   
                End If
            End If
           

end if

End Select

 

 

在设计预览模式时,能导入数据,但是不能自动生成类别。

正式运行程序,能导入数据,也能自动生成类别。

请教一下,怎么修改代码才能在设计预览模式时也能自动生成类别。


--  作者:有点蓝
--  发布时间:2020/2/23 21:03:00
--  
不可能的,具体请上传实例说明