轉帖|使用教程|編輯:龔雪|2021-06-21 09:46:13.467|閱讀 213 次
概述:本文主要描述了如何實現保存報表到本地及打開本地報表,歡迎下載最新版ActiveReports體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
在線設計器在初始狀態下不包含新建,保存,打開等按鈕,因為每個項目的業務場景不同,因此我們將該方法都開放出來,讓用戶根據自己的需要去定制這些方法,實現與業務邏輯的切合。
但因為很多開發人員需要自己在本地測試在線設計器的保存按鈕,常常需要將報表文件保存到本地并打開本地的JSON 文件
本文主要描述了如何通過 designer.setActionHandlers() 重寫OnSave 和OnOpen()
<font face="微軟雅黑"><!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>ARJS Report designer</title> <meta name="description" content="ARJS Report designer" /> <meta name="author" content="GrapeCity" /> </head> <body></body> </html></font>
<font face="微軟雅黑"><link rel="stylesheet" type="text/css" /> <link rel="stylesheet" type="text/css" /> <script src="http://cdn.grapecity.com/activereportsjs/2.latest/dist/ar-js-core.js"></script> <script src="http://cdn.grapecity.com/activereportsjs/2.latest/dist/ar-js-designer.js"></script></font>
在body 標簽中添加 div 元素。
<font face="微軟雅黑"><div id="designer-host"></div></font>
在 head 標簽中添加designer-host 元素
<font face="微軟雅黑"><style> #designer-host { margin: 0 auto; width: 100%; height: 100vh; }</style></font>
<font face="微軟雅黑"><script> var designer = new GC.ActiveReports.ReportDesigner.Designer("#designer-host"); </script></font>
<font face="微軟雅黑">designer.setActionHandlers( { onCreate: function () { const reportId = `NewReport${++this.counter}`; return Promise.resolve({ definition: reportTemplates.CPL, id: reportId, displayName: reportId, } ); }, onSave: function (info) { console.log(info); const reportId = info.id || `NewReport${this.counter + 1}`; //獲取報表文件并下載 const fileName = `NewReport${this.counter + 1}.rdlx-json`; const blob = new Blob([JSON.stringify(info.definition)],{type:"application/json"}) this.download(fileName, blob); this.counter++; return Promise.resolve({displayName: reportId}); }, onOpen:function() { const input=document.createElement("input"); input.id="input"; input.type="file"; input.style.opacity=0; input.addEventListener('change',() => { let files = document.getElementById("input").files; if(files.length){ let file = files[0]; let reader = new FileReader(); reader.onload = function(){ console.log(this.result); }; reader.readAsText(file); } }); if( document.getElementById('input')){ $("#input").click(); } document.body.appendChild(input); designer.setReport(input); } }); </font>
ActiveReports 是一款專注于 .NET 平臺的報表控件,全面滿足 HTML5 / WinForm / ASP.NET / ASP.NET MVC / WPF 等平臺下報表設計和開發工作需求,作為專業的報表工具為全球超過 300,000 開發人員提供了全面的報表開發服務。
本文轉載自
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: