Основы офисного программирования и документы Word


Answer Wizard и Office Assistant. Взаимодействие


Итак, будем полагать, что, используя инструментарий HHW, справочное руководство успешно создано, построен и зарегистрирован скомпилированный chm-файл. Будем полагать также, что инструментарий AWB позволил создать индексируемый aw-файл ответов на возможные вопросы пользователей, желающих получить нужную им справку. Как присоединить полученный aw-файл к Office Assistant, чтобы пользователь приложения Office 2000 мог задавать вопросы на естественном языке, работая с привычным для него Помощником?

Прежде всего, напомню, что когда пользователь формирует свой вопрос в окне Помощника, то для ответа на этот вопрос Office Assistant вызывает Answer Wizard и именно Мастер Ответов, используя имеющиеся в его распоряжении aw-файлы, формирует названия разделов справочных руководств (chm-файлов), в которых может содержаться нужная справка. Переходя от такого общего понимания к пониманию на объектном уровне, замечу, что в лекции, посвященной общим объектам Office 2000 , уже рассматривался объект Answer Wizard. Одним из основных свойств этого объекта является свойство Files, возвращающее коллекцию aw-файлов, с которыми работает Мастер Ответов. Поэтому все, что нужно сделать для того, чтобы Office Assistant мог должным образом реагировать на вопросы пользователя, - это добавить нужный aw-файл в коллекцию файлов объекта Answer Wizard. Приведем текст соответствующей процедуры, решающей эту задачу:

Public Sub HelpOfHelp() 'Создание объекта Answer Wizard 'добавление файлов ответа к справочной системе Dim i As Integer Dim customAnswerWizard As AnswerWizard Set customAnswerWizard = Application.AnswerWizard With customAnswerWizard 'Восстановление стандартного множества aw-файлов .ResetFileList 'Показать Помощника Assistant.Visible = True Debug.Print .Files.Count 'Отключение стандартных файлов в тех случаях, 'когда используется только собственное справочное руководство '.ClearFileList 'Добавление собственного справочного руководства .Files.Add ("e:\O2000\Book2\Cd\Help1\HelpOfHelp.aw") 'Отладочная печать aw-файлов For i = 1 To .Files.Count Debug.Print .Files(i) Next i Debug.Print .Files.Count End With End Sub


Итак, будем полагать, что, используя инструментарий HHW, справочное руководство успешно создано, построен и зарегистрирован скомпилированный chm-файл. Будем полагать также, что инструментарий AWB позволил создать индексируемый aw-файл ответов на возможные вопросы пользователей, желающих получить нужную им справку. Как присоединить полученный aw-файл к Office Assistant, чтобы пользователь приложения Office 2000 мог задавать вопросы на естественном языке, работая с привычным для него Помощником?

Прежде всего, напомню, что когда пользователь формирует свой вопрос в окне Помощника, то для ответа на этот вопрос Office Assistant вызывает Answer Wizard и именно Мастер Ответов, используя имеющиеся в его распоряжении aw-файлы, формирует названия разделов справочных руководств (chm-файлов), в которых может содержаться нужная справка. Переходя от такого общего понимания к пониманию на объектном уровне, замечу, что в лекции, посвященной общим объектам Office 2000 , уже рассматривался объект Answer Wizard. Одним из основных свойств этого объекта является свойство Files, возвращающее коллекцию aw-файлов, с которыми работает Мастер Ответов. Поэтому все, что нужно сделать для того, чтобы Office Assistant мог должным образом реагировать на вопросы пользователя, - это добавить нужный aw-файл в коллекцию файлов объекта Answer Wizard. Приведем текст соответствующей процедуры, решающей эту задачу:

Public Sub HelpOfHelp() 'Создание объекта Answer Wizard 'добавление файлов ответа к справочной системе Dim i As Integer Dim customAnswerWizard As AnswerWizard Set customAnswerWizard = Application.AnswerWizard With customAnswerWizard 'Восстановление стандартного множества aw-файлов .ResetFileList 'Показать Помощника Assistant.Visible = True Debug.Print .Files.Count 'Отключение стандартных файлов в тех случаях, 'когда используется только собственное справочное руководство '.ClearFileList 'Добавление собственного справочного руководства .Files.Add ("e:\O2000\Book2\Cd\Help1\HelpOfHelp.aw") 'Отладочная печать aw-файлов For i = 1 To .Files.Count Debug.Print .Files(i) Next i Debug.Print .Files.Count End With End Sub




В моем тестовом документе эта процедура вызывается в ответ на щелчок специально спроектированной командной кнопки. Но, конечно же, чаще всего подобную процедуру следует включать в процедуру инициализации документа, вызываемую в обработчике события Open.

Несколько комментариев к этой процедуре. Я ввел пользовательский объект customAnswerWizard, но можно было бы пользоваться и стандартным объектом. Реально существует только один объект AnswerWizard и все изменения отражаются на этом объекте. Метод ResetFileList восстанавливает список стандартных файлов, присущих объекту AnswerWizard. Метод ClearFileList делает этот список пустым, он используется перед добавлением собственных aw-файлов, например, для того, чтобы можно было работать только с этими файлами. Заметьте, метод ClearFileList в процедуре закомментирован. Это позволяет одновременно работать со стандартным и собственным справочным руководством. Вот как выглядит запрос на справку, сформулированный в Office Assistant:


увеличить изображение
Рис. 9.10.  Вопрос и ответ в Office Assistant

Как видите, Мастер Ответов на вопрос "Help" указал разделы, как нашего справочного руководства, так и стандартного. Заметьте, в стандартном руководстве используются русские имена разделов. При создании собственного руководства мне не удалось справиться с решением этой задачи. И в заключение рассказа взгляните еще на один экран, на котором одновременно показаны два окна справки - стандартное окно и собственное окно. В обоих окнах отображается наше справочное руководство. Окна имеют разные закладки, одно из них открыто Office Assistant, другое - я открыл сам, нажав специально спроектированную командную кнопку.


увеличить изображение
Рис. 9.11.  Справочное руководство, открытое в двух окнах

На этом и завершим рассказ о том, как Office Assistant и Answer Wizard обеспечивают работу с пользовательским справочным руководством. Еще один последний штрих к рассказу. Я проверил, что и в Excel вызов той же процедуры HelpOfHelp обеспечивает работу со справочным руководством из Office Assistant также хорошо, как и в приложении Word.



В моем тестовом документе эта процедура вызывается в ответ на щелчок специально спроектированной командной кнопки. Но, конечно же, чаще всего подобную процедуру следует включать в процедуру инициализации документа, вызываемую в обработчике события Open.

Несколько комментариев к этой процедуре. Я ввел пользовательский объект customAnswerWizard, но можно было бы пользоваться и стандартным объектом. Реально существует только один объект AnswerWizard и все изменения отражаются на этом объекте. Метод ResetFileList восстанавливает список стандартных файлов, присущих объекту AnswerWizard. Метод ClearFileList делает этот список пустым, он используется перед добавлением собственных aw-файлов, например, для того, чтобы можно было работать только с этими файлами. Заметьте, метод ClearFileList в процедуре закомментирован. Это позволяет одновременно работать со стандартным и собственным справочным руководством. Вот как выглядит запрос на справку, сформулированный в Office Assistant:


увеличить изображение
Рис. 9.10.  Вопрос и ответ в Office Assistant

Как видите, Мастер Ответов на вопрос "Help" указал разделы, как нашего справочного руководства, так и стандартного. Заметьте, в стандартном руководстве используются русские имена разделов. При создании собственного руководства мне не удалось справиться с решением этой задачи. И в заключение рассказа взгляните еще на один экран, на котором одновременно показаны два окна справки - стандартное окно и собственное окно. В обоих окнах отображается наше справочное руководство. Окна имеют разные закладки, одно из них открыто Office Assistant, другое - я открыл сам, нажав специально спроектированную командную кнопку.


увеличить изображение
Рис. 9.11.  Справочное руководство, открытое в двух окнах

На этом и завершим рассказ о том, как Office Assistant и Answer Wizard обеспечивают работу с пользовательским справочным руководством. Еще один последний штрих к рассказу. Я проверил, что и в Excel вызов той же процедуры HelpOfHelp обеспечивает работу со справочным руководством из Office Assistant также хорошо, как и в приложении Word.


Содержание раздела