FieldPrivate

FieldPrivate class

تنفيذ الحقل الخاص .

public class FieldPrivate : Field

المنشئون

اسم وصف
FieldPrivate() Default_Constructor

الخصائص

اسم وصف
DisplayResult { get; } يحصل على النص الذي يمثل نتيجة الحقل المعروض.
End { get; } يحصل على العقدة التي تمثل نهاية الحقل.
Format { get; } يحصل على أFieldFormat كائن يوفر وصولاً مكتوبًا إلى تنسيق الحقل.
IsDirty { get; set; } الحصول على أو تحديد ما إذا كانت النتيجة الحالية للحقل لم تعد صحيحة (قديمة) بسبب التعديلات الأخرى التي تم إجراؤها على المستند.
IsLocked { get; set; } تحديد ما إذا كان الحقل مغلقًا أم لا (يجب عدم إعادة حساب النتيجة).
LocaleId { get; set; } الحصول على أو تحديد LCID للحقل.
Result { get; set; } الحصول على أو تعيين النص الموجود بين فاصل الحقل ونهاية الحقل.
Separator { get; } يحصل على العقدة التي تمثل فاصل المجال. يمكن أن يكون فارغًا.
Start { get; } يحصل على العقدة التي تمثل بداية الحقل.
virtual Type { get; } يحصل على نوع حقل Microsoft Word .

طُرق

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

ملاحظات

يوفر مساحة تخزين خاصة. يستخدم هذا الحقل لتخزين البيانات للمستندات المحولة من تنسيقات ملفات أخرى.

أمثلة

يوضح كيفية معالجة الحقول الخاصة.

{
    // افتح مستند Corel WordPerfect الذي قمنا بتحويله إلى تنسيق docx.
    Document doc = new Document(MyDir + "Field sample - PRIVATE.docx");

    // WordPerfect 5.x / 6.x مستندات مثل تلك التي قمنا بتحميلها قد تحتوي على حقول خاصة.
    // يحتفظ Microsoft Word بالحقول الخاصة أثناء عمليات التحميل / الحفظ ،
    // لكنه لا يوفر وظائف لهم.
    FieldPrivate field = (FieldPrivate)doc.Range.Fields[0];

    Assert.AreEqual(" PRIVATE \"My value\" ", field.GetFieldCode());
    Assert.AreEqual(FieldType.FieldPrivate, field.Type);

    // يمكننا أيضًا إدراج الحقول الخاصة باستخدام أداة إنشاء المستندات.
    DocumentBuilder builder = new DocumentBuilder(doc);
    builder.InsertField(FieldType.FieldPrivate, true);

    // هذه الحقول ليست طريقة قابلة للتطبيق لحماية المعلومات الحساسة.
    // ما لم يكن التوافق مع الإصدارات القديمة من WordPerfect ضروريًا ،
    // يمكننا إزالة هذه الحقول بأمان. يمكننا القيام بذلك باستخدام تطبيق DocumentVisiitor.
    Assert.AreEqual(2, doc.Range.Fields.Count);

    FieldPrivateRemover remover = new FieldPrivateRemover();
    doc.Accept(remover);

    Assert.AreEqual(2, remover.GetFieldsRemovedCount());
    Assert.AreEqual(0, doc.Range.Fields.Count);
}

/// <summary>
/// يزيل كافة الحقول الخاصة التي تمت مواجهتها.
/// </summary>
public class FieldPrivateRemover : DocumentVisitor
{
    public FieldPrivateRemover()
    {
        mFieldsRemovedCount = 0;
    }

    public int GetFieldsRemovedCount()
    {
        return mFieldsRemovedCount;
    }

    /// <summary>
    /// يتم الاستدعاء عند مواجهة عقدة FieldEnd في المستند.
    /// إذا كانت العقدة تنتمي إلى حقل خاص ، فسيتم إزالة الحقل بأكمله.
    /// </summary>
    public override VisitorAction VisitFieldEnd(FieldEnd fieldEnd)
    {
        if (fieldEnd.FieldType == FieldType.FieldPrivate)
        {
            fieldEnd.GetField().Remove();
            mFieldsRemovedCount++;
        }

        return VisitorAction.Continue;
    }

    private int mFieldsRemovedCount;
}

أنظر أيضا