Posta Birleştirme

Posta Birleştirme

Bu rehber, Aspose.Words FOSS for .NET içinde posta birleştirme alan kodları ve posta birleştirme yapılandırma verileriyle nasıl çalışılacağını ve birleştirme yürütmesiyle sınırın nerede olduğunu gösterir. Aspose.Words FOSS for .NET, Word posta birleştirme alan kodlarını tanır ve günceller — ADDRESSBLOCK, DATABASE, GREETINGLINE, MERGEFIELD, NEXTIF, ve SKIPIF — alan değerlendirme motorunun bir parçası olarak, ve posta birleştirme yapılandırma verilerini okuyabilir (MailMergeSettings) bir belge içinde kalıcı olarak saklanır. Harici bir veri kaynağına karşı gerçek bir birleştirme çalıştırarak doldurulmuş çıktı belgeleri oluşturmak — MailMerge.Execute() ticari üründen tanıdık olan iş akışı — şudur not bu sürümde uygulanmıştır; yok MailMerge çalıştırma sınıfı mevcut API yüzeyinde.


MERGEFIELD — Birleştirme Yer Tutucularını Okuma ve Değiştirme

FieldMergeField, MERGEFIELD alanını uygular. FieldName ve FieldNameNoPrefix, alanın bağlı olduğu temel veri kaynağı sütun adını döndürür, TextBefore/TextAfter birleştirilmiş değerin etrafında sarılan düz metni tutar ve IsMapped/IsVerticalFormatting birleştirme alanı eşleştirmesini ve düzen bayraklarını rapor eder. Her alan türü gibi, GetFieldCode(), Update(), Unlink() ve Remove() destekler.


ADDRESSBLOCK ve GREETINGLINE

FieldAddressBlock, ADDRESSBLOCK alanını uygular; FormatAddressOnCountryOrRegion, IncludeCountryOrRegionName, ExcludedCountryOrRegionName, NameAndAddressFormat ve LanguageId, alıcının adresinin nasıl biçimlendirileceğini kontrol eder. FieldGreetingLine, GREETINGLINE uygular; AlternateText, NameFormat ve LanguageId selamlama metnini kontrol eder.


DATABASE Alanı

FieldDatabase, DATABASE alanını uygular ve alanda saklanan bağlantı ayrıntılarını ortaya çıkarır: Connection, FileName, Query, TableFormat, InsertHeadings, InsertOnceOnMailMerge, FirstRecord ve LastRecord. Bu alan güncellendiğinde sorgu sonuçları sağlamak için IFieldDatabaseProvider ve onun GetQueryResult(fileName, connection, query, field) metodunu uygulayın, ardından Update() çağırmadan önce Document.FieldOptions.FieldDatabaseProvider öğesine atayın. Connection özelliği ayarlanmalıdır — aksi takdirde Update() sorgulayacak bir veri kaynağına sahip olmaz.


Koşullu Birleştirme Alanları — NEXTIF ve SKIPIF

FieldNextIf ve FieldSkipIf, NEXTIF ve SKIPIF alanlarını uygular, her biri koşullu test için LeftExpression, ComparisonOperator ve RightExpression öğelerini ortaya çıkarır. Document.FieldOptions.ComparisonExpressionEvaluator (IComparisonExpressionEvaluator bir IComparisonExpressionEvaluator) bu koşullu ifadelerin nasıl değerlendirileceğini geçersiz kılabilir.


Resim Birleştirme Alanı Boyutlandırma

MergeFieldImageDimension, bir resim birleştirme alanı aracılığıyla eklenen görüntünün genişliğini veya yüksekliğini temsil eder, new MergeFieldImageDimension(value) (puan cinsinden) veya new MergeFieldImageDimension(value, unit) olarak, açık bir MergeFieldImageDimensionUnit (Point veya Percent) ile oluşturulur. Value ve Unit özellikleri ikisi de yazılabilir.


Kapsamda Neler Var, Neler Yok

Document.MailMergeSettings döndürür MailMergeSettings posta birleştirme yapılandırmasını modelleyen nesne OOXML bir belge içinde kalıcıdır — DataSource, ConnectString, Query, MainDocumentType, DataType, Destination, CheckErrors, ve Office Data Source Object (ODSO) ayarları aracılığıyla OdsoFieldMapData/OdsoRecipientData koleksiyonlar. Bu bir yapılandırmadır data belge içinde taşınır, canlı bir bağlantı değildir: okuma ve yazma MailMergeSettings bir veritabanına, elektronik tabloya veya adres listesine bağlanmaz ve bu sürümde yoktur MailMerge bir birleştirme çalıştırmak ve bundan doldurulmuş çıktı belgeleri üretmek için yürütme sınıfı. Bu sürümün desteklediği şey, üstteki alan düzeyi katmandır: birleştirme alan kodlarını tanıma, okuma, güncelleme ve bir belge içinde alan değerlendirme motoru aracılığıyla değiştirme.


İpuçları ve En İyi Uygulamalar

  • MailMergeSettings‘ı, dış veriyle bağlanmak için bir API olarak değil, okuyabileceğiniz ve döngüsel olarak aktarabileceğiniz belge üst verisi olarak ele alın — bu sürümde arkasında bir yürütme motoru yok.
  • DATABASE alanında Update() çağırmadan önce daima FieldDatabase.Connection‘ı ayarlayın, aksi takdirde güncellemenin sorgulayacak bir şeyi olmaz.
  • IFieldDatabaseProvider‘ı bir kez uygulayın ve Document.FieldOptions.FieldDatabaseProvider aracılığıyla atayın; böylece bir belgedeki tüm DATABASE alanlarının verilerini nasıl çözdükleri merkezileştirilir.
  • Programatik olarak nasıl işleneceğine karar vermeden önce, bir MERGEFIELD‘in bağlı olduğu veri kaynağı sütununu okumak için FieldMergeField.FieldName‘ı kullanın.

Yaygın Sorunlar

SorunNedenDüzelt
FieldDatabase.Update() veri döndürmüyorConnection ayarlanmamış veya IFieldDatabaseProvider kayıtlı değilConnection‘ı ayarlayın ve güncellemeden önce Document.FieldOptions.FieldDatabaseProvider‘ı atayın
Bir MailMerge.Execute()-stil API bekleniyorHarici bir veri kaynağına karşı birleştirme yürütmesi bu FOSS sürümde uygulanmadıTek bir belgede birleştirme alan sınıflarıyla doğrudan (FieldMergeField, FieldDatabase, vb.) çalışın veya tam birleştirme yürütmesi için .NET amacıyla ticari Aspose.Words’yi kullanın
NEXTIF/SKIPIF koşulları beklenmedik şekilde değerlendiriliyorVarsayılan karşılaştırma ifadesi değerlendirmesi beklenen anlamla eşleşmiyorIComparisonExpressionEvaluator öğesini uygulayın ve Document.FieldOptions.ComparisonExpressionEvaluator değişkenine atayın

FAQ

Bu sürümde bir CSV veya veritabanı üzerinde bir posta birleştirme çalıştırabilir miyim?

Hayır. Bu sürüm, posta birleştirme alan kodlarını ve MailMergeSettings yapılandırma veri modelini uygular, ancak dış bir veri kaynağına bağlanıp doldurulmuş belgeler oluşturacak bir MailMerge yürütme sınıfı yoktur.

MERGEFIELD alanlarıyla aslında ne yapabilirim, peki?

Onları doğrudan okuyabilir ve değiştirebilirsiniz — bağlı sütun adı için FieldMergeField.FieldName, çevreleyen literal metin için TextBefore/TextAfter, ve diğer alanlar gibi Update()/Unlink()/Remove() — geçerli belge içinde.

MailMergeSettings, birleştirme yürütülmeden işe yaramaz mı?

Hayır — bu sürüm o yapılandırmayı birleştirme çalıştırmak için kullanmasa da, DataSource, Query veya MainDocumentType gibi bir belgenin saklanan posta birleştirme yapılandırmasını okuma veya geri döndürme için hâlâ yararlıdır.

Bir DATABASE alanı için veriyi nasıl sağlarım?

IFieldDatabaseProvider.GetQueryResult(fileName, connection, query, field) öğesini uygulayın ve Document.FieldOptions.FieldDatabaseProvider öğesine uygulamanızı atayın, Update() öğesini çağırmadan önce.

picture merge field tarafından eklenen bir görüntünün boyutunu nasıl kontrol edebilirim?

MergeFieldImageDimension öğesini kullanın; bir nokta değeri ya da açık bir MergeFieldImageDimensionUnit (Point veya Percent) ile oluşturulmuş.


API Reference Özet

Sınıf / MetotAçıklama
FieldMergeFieldMERGEFIELD alanı: FieldName, FieldNameNoPrefix, TextBefore, TextAfter, IsMapped
FieldAddressBlockADDRESSBLOCK alanı: adres biçimlendirme özellikleri
FieldGreetingLineGREETINGLINE alanı: selamlama biçimlendirme özellikleri
FieldDatabaseDATABASE alanı: Connection, Query, FileName, TableFormat
IFieldDatabaseProviderDATABASE alanları için sorgu sonuçlarını GetQueryResult() üzerinden sağlar
FieldNextIf / FieldSkipIfNEXTIF / SKIPIF koşullu birleştirme alanları
MergeFieldImageDimensionResim birleştirme alanı görselleri için genişlik/yükseklik
Document.MailMergeSettingsKalıcı mail-merge yapılandırma verileri (canlı veri bağlantısı değil)

Ayrıca Bakınız

 Türkçe