MailMerge

MailMerge class

يمثل وظيفة دمج البريد.

لمعرفة المزيد، قم بزيارةدمج البريد وإعداد التقارير مقالة توثيقية.

public class MailMerge

الخصائص

اسموصف
CleanupOptions { get; set; }يحصل على مجموعة من العلامات التي تحدد العناصر التي يجب إزالتها أثناء دمج البريد أو يعينها.
CleanupParagraphsWithPunctuationMarks { get; set; }يحصل على قيمة أو يعينها تشير إلى ما إذا كانت الفقرات التي تحتوي على علامات ترقيم تعتبر فارغة ويجب إزالتها إذاRemoveEmptyParagraphs تم تحديد الخيار.
FieldMergingCallback { get; set; }يحدث أثناء دمج البريد عند مواجهة حقل دمج البريد في المستند.
MailMergeCallback { get; set; }يسمح بالتعامل مع أحداث معينة أثناء دمج البريد.
MappedDataFields { get; }يعيد مجموعة تمثل حقول البيانات المخصصة لعملية دمج البريد.
MergeDuplicateRegions { get; set; }يحصل على قيمة أو يعينها تشير إلى ما إذا كان يجب دمج جميع مناطق دمج البريد للمستندات التي تحمل اسم مصدر البيانات أثناء تنفيذ دمج البريد مع المناطق مقابل مصدر البيانات أو المنطقة الأولى فقط.
MergeWholeDocument { get; set; }يحصل على قيمة أو يعينها للإشارة إلى ما إذا كانت الحقول في المستند بأكمله يتم تحديثها أثناء تنفيذ دمج البريد مع المناطق.
PreserveUnusedTags { get; set; }يحصل على قيمة تشير إلى ما إذا كان يجب الحفاظ على علامات “الشارب” غير المستخدمة أو تعيينها.
RegionEndTag { get; set; }يحصل على علامة نهاية منطقة دمج البريد أو يعينها.
RegionStartTag { get; set; }يحصل على علامة بدء منطقة دمج البريد أو يعينها.
RestartListsAtEachSection { get; set; }يحصل على قيمة أو يعينها للإشارة إلى ما إذا كان سيتم إعادة تشغيل القوائم في كل قسم بعد تنفيذ دمج البريد.
RetainFirstSectionStart { get; set; }يحصل على قيمة أو يعينها للإشارة إلى ما إذا كانSectionStart يتم الاحتفاظ بقسم المستند الأول ونسخه لصفوف مصدر البيانات اللاحقة أثناء دمج البريد أو يتم تحديثها وفقًا لسلوك MS Word.
TrimWhitespaces { get; set; }يحصل على قيمة أو يعينها للإشارة إلى ما إذا كانت المسافات البيضاء النهائية والبادئة يتم اقتصاصها من قيم دمج البريد.
UnconditionalMergeFieldsAndRegions { get; set; }يحصل على قيمة أو يعينها تشير إلى ما إذا كانت حقول الدمج ومناطق الدمج مدمجة بغض النظر عن حالة حقل IF الرئيسي.
UseNonMergeFields { get; set; }عندماحقيقي , يحدد أنه بالإضافة إلى حقول MERGEFIELD، يتم تنفيذ دمج البريد في بعض الأنواع الأخرى من الحقول و أيضًا في علامات “{{fieldName}}”.
UseWholeParagraphAsRegion { get; set; }يحصل على قيمة أو يعينها للإشارة إلى ما إذا كانت الفقرة بأكملها تحتوي علىبدء تشغيل الجدول أونهاية الجدول field أو نطاق معين بينبدء تشغيل الجدول ونهاية الجدول يجب تضمين الحقول في منطقة دمج البريد.

طُرق

اسموصف
DeleteFields()يزيل الحقول المرتبطة بدمج البريد من المستند.
Execute(DataRow)يقوم بدمج البريد منصف البيانات في المستند.
Execute(DataTable)يقوم بدمج البريد من جدول بيانات إلى المستند.
Execute(DataView)يقوم بدمج البريد منعرض البيانات في المستند.
Execute(IDataReader)يقوم بدمج البريد منقارئ بيانات الهوية في المستند.
Execute(IMailMergeDataSource)يقوم بتنفيذ دمج البريد من مصدر بيانات مخصص.
Execute(string[], object[])ينفذ عملية دمج البريد لسجل واحد.
ExecuteADO(object)يقوم بتنفيذ دمج البريد من كائن مجموعة سجلات ADO إلى المستند.
ExecuteWithRegions(DataSet)يقوم بدمج البريد منمجموعة البيانات في مستند يحتوي على مناطق دمج البريد.
ExecuteWithRegions(DataTable)يقوم بدمج البريد منجدول البيانات في المستند مع مناطق دمج البريد.
ExecuteWithRegions(DataView)يقوم بدمج البريد منعرض البيانات في المستند مع مناطق دمج البريد.
ExecuteWithRegions(IMailMergeDataSource)يقوم بتنفيذ دمج البريد من مصدر بيانات مخصص مع مناطق دمج البريد.
ExecuteWithRegions(IMailMergeDataSourceRoot)يقوم بتنفيذ دمج البريد من مصدر بيانات مخصص مع مناطق دمج البريد.
ExecuteWithRegions(IDataReader, string)يقوم بدمج البريد منقارئ بيانات الهوية في المستند مع مناطق دمج البريد.
ExecuteWithRegionsADO(object, string)يقوم بتنفيذ دمج البريد من كائن مجموعة سجلات ADO إلى المستند الذي يحتوي على مناطق دمج البريد.
GetFieldNames()يقوم بإرجاع مجموعة من أسماء حقول دمج البريد المتوفرة في المستند.
GetFieldNamesForRegion(string)يقوم بإرجاع مجموعة من أسماء حقول دمج البريد المتوفرة في المنطقة.
GetFieldNamesForRegion(string, int)يقوم بإرجاع مجموعة من أسماء حقول دمج البريد المتوفرة في المنطقة.
GetRegionsByName(string)يعيد مجموعة من مناطق دمج البريد بالاسم المحدد.
GetRegionsHierarchy()يعيد التسلسل الهرمي الكامل للمناطق (مع الحقول) المتوفرة في المستند.

ملاحظات

لكي تعمل عملية دمج المراسلات، يجب أن يحتوي المستند على حقلي MERGEFIELD و (اختياريًا NEXT). أثناء عملية دمج المراسلات، تُستبدل حقول الدمج في المستند بقيم من مصدر بياناتك.

هناك طريقتان مختلفتان لاستخدام دمج البريد: مع مناطق دمج البريد وبدونها.

أبسط عملية دمج بريدي هي بدون مناطق، وهي مشابهة جدًا لكيفية عمل mail merge في Word. استخدمينفذ طرق لدمج المعلومات من مصدر بيانات some مثلجدول البيانات ،مجموعة البيانات ،عرض البيانات ،قارئ بيانات الهوية أو مجموعة من الكائنات في مستندك.MailMerge تعمل العملية على معالجة جميع سجلات مصدر البيانات ونسخ وإضافة محتوى المستند بأكمله لكل سجل.

لاحظ أنه عندماMailMergeعندما يواجه الكائن الحقل التالي، فإنه يحدد السجل التالي في مصدر البيانات ويستمر في الدمج دون نسخ أي محتوى.

يستخدمExecuteWithRegions وغيرها من عمليات التحميل الزائد لدمج المعلومات في مستند a مع تحديد مناطق دمج البريد. يمكنك استخدام مجموعة البيانات ،جدول البيانات ،عرض البيانات أوقارئ بيانات الهوية كمصدر بيانات لهذه العملية.

يجب عليك استخدام مناطق دمج البريد إذا كنت ترغب في زيادة أجزاء داخل مستند ديناميكيًا. بدون مناطق دمج البريد، سيتم تكرار المستند بأكمله لكل سجل في مصدر البيانات .

أمثلة

يوضح كيفية تنفيذ دمج البريد باستخدام البيانات من جدول البيانات.

public void ExecuteDataTable()
{
    DataTable table = new DataTable("Test");
    table.Columns.Add("CustomerName");
    table.Columns.Add("Address");
    table.Rows.Add(new object[] { "Thomas Hardy", "120 Hanover Sq., London" });
    table.Rows.Add(new object[] { "Paolo Accorti", "Via Monte Bianco 34, Torino" });

    // فيما يلي طريقتان لاستخدام جدول البيانات كمصدر بيانات لدمج البريد.
    // 1 - استخدم الجدول بأكمله لدمج البريد لإنشاء مستند دمج بريدي واحد لكل صف في الجدول:
    Document doc = CreateSourceDocExecuteDataTable();

    doc.MailMerge.Execute(table);

    doc.Save(ArtifactsDir + "MailMerge.ExecuteDataTable.WholeTable.docx");

    // 2 - استخدم صفًا واحدًا من الجدول لإنشاء مستند دمج بريدي واحد:
    doc = CreateSourceDocExecuteDataTable();

    doc.MailMerge.Execute(table.Rows[1]);

    doc.Save(ArtifactsDir + "MailMerge.ExecuteDataTable.OneRow.docx");
}

/// <summary>
/// إنشاء مستند مصدر لدمج البريد.
/// </summary>
private static Document CreateSourceDocExecuteDataTable()
{
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    builder.InsertField(" MERGEFIELD CustomerName ");
    builder.InsertParagraph();
    builder.InsertField(" MERGEFIELD Address ");

    return doc;
}

أنظر أيضا