Метод Aspose::Words::DocumentBuilder::MoveToMergeField

DocumentBuilder::MoveToMergeField(const System::String&) method

Перемещает курсор в позицию сразу после указанного поля слияния и удаляет поле слияния.

bool Aspose::Words::DocumentBuilder::MoveToMergeField(const System::String &fieldName)
ПараметрТипОписание
fieldNameconst System::String&Регистронезависимое имя поля слияния почты.

ReturnValue

true if the merge field was found and the cursor was moved; false otherwise.

Примечания

Обратите внимание, что этот метод удаляет поле слияния из документа после перемещения курсора.

Примеры

Показывает, как заполнять MERGEFIELDы данными с помощью DocumentBuilder вместо слияния почты.

auto doc = System::MakeObject<Aspose::Words::Document>();
auto builder = System::MakeObject<Aspose::Words::DocumentBuilder>(doc);

// Вставьте несколько MERGEFIELDов, которые принимают данные из столбцов с тем же именем в источнике данных во время слияния почты,
// а затем заполните их вручную.
builder->InsertField(u" MERGEFIELD Chairman ");
builder->InsertField(u" MERGEFIELD ChiefFinancialOfficer ");
builder->InsertField(u" MERGEFIELD ChiefTechnologyOfficer ");

builder->MoveToMergeField(u"Chairman");
builder->set_Bold(true);
builder->Writeln(u"John Doe");

builder->MoveToMergeField(u"ChiefFinancialOfficer");
builder->set_Italic(true);
builder->Writeln(u"Jane Doe");

builder->MoveToMergeField(u"ChiefTechnologyOfficer");
builder->set_Italic(true);
builder->Writeln(u"John Bloggs");

doc->Save(get_ArtifactsDir() + u"DocumentBuilder.FillMergeFields.docx");

См. также

DocumentBuilder::MoveToMergeField(const System::String&, bool, bool) method

Перемещает поле слияния в указанное поле слияния.

bool Aspose::Words::DocumentBuilder::MoveToMergeField(const System::String &fieldName, bool isAfter, bool isDeleteField)
ПараметрТипОписание
fieldNameconst System::String&Регистронезависимое имя поля слияния почты.
isAfterboolКогда true, перемещает курсор после конца поля. Когда false, перемещает курсор перед началом поля.
isDeleteFieldboolКогда true, удаляет поле слияния.

ReturnValue

true if the merge field was found and the cursor was moved; false otherwise.

Примеры

Показывает, как вставлять поля и перемещать курсор построителя документа к ним.

auto doc = System::MakeObject<Aspose::Words::Document>();
auto builder = System::MakeObject<Aspose::Words::DocumentBuilder>(doc);
builder->InsertField(u"MERGEFIELD MyMergeField1 \\* MERGEFORMAT");
builder->InsertField(u"MERGEFIELD MyMergeField2 \\* MERGEFORMAT");

// Переместите курсор к первому MERGEFIELD.
builder->MoveToMergeField(u"MyMergeField1", true, false);

// Обратите внимание, что курсор размещён сразу после первого MERGEFIELD и перед вторым.
ASPOSE_ASSERT_EQ(doc->get_Range()->get_Fields()->idx_get(1)->get_Start(), builder->get_CurrentNode());
ASPOSE_ASSERT_EQ(doc->get_Range()->get_Fields()->idx_get(0)->get_End(), builder->get_CurrentNode()->get_PreviousSibling());

// Если мы хотим отредактировать код поля или его содержимое с помощью построителя,
// его курсор должен находиться внутри поля.
// Чтобы разместить его внутри поля, нам нужно вызвать метод MoveTo построителя документа
// и передать в качестве аргумента начальный или разделительный узел поля.
builder->Write(u" Text between our merge fields. ");

doc->Save(get_ArtifactsDir() + u"DocumentBuilder.MergeFields.docx");

См. также