老师,狐表里的“生产计划表”,设计了新增按钮,序号自动增加,只增加一行。现在想从Excel导入,新增行数不固定,还得实现序号自动增加,我看了帮助,写了下面的代码,麻烦您给完善一下。这是新增一行的代码:
DataTables("生产计划表").AddNew()
Tables("生产计划表").AutoSizeCols()
下面是导入按钮的代码:
Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "xls文件|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
Dim ip As New Importer
ip.SourcePath = dlg.FileName '指定数据文件
ip.SourceTableName = "生产计划表" '指定要导入的表
ip.NewTableName ="生产计划" '导入后的表名
ip.Format = "Excel" '指定导入格式
ip.Import()
End If
另外,想实现选择文件的时候xls和xlsx都出现在选择的窗口里。
是要导入一个新表?还是要把execl里的数据合并到现有的表里?
合并要使用Merger :
http://www.foxtable.com/webhelp/topics/0685.htm
Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "xls文件|*.xlsx;*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
dim xh as integer = DataTables("生产计划表").compute("max(序号)")
dim id as integer = DataTables("生产计划表").compute("max(_identify)") Dim ip As New Merger
ip.SourcePath = dlg.FileName '指定数据文件
ip.SourceTableName = "生产计划表" 'execl文件里的sheet名称
ip.NewTableName ="生产计划表" '导入后的表名
if dlg.FileName.endswith(".xls")
ip.Format = "Excel" '指定导入格式
else
ip.Format = "Excel2007" '指定导入格式
end if
ip.Merge()
for each dr as datarow in DataTables("生产计划表").select("_identify>" & id,"_identify")
xh = xh + 1
dr("序号") = xh
next
End If
老师,提示以下错误:
编译错误:newtablename is not a member of "merger"
错误代码:ip.NewTableName ="生产计划表" '导入后的表名
老师,现在能导入,出现一个问题:序号自动增加,是在当前显示序号的基础上增加,而不是根据数据库后台的最高序号上增加,麻烦您指导一下