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

SembolDavranış
EMantissa'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
8Sağ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

SembolDavranış
J, JJJYılın günü, 1'den 366'ya; JJJ üç digite pad eder ve parsing artık yıl'ları doğrular
E1 (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
e1 (Pazartesi) ila 7 (Pazar) arası ISO haftanın günü
WW01 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
wPazar'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

SembolInput parsingOutput formatting
?Bir Unicode code point tüketirBir boşluk üretir
*Sıfır veya daha fazla kırılabilir whitespace character tüketirBir boşluk üretir
+Bir veya daha fazla kırılabilir whitespace character tüketirBir 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