FieldIndex

FieldIndex class

ينفذ حقل INDEX.

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

public class FieldIndex : Field

المنشئون

اسموصف
FieldIndex()Default_Constructor

الخصائص

اسموصف
BookmarkName { get; set; }يحصل على اسم الإشارة المرجعية التي تحدد الجزء من المستند المستخدم لبناء الفهرس أو يعينه.
CrossReferenceSeparator { get; set; }يحصل على تسلسل الأحرف المستخدم لفصل المراجع المتقاطعة والإدخالات الأخرى أو يعينه.
DisplayResult { get; }يحصل على النص الذي يمثل نتيجة الحقل المعروضة.
End { get; }يحصل على العقدة التي تمثل نهاية الحقل.
EntryType { get; set; }يحصل على نوع إدخال الفهرس المستخدم لبناء الفهرس أو يعينه.
Format { get; }يحصل علىFieldFormatالكائن الذي يوفر الوصول المكتوب إلى تنسيق الحقل.
HasPageNumberSeparator { get; }يحصل على قيمة تشير إلى ما إذا كان يتم تجاوز فاصل رقم الصفحة من خلال كود الحقل.
HasSequenceName { get; }يحصل على قيمة تشير إلى ما إذا كان ينبغي استخدام التسلسل أثناء بناء نتيجة الحقل.
Heading { get; set; }يحصل على عنوان يظهر في بداية كل مجموعة من الإدخالات لأي حرف معين أو يعينه.
IsDirty { get; set; }يحصل على أو يحدد ما إذا كانت النتيجة الحالية للحقل لم تعد صحيحة (قديمة) بسبب التعديلات الأخرى التي تم إجراؤها على المستند.
IsLocked { get; set; }يحصل على أو يحدد ما إذا كان الحقل مقفلاً (لا ينبغي إعادة حساب نتيجته).
LanguageId { get; set; }يحصل على معرف اللغة المستخدم لإنشاء الفهرس أو يعينه.
LetterRange { get; set; }يحصل على نطاق من الأحرف التي تحد من الفهرس أو يعينه.
LocaleId { get; set; }يحصل على أو يعين LCID للحقل.
NumberOfColumns { get; set; }يحصل على عدد الأعمدة لكل صفحة المستخدمة عند بناء الفهرس أو يعينه.
PageNumberListSeparator { get; set; }يحصل على أو يعين تسلسل الأحرف المستخدم لفصل رقمين للصفحات في قائمة أرقام الصفحات.
PageNumberSeparator { get; set; }يحصل على أو يعين تسلسل الأحرف المستخدم لفصل إدخال الفهرس ورقم الصفحة الخاص به.
PageRangeSeparator { get; set; }يحصل على أو يعين تسلسل الأحرف المستخدم لفصل بداية ونهاية نطاق الصفحة.
Result { get; set; }يحصل على النص الموجود بين فاصل الحقل ونهاية الحقل أو يعينه.
RunSubentriesOnSameLine { get; set; }يحصل على أو يحدد ما إذا كان سيتم تشغيل الإدخالات الفرعية في نفس السطر مثل الإدخال الرئيسي.
Separator { get; }يحصل على العقدة التي تمثل فاصل الحقل. يمكن أن يكونباطل .
SequenceName { get; set; }يحصل على اسم التسلسل الذي تم تضمين رقمه مع رقم الصفحة أو يعينه.
SequenceSeparator { get; set; }يحصل على أو يعين تسلسل الأحرف المستخدم لفصل أرقام التسلسل وأرقام الصفحات.
Start { get; }يحصل على العقدة التي تمثل بداية الحقل.
virtual Type { get; }يحصل على نوع حقل Microsoft Word.
UseYomi { get; set; }يحصل على أو يحدد ما إذا كان سيتم تمكين استخدام نص yomi لإدخالات الفهرس.

طُرق

اسموصف
GetFieldCode()يعيد النص بين بداية الحقل وفاصل الحقل (أو نهاية الحقل إذا لم يكن هناك فاصل). يتم تضمين كل من رمز الحقل ونتيجة الحقل للحقول الفرعية.
GetFieldCode(bool)إرجاع النص بين بداية الحقل وفاصل الحقل (أو نهاية الحقل إذا لم يكن هناك فاصل).
Remove()يُزيل الحقل من المستند. يُرجع عقدة بعد الحقل مباشرةً. إذا كانت نهاية الحقل هي آخر عقدة فرعية للعقدة الأصلية، تُرجع فقرته الأصلية. إذا كان الحقل قد حُذف مُسبقًا، تُرجعباطل .
Unlink()يقوم بإلغاء ربط الحقل.
Update()يُجري تحديث الحقل. يُطرح هذا الخطأ إذا كان الحقل قيد التحديث بالفعل.
Update(bool)يُجري تحديثًا للحقل. يُطرح هذا الخطأ إذا كان الحقل قيد التحديث بالفعل.

ملاحظات

يقوم ببناء فهرس باستخدام إدخالات الفهرس المحددة بواسطة حقول XE، ويقوم بإدراج هذا الفهرس في هذا المكان في المستند.

أمثلة

يوضح كيفية إنشاء حقل INDEX، ثم استخدام حقول XE لملئه بالإدخالات.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// قم بإنشاء حقل INDEX والذي سيعرض إدخالاً لكل حقل XE موجود في المستند.
// سيعرض كل إدخال قيمة خاصية النص الخاصة بحقل XE على الجانب الأيسر
// والصفحة التي تحتوي على حقل XE على اليمين.
// إذا كانت حقول XE تحتوي على نفس القيمة في خاصية "النص" الخاصة بها،
// سوف يقوم حقل INDEX بتجميعهم في إدخال واحد.
FieldIndex index = (FieldIndex)builder.InsertField(FieldType.FieldIndex, true);

// قم بتكوين حقل INDEX فقط لعرض حقول XE الموجودة ضمن الحدود
// لإشارة مرجعية تسمى "MainBookmark"، وخصائص "EntryType" الخاصة بها لها قيمة "A".
// بالنسبة لكلا الحقلين INDEX وXE، تستخدم خاصية "EntryType" الحرف الأول فقط من قيمة السلسلة الخاصة بها.
index.BookmarkName = "MainBookmark";
index.EntryType = "A";

Assert.AreEqual(" INDEX  \\b MainBookmark \\f A", index.GetFieldCode());

// في صفحة جديدة، ابدأ الإشارة المرجعية باسم يتطابق مع القيمة
// من خاصية "BookmarkName" في حقل INDEX.
builder.InsertBreak(BreakType.PageBreak);
builder.StartBookmark("MainBookmark");

// سوف يلتقط حقل INDEX هذا الإدخال لأنه موجود داخل الإشارة المرجعية،
// ونوع الإدخال الخاص به يتطابق أيضًا مع نوع إدخال حقل INDEX.
FieldXE indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Index entry 1";
indexEntry.EntryType = "A";

Assert.AreEqual(" XE  \"Index entry 1\" \\f A", indexEntry.GetFieldCode());

// أدخل حقل XE الذي لن يظهر في INDEX لأن أنواع الإدخالات لا تتطابق.
builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Index entry 2";
indexEntry.EntryType = "B";

// قم بإنهاء الإشارة المرجعية وإدراج حقل XE بعد ذلك.
// إنه من نفس نوع حقل INDEX، لكنه لن يظهر
// لأنه خارج حدود الإشارة المرجعية.
builder.EndBookmark("MainBookmark");
builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Index entry 3";
indexEntry.EntryType = "A";

doc.UpdatePageLayout();
doc.UpdateFields();
doc.Save(ArtifactsDir + "Field.INDEX.XE.Filtering.docx");

يوضح كيفية ملء حقل INDEX بالإدخالات باستخدام حقول XE، وتعديل مظهره أيضًا.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// قم بإنشاء حقل INDEX والذي سيعرض إدخالاً لكل حقل XE موجود في المستند.
// سيعرض كل إدخال قيمة خاصية النص الخاصة بحقل XE على الجانب الأيسر،
// ورقم الصفحة التي تحتوي على حقل XE على اليمين.
// إذا كانت حقول XE تحتوي على نفس القيمة في خاصية "النص" الخاصة بها،
// سوف يقوم حقل INDEX بتجميعهم في إدخال واحد.
FieldIndex index = (FieldIndex)builder.InsertField(FieldType.FieldIndex, true);
index.LanguageId = "1033";

// سيؤدي تعيين قيمة هذه الخاصية إلى "A" إلى تجميع جميع الإدخالات حسب الحرف الأول منها،
// ثم ضع هذا الحرف بأحرف كبيرة فوق كل مجموعة.
index.Heading = "A";

// قم بتعيين الجدول الذي تم إنشاؤه بواسطة حقل INDEX ليمتد على عمودين.
index.NumberOfColumns = "2";

// قم بتعيين أي إدخالات تحتوي على أحرف بداية خارج نطاق الأحرف "ac" ليتم حذفها.
index.LetterRange = "a-c";

Assert.AreEqual(" INDEX  \\z 1033 \\h A \\c 2 \\p a-c", index.GetFieldCode());

// سيظهر حقلي XE التاليين تحت عنوان "A"،
// مع تطبيق أنماط النصوص الخاصة بهم أيضًا على أرقام صفحاتهم.
builder.InsertBreak(BreakType.PageBreak);
FieldXE indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Apple";
indexEntry.IsItalic = true;

Assert.AreEqual(" XE  Apple \\i", indexEntry.GetFieldCode());

builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Apricot";
indexEntry.IsBold = true;

Assert.AreEqual(" XE  Apricot \\b", indexEntry.GetFieldCode());

//سيكون كلا الحقلين XE التاليين تحت عنواني "B" و"C" في جدول محتويات حقول INDEX.
builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Banana";

builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Cherry";

// تقوم حقول INDEX بفرز جميع الإدخالات أبجديًا، بحيث يظهر هذا الإدخال تحت "A" مع الإدخالين الآخرين.
builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Avocado";

// لن يظهر هذا الإدخال لأنه يبدأ بالحرف "D"،
// وهو خارج نطاق الأحرف "ac" الذي تحدده خاصية LetterRange في حقل INDEX.
builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Durian";

doc.UpdatePageLayout();
doc.UpdateFields();
doc.Save(ArtifactsDir + "Field.INDEX.XE.Formatting.docx");

أنظر أيضا