Körlevél

Körlevél

Ez az útmutató bemutatja, hogyan lehet dolgozni a mail-merge mezőkódokkal és a mail-merge konfigurációs adatokkal a Aspose.Words FOSS-ban .NET számára, valamint hol húzódik a határ a merge végrehajtásával. Aspose.Words FOSS a .NET számára felismeri és frissíti a Word mail-merge mezőkódjait — ADDRESSBLOCK, DATABASE, GREETINGLINE, MERGEFIELD, NEXTIF, és SKIPIF — részeként a mezőértékelő motorjának, és képes beolvasni a mail-merge konfigurációs adatokat (MailMergeSettings) egy dokumentumban tárolt. MailMerge.Execute() a kereskedelmi termékből ismert munkafolyamat — az not implementálva ebben a kiadásban; nincs MailMerge végrehajtási osztály létezik a jelenlegi API felületen.


MERGEFIELD — Az egyesítési helyőrzők olvasása és módosítása

FieldMergeField megvalósítja a MERGEFIELD mezőt. FieldName és FieldNameNoPrefix visszaadják a mezőhöz kötött alapul szolgáló adatforrás oszlop nevét, a TextBefore/TextAfter a egyesített érték köré csomagolt szöveges literált tartalmazza, a IsMapped/IsVerticalFormatting pedig jelentik az egyesítési mező leképezését és elrendezési zászlókat. Mint minden mezőtípus, támogatja a GetFieldCode(), Update(), Unlink() és Remove().


ADDRESSBLOCK és GREETINGLINE

FieldAddressBlock megvalósítja a ADDRESSBLOCK mezőt, ahol a FormatAddressOnCountryOrRegion, IncludeCountryOrRegionName, ExcludedCountryOrRegionName, NameAndAddressFormat és LanguageId szabályozzák a címzett címének formázását. A FieldGreetingLine megvalósítja a GREETINGLINE mezőt, a AlternateText, NameFormat és LanguageId pedig a megszólítás szövegét szabályozzák.


DATABASE mező

FieldDatabase megvalósítja a DATABASE mezőt, és a mezőben tárolt kapcsolat részleteket teszi elérhetővé: Connection, FileName, Query, TableFormat, InsertHeadings, InsertOnceOnMailMerge, FirstRecord és LastRecord. A lekérdezés eredményeinek biztosításához, amikor ez a mező frissül, valósítsa meg a IFieldDatabaseProvider és annak GetQueryResult(fileName, connection, query, field) metódusát, majd rendelje hozzá a Document.FieldOptions.FieldDatabaseProvider értékhez, mielőtt meghívná a Update()-t. A Connection tulajdonságot be kell állítani – enélkül a Update() nem rendelkezik adatforrással a lekérdezéshez.


Feltételes összefűzési mezők — NEXTIF és SKIPIF

FieldNextIf és FieldSkipIf megvalósítják a NEXTIF és SKIPIF mezőket, mindegyik a LeftExpression, ComparisonOperator és RightExpression értékeket teszi elérhetővé a feltételes teszthez. Document.FieldOptions.ComparisonExpressionEvaluator (egy IComparisonExpressionEvaluator) felülírhatja, hogyan értékelődnek ki ezek a feltételes kifejezések.


Képösszefűzési mező méretezése

MergeFieldImageDimension egy szélességet vagy magasságot jelöl egy képösszefűzési mezőn keresztül beszúrt képhez, amelyet new MergeFieldImageDimension(value) (pontban) vagy new MergeFieldImageDimension(value, unit) formájában hoznak létre, egy explicit MergeFieldImageDimensionUnit (Point vagy Percent) használatával. A Value és Unit tulajdonságai egyaránt írhatóak.


Mi tartozik a hatókörbe, és mi nem

Document.MailMergeSettings visszatér egy MailMergeSettings objektum, amely a levelezés-összevonás konfigurációját modellezi, az OOXML egy dokumentumban marad meg — DataSource, ConnectString, Query, MainDocumentType, DataType, Destination, CheckErrors, és az Office Data Source Object (ODSO) beállításokat a OdsoFieldMapData/OdsoRecipientData gyűjteményekben. Ez a konfiguráció data amelyet a dokumentum hordoz, nem élő kapcsolat: olvasás és írás MailMergeSettings nem csatlakozik adatbázishoz, táblázathoz vagy címjegyzékhez, és ez a kiadás nem tartalmaz MailMerge végrehajtási osztályt az összevonás futtatásához és a kitöltött kimeneti dokumentumok előállításához. Ami ebben a kiadásban támogatott, az a mezőszintű réteg felül: az összevonási mezőkódok felismerése, olvasása, frissítése és módosítása egyetlen dokumentumban a mezőértékelő motoron keresztül.


Tippek és bevált gyakorlatok

  • Kezeld a MailMergeSettings-t olyan dokumentum metaadatként, amelyet olvashatsz és visszaküldhetsz, nem pedig API-ként a külső adatokhoz való csatlakozáshoz — ebben a kiadásban nincs mögötte végrehajtási motor.
  • Mindig állítsd be a FieldDatabase.Connection-t, mielőtt meghívod a Update()-t egy DATABASE mezőn, különben a frissítésnek nincs mit lekérdeznie.
  • Hozz létre egyetlen IFieldDatabaseProvider-t, és rendeld hozzá a Document.FieldOptions.FieldDatabaseProvider segítségével, hogy központosítsd, hogyan oldják fel a dokumentumban lévő összes DATABASE mező az adataikat.
  • Használd a FieldMergeField.FieldName-t annak megállapítására, hogy mely adatforrás-oszlophoz van kötve egy MERGEFIELD, mielőtt programozottan döntenél a feldolgozás módjáról.

Gyakori problémák

ProblémaOkJavítás
FieldDatabase.Update() nem ad vissza adatotConnection nincs beállítva, vagy nincs IFieldDatabaseProvider regisztrálvaÁllítsa be a Connection, és rendelje hozzá a Document.FieldOptions.FieldDatabaseProvider a frissítés előtt
Várt egy MailMerge.Execute() stílusú APIAz összeolvasztás végrehajtása külső adatforrás ellen nincs megvalósítva ebben a FOSS kiadásbanDolgozzon közvetlenül az összeolvasztási mezőosztályokkal (FieldMergeField, FieldDatabase, stb.) egyetlen dokumentumban, vagy használja a kereskedelmi Aspose.Words terméket .NET esetén a teljes összeolvasztási végrehajtáshoz
NEXTIF/SKIPIF feltételek váratlanul értékelődnek kiAz alapértelmezett összehasonlításkifejezés kiértékelése nem felel meg a várt szemantikánakImplementáld IComparisonExpressionEvaluator és rendeld hozzá Document.FieldOptions.ComparisonExpressionEvaluator

FAQ

Futtathatok mail merge-et CSV vagy adatbázis ellen ebben a kiadásban?

Nem. Ez a kiadás megvalósítja a mail-merge mezőkódokat és a MailMergeSettings konfigurációs adatmodellt, de nincs MailMerge végrehajtási osztály a külső adatforráshoz való csatlakozáshoz és a kitöltött dokumentumok generálásához.

Mit is tehetek valójában a MERGEFIELD mezőkkel?

Olvashatod és módosíthatod őket közvetlenül — FieldMergeField.FieldName a kötött oszlopnévhez, TextBefore/TextAfter a környező szöveges tartalomhoz, és Update()/Unlink()/Remove() a többi mezőhöz hasonlóan — az aktuális dokumentumban.

Használhatatlan a MailMergeSettings a merge végrehajtása nélkül?

Nem — továbbra is hasznos a dokumentum tárolt levél-összefűzési konfigurációjának olvasásához vagy átviteléhez, például DataSource, Query vagy MainDocumentType esetén, még akkor is, ha ez a kiadás nem használja fel azt a konfigurációt a merge futtatásához.

Hogyan adhatok meg adatot egy DATABASE mezőhöz?

Implementáld a IFieldDatabaseProvider.GetQueryResult(fileName, connection, query, field) elemet, és rendeld hozzá a megvalósításodat a Document.FieldOptions.FieldDatabaseProvider értékhez, mielőtt meghívnád a Update()-t.

Hogyan szabályozhatom egy kép merge mező által beszúrt kép méretét?

Használd a MergeFieldImageDimension-t, amelyet pontértékkel vagy egy értékkel és egy explicit MergeFieldImageDimensionUnit-vel (Point vagy Percent) lehet felépíteni.


API Reference Összefoglaló

Osztály / MetódusLeírás
FieldMergeFieldMERGEFIELD mező: FieldName, FieldNameNoPrefix, TextBefore, TextAfter, IsMapped
FieldAddressBlockADDRESSBLOCK mező: címformázási tulajdonságok
FieldGreetingLineGREETINGLINE mező: üdvözlés formázási tulajdonságok
FieldDatabaseDATABASE mező: Connection, Query, FileName, TableFormat
IFieldDatabaseProviderLekérdezési eredményeket ad a DATABASE mezőkhöz a(z) GetQueryResult() segítségével
FieldNextIf / FieldSkipIfNEXTIF / SKIPIF feltételes egyesítési mezők
MergeFieldImageDimensionSzélesség/magasság a kép merge mező képeihez
Document.MailMergeSettingsMegőrzött mail-merge konfigurációs adatok (nem élő adatkapcsolat)

Lásd még:

 Magyar