FormCalc 문자열, 날짜 및 재무 함수

XFA 계산 스크립트는 이제 산술을 넘어 완전한 FormCalc 함수 계열을 사용할 수 있습니다. 문자열 함수, 날짜 변환, 재무 라이브러리이며 문자열 리터럴과 혼합 유형 표현식을 포함합니다

문자열 함수

값과 참조는 Ref, 값 복사 의미론, 참조 대입, null 분리, 함수 인수, 객체 identity 비교, 반복 인스턴스 이동을 거치는 보유 handle을 다룹니다

동적 Eval은 로컬로 선언된 변수, 함수, 루프, field 변경, locale 요청, 기록된 호스트 transport 응답을 포함해 소스 텍스트를 네이티브 컴파일러와 일반 런타임으로 실행합니다

Concat, Len, Left, Right, Substr, Replace, Lower, Upper, Trim, Space는 따옴표 리터럴과 필드 참조에 대해 동작하며, 숫자 하위 표현식은 자동으로 텍스트로 변환됩니다

날짜 함수

네이티브 scalar 평가기는 Date2Num과 Num2Date로 ISO YYYY-MM-DD 텍스트를 변환합니다. FormCalc 직렬 일은 1900-01-01을 day 1로 쓰고, Date()는 오늘의 직렬을 반환합니다

EnableJavaScript가 켜진 일반 실행에서는 Date2Num(value, picture, locale), Num2Date(serial, picture, locale), DateFmt, TimeFmt, IsoTime2Num, Time2Num, Num2Time, Num2GMTime, Time로 locale picture도 지원합니다

일반 실행에서 생략된 Num2Date picture는 이제 주변 locale의 기본 패턴을 씁니다. 이전 ISO 출력을 유지하려면 "YYYY-MM-DD"를 명시적으로 넣고, 엄격한 ISO 입력에는 IsoDate2Num을 사용하십시오

FormCalc Locale 및 Picture 함수는 매개변수, 상속 locale 선택, 내장 localeSet override, 숫자/텍스트 picture, 단위, 인코딩, 숫자 단어를 다룹니다

고급 Picture 절은 과학적 표기법, 명시적 소수 정밀도, 서수 및 ISO 주간 날짜, 클록 변형, 전역 심볼, 복합 파싱을 일반 event, 계산, 검증에서 다룹니다

재무 함수

재무 함수는 이제 네이티브 calculate 평가기와 일반 event 컴파일러에서 XFA FormCalc 매개변수 의미론을 따릅니다

함수매개변수와 결과
Pmt(principal, rate, periods)양수 주기 대출 상환액. 모든 인수는 양수여야 합니다
FV(payment, rate, periods)동일 상환액의 미래 가치. rate가 0이면 payment × periods입니다
PV(payment, rate, periods)동일 상환액의 현재 가치. rate가 0이면 payment × periods입니다
Rate(future, present, periods)현재 가치를 미래 가치로 불리는 데 필요한 복리율
CTerm(rate, future, initial)복리로 불어나는 초기 투자에 필요한 기간
Term(payment, rate, future)동일 상환액으로 미래 가치에 도달하는 데 필요한 기간
Apr(principal, monthlyPayment, periods)상한이 적용된 월간 rate 솔버로 찾은 연이율(APR)
NPV(rate, cashFlow1, ...)인수 순서대로 할인된 기간말 현금 흐름
IPmt와 PPmt(principal, annualRate, monthlyPayment, firstMonth, months)에 대한 이자 또는 원금 상환액. 월 인덱스는 1부터 시작하고 0도 첫 달을 고릅니다

이번 변경은 이전의 스프레드시트식 인수 순서와 부호 처리를 바로잡습니다. Pmt(rate, periods, principal)은 Pmt(principal, rate, periods)로 옮기고 양수 결과를 기대하십시오. FV와 PV는 이제 단일 초기/최종 금액이 아니라 주기 상환액을 다룹니다

Rate는 이제 복리 성장을 계산합니다. NPer(rate, payment, future)는 Term(payment, rate, future)과 동등한 비표준 확장으로 남아 있습니다

잘못된 재무 도메인은 일반 event를 원자적으로 거부합니다. 네이티브 calculate 평가기는 실패한 표현식을 보고하고, 반복 계산은 설정된 작업 및 시간 예산을 소비합니다

일반 event 라이브러리

일반 FormCalc event 컴파일러는 대소문자를 구분하지 않는 내장 이름, 소수점으로 시작하는 리터럴, Null, 과학용 삼각 함수, Pi, 도/라디안 변환, Stuff, Str을 지원합니다. Count는 빈 텍스트를 포함하고 null 값은 제외하며, 전부 null인 집계는 null을 반환합니다

Mod는 두 평가 경로 모두에서 피제수 부호를 유지합니다. Mod(-13, 3)은 -1을 반환합니다

타이핑

숫자 평가는 Double 형식을 유지합니다. 머리가 문자열 함수인 수식은 텍스트적으로 해석되고, 재무 결과는 숫자 표현식으로 다시 변환되어 Round(Pmt(...), 2)가 동작합니다. 어떤 유형 불일치도 여전히 빈 값으로 저하됩니다

조건 논리 및 반복 배열

비교, And, Or, Not, 부울, 지연 If(condition, whenTrue, whenFalse) 표현식은 제한된 조건 제어 흐름을 제공합니다

Sum, Avg, Min, Max, Count는 rows[*].amount 같은 반복 숫자 선택기를 받고, 일반 인수 목록 형식은 스칼라 표현식을 계속 집계합니다

동적 인스턴스 요청

InstanceAdd(name, count)과 InstanceRemove(name, index)는 호출자가 구성한 검증된 인스턴스 콜백을 호출하고 결과 인스턴스 수를 반환합니다

선택적 QuickJS 경로, 형식화된 배열, 런타임 격리, 예산, 텔레메트리는 Bounded XFA FormCalc 및 JavaScript를 참조하십시오

명시적 HTTP transport

일반 event 스크립트는 명시적 애플리케이션 호스트 transport를 통해 대소문자를 구분하지 않는 Get, Post, Put을 지원합니다. 인수는 순서대로 전달되고 응답은 애플리케이션이 공급합니다

이 함수들은 EnableJavaScript와 위젯 런타임에 설정된 HostTransport 콜백을 요구합니다. 네이티브 scalar 평가기는 네트워크 요청을 수행하지 않습니다