Vue.js 개발환경을 준비하기 위해서는 아래 문서를 참고하시기 바랍니다.
C:..> vue create realreport
- Default (Vue 3)를 선택하고 엔터를 칩니다.
- 생성된 realreport 폴더를 VS Code를 이용해서 오픈합니다.
아래 링크를 클릭하고 기본 코드를 다운받고 압축을 해제합니다.
- 다운받은 기본코드 폴더에서 index.html을 제외한 나머지 파일을 Vue의 public 폴더로 복사합니다.
<!DOCTYPE html>
<html lang="">
<head>
...
<script type="text/javascript" src="/js/pdfkit.js"></script>
<link href="/highcharts/highcharts.css" rel="stylesheet" />
<script src="/highcharts/highcharts.js"></script>
<script src="/highcharts/highcharts-more.js"></script>
<link href="/realreport/realreport.css" rel="stylesheet" />
<script src="/realreport/realreport-lic.js"></script>
<script type="text/javascript" src="/realreport/realreport.js?v=4"></script>
<script src="/fonts/malgun.js"></script>
<script src="/fonts/malgun-bold.js"></script>
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
...
</body>
</html>
- src 밑에 data 폴더를 생성하고 아래 두 파일을 복사합니다.
<template>
<div>
<div id="realreport"></div>
</div>
</template>
<script>
/* eslint-disable */
import reportForm from "./data/reportForm";
import reportData from "./data/reportData";
export default {
mounted() {
this.viewer = new RealReport.ReportViewer("realreport", reportForm);
this.viewer.dataSet = reportData;
this.viewer.preview();
},
};
</script>
<template>
<div>
<div style="height: 32px; position: fixed">
<button @click="print()">print</button>
</div>
<div style="height: 32px"></div>
<div id="realreport" class="scroller"></div>
<iframe id="printPreview" src="/print.html" style="display: none"></iframe>
</div>
</template>
<script>
...
export default {
mounted() {
...
},
methods: {
print() {
const container = printPreview.contentWindow.document.getElementById("realreport");
container.innerHTML = this.viewer.getHtml();
printPreview.contentWindow.print();
},
},
};
</script>
<style scoped>
.scroller {
flex: 1;
direction: ltr;
height: 90vh;
width: 100%;
overflow: auto;
position: relative;
}
</style>