FieldBuilder ile Alanlar Oluşturma
Alanları FieldBuilder ile Oluşturma
Bu kılavuz, Aspose.Words FOSS içinde .NET için sıfırdan bir Word alanı nasıl oluşturulacağını, kullanarak gösterir. FieldBuilder and FieldArgumentBuilder, zaten bir belgede var olan bir alanla çalışmak yerine. Mevcut alanları okuma, güncelleme veya kaldırma için, bkz. Alanlarla Çalışma kılavuz.
Bir Alanı FieldBuilder ile Oluşturma
FieldBuilder bir alanı alan kodu token’larından — argümanlar ve anahtarlar — oluşturur. new FieldBuilder(fieldType) ile bir tane inşa edin, oluşturmak istediğiniz alanın FieldType değerini geçerek. Argümanları, bir string, int, double, iç içe bir FieldBuilder veya bir FieldArgumentBuilder kabul eden aşırı yüklenmiş AddArgument(argument) yöntemiyle ekleyin. Anahtarları aşırı yüklenmiş AddSwitch(switchName), AddSwitch(switchName, switchArgument) (string) veya AddSwitch(switchName, switchArgument) (int/double) yöntemleriyle ekleyin.
Oluşturulan Alanı Ekleme
Bir FieldBuilder argümanlarını ve anahtarlarını aldıktan sonra, belgeye eklemek için BuildAndInsert(refNode) çağırın — bir aşırı yükleme bir Inline düğümünü kabul eder ve alanı onun önüne ekler, diğeri bir Paragraph kabul eder ve alanı o paragrafın sonuna ekler.
Karmaşık Argümanları FieldArgumentBuilder ile Oluşturma
FieldArgumentBuilder, tek bir argümanın sadece bir dizeden daha fazlasına ihtiyaç duyduğu durumlar için alanlar, düğümler ve düz metinden oluşan karmaşık bir alan argümanı oluşturur. new FieldArgumentBuilder() ile bir tane oluşturun, ardından düz metin eklemek için AddText(text), bir Inline düğümü eklemek için AddNode(node) veya argümanın içine başka bir alan (kendi FieldBuilder ile oluşturulmuş) yerleştirmek için AddField(fieldBuilder) çağırın. Tamamlanmış FieldArgumentBuilder öğesini FieldBuilder.AddArgument(argument)‘e göndererek dış alanın argümanlarından biri olarak kullanın.
İpuçları ve En İyi Uygulamalar
FieldBuilder‘ı, özel alan sınıflarından biri (örneğinFieldDateveyaFieldSymbol) tarafından desteklenmeyen bir alan türü oluştururken veya kodları elle yazmak yerine verilerden programlı olarak alan kodları üretirken kullanın.- Basit bir durumda,
FieldBuilder.AddArgument(FieldBuilder)kullanarak bir alt alanı dış alanın argümanı içine yerleştirin; argüman tek bir alandan fazlaysa, metin, düğüm ve iç içe alanlardan oluşan karışık bir argüman oluşturmak içinFieldArgumentBuilder‘i kullanın. - Alanı yerleştirmek istediğiniz konuma uygun
BuildAndInsert(refNode)aşırı yüklemesini seçin — belirli birInlinedüğümünün önüne ya da birParagraph‘nin sonuna. BuildAndInsertişleminden sonra, sonucu ağaçtaki diğer herhangi bir alan gibi ele alın — örneğin, alan türü açık bir yeniden hesaplama gerektiriyorsaUpdate()‘i ona çağırın.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
BuildAndInsert yanlış konumu hedefliyor | İstenen ekleme noktası için yanlış aşırı yükleme kullanıldı | Onun önüne eklemek için bir Inline düğümü, sonuna eklemek için ise bir Paragraph geçirin |
| Bir alan argümanı düz metin ve düğümü birlikte kabul etmez | AddArgument, bir birleşik argüman yerine tek bir string/int/double ile çağrıldı | Karışık argümanı FieldArgumentBuilder (AddText, AddNode, AddField) ile oluşturun ve bunu AddArgument‘e geçirin |
| Anahtar değeri, oluşturulan alan kodunda tanınmıyor | Anahtar aslında bir argüman gerektirdiğinde AddSwitch(switchName) kullanıldı | Anahtarın string, int veya double değerini kullanarak AddSwitch(switchName, switchArgument) aşırı yüklemesini kullanın |
FAQ
Önceden oluşturulmuş bir alan kodu eklemek yerine FieldBuilder ne zaman kullanılmalı?
Önceden oluşturulmuş bir alan kodu dizesi eklemek yerine, alanın argümanları ve anahtarları üzerinde programlı olarak oluştururken açık kontrol gerektiğinde FieldBuilder kullanın.
Bir alana birden fazla argüman nasıl ekleyebilirim?
Her argüman için bir kez AddArgument çağırın — string, int, double, iç içe bir FieldBuilder ve FieldArgumentBuilder için aşırı yüklenmiştir.
Argümanı metin ve başka bir alanın karışımını içeren bir alan oluşturabilir miyim?
Evet — FieldArgumentBuilder kullanın, gerektiğinde AddText, AddNode ve AddField çağırın, ardından FieldBuilder.AddArgument‘e iletin.
Oluşturulan alanı belgeye nasıl yerleştiririm?
BuildAndInsert(refNode) çağırın, ya bir Inline düğümü (önüne ekler) ya da bir Paragraph (sonuna ekler) geçirerek.
API Reference Özet
| Sınıf/Yöntem | Açıklama |
|---|---|
FieldBuilder | Alan kodu belirteçlerinden (argümanlar ve anahtarlar) bir alan oluşturur |
FieldBuilder(fieldType) | FieldType oluşturmak için alanı alan kurucu |
FieldBuilder.AddArgument(argument) | Bir argüman ekler (string, int, double, FieldBuilder veya FieldArgumentBuilder) |
FieldBuilder.AddSwitch(switchName) / AddSwitch(switchName, switchArgument) | Bir alan anahtarını ekler, değerli ya da değersiz |
FieldBuilder.BuildAndInsert(refNode) | Oluşturulan alanı bir Inline düğümünün önüne veya bir Paragraph sonuna ekler |
FieldArgumentBuilder | Metin, düğümler ve iç içe alanlardan karmaşık bir alan argümanı oluşturur |
FieldArgumentBuilder.AddText(text) | Argümana düz metin ekler |
FieldArgumentBuilder.AddNode(node) | Argümana bir Inline düğümü ekler |
FieldArgumentBuilder.AddField(fieldBuilder) | Argümana FieldBuilder tarafından oluşturulan bir alanı iç içe ekler |