此主题相关图片如下:2.png
项目打开时点击“加载数据表”,想打开一个对话框,把没有加载的表列出来,然后勾选表进行加载,(像初始化项目一样),该怎么整呢?请指点
此主题相关图片如下:1.png
[此贴子已经被作者于2024/5/20 10:39:12编辑过]
设计一个模式窗口,窗口里发一个checkedlistbox控件显示数据库里的表,数据库里的表参考这里获取:
http://www.foxtable.com/webhelp/topics/1943.htm
列出外部数据源nwnd中的所有表名:
Dim lst As List(Of String)
lst = Connections("nwnd").GetTableNames
For Each nm As String In lst
Output.Show(nm)
Next
列出内部数据源(shujuyuan)中的所有表名的代码怎么写?
这个代码放在哪里?
[此贴子已经被作者于2024/5/20 11:29:27编辑过]
内部数据源遍历DataTables即可:
http://www.foxtable.com/webhelp/topics/0365.htm
如果要把表显示到checkedlistbox控件,放到窗口的afterload事件即可
http://www.foxtable.com/webhelp/topics/2745.htm
Dim ckl As WinForm.CheckedListBox = e.Form.Controls("CheckedListBox1")
For Each dt As DataTable In DataTables
ckl.Items.Add(dt.name)
Next
上面的代码实现了所有表都可以列出来,但是我设置了初始不加载表,"表B", "表C", "表D" 这几个表在项目打开后还没有加载进来,怎么在列表框里显示出来(已经加载的表不显示),然后勾选后再加载进来?
Select Case e.DataTableName
Case "表B", "表C", "表D" '初始不加载表
e.Cancel = True
End Select
[此贴子已经被作者于2024/5/20 16:06:37编辑过]
内部表没有办法。考虑不加载表数据,而不是不加载表。不然的话只能代码里手工写死了
其实内部表做动态加载没有多大意义。建议还是使用外部数据源