Класс Aspose::Words::Fields::FieldMacroButton

FieldMacroButton class

Реализует поле MACROBUTTON. Чтобы узнать больше, посетите статью документации Working with Fields.

class FieldMacroButton : public Aspose::Words::Fields::Field,
                         public Aspose::Words::Fields::IMergeFieldSurrogate

Методы

МетодОписание
get_DisplayResult()Получает текст, представляющий отображаемый результат поля.
get_DisplayText()Получает или задает текст, который будет отображаться как “кнопка”, выбранная для запуска макроса или команды.
get_End() overrideПолучает узел, представляющий конец поля.
get_End() constПолучает узел, представляющий конец поля.
get_FieldEnd() constПолучает узел, представляющий конец поля.
get_FieldStart() constПолучает узел, представляющий начало поля.
get_Format()Получает объект FieldFormat, который предоставляет типизированный доступ к форматированию поля.
get_IsDirty()Получает или задает, является ли текущий результат поля более некорректным (устаревшим) из‑за других изменений, внесённых в документ.
get_IsLocked()Получает или задает, заблокировано ли поле (не должно пересчитывать свой результат).
get_LocaleId()Получает или задает LCID поля.
get_MacroName()Получает или задает имя макроса или команды для запуска.
get_Result()Получает или задает текст, находящийся между разделителем поля и его концом.
get_Separator() overrideПолучает узел, представляющий разделитель поля. Может быть null.
get_Start() overrideПолучает узел, представляющий начало поля.
get_Start() constПолучает узел, представляющий начало поля.
virtual get_Type() constПолучает тип поля Microsoft Word.
GetFieldCode()Возвращает текст между началом поля и разделителем поля (или концом поля, если разделитель отсутствует). Включены как код поля, так и результат дочерних полей.
GetFieldCode(bool)Возвращает текст между началом поля и разделителем поля (или концом поля, если разделитель отсутствует).
GetType() const override
Is(const System::TypeInfo&) const override
virtual Remove()Удаляет поле из документа. Возвращает узел сразу после поля. Если конец поля является последним дочерним элементом его родительского узла, возвращает родительский абзац. Если поле уже удалено, возвращает null.
set_DisplayText(const System::String&)Сеттер для Aspose::Words::Fields::FieldMacroButton::get_DisplayText.
set_IsDirty(bool)Сеттер для Aspose::Words::Fields::Field::get_IsDirty.
set_IsLocked(bool)Сеттер для Aspose::Words::Fields::Field::get_IsLocked.
set_LocaleId(int32_t)Сеттер для Aspose::Words::Fields::Field::get_LocaleId.
set_MacroName(const System::String&)Сеттер для Aspose::Words::Fields::FieldMacroButton::get_MacroName.
set_Result(const System::String&)Сеттер для Aspose::Words::Fields::Field::get_Result.
static Type()
Unlink()Выполняет отсоединение поля.
Update()Выполняет обновление поля. Вызывает исключение, если поле уже обновляется.
Update(bool)Выполняет обновление поля. Выбрасывает исключение, если поле уже обновляется.

Примечания

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

В Aspose.Words это поле также может выступать как поле слияния.

Примеры

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

auto doc = System::MakeObject<Aspose::Words::Document>(get_MyDir() + u"Macro.docm");
auto builder = System::MakeObject<Aspose::Words::DocumentBuilder>(doc);

ASSERT_TRUE(doc->get_HasMacros());

// Вставьте поле MACROBUTTON и укажите один из макросов документа по имени в свойстве MacroName.
auto field = System::ExplicitCast<Aspose::Words::Fields::FieldMacroButton>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldMacroButton, true));
field->set_MacroName(u"MyMacro");
field->set_DisplayText(System::String(u"Double click to run macro: ") + field->get_MacroName());

ASSERT_EQ(u" MACROBUTTON  MyMacro Double click to run macro: MyMacro", field->GetFieldCode());

// Используйте свойство для ссылки на \"ViewZoom200\", макрос, поставляемый с Microsoft Word.
// Мы можем найти все остальные макросы через View -> Macros (выпадающий список) -> View Macros.
// В этом меню выберите \"Word Commands\" из выпадающего списка \"Macros in:\".
// Если наш документ содержит пользовательский макрос с тем же именем, что и стандартный макрос,
// наш макрос будет тем, который запускает поле MACROBUTTON.
builder->InsertParagraph();
field = System::ExplicitCast<Aspose::Words::Fields::FieldMacroButton>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldMacroButton, true));
field->set_MacroName(u"ViewZoom200");
field->set_DisplayText(System::String(u"Run ") + field->get_MacroName());

ASSERT_EQ(u" MACROBUTTON  ViewZoom200 Run ViewZoom200", field->GetFieldCode());

// Сохраните документ в типе, поддерживающем макросы.
doc->Save(get_ArtifactsDir() + u"Field.MACROBUTTON.docm");

См. также