对话框使用示例
本示例可参考示例文件"CaseStudy\WebViewer\调用Foxtable对象.Table"的窗口"导入导出合并"。
本示例包括三个按钮,分别用于导出、导入和合并数据。
AfterLoad事件代码:
'''Async
Dim
wv
As
WebViewer = e.Form.Controls("WebViewer1").WebViewer
Await
wv.EnsureCoreWebView2Async(Nothing)
Dim
ft
As
New
FoxLib(wv)
'创建Foxtable库
wv.CoreWebView2.AddHostObjectToScript("ft",
ft)
'注入Foxtable库
Dim
html
As
String
=
<![CDATA[
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>导入导出合并数据</title>
<style>
button{padding:12px
40px;font-size:18px;margin:30px;background:#0078d7;color:#fff;border:none;border-radius:6px;cursor:pointer;}
button:hover{background:#005a9e;}
h2{color:#333;margin:20px;}
</style>
</head>
<body>
<h2>导入导出合并数据</h2>
<button onclick="exportData()">导出订单表到Access</button>
<button onclick="importData()">从Access导入订单表</button>
<button onclick="mergeData()">合并Access订单表数据</button>
<script>
const ft =
window.chrome.webview.hostObjects.sync.ft;
// 1.
导出数据
function exportData() {
const dlg = ft.SaveFileDialog();
dlg.Filter = "Access文件|*.mdb";
dlg.CallBack = "handleExportData"; //
指定导出对应的回调函数
dlg.ShowDialog(); //
仅显示对话框,不同步判断结果
}
//
导出数据的回调函数,执行导出逻辑
function handleExportData(fileName) {
//
兼容用户取消对话框的情况(fileName为空/无效)
if (!fileName) return;
const ex = ft.Exporter();
ex.SourceTableName = "订单";
ex.FilePath = fileName; //
使用回调传递的保存文件路径
ex.Export();
}
// 2.
导入数据
function importData() {
const dlg = ft.OpenFileDialog();
dlg.Filter = "Access文件|*.mdb";
dlg.CallBack = "handleImportData"; //
指定导入对应的回调函数
dlg.ShowDialog(); //
仅显示对话框,不同步判断结果
}
//
导入数据的回调函数,执行导入逻辑
function handleImportData(fileName) {
//
兼容用户取消对话框的情况(fileName为空/无效)
if (!fileName) return;
const ip = ft.Importer();
ip.SourcePath = fileName; //
使用回调传递的选择文件路径
ip.SourceTableName = "订单";
ip.NewTableName = "订单3";
ip.Import();
}
// 3. 合并数据
function mergeData() {
const dlg = ft.OpenFileDialog();
dlg.Filter = "Access文件|*.mdb";
dlg.CallBack = "handleMergeData"; //
指定合并对应的回调函数
dlg.ShowDialog(); //
仅显示对话框,不同步判断结果
}
//
合并数据的回调函数,执行合并逻辑
function handleMergeData(fileName) {
//
兼容用户取消对话框的情况(fileName为空/无效)
if (!fileName) return;
const mg = ft.Merger();
mg.SourcePath = fileName; //
使用回调传递的选择文件路径
mg.SourceTableName = "订单";
mg.DataTableName = "订单";
mg.Merge();
}
</script>
</body>
</html>
]]>.Value
wv.NavigateToString(html)