ساخت فیلدها با FieldBuilder

ساخت فیلدها با FieldBuilder

ساخت فیلدها با FieldBuilder

این راهنما نشان می‌دهد چگونه یک فیلد Word را از ابتدا در Aspose.Words FOSS برای .NET با استفاده از FieldBuilder and FieldArgumentBuilder، به جای کار با فیلدی که قبلاً در یک سند وجود دارد. برای خواندن، به‌روزرسانی یا حذف فیلدهای موجود، به کار با فیلدها راهنما.


ایجاد یک فیلد با FieldBuilder

FieldBuilder یک فیلد را از توکن‌های کد فیلد — آرگومان‌ها و سوئیچ‌ها — می‌سازد. یکی را با new FieldBuilder(fieldType) بسازید و FieldType فیلدی که می‌خواهید بسازید را پاس کنید. آرگومان‌ها را با متد overload شده AddArgument(argument) اضافه کنید که می‌تواند یک string، int، double، یک FieldBuilder تو در تو، یا یک FieldArgumentBuilder بپذیرد. سوئیچ‌ها را با متدهای overload شده AddSwitch(switchName)، AddSwitch(switchName, switchArgument) (string)، یا AddSwitch(switchName, switchArgument) (int/double) اضافه کنید.


درج فیلد ساخته‌شده

هنگامی که یک FieldBuilder آرگومان‌ها و سوئیچ‌های خود را دارد، BuildAndInsert(refNode) را فراخوانی کنید تا آن را در سند درج کنید — یک overload یک گره Inline را می‌پذیرد و فیلد را پیش از آن وارد می‌کند، و دیگری یک Paragraph را می‌پذیرد و فیلد را در انتهای آن پاراگراف وارد می‌کند.


ترکیب آرگومان‌های پیچیده با FieldArgumentBuilder

FieldArgumentBuilder یک آرگومان فیلد پیچیده می‌سازد که از فیلدها، نودها و متن ساده تشکیل شده است، برای مواردی که یک آرگومان تنها به یک رشته ساده کافی نیست. یکی را با new FieldArgumentBuilder() بسازید، سپس AddText(text) را فراخوانی کنید تا متن ساده اضافه کنید، AddNode(node) را برای افزودن یک نود Inline، یا AddField(fieldBuilder) را برای تو در تو کردن فیلد دیگری (ساخته‌شده با FieldBuilder خودش) داخل آرگومان. FieldArgumentBuilder تکمیل‌شده را به FieldBuilder.AddArgument(argument) بدهید تا به عنوان یکی از آرگومان‌های فیلد بیرونی استفاده شود.


نکات و بهترین شیوه‌ها

  • از FieldBuilder استفاده کنید زمانی که یک نوع فیلد را می‌سازید که توسط هیچ‌یک از کلاس‌های فیلد اختصاصی (مانند FieldDate یا FieldSymbol) پشتیبانی نمی‌شود، یا وقتی کدهای فیلد را به‌صورت برنامه‌نویسی از داده‌ها تولید می‌کنید نه اینکه به‌دست خودتان بنویسید.
  • یک فیلد فرزند را داخل آرگومان فیلد بیرونی با FieldBuilder.AddArgument(FieldBuilder) برای موارد ساده تو در تو کنید، یا وقتی آرگومان بیش از یک فیلد است، یک آرگومان ترکیبی از متن، نودها و فیلدهای تو در تو با FieldArgumentBuilder بسازید.
  • بارگذاری BuildAndInsert(refNode) را انتخاب کنید که با موقعیتی که می‌خواهید فیلد قرار بگیرد مطابقت دارد — قبل از یک نود Inline خاص، یا در انتهای یک Paragraph.
  • پس از BuildAndInsert، نتیجه را همانند هر فیلد دیگر در درخت رفتار کنید — برای مثال، اگر نوع فیلد نیاز به محاسبه مجدد صریح دارد، Update() را روی آن فراخوانی کنید.

مشکلات رایج

مسئلهدلیلرفع
BuildAndInsert مکان نادرست را هدف می‌گیردبارگذاری اشتباه برای نقطه‌ی درج مورد نظر استفاده شدیک گره Inline را برای درج قبل از آن ارسال کنید، یا یک Paragraph را برای درج در انتهای آن
یک آرگومان فیلد نمی‌تواند متن ساده و یک گره را همزمان بپذیردبه جای یک آرگومان ترکیبی، AddArgument با یک string/int/double واحد فراخوانی شدآرگومان ترکیبی را با FieldArgumentBuilder (AddText، AddNode، AddField) بسازید و آن را به AddArgument پاس دهید
مقدار سوئیچ در کد فیلد ساخته‌شده شناسایی نمی‌شودAddSwitch(switchName) استفاده شد در حالی که سوئیچ واقعاً به یک آرگومان نیاز دارداز overload AddSwitch(switchName, switchArgument) با مقدار رشته‌ای، عددی (int) یا عددی (double) سوئیچ استفاده کنید

FAQ

چه زمانی باید از FieldBuilder استفاده کنم به جای درج یک کد فیلد از پیش ساخته شده؟

از FieldBuilder زمانی استفاده کنید که به کنترل صریح بر آرگومان‌ها و سوئیچ‌های یک فیلد هنگام ساخت برنامه‌نویسی آن نیاز دارید، نه اینکه یک رشته کد فیلد از پیش ساخته شده را درج کنید.

چگونه می‌توانم بیش از یک آرگومان به یک فیلد اضافه کنم؟

برای هر آرگومان یک بار AddArgument را فراخوانی کنید — این متد برای string، int، double، یک FieldBuilder تو در تو و FieldArgumentBuilder بارگذاری شده است.

آیا می‌توانم فیلدی بسازم که آرگومان آن ترکیبی از متن و فیلد دیگری باشد؟

بله — از FieldArgumentBuilder استفاده کنید، در صورت نیاز AddText، AddNode و AddField را فراخوانی کنید، سپس آن را به FieldBuilder.AddArgument پاس دهید.

چگونه می‌توانم فیلد ساخته‌شده را به‌طور واقعی در سند قرار دهم؟

متد BuildAndInsert(refNode) را فراخوانی کنید و یا یک گره Inline (که قبل از آن درج می‌شود) یا یک Paragraph (که در انتهای آن درج می‌شود) را پاس دهید.


API Reference خلاصه

کلاس/متدتوضیح
FieldBuilderیک فیلد را از توکن‌های کد فیلد (آرگومان‌ها و سوئیچ‌ها) می‌سازد
FieldBuilder(fieldType)سازنده‌ای که FieldType را برای ساخت می‌گیرد
FieldBuilder.AddArgument(argument)یک آرگومان اضافه می‌کند (string، int، double، FieldBuilder یا FieldArgumentBuilder)
FieldBuilder.AddSwitch(switchName) / AddSwitch(switchName, switchArgument)یک سوئیچ فیلد اضافه می‌کند، با مقدار یا بدون مقدار
FieldBuilder.BuildAndInsert(refNode)فیلد ساخته شده را قبل از یک گره Inline یا در انتهای یک Paragraph درج می‌کند
FieldArgumentBuilderیک آرگومان فیلد پیچیده را از متن، گره‌ها و فیلدهای تو در تو می‌سازد
FieldArgumentBuilder.AddText(text)متن ساده را به آرگومان اضافه می‌کند
FieldArgumentBuilder.AddNode(node)یک گره Inline را به آرگومان اضافه می‌کند
FieldArgumentBuilder.AddField(fieldBuilder)یک فیلد ساخته‌شده توسط FieldBuilder را درون آرگومان تو در تو می‌کند

همچنین ببینید:

 فارسی