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; }الحصول على أو تعيين قيمة تشير إلى ما إذا كانت الفقرة بأكملها بهاTableStart أونهاية الجدول field أو نطاق معين بينTableStart ونهاية الجدول يجب تضمين الحقول في منطقة دمج البريد.

طُرق

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

ملاحظات

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

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

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

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

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

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

أمثلة

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

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" });

    // فيما يلي طريقتان لاستخدام DataTable كمصدر بيانات لدمج البريد.
    // 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;
}

أنظر أيضا