以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=72136)

--  作者:扶风
--  发布时间:2015/7/23 21:55:00
--  [求助]

老师  我想实现  如果pz列不为空  则订单表所有的列均不能编辑  如下代码  报错 提示cancel不是datacol的成员

请问如何实现该功能

S-elect Case e.Col.Name
Case "pz"
    If "pz" <> Nothing Then
     For Each dc As DataCol In DataTables("订单").DataCols
         dc.cancel = True
         Next
End If
End S-elect


--  作者:yinyb36
--  发布时间:2015/7/23 22:03:00
--  

[此贴子已经被作者于2015/7/23 22:08:41编辑过]

--  作者:大红袍
--  发布时间:2015/7/23 22:05:00
--  
Select Case e.Col.Name
    Case "pz"
    Case Else
        If e.Row.IsNull("pz") = False Then
            e.Cancel = True
        End If
End Select

--  作者:扶风
--  发布时间:2015/7/24 9:56:00
--  

这个问题OK了  谢谢老师 

 

Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog

dlg.Filter= "Excel文件|*.xls" \'设置筛选器

If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮

    Dim mg As New Merger

    mg.Format = "Excel2003"

    mg.SourcePath = dlg.FileName

    mg.SourceTableName = "物料表$"

    mg.DataTableName = "物料表"

    mg.Merge()

End If

 

For Each dt As DataTable In DataTables

    dt.Save()

Next

 

MessageBox.Show("合并导入成功!","提示")

 

这段代码执行完后为何物料表没有数据


--  作者:大红袍
--  发布时间:2015/7/24 10:07:00
--  

1、excel表和物料表列名不匹配。excel第一行是列名;

 

2、试试用代码

 

Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog

dlg.Filter= "Excel文件|*.xls" \'设置筛选器

If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮

    Dim mg As New Merger

    mg.Format = "Excel"

    mg.SourcePath = dlg.FileName

    mg.SourceTableName = "物料表$"

    mg.DataTableName = "物料表"

    mg.Merge()

End If

 

For Each dt As DataTable In DataTables

    dt.Save()

Next

 

MessageBox.Show("合并导入成功!","提示")