Các trường Tự động Hóa Tài liệu (IF, COMPARE, MACROBUTTON, và Thêm)
Các trường Tự động Hóa Tài liệu (IF, COMPARE, và Thêm)
Hướng dẫn này cho thấy cách làm việc với họ trường tự động hóa tài liệu của Word trong Aspose.Words FOSS cho .NET – các trường điều khiển văn bản có điều kiện, lưu các biến có phạm vi tài liệu, và kết nối macro, điều hướng, và hành vi in, thay vì chỉ hiển thị một giá trị đã tính toán. Mỗi trường là một Field lớp con trong Aspose.Words.Fields không gian tên: FieldIf, FieldCompare, FieldDocVariable, FieldGoToButton, FieldMacroButton, và FieldPrint. Tất cả chúng kế thừa core Field các thành viên được mô tả trong Làm việc với các trường – GetFieldCode(), Update(), Remove(), Unlink(), Start/Separator/End, Result, và Format – trang này đề cập đến những gì cụ thể cho từng mục.
Văn bản có điều kiện với FieldIf
FieldIf thực hiện IF trường. LeftExpression, ComparisonOperator, và RightExpression mô tả điều kiện – cùng dạng ba phần được sử dụng bởi IComparisonExpressionEvaluator (xem Làm việc với các trường) – và TrueText / FalseText giữ hai kết quả có thể. Gọi EvaluateCondition() để đánh giá điều kiện trực tiếp; nó trả về một FieldIfComparisonResult giá trị: True, False, hoặc Error.
So sánh giá trị với FieldCompare
FieldCompare thực hiện trường COMPARE. Giống như FieldIf, nó phơi bày LeftExpression, ComparisonOperator, và RightExpression để mô tả phép so sánh, nhưng tạo ra một kết quả dạng boolean thay vì chuyển đổi giữa hai lựa chọn văn bản.
Biến tài liệu với FieldDocVariable
FieldDocVariable thực hiện trường DOCVARIABLE, đọc một biến có phạm vi tài liệu được đặt tên thông qua thuộc tính VariableName của nó.
Nút: FieldGoToButton và FieldMacroButton
FieldGoToButton thực hiện trường GOTOBUTTON: Location đặt tên cho đánh dấu, trang, hoặc đích đến khác để nhảy tới, và DisplayText là nhãn hiển thị trong tài liệu. FieldMacroButton thực hiện trường MACROBUTTON: MacroName đặt tên macro sẽ chạy và DisplayText là nhãn. Cả FieldIf và FieldMacroButton còn thực hiện IMergeFieldSurrogate, giao diện mà các trường hỗ trợ mail-merge của Word dùng để đánh dấu chúng là nội dung có thể thay thế.
Hướng dẫn in với FieldPrint
FieldPrint thực hiện trường PRINT: PrinterInstructions và PostScriptGroup chứa các hướng dẫn đặc thù cho máy in được nhúng trực tiếp trong tài liệu.
Mẹo và Thực hành tốt nhất
- Sử dụng
FieldIf.EvaluateCondition()để đọc kết quả của một điều kiện (FieldIfComparisonResult) mà không cần tự mình phân tíchTrueText/FalseText. FieldComparevàFieldIfchia sẻ cùng một dạngLeftExpression/ComparisonOperator/RightExpression– mã xây dựng hoặc kiểm tra một biểu thức so sánh có thể được tái sử dụng cho cả hai loại trường.- Hãy nhớ rằng đây là tất cả
Fieldcác lớp con:GetFieldCode(),Update(),Remove(), vàUnlink()from Làm việc với các trường áp dụng chính xác theo cùng cách ở đây.
Vấn đề thường gặp
| Vấn đề | Nguyên nhân | Khắc phục |
|---|---|---|
FieldIf.EvaluateCondition() trả về Error | Các toán hạng hoặc toán tử của điều kiện không thể được đánh giá như đã viết | Kiểm tra LeftExpression, ComparisonOperator và RightExpression để xem có giá trị hợp lệ không |
Kết quả FieldDocVariable không phản ánh giá trị biến mong đợi | VariableName không khớp với tên biến thực sự có trong tài liệu | Xác nhận tên biến chính xác và chắc chắn nó tồn tại trước khi đọc Result |
Văn bản hiển thị FieldGoToButton/FieldMacroButton không khớp với những gì Word hiển thị | DisplayText đã được đọc trước khi trường được cập nhật, hoặc đã được đặt mà không có lệnh Update() tương ứng | Gọi Update() trên trường, hoặc đọc lại DisplayText sau bất kỳ thay đổi nào |
FAQ
Làm sao tôi đọc kết quả của trường IF có điều kiện?
Gọi FieldIf.EvaluateCondition() để lấy FieldIfComparisonResult thô, hoặc đọc TrueText / FalseText để xem hai lựa chọn văn bản nguyên gốc mà trường chuyển đổi giữa chúng.
Sự khác biệt giữa FieldIf và FieldCompare là gì?
FieldIf (trường IF) chuyển đổi giữa TrueText và FalseText dựa trên điều kiện của nó. FieldCompare (trường COMPARE) có cùng hình dạng so sánh nhưng tạo ra kết quả dạng boolean thay vì văn bản thay thế.
Làm sao tôi đọc tên biến tài liệu từ trường DOCVARIABLE?
Đọc FieldDocVariable.VariableName.
Làm thế nào để tôi tìm vị trí đích của trường GOTOBUTTON?
Đọc FieldGoToButton.Location; DisplayText cung cấp nhãn hiển thị cho nút trong tài liệu.
API Reference Tóm tắt
| Lớp / Enum | Mô tả |
|---|---|
FieldIf | IF trường; LeftExpression, ComparisonOperator, RightExpression, TrueText, FalseText, EvaluateCondition() |
FieldIfComparisonResult | Kết quả enum của FieldIf.EvaluateCondition(): True, False, Error |
FieldCompare | COMPARE trường; LeftExpression, ComparisonOperator, RightExpression |
FieldDocVariable | DOCVARIABLE trường; VariableName |
FieldGoToButton | GOTOBUTTON trường; Location, DisplayText |
FieldMacroButton | MACROBUTTON field; MacroName, DisplayText |
FieldPrint | PRINT field; PrinterInstructions, PostScriptGroup |