Gelişmiş XFA Picture Clauses
Bu picture'ları FormCalc event'lerinde ve calculate ve validate script'lerinde shipped QuickJS engine üzerinden kullanmak için TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript etkinleştirin
Format(picture, value) display metni üretir ve Parse(picture, text) kanonik value'lar üretir; locale seçimi, quote edilen literal'ler ve alternatifler FormCalc Locale ve Picture Functions'ı izler
Sayısal hassasiyet ve bilimsel gösterim
| Sembol | Davranış |
|---|---|
E | Mantissa'dan sonra imzalı base-10 üs formatlar; baştaki ve kesirli digit konumları mantissa hassasiyetini belirler ve üs yayımlanmadan önce rounding carry uygulanır |
8 | Sağlanan ondalık metnin ifade edilen kesirli hassasiyetini — trailing zeros dâhil — korur; kesirli digit'ler yokken ondalık radix atlanır ve bir 8 sembol dizisi, kendi uzunluğundan daha fazla sağlanan kesirli digit koruyabilir |
Bilimsel mantissa'lar en fazla 15 digit konumu kullanır; üs büyüklükleri ve ondalık genişletme 10000 ile sınırlanır ve nonfinite value'lar boş metin üretir
Hassasiyet picture'ları, kesirli konumların öncesindeki ve sonrasındaki quote edilen literal'leri korur; percent ölçekleme, orijinal ondalık metni binary floating point dönüşümü üzerinden trailing zeros kaybetmeden kaydırır
İfade edilen hassasiyet önemli olduğunda ondalık string'ler geçin; JavaScript sayısal value'ları, formatting'ten önce zaten binary floating point dönüşümüne uğramıştır
Format("num{99.999E}", 12345) // 12.345E+3
Parse("num{99.999E}", "12.345E-2") // 0.12345
Format("num{zzz,zz9.8}", "12345.0000") // 12,345.0000
Parse("num{zz9.8}", "12.3400") // 12.3400
Format("num{zz9.8%}", "0.1250") // 12.50%
Sıralı ve hafta tarihleri
| Sembol | Davranış |
|---|---|
J, JJJ | Yılın günü, 1'den 366'ya; JJJ üç digite pad eder ve parsing artık yıl'ları doğrular |
E | 1 (Pazar) ila 7 (Cumartesi) arası sayısal haftanın günü; EEE ve EEEE kısaltılmış ve tam locale haftanın-günü adlarını kullanmaya devam eder |
e | 1 (Pazartesi) ila 7 (Pazar) arası ISO haftanın günü |
WW | 01 ila 53 arası ISO hafta; 01 numaralı hafta 4 Ocak'ı içerir ve bu picture'da bir yıl, ISO hafta yılıdır |
w | Pazar'dan başlayan 0 ila 5 arası ay haftası; ilk hafta, aydan en az dört gün içermelidir |
Sıralı veya hafta tarihlerini parse etmek, karşılık gelen ISO takvim tarihini döndürür; çelişen gün, ay, haftanın-günü veya hafta value'ları boş metin döndürür
Dört-haneli erken yıllar, JavaScript yüzyıl düzeltmesi olmadan kurulur — 0000 ila 0099 yılları dâhil; tarihsel alternatif era'lar bu picture'ların dışında kalır
Format("date{YYYY-JJJ}", "2024-02-29") // 2024-060
Parse("date{YYYY-WW-e}", "2020-53-5") // 2021-01-01
Format("date{w}", "2004-07-03") // 0
Ek saat varyantları
k ve kk, meridiem içinde 0–11 saatini ifade eder; K ve KK, gün içinde 1–24 saatini ifade eder — 24 gece yarısını temsil eder
AM ve PM'i ayırt etmek için k saatleriyle A kullanın; küçük-harf z, iki-nokta'sız bir ISO offset formatlar; zz iki-nokta kullanır ve büyük-harf Z, GMT'yi veya açık bir offset ile GMT'yi yayımlar
Global picture sembolleri
| Sembol | Input parsing | Output formatting |
|---|---|---|
? | Bir Unicode code point tüketir | Bir boşluk üretir |
* | Sıfır veya daha fazla kırılabilir whitespace character tüketir | Bir boşluk üretir |
+ | Bir veya daha fazla kırılabilir whitespace character tüketir | Bir boşluk üretir |
Bu semboller, date, time, datetime, number ve text picture'ları içinde çalışır; quote edilen semboller literal character olarak kalır, supplementary Unicode character'ları bir character sayılır ve nonbreaking space'ler whitespace eşleşmesinden dışlanır
Bileşik input parsing
Bileşik date ve time clause'ları kanonik ISO date-time metnine birleşir; aynı value'nun tekrarlanan temsilleri uyuşmalıdır ve literal ayırıcılar, input kabul edilmeden önce denetlenir
Tekrarlanan scalar clause'lar aynı kanonik sayıyı veya metni üretmelidir; uyumsuz kategori kombinasyonları, çelişen value'lar, eksik tüketim veya birden çok ayrık kanonik sonuç boş metin üretir
Bileşik parsing, 64 parçaya, 8192 UTF-16 input unit'ine ve 8192 parse girişimine izin verir; runtime operation ve geçen-süre bütçelerini paylaşırken — bu limitleri aşmak event transaction'ını başarısız kılar
Parse("date{YYYY-MM-DD} time{HH:MM:SS}", "2024-02-29 12:34:56")
// 2024-02-29T12:34:56
Parse("date{YYYYMMDD}time{HHMMSS}", "20240229123456")
// 2024-02-29T12:34:56
Runtime davranışı ve mevcut sınırlar
Hesaplanan field'lar ve event'ler aynı implementation'ı ve locale metadata'sını kullanır; başarısız script'ler belge value'larını ve commit edilmiş JavaScript state'ini geri alır ve kayıtlı XDP data'sı başarılı sonuçları korur
Alternatif-era takvimleri, ideografik ve tam-genişlik temsilleri, yerelleştirilmiş display-only semboller ve eksiksiz gruplama politikaları ayrı hedefler olarak kalır
Transaction, replay ve operation bütçesi davranışı için bkz. Interactive XFA Widget Runtime