FreeReportv0.13.0English

다른 리포팅 툴에서 옮기기

OZ Report, ClipReport, Crystal Reports, ActiveReports, JasperReports의 밴드·수식·파라미터·하위 보고서를 FreeReport로 옮기는 대응표와 순서, AI·엑셀 붙여 넣기 활용법입니다.

.ozr, .crf, .rpt, .rdlx, .jrxml 파일을 자동으로 바꾸는 변환기는 없습니다. 양식은 디자이너에서 다시 만들거나 JSON으로 작성하며, 보통 양식 하나에 몇 시간 걸립니다. 아래 표는 각 개념이 어디로 가는지 보여 주고, 반복 입력은 AI 도우미와 엑셀·한글 표 붙여 넣기로 크게 줄일 수 있습니다.

국산 툴: OZ Report, ClipReport

왼쪽 이름은 각 제품의 일반적인 개념입니다. 쓰고 있는 버전에 맞춰 확인하세요.

개념OZ ReportClipReportFreeReport
양식 파일.ozr 양식 + .odi 데이터 모듈.crf 양식JSON 보고서 정의 (파일 하나, 코드와 함께 버전 관리)
밴드타이틀, 페이지 헤더, 데이터 밴드, 그룹 헤더·풋터, 써머리, 페이지 풋터데이터셋별 머리·데이터·꼬리 밴드bands.title, pageHeader, columnHeader, groups[].header/footer, detail, summary, pageFooter, noData
데이터OZ 서버의 ODI(DB 쿼리)리포트 서버의 데이터셋내 API가 주는 JSON: data·fetchData 옵션 또는 REST 연결(definition.data)
필드데이터 연결 라벨데이터 필드field 요소의 expr: "name", "customer.name"
파라미터폼·ODI 파라미터리포트 파라미터definition.params(문자, 숫자, 날짜, 선택 등)가 뷰어 조회 조건 패널에 나오고 수식에서 params.x로 씀
뷰어와 인쇄OZ 뷰어(HTML5·설치형), 인쇄 모듈뷰어, 인쇄 플러그인브라우저의 createViewer, 용지 크기 그대로 브라우저 인쇄, 무팝업 인쇄가 필요하면 서명된 Windows 프로그램(선택)

Crystal Reports, ActiveReports, JasperReports

개념Crystal ReportsActiveReportsJasperReportsFreeReport
밴드Report Header, Page Header, Group Header #n, Details, Group Footer, Report Footer, Page Footer섹션 보고서: ReportHeader, PageHeader, GroupHeader, Detail 등title, pageHeader, columnHeader, groupHeader/Footer, detail, columnFooter, summary, pageFooter, noDatatitle, pageHeader, columnHeader, groups[], detail, summary, pageFooter, noData
필드{Table.Field}DataField / =Fields!Name.Value$F{name}field 요소, expr "name"
수식수식 필드(Crystal·Basic 문법)식, 스크립트Java·Groovy 식, 변수 $V{}안전한 식 언어 하나: price * qty, iif(), format(), koreanAmount(), 날짜 함수. 스크립트 없음
합계요약 필드, 누계SummaryType / Sum()calculation·resetType 변수sum(amount), sum(amount, 'group' | 'page' | 'report'), count, avg, min, max
파라미터{?Param}Parameters$P{param}definition.params → params.param
조건부 표시Suppress 수식Visible 식printWhenExpressionvisible: 식, suppressRepeated
하위 보고서SubreportSubReport 컨트롤subreportsubreport 요소(definition.subreports 참조, rows: "row.items") 또는 중첩 표
교차표Cross-TabMatrix·Tablixcrosstabcrosstab 요소(rowKey, columnKey, value, 합계)
차트ChartChartchart (JFreeChart)chart 요소: 막대, 가로 막대, 선, 영역, 원, 도넛
내보내기PDF, Excel, Word, …PDF, Excel, Word, …JRPdfExporter, JRXlsxExporter, …브라우저에서: PDF(한글 글꼴 서브셋, AES-256), 엑셀(양식 그대로·데이터), CSV, HWPX, DOCX, PNG. 서버에서는 renderPdf·renderXlsx
인쇄 에이전트런타임의 프린터 설정뷰어·코드에서 인쇄JRPrintServiceExporter(서버)브라우저 인쇄 창, 또는 Windows 프로그램(선택)의 agent.print(pdf, { printer, copies })

옮기는 순서

  1. 양식 목록 만들기. 양식마다 용지, 밴드, 데이터, 조회 조건, 합계, 하위 보고서, 인쇄 방식(대화 상자, 무팝업, 일괄), 쓰는 내보내기를 적습니다. 가장 많이 출력하는 양식부터 시작하세요.
  2. 데이터를 JSON으로. 리포트 서버의 쿼리(ODI, 데이터셋, SQL)를 내 API로 옮겨 JSON을 돌려주게 합니다. 머리 부분 값은 최상위 객체({ customer: {…} }), 상세 행은 배열({ items: [...] })입니다. 백엔드 예제를 참고하세요. 백엔드 예제
  3. 양식 다시 그리기. 비슷한 템플릿에서 시작하거나, 엑셀·한글의 표를 붙여 넣거나, AI 도우미에게 맡긴 뒤 디자이너에서 위치를 다듬습니다. 양식 템플릿
  4. 수식 옮기기. Crystal의 {Table.Field}, Jasper의 $F{name}·$P{name}은 name·params.name이 되고, Sum({x})는 범위를 정한 sum(x), IIF·ToText는 iif()·format()이 됩니다. 실행 중에 배치를 바꾸던 스크립트는 visible, canGrow, 그룹 옵션으로 바꿉니다. 수식과 함수
  5. 출력물 비교. 같은 데이터로 기존 양식과 새 양식을 인쇄하거나 PDF로 저장해 겹쳐 봅니다. 디자이너의 [검사]가 없는 필드와 틀린 식을 찾아 줍니다.
  6. 화면 교체. 기존 뷰어 태그나 플러그인 호출을 createViewer(또는 React·Vue·Svelte·Angular 컴포넌트)로 바꾸고, 창구 무팝업 인쇄가 필요하면 Windows 프로그램을 설치합니다. PC의 기존 인쇄 모듈은 마지막에 지웁니다. Windows 인쇄 프로그램

AI로 기존 양식 옮기기

반복 작업은 두 가지 도구가 대부분 해 줍니다. 둘 다 기존 양식 파일을 직접 읽지는 않으며, 배치는 사람이 넘겨 줍니다.

  • 엑셀·한글 표 붙여 넣기: 많은 양식이 이미 엑셀이나 한글(HWP) 표로 있습니다. 표를 복사해 디자이너에서 Ctrl+V 하면 칸마다 같은 너비·높이·병합·테두리·배경·정렬의 텍스트 요소가 됩니다. 그다음 값이 들어갈 칸을 필드 요소로 바꿉니다.
  • 디자이너 AI 도우미: 내 애플리케이션에서 assistant 옵션을 켜면, 기존 양식(밴드, 필드, 수식, 합계)을 설명하는 것만으로 도우미가 정의를 만들거나 고칩니다. 모든 답은 적용 전에 검사됩니다. 도우미가 없으면 아래처럼 설명을 써서 llms-full.txt와 함께 AI 채팅에 주고, 나온 JSON을 디자이너의 JSON 보기에 붙여 넣으세요. 디자이너 · AI에게 요청하기
다음은 기존 리포팅 툴의 보고서 양식 설명입니다. FreeReport 보고서 정의(JSON)로 다시 만들어 주세요.
- 용지: A4 세로, 여백 15mm
- 상단: 제목 "거래명세서", 공급자 정보(상호, 대표자, 사업자번호, 주소)와 직인
- 상세: items 배열 (품명 name, 규격 spec, 수량 qty, 단가 price, 금액 = qty * price)
- 하단: 합계 금액과 한글 금액(일금 ○○원정)
- 기존 수식: {합계} = Sum({금액})  →  FreeReport 식으로 바꿔 주세요
https://freereport.app/llms-full.txt 에 없는 옵션은 만들지 마세요.

AI가 만든 결과는 디자이너의 [검사]와 인쇄 결과로 꼭 확인하세요. 위치나 수식을 잘못 읽을 수 있습니다. 옮긴 양식을 다른 사람에게 보여 주려면 디자이너의 [공유 링크]를 만들어 포럼에 올리면 됩니다. 포럼