Pokročilé Funkce Mail Merge

Aspose.Words poskytuje některé další vlastnosti a metody Mail Merge, které vám umožňují provádět další přizpůsobení procesu Mail Merge buď v jednoduchém Mail Merge nebo Mail Merge s regiony.

Pokročilé funkce Mail Merge zahrnují mimo jiné získávání informací o struktuře šablon před provedením operace Mail Merge, nastavení pravidel pro operaci Mail Merge a čištění během operace Mail Merge. Tento článek se bude zabývat pouze několika vlastnostmi a příklady, které vám ukážou, jak používat pokročilé funkce.

Nastavení pravidel pro operace Mail Merge

Přidání pravidel do šablony vám umožní zefektivnit a zpružnit proces pracovního postupu. Pomocí pravidel Mail Merge můžete nastavit obsah, který lze rychle změnit, a vyhnout se nutnosti generovat více dokumentů.

Aspose.Words umožňuje přizpůsobit Mail Merge na základě pravidel, která se spustí při provádění Mail Merge operace a řízení sloučení informací. Například když vytvoříte e-mail nebo dopis, který pošlete všem svým zákazníkům. Můžete nastavit pravidlo tak, aby písmeno mohlo obsahovat různá data na základě různých hodnot v určitých polích zdroje dat.

Podívejte se na některá pravidla Mail Merge, která můžete implementovat.

Implementujte další pole pro sloučení datových záznamů v aktuálním dokumentu

Pole Next můžete implementovat a sloučit další datový záznam do aktuálního výsledného sloučeného dokumentu namísto spuštění nového sloučeného dokumentu. Používá se k zobrazení více záznamů v jednom dokumentu.

Implementujte pole NextIf a SkipIf pro porovnání dvou výrazů

Můžete použít buď NextIf pole nebo SkipIf pole, pokud chcete porovnat dva výrazy (right a left výrazy) některými operator.

NextIf

Field Name Comparison Result “True” Comparison Result “False”
NextIf Aspose.Words sloučí další datový záznam do aktuálního dokumentu sloučení a všechna pole sloučení v šabloně, která jsou za polem NextIf, budou nahrazena hodnotami z dalšího datového záznamu, nikoli z aktuálního datového záznamu. Aspose.Words sloučí další datový záznam do nového dokumentu sloučení.
SkipIf Aspose.Words zruší aktuální dokument sloučení, přesune se na další datový záznam ve zdroji dat a spustí nový dokument sloučení. Aspose.Words bude pokračovat v aktuálním dokumentu sloučení.

Následující příklad kódu ukazuje, jak porovnat dva výrazy s NextIf nebo SkipIf:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Use NextIf field
FieldNextIf fieldNextIf = (FieldNextIf)builder.insertField(FieldType.FIELD_NEXT_IF, true);
// Or use SkipIf field
FieldSkipIf fieldSkipIf = (FieldSkipIf)builder.insertField(FieldType.FIELD_SKIP_IF, true);
// Compare two expressions
fieldNextIf.setLeftExpression("3");
fieldNextIf.setRightExpression("1 + 2");
fieldNextIf.setComparisonOperator("=");

Získejte Informace O Struktuře Šablony

Aspose.Words umožňuje shromažďovat různé informace v šabloně pomocí mnoha metod. Například možná budete muset získat názvy některých slučovacích polí nebo hierarchii oblastí v šabloně. Nyní vysvětlíme možné varianty, jak získat nějaké konkrétní informace z vaší šablony.

Získat Názvy Polí Sloučení

Můžete narazit na scénář, kdy budete chtít sloučit data se sloučenými poli, která jsou vytvořena jinými, a v tomto případě si nebudete jisti přesnými názvy polí sloučení. Chcete-li tedy dosáhnout účelu Mail Merge, musíte nejprve přečíst a zobrazit názvy všech polí sloučení. Aspose.Words umožňuje získat kolekci názvů polí sloučení pomocí metody GetFieldNames.

Následující příklad kódu ukazuje, jak získat názvy všech polí sloučení v šabloně:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
String[] fieldNames = doc.getMailMerge().getFieldNames();

Získejte Informace O Slučovacích Regionech

Můžete mít scénář, ve kterém chcete pochopit, jak je vaše šablona strukturována prostřednictvím zadaných oblastí sloučení. Pomocí některých metod můžete shromáždit všechny potřebné informace o oblastech sloučení nebo získat hierarchii oblastí sloučení v šabloně, například metodu GetRegionsHierarchy. Můžete použít vlastnosti a metody MailMergeRegionInfo class.The Následující příklad kódu ukazuje, jak získat hierarchii slučovacích regionů:

Java

MailMergeRegionInfo regionInfo = doc.getMailMerge().getRegionsHierarchy();

Následující příklad kódu ukazuje, jak získat konkrétní oblasti sloučení do šablony na základě jejich názvů:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "Mail merge regions.docx");
List<MailMergeRegionInfo> regions = doc.getMailMerge().getRegionsByName("Region1");
for (MailMergeRegionInfo region : regions)
System.out.println(region.getName());
regions = doc.getMailMerge().getRegionsByName("Region2");
for (MailMergeRegionInfo region : regions)
System.out.println(region.getName());
regions = doc.getMailMerge().getRegionsByName("NestedRegion1");
for (MailMergeRegionInfo region : regions)
System.out.println(region.getName());

Přidat Mapovaná Pole

Aspose.Words umožňuje automaticky mapovat názvy polí ve zdroji dat a názvy polí Mail Merge v šabloně pomocí vlastnosti MappedDataFields. Pokud máte například v šabloně název pole s názvem " Příjmení “a ve zdroji dat máte název pole” příjmení “nebo jinou variantu, například” příjmení “nebo” LastName", pak se pole ve zdroji dat automaticky namapuje na odpovídající mapované pole. Pokud má být šablona sloučení sloučena s mnoha zdroji dat, mapovaná pole znemožňují opětovné zadávání polí do šablony, aby bylo možné souhlasit s názvy polí v databázi.

Následující příklad kódu ukazuje, jak přidat mapované pole pomocí metody Add, když pole sloučení v šabloně a datové pole ve zdroji dat mají různé názvy:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
// Shows how to add a mapping when a merge field in a document and a data field in a data source have different names.
doc.getMailMerge().getMappedDataFields().add("MyFieldName_InDocument", "MyFieldName_InDataSource");