FormCalc 로캘과 Picture 함수

TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript를 켜면 함께 배포되는 QuickJS 엔진을 통해 일반 FormCalc 이벤트와 calculate, validate 스크립트에서 이 함수들을 쓸 수 있습니다

로캘 선택

실행 중인 필드는 조상 중 가장 가까운 비어 있지 않은 locale 속성을 상속합니다. 체인이 전부 비어 있으면 구성된 네이티브 Windows 또는 Linux ICU 로캘을 선택합니다

문서의 localeSet 항목은 네이티브 숫자/통화 기호, 월/일/오전오후 이름, 날짜/시간/숫자 패턴을 덮어씁니다. 빠진 값은 시스템 데이터를 상속하고, 사용자 정의 로캘 이름에는 en_US로 폴백합니다

로캘 식별자는 밑줄과 하이픈 표기를 대소문자 구분 없이 받습니다. Concat("de", "_DE")처럼 계산된 이름은 실행 시점에 해석됩니다

내부 로캘 요청은 이벤트 데드라인을 공유하고 이름 있는 조회 64회, 식별자당 UTF-16 코드 유닛 256개, 합산 메타데이터 2 MiB까지 허용합니다. 재시도는 JavaScript 체크포인트를 복원하고, 커밋된 세션 리플레이는 기록된 메타데이터를 소비하며 프로바이더를 다시 호출하지 않습니다

Picture 함수

함수동작
Format(picture, value, ...)date, time, datetime, num, text 절로 값을 포매팅합니다. 표준 복합 절은 같은 값을 포매팅하고, 선택적 확장은 대응하는 value 인수를 받습니다
Parse(picture, text)typed 절, 복합 절, 대안 절을 ISO 날짜/시간 텍스트, 십진 숫자 텍스트, 리터럴이 제거된 텍스트로 파싱합니다

명시적 로캘에는 date(de_DE){D. MMMM YYYY}를, 로캘 스타일에는 num.currency를, 대안에는 세로 막대를 사용합니다. 따옴표로 묶인 리터럴과 겹친 어포스트로피는 리터럴 문자를 보존합니다

날짜, 시간, datetime 스타일은 해석된 default, short, medium, long, full 패턴을 사용합니다. 표준 localeSet 숫자 패턴은 num.decimal과 그 정수부를 num.integer에 함께 공급합니다

날짜/시간 Picture는 연, 월, 일, 요일 이름, 12/24시간제, 분, 초, 소수 밀리초, 오전오후, 명시적 GMT/UTC 오프셋을 지원합니다. 2월 30일 같은 잘못된 날짜는 빈 텍스트를 반환합니다

숫자 Picture는 필수 9, 선택 z, 공백 패딩 Z, 소수/그룹 구분자, 통화 기호와 ISO 통화 코드, 퍼센트, 부호, 괄호, credit/debit 접미사, 묵시적 소수점을 지원합니다

텍스트 Picture는 Unicode 글자의 A, Unicode 영숫자의 O 또는 0, 숫자의 9, 보충 문자를 포함한 Unicode 코드 포인트의 X를 지원합니다

고급 Picture 절은 숫자 과학 표기법과 유지되는 소수 정밀도, 서수 및 주 단위 날짜, 추가 시계, 전역 문자/공백 기호, 복합 입력 파싱을 추가합니다

null 매개변수는 null을 반환하고, 잘못된 Picture, 잘못된 값, 사용 불가 로캘은 빈 텍스트를 반환합니다

target = Format("num(de_DE){z,zz9.99}", 1234.5)
target = Parse("date{MMM D, YYYY}", "Sep 1, 2002")
target = Format("date{YYYY-MM-DD} 'at' time{HH:MM}", "2024-03-15T13:45:09")

날짜와 시간 함수

함수매개변수와 결과
DateFmt(style=0, locale), TimeFmt(style=0, locale)default 0, short 1, medium 2, long 3, full 4에 대응하는 XFA 패턴을 반환합니다. 잘못된 스타일은 default를 선택합니다
Date2Num(text, picture, locale)1900-01-01을 1일로 하는 일련 일수를 반환합니다. Picture를 생략하면 로캘 기본값을 쓰고 ISO 날짜도 받습니다
Num2Date(serial, picture, locale)지정했거나 기본인 로캘 날짜 Picture로 일련 일수를 포매팅합니다
IsoDate2Num(text)선택적 시간 접미사를 포함해 압축 또는 하이픈 형태의 ISO 날짜를 파싱합니다
IsoTime2Num(text), Time2Num(text, picture, locale)GMT 자정부터의 밀리초에 1을 더해 반환합니다. 명시적 오프셋은 적용되고 없으면 현재 시간대를 사용합니다
Num2GMTime(serial, picture, locale), Num2Time(serial, picture, locale)1부터 86400000까지의 시간 일련값을 GMT 또는 현재 시간대로 포매팅합니다
Date(), Time()현재 날짜/시간 일련값을 반환하며, 세션 리플레이 중에는 기록된 클록 입력을 사용합니다

생략된 Num2Date Picture는 이제 로캘화된 출력을 냅니다. ISO 출력이 필요한 호출자는 Num2Date(serial, "YYYY-MM-DD")로 옮기십시오

단위, 인코딩, 텍스트 유틸리티

함수매개변수와 결과
UnitType(measurement)in, cm, mm, pt, pc, mp 별칭을 인식합니다. 인식하지 못한 단위는 인치로 처리합니다
UnitValue(measurement, targetUnit="in")인치당 72포인트, 파이카당 12포인트, 포인트당 1000밀리포인트로 측정값을 변환합니다
Encode(text, encoding="url"), Decode(text, encoding="url")URL 이스케이핑, XML 엔티티, Unicode 스칼라 검증이 적용된 HTML 이름/숫자 엔티티를 지원합니다
Uuid(style=0)32자리 16진수 또는 하이픈이 있는 스타일 1을 반환하며 버전 4와 variant 비트를 담습니다. 리플레이는 기록된 난수 입력을 사용합니다
WordNum(value, style=0, locale)영어 숫자 단어, 스타일 1은 달러 금액, 스타일 2는 달러와 센트를 만듭니다. 잘못된 숫자 영역은 별표를 반환합니다

현재 Picture 경계

대체 연호, 한자 또는 전각 표현, 로캘화 숫자 알파벳, 로캘화된 표시 전용 패턴 기호, 완전한 그루핑 정책은 별도 목표로 남아 있습니다. WordNum은 영어 단어를 출력합니다

네이티브 scalar 평가기는 기존 ISO와 금융 함수를 유지합니다. 로캘/Picture 함수에는 일반 실행이 필요합니다

하위 수준 API

TXFALocaleData, HPDFXFALoadLocale, HPDFXFALoadDocumentLocale와 HPDFXFALocaleJavaScript는 Unicode 로캘 메타데이터와 안전한 엔진 직렬화를 노출합니다

HPDFXFAExecuteJavaScriptEvent는 사용자 정의 읽기 전용 메타데이터 조회를 위해 TXFALocaleDataProvider를 받습니다