对话框使用示例

本示例可参考示例文件"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)


本页地址:http://www.foxtable.com/webhelp/topics/6351.htm