בניית שדות עם FieldBuilder
בניית שדות עם FieldBuilder
מדריך זה מראה כיצד לבנות שדה Word מאפס ב-Aspose.Words FOSS עבור .NET באמצעות FieldBuilder and FieldArgumentBuilder, במקום לעבוד עם שדה שכבר קיים במסמך. לקריאה, עדכון או הסרה של שדות קיימים, ראו את עבודה עם שדות המדריך.
יצירת שדה עם FieldBuilder
FieldBuilder בונה שדה מאסימוני קוד השדה — ארגומנטים ומתגים. בנה אחד עם new FieldBuilder(fieldType), ומעביר את ה-FieldType של השדה שברצונך לבנות. הוסף ארגומנטים באמצעות השיטה העמוסת AddArgument(argument), שמקבלת string, int, double, FieldBuilder מקונן, או FieldArgumentBuilder. הוסף מתגים באמצעות השיטות העמוסות AddSwitch(switchName), AddSwitch(switchName, switchArgument) (string), או AddSwitch(switchName, switchArgument) (int/double).
הכנסת השדה שנבנה
לאחר ש-FieldBuilder יש לו את הארגומנטים והמתגים שלו, קרא ל-BuildAndInsert(refNode) כדי להכניסו למסמך — גרסה אחת מקבלת צומת 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) שומש כאשר המתג בפועל צריך ארגומנט | השתמש בעומס 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 בטיעון |