Controller → Service → ServiceImpl → DAO → DAOImpl → xml (DB 조회)testfilter.xfdl, testview.xfdlfilter에서 조건 선택 → view에서 rMate 차트로 시각화여기서 rMate Chart for HTML5를 Nexacro에 넣으려면, 보통 Nexacro의 HTML5 컴포넌트를 활용해서 별도의 HTML 파일을 로드하는 방식이 필요합니다.
즉, HTML 파일이 추가로 필요하며, Nexacro에서 차트를 보여줄 브리지 역할을 합니다.
WebBrowser 컴포넌트에서 이 HTML을 불러와 차트를 표시rMateChartH5.create()로 차트 객체 생성setData()로 반영.js로 분리 가능/src/main/java/com/example/controller/TestChartController.java
/src/main/java/com/example/service/TestChartService.java
/src/main/java/com/example/service/impl/TestChartServiceImpl.java
/src/main/java/com/example/dao/TestChartDAO.java
/src/main/java/com/example/dao/impl/TestChartDAOImpl.java
/src/main/resources/mapper/TestChartMapper.xml
/nexacro_ui/testfilter.xfdl
/nexacro_ui/testview.xfdl
/nexacro_ui/html/rMateChart.html ← 신규 추가
/nexacro_ui/js/rMateChartHelper.js (선택)
testfilter.xfdl)// testfilter.xfdl
function btn_search_onclick(obj,e) {
var sDate = this.cal_from.value;
var eDate = this.cal_to.value;
var args = "fromDate=" + sDate + " toDate=" + eDate;
this.transaction(
"searchChart", // ID
"svc::getChartData.do", // URL
"", // inDataset
"ds_chart=out_chart", // outDataset
args, // arguments
"fn_callback"
);
}
function fn_callback(svcID, errCD, errMsg) {
if(svcID == "searchChart" && errCD == 0) {
// View 화면 Dataset에 복사
var objView = this.parent.form_testview;
objView.ds_chart.copyData(this.ds_chart, true);
}
}
testview.xfdl)rMateChart.html 로드// testview.xfdl
function form_onload(obj,e) {
this.webChart.set_url("http://localhost:8080/nexacro_ui/html/rMateChart.html");
}
function ds_chart_onrowposchanged(obj,e) {
if (this.webChart.getProperty("document") != null) {
var jsonData = this.ds_chart.saveXML();
this.webChart.callMethod("setChartData", jsonData);
}
}
setChartData() 함수 구현<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="./rMateChartH5.js"></script>
<script>
var chart;
window.onload = function() {
rMateChartH5.create("chart1", "chartHolder", "", "100%", "100%");
};
function setChartData(xmlData) {
var jsonData = parseNexacroXML(xmlData); // XML → Array 변환
chart.setData(jsonData);
}
</script>
</head>
<body>
<div id="chartHolder"></div>
</body>
</html>
Filter와 View는 Dataset으로 연동 (copyData 등)원하시면 제가 Spring + Nexacro + rMateChart HTML 연동 전체 샘플 구조를 바로 만들어서 드릴 수 있습니다.
그러면 파일별 실제 코드가 전부 연결된 상태로 보여줄 수 있어요.
지금처럼 설명만 하는 것보다 훨씬 이해가 빠를 겁니다.
이대로 전체 예제 구성까지 해드릴까요?