Güncelleme Alanları
Tipik olarak, Microsoft Word’e bir alan eklemek zaten güncel bir değer içerir. Örneğin, alan bir formül ya da sayfa numarasıysa, bu verilen belgenin versiyonu için doğru hesaplanmış değeri içerecektir. Ama eğer senin bir uygulamanda iki belgeyi birleştirme ya da verilerle doldurma gibi belgede alanlar olan ya da alanları değiştiren bir uygulama varsa, o zaman ideal olarak tüm alanlar belgeden faydalanmak için güncellenmelidir.
Alanları Nasıl Güncelleştirirsiniz?
Bir belge yüklendiğinde, Aspose.Words otomatik alan güncelleme seçeneği kapalı olduğunda Microsoft Word’in davranışını taklit eder. Davranışı aşağıdaki şekilde özetlenebilir:
- bir belgeyi açtığınızda/kaydettiğinizde alanlar bütün kalır
- belgenin tüm alanlarını açıkça güncelleyebilirsiniz mesela, yeniden oluştur
TOC
ihtiyacınız olduğunda - baston bir PDF veya XPS yazdığınızda başlık / altbilgiler içindeki sayfa numaralandırma alanlarıyla ilgili alanlar güncellenir
- siz çalıştırdığınızda mail merge tüm alanlar otomatik olarak güncellenir
Alanları Programatik Olarak Güncelle
Tüm belgedeki alanları açıkça güncellemek için sadece UpdateFields yöntemini çağırın. Belgenin bir bölümünde bulunan alanları güncellemek için bir Range nesnesi elde edin ve UpdateFields yöntemini çağırın. Aspose.Words ‘da, belgedeki herhangi bir düğüme karşılık gelen bir Range elde edebilirsiniz, örneğin, Section, HeaderFooter, Paragraph vb. GetRange özelliğini kullanarak. Tek bir alanın sonucunu güncellemek için Update yöntemini çağırın.
Rendirirken Sayfa İlgili Alanların Otomatik Güncellenmesi
Bir belgeyi sabit sayfa biçimine dönüştürdüğünüzde örneğin PDF veya XPS’e, Aspose.Words otomatik olarak sayfa düzeniyle ilgili alanları günceller; PAGE
, PAGEREF
belgenin başlık/altbilgilerindeki alanlar. Bu davranış, bir belgeyi yazdırabilirken Microsoft Word’un davranışını taklit eder.
Eğer belgenin diğer tüm alanları güncellenmek istiyorsanız, sonra belgeyi işlemekten önce UpdateFields çağırmanız gerekir.
Aşağıdaki örnek, bir belge işlenmeden önce tüm alanları nasıl güncelleyeceğinizi gösterir:
Otomatik Alan Güncelleme Mail Merge
Bir mail merge çalıştırdığınızda, belgedeki tüm alanlar otomatik olarak güncellenecek. Çünkü mail merge bir alan güncellemesi durumudur. Programı bir mail merge alanı ile karşılaştığında ve sonucunu güncellemesi gerekiyorsa, bu da veri kaynağından değer almasını ve onu alana eklemesini gerektirir. Tabii ki mantık daha karmaşıktır, mesela belgenin/ mail merge bölgenin sonunda ulaşılır ancak birleştirilecek daha fazla veri varsa bölge çoğaltılmalı ve yeni alan kümesi güncellenmelidir.
Güncelleştir Kirli Öznitelik İçeren Alanlar
The w:dirty bir alan düzeyinde özniteliktir ve belge açıldığında yalnızca belirttiğiniz alanı yeniler. Bu, MS Word’e bir sonraki belgenin açıldıktan sonra bu alanı yalnızca yenilemesini söyler. Alanların güncellenip güncellenmeyeceğini belirtmek için LoadOptions.setUpdateDirtyFields() özelliğini kullanabilirsiniz. LoadOptions.setUpdateDirtyFields()‘ın değeri true olarak ayarlandığında, Field.IsDirty
veya FieldChar.IsDirty
özelliği true değerine sahip tüm alanlar belge yüklendiğinde güncellenir
Aşağıdaki kod örneği, kirli özniteliğe sahip alanları güncelleme şeklini gösterir:
LastSavedTime özelliğini kaydetmeden önce güncelle
Bu UpdateLastSavedTimeProperty özelliğini kullanabilir veya belgenin kaydedilmesi sırasında ilgili yerleşik belge özelliği LastSavedTime‘i güncellemek için.
Aşağıdaki kod örneğinde bu özelliğin nasıl güncelleneceği gösterilmiştir: