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() يزيل الحقل من المستند. إرجاع عقدة بعد الحقل مباشرة. إذا كانت نهاية الحقل هي آخر child من العقدة الأصلية ، يتم إرجاع فقرته الأصلية. إذا تمت إزالة الحقل بالفعل ، يعود لا شيء .
Unlink() يقوم بإلغاء ربط الحقل.
Update() يقوم بالتحديث الميداني. يرمي إذا تم تحديث الحقل بالفعل.
Update(bool) يقوم بإجراء تحديث ميداني. يرمي إذا تم تحديث الحقل بالفعل.

ملاحظات

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

أمثلة

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

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

// قم بإنشاء حقل INDEX الذي سيعرض إدخالاً لكل حقل XE موجود في المستند.
// سيعرض كل إدخال قيمة الخاصية Text لحقل 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.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.UpdateFields();
doc.Save(ArtifactsDir + "Field.INDEX.XE.Formatting.docx");

أنظر أيضا