Zaawansowane Funkcje Mail Merge

Aspose.Words zapewnia dodatkowe właściwości i metody Mail Merge, które pozwalają na dalsze dostosowywanie procesu Mail Merge w prostym Mail Merge lub Mail Merge z regionami.

Zaawansowane funkcje Mail Merge obejmują między innymi uzyskiwanie informacji o strukturze szablonu przed wykonaniem operacji Mail Merge, ustawianie reguł dla operacji Mail Merge i czyszczenie podczas operacji Mail Merge. W tym artykule omówimy tylko kilka właściwości i przykładów, aby pokazać, jak korzystać z zaawansowanych funkcji.

Ustaw reguły dla operacji Mail Merge

Dodanie reguł do szablonu pozwala uczynić proces przepływu pracy bardziej efektywnym i elastycznym. Korzystając z reguł Mail Merge, możesz skonfigurować zawartość, którą można szybko zmienić i uniknąć konieczności generowania wielu dokumentów.

Aspose.Words umożliwia dostosowanie Mail Merge w oparciu o reguły uruchamiane podczas wykonywania operacji Mail Merge i sterowanie scalaniem informacji. Na przykład podczas tworzenia wiadomości e-mail lub listu do wysłania do wszystkich klientów. Możesz skonfigurować regułę, aby litera mogła zawierać różne dane na podstawie różnych wartości w niektórych polach źródła danych.

Spójrz na kilka reguł Mail Merge, które możesz zaimplementować.

Zaimplementuj następne pole, aby scalić rekordy danych w bieżącym dokumencie

Możesz zaimplementować pole Next, aby scalić następny rekord danych z bieżącym wynikowym scalonym dokumentem, zamiast rozpoczynać nowy scalony dokument. Służy do wyświetlania wielu rekordów w jednym dokumencie.

Zaimplementuj pola NextIf i SkipIf, Aby porównać dwa wyrażenia

Możesz użyć pola NextIf lub pola SkipIf, Jeśli chcesz porównać dwa wyrażenia (wyrażeniaright i left) przez jakieś operator.

NextIf

Field Name Comparison Result “True” Comparison Result “False”
NextIf Aspose.Words połączy następny rekord danych z bieżącym dokumentem scalania, a wszystkie pola scalania w szablonie, które są po polu NextIf, zostaną zastąpione wartościami z następnego rekordu danych, a nie bieżącym rekordem danych. Aspose.Words połączy następny rekord danych w nowy dokument scalania.
SkipIf Aspose.Words anuluje bieżący dokument scalania, przejdzie do następnego rekordu danych w źródle danych i rozpocznie nowy dokument scalania. Aspose.Words będzie kontynuować bieżący dokument scalania.

Poniższy przykład kodu pokazuje, jak porównać dwa wyrażenia z NextIf LUB SkipIf:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Use NextIf field. A NEXTIF field has the same function as a NEXT field,
// but it skips to the next row only if a statement constructed by the following 3 properties is true.
FieldNextIf fieldNextIf = (FieldNextIf)builder.InsertField(FieldType.FieldNextIf, true);
// Or use SkipIf field.
FieldSkipIf fieldSkipIf = (FieldSkipIf)builder.InsertField(FieldType.FieldSkipIf, true);
fieldNextIf.LeftExpression = "5";
fieldNextIf.RightExpression = "2 + 3";
fieldNextIf.ComparisonOperator = "=";
doc.Save(ArtifactsDir + "WorkingWithFields.FieldNext.docx");
view raw field-next.cs hosted with ❤ by GitHub

Uzyskanie Informacji O Strukturze Szablonu

Aspose.Words Umożliwia zbieranie różnych informacji w szablonie za pomocą wielu metod. Na przykład może być konieczne uzyskanie nazw niektórych pól scalania lub hierarchii regionów w szablonie. Teraz wyjaśnimy możliwe warianty, aby uzyskać konkretne informacje z szablonu.

Uzyskaj Nazwy Pól Scalania

Możesz natknąć się na scenariusz, w którym będziesz chciał scalić dane z polami scalania utworzonymi przez innych, w takim przypadku nie będziesz mieć pewności co do dokładnych nazw pól scalania. Tak więc, aby osiągnąć cel Mail Merge, najpierw musisz przeczytać i wyświetlić nazwy wszystkich pól scalania. Aspose.Words pozwala uzyskać zbiór nazw pól scalania przy użyciu metody GetFieldNames.

Poniższy przykład kodu pokazuje, jak uzyskać nazwy wszystkich pól scalania w szablonie:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document();
string[] fieldNames = doc.MailMerge.GetFieldNames();

Uzyskaj Informacje O Regionach Scalania

Możesz mieć scenariusz, w którym chcesz zrozumieć strukturę szablonu w określonych regionach scalania. Możesz użyć niektórych metod, aby zebrać wszystkie niezbędne informacje o regionach scalania lub uzyskać hierarchię regionów scalania w szablonie, na przykład metodę GetRegionsHierarchy. Możesz użyć właściwości i metod klasy MailMergeRegionInfo.Poniższy przykład kodu pokazuje, jak uzyskać hierarchię regionów scalania:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
MailMergeRegionInfo regionInfo = doc.MailMerge.GetRegionsHierarchy();

Poniższy przykład kodu pokazuje, jak uzyskać określone regiony scalania w szablonie na podstawie ich nazw:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Mail merge regions.docx");
MailMergeRegionInfo regionInfo = doc.MailMerge.GetRegionsHierarchy();
IList<MailMergeRegionInfo> regions = doc.MailMerge.GetRegionsByName("Region1");
Assert.AreEqual(1, doc.MailMerge.GetRegionsByName("Region1").Count);
foreach (MailMergeRegionInfo region in regions) Assert.AreEqual("Region1", region.Name);
regions = doc.MailMerge.GetRegionsByName("Region2");
Assert.AreEqual(1, doc.MailMerge.GetRegionsByName("Region2").Count);
foreach (MailMergeRegionInfo region in regions) Assert.AreEqual("Region2", region.Name);
regions = doc.MailMerge.GetRegionsByName("NestedRegion1");
Assert.AreEqual(2, doc.MailMerge.GetRegionsByName("NestedRegion1").Count);
foreach (MailMergeRegionInfo region in regions) Assert.AreEqual("NestedRegion1", region.Name);

Dodaj Zmapowane Pola

Aspose.Words umożliwia automatyczne mapowanie nazw pól w źródle danych i nazw pól Mail Merge w szablonie przy użyciu właściwości MappedDataFields. Na przykład, jeśli masz nazwę pola o nazwie “nazwisko” w szablonie, a w źródle danych masz nazwę pola “nazwisko” lub inną odmianę, taką jak “Last_Name” lub “LastName”, to pole w źródle danych zostanie automatycznie odwzorowane na odpowiednie zmapowane pole. Jeśli szablon scalania ma zostać scalony z wieloma źródłami danych, zmapowane pola sprawiają, że ponowne wprowadzanie pól do szablonu nie jest konieczne, aby zgadzać się z nazwami pól w bazie danych.

Poniższy przykład kodu pokazuje, jak dodać zmapowane pole przy użyciu metody Add, gdy pole scalania w szablonie i pole danych w źródle danych mają różne nazwy:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document();
doc.MailMerge.MappedDataFields.Add("MyFieldName_InDocument", "MyFieldName_InDataSource");