수식과 함수
안전한 수식 언어: 필드, 사칙연산, 조건, sum·count·avg 집계, 페이지 소계, 누계, 날짜·문자열 함수를 씁니다.
필드, 표시 조건, 필터, 텍스트 템플릿은 작고 안전한 수식 언어를 씁니다. 사칙연산, 비교, && || ! ?? ?:, 멤버 접근(customer.name, items[0])과 아래 함수를 쓸 수 있고, 전역 객체에 접근하거나 값을 바꿀 수 없습니다. 텍스트에서는 중괄호 안에 수식을 쓰고 콜론 뒤에 서식을 붙입니다: "{sum(amount):#,##0}원".
price * qty arithmetic
amount >= params.minAmount comparison with a parameter
customer.name ?? '(미지정)' member access and fallback
qty > 10 ? '대량' : '일반' condition
sum(amount) aggregate over the band's scope
sum(amount, 'page') page subtotal
sum(amount) / sum(amount, 'report') share of the grand total
format(date, 'yyyy년 M월 d일 (ddd)') 2026년 10월 15일 (목)
koreanAmount(1230000) 일금 일백이십삼만원정
bizNo('7928703276') 792-87-03276
{page} / {pages} page x / y in a text template변수
| 이름 | 타입 | 설명 |
|---|---|---|
page, pages | number | 페이지 번호와 전체 페이지 수(resetPageNumber면 그룹별). |
rowNum | number | 그룹(또는 보고서) 안의 행 번호. |
rowIndex | number | 보고서 전체의 행 번호. |
groupKey, groupLevel | unknown, number | 현재 그룹 값과 깊이. |
now | Date | 보고서를 만든 시각. |
params | object | 파라미터 값: params.from. |
row, rows, allRows, data | object, array | 현재 행, 범위 안의 행, 모든 행, 데이터 전체. |
집계와 범위
범위는 두 번째 인수입니다. 'group'(현재 그룹), 'page'(현재 페이지의 행 — 페이지 소계), 'report'(모든 행). 생략하면 밴드에 맞는 범위를 씁니다. 그룹 밴드는 그룹, 페이지 밴드는 페이지, 나머지는 보고서 전체입니다.
| 이름 | 타입 | 설명 |
|---|---|---|
sum(expr, scope?) | number | 범위 안의 합계. |
avg / min / max(expr, scope?) | number | 평균, 최소, 최대. |
count(expr?, scope?) | number | 행 수(또는 비어 있지 않은 값의 수). |
distinct(expr, scope?) | number | 서로 다른 값의 수. |
first / last(expr, scope?) | unknown | 첫/마지막 행의 값. |
runningSum(expr, scope?) | number | 현재 행까지의 누계(기본 범위 report). |
함수
| 이름 | 타입 | 설명 |
|---|---|---|
format(v, f) | string | 숫자·날짜 서식: format(date, "yyyy-MM-dd"). |
koreanAmount(n) / korean(n) | string | 1230000 → 일금 일백이십삼만원정. |
bizNo(v), phone(v) | string | 1234567890 → 123-45-67890, 0212345678 → 02-1234-5678. |
round / floor / ceil(v, digits?) | number | 소수점 자리 반올림·내림·올림. |
abs, number, string | — | 변환. |
upper, lower, trim, len, left, right, substr, replace, concat, padStart, join | string | 문자열 함수. |
iif(c, a, b), coalesce(...), isEmpty(v) | — | 조건과 대체 값(?:, ??도 됩니다). |
date, today, now, year, month, day, addDays, dateDiff, ymd | — | 날짜. |
groupSum(rows, key, value), groupCount(rows, key) | array | 키별 합계·개수. 차트 source로 쓰기 좋습니다. |
min2(a, b), max2(a, b) | number | 두 값 중 작은/큰 값. |