Dostosuj Właściwości Pola

Aspose.Words zapewnia możliwość programowej interakcji z różnymi właściwościami pola. W tym artykule przyjrzymy się kilku przykładom, aby zrozumieć podstawową zasadę pracy z właściwościami pola. Możesz zobaczyć pełną listę właściwości dla każdego typu pola w odpowiedniej klasie w Fields namespace.

Aktualizacja Właściwości Pola

Czasami użytkownicy muszą zmienić wartość właściwości pola. Na przykład zaktualizuj właściwość AuthorName Pola AUTHOR lub zmień właściwość FieldName pola MERGEFIELD.

Poniższy przykład kodu pokazuje, jak zmienić nazwę pól scalania w dokumencie Word:

//For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
auto doc = MakeObject<Document>();
auto builder = MakeObject<DocumentBuilder>(doc);
builder->InsertField(u"MERGEFIELD MyMergeField1 \\* MERGEFORMAT");
builder->InsertField(u"MERGEFIELD MyMergeField2 \\* MERGEFORMAT");
// Select all field start nodes so we can find the merge fields.
SharedPtr<NodeCollection> fieldStarts = doc->GetChildNodes(NodeType::FieldStart, true);
for (const auto& fieldStart : System::IterateOver<FieldStart>(fieldStarts))
{
if (fieldStart->get_FieldType() == FieldType::FieldMergeField)
{
auto mergeField = MakeObject<WorkingWithFields::MergeField>(fieldStart);
mergeField->set_Name(mergeField->get_Name() + u"_Renamed");
}
}
doc->Save(ArtifactsDir + u"WorkingWithFields.RenameMergeFields.docx");

Wynik Wyświetlania Pola

Aspose.Words zapewnia właściwość do uzyskania wyniku pola dla pól, które nie mają węzła separatora pól. Nazywamy to “fałszywym wynikiem” lub wynikiem wyświetlania; Microsoft Word wyświetla go w dokumencie, obliczając wartość pola w locie, ale nie ma takiej wartości w modelu dokumentu.

Poniższy przykład kodu pokazuje użycie właściwości DisplayResult:

//For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
auto doc = MakeObject<Document>(MyDir + u"Various fields.docx");
doc->UpdateFields();
for (const auto& field : System::IterateOver(document->get_Range()->get_Fields()))
{
std::cout << field->get_DisplayResult() << std::endl;
}