디자이너 컴포넌트 - 보고서 로드

이 샘플은 Angular, React, Vue 및 순수 JavaScript 응용 프로그램 내에서 ActiveReportsJS Designer 컴포넌트의 보고서를 로드하는 방법을 보여 줍니다. 응용 프로그램이 로드되면 디자이너에는 템플릿 보고서가 표시됩니다. "새로 만들기" 버튼은 동일한 템플릿 보고서를 로드합니다. "열기" 버튼을 누르면 열 보고서를 선택할 수 있는 대화 상자가 표시됩니다. 마지막으로, "빈 보고서 로드" 버튼은 디자이너로 빈 보고서를 로드합니다. 자세한 내용은 보고서 로드 페이지를 방문하십시오. 코드를 보려면 아래로 스크롤하십시오.

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <title>ActiveReportsJS sample</title> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <script src="/activereportsjs/demos/arjs/dist/ar-js-core.js"></script> <script src="/activereportsjs/demos/arjs/dist/ar-js-designer.js"></script> <script src="$DEMOROOT$/lib/purejs/license.js"></script> <link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap" rel="stylesheet" /> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous" /> <link rel="stylesheet" type="text/css" href="/activereportsjs/demos/resource/themes/orange-ui.css" /> <link rel="stylesheet" type="text/css" href="/activereportsjs/demos/resource/themes/orange-designer.css" /> <style> #designer-host { width: 100%; height: 500px; } </style> </head> <body> <div id="designer-toolbar" class="container-fluid"> <div class="row mt-3 mb-3"> <button type="button" class="btn btn-outline-primary btn-sm col-sm-2 ml-1" onclick="onLoadBlank(false)" > Load Blank Report </button> </div> </div> <div id="designer-host"></div> <script> var CPLReport = { Name: "Report", Body: { Width: "8.5in", Height: "11in", }, }; var FPLReport = { Name: "Report", Page: { PageWidth: "8.5in", PageHeight: "11in", }, FixedPage: { Pages: [{}] }, }; var resolveFunc = null; var designer = null; GC.ActiveReports.Core.FontStore.registerFonts( "/activereportsjs/demos/resource/fontsConfig.json" ); designer = new GC.ActiveReports.ReportDesigner.Designer("#designer-host"); designer.setActionHandlers({ onCreate: function () { return Promise.resolve({ id: "reports/company-template.rdlx-json", }); }, onOpen: function () { const ret = new Promise(function (resolve) { resolveFunc = resolve; $("#dlgOpen").modal("show"); $("#dlgOpen").on("hide.bs.modal", function () { $("#dlgOpen").off("hide.bs.modal"); resolveFunc = null; resolve(null); }); }); return ret; }, }); designer.setReport({ id: "reports/company-template.rdlx-json" }); function onLoadBlank(fpl) { designer.setReport({ definition: fpl ? FPLReport : CPLReport, }); } function onSelectReport(report) { if (resolveFunc) { resolveFunc({ id: report }); $("#dlgOpen").modal("hide"); } } </script> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous" ></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous" ></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous" ></script> <div class="modal" id="dlgOpen" tabindex="-1" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel">Open Report</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close" > <span aria-hidden="true">&times;</span> </button> </div> <div class="modal-body"> <strong>Select Report:</strong> <div class="list-group"> <button type="button" class="list-group-item list-group-item-action" onclick="onSelectReport('reports/CustomersTable.rdlx-json')" > Customers Report </button> <button type="button" class="list-group-item list-group-item-action" onclick="onSelectReport('reports/TaxiDrives.rdlx-json')" > Taxi Drives Report </button> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal" > Close </button> </div> </div> </div> </div> </body> </html>