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 الذي لن يظهر في الفهرس لأن أنواع الإدخال غير متطابقة.
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");

أنظر أيضا