FreeReportv0.9.0English

수식과 함수

안전한 수식 언어: 필드, 사칙연산, 조건, 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, pagesnumber페이지 번호와 전체 페이지 수(resetPageNumber면 그룹별).
rowNumnumber그룹(또는 보고서) 안의 행 번호.
rowIndexnumber보고서 전체의 행 번호.
groupKey, groupLevelunknown, number현재 그룹 값과 깊이.
nowDate보고서를 만든 시각.
paramsobject파라미터 값: params.from.
row, rows, allRows, dataobject, 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)string1230000 → 일금 일백이십삼만원정.
bizNo(v), phone(v)string1234567890 → 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, joinstring문자열 함수.
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두 값 중 작은/큰 값.