Создание справочной системы средствами Oracle Designer Средствами Oracle Designer можно создавать справочную систему двух видов. Можно воспользоваться генератором MS Help,который создает справочные файлы MS Help (WinHelp) или воспользоваться справочной системой, основой которой является таблица. Справочные таблицы Справочная система, основанная на таблицах, не обладает некоторыми свойствами стандартной справочной системы Windows, например, гипертекстовыми связями с другими темами, графическими образами. Она также не имеет способа форматирования текста, шрифт которого отличен от стандартного. Достоинствами такой справочной системы является возможность ее использования на разных платформах (например, Unix), в символьном режиме или при выполнении формы через Web с использованием Forms Server. Для использования табличной справочной системы, нужно в предпочтениях генератора Forms в группе End User Interface для параметра HLPTYP установить значение HELPFORM, а для параметра HLPFRM указать имя формы, которая будет использоваться для отображения текста справки (по умолчанию используется OFGHLPF). Справочная таблица может быть одна для всех прикладных систем и иметь имя CG_FORM_HELP, либо одна на каждую прикладную систему, тогда ее имя будет состоять из имени прикладной системы и FORM_HELP. Для использования первого варианта в предпочтениях генератора Forms в группе DBA для параметра HPTABL указать значение GENERIC, а для второго - APPSYS и если используется справочная форма OFGHLPF, то нужно ее изменить, указав в ней таблицу с соответствующим именем. Справочная система, основанная на таблицах, использует текст справки из репозитария(свойство User/Help Text) на трех уровнях: модуль(module), компонент модуля(module component), элемент(bound or unbound item). При генерации приложения на Oracle Forms, этим уровням соответствуют форма, блок и элемент. Если будет использоваться стандартная справочная форма, поставляемая с Oracle Designer-ом, то при вызове ее из кого-либо элемента формы будет отображаться текст справки для этого элемента, если же текст справки не был задан, то будет использоваться текст справки для блока, а если и его нет, то для формы. Справочная система MS Для использования справочной системы MS Help, нужно в предпочтениях генератора Forms в группе End User Interface для параметра HLPTYP установить значение MSHELP. Для установки настроек генератора нужно в меню выбрать Options-Generator Options-Help System.Там определяются следующие свойства: Location of Generated Files - расположение сгенерированных файлов , можно не указывать, но тогда эти файлы будут помещены в рабочую директорию Designer-а Help Compiler - программа для компиляции справки; если используется компилятор из Help Workshop-а, то нужно указать полный путь, имя программы(HCW.EXE) и параметр /C, например c:\program files\winhelp\hcw.exe /c Help Executable - программа запуска справки; если программа для запуска Help не указывается, то по умолчанию будет использоваться WINHLP32.EXE. Для генерации справки нужно выбрать в меню Generate-Generate Module as и в появившемся окне диалога выбрать Help System. Значения свойств, используемые генератором MS Help Элемент репозитария Свойство Как используется в справочной системе Top Title Заголовок страницы содержания Модуль User/Help Text Help File Name Help Graphic File Name Help Context ID Компонент модуля Title Группа элементов Элемент Бизнес-терминология User/Help Text Help Context ID Prompt User/Help Text Prompt User/Help Text Name Comment Описание страницы содержания Имя справочного файла (без расширения) Имя графического файла с изображением, отображаемым в заголовке страницы содержания. Числовой префикс, используемый в справочной системе для ссылки на справочный текст модуля в файле .hlp. Это число должно быть уникально для всех модулей и компонентов модулей включенных в файл справки, для того, чтобы генератор MS Help мог создать правильные связи. Текст гипертекстовой связи со страницы содержания. Заголовок страницы. Описание компоненты модуля см. описание одноименного свойства модуля Заголовок раздела для группы элементов Описание группы элементов. Заголовок раздела для элемента Описание элемента Слово глоссария. Каждое слово в тексте справки совпадающее со словом из бизнес-терминологии преобразуется в гиперссылку. Описание слова глоссария. Появляется во всплывающем окне при нажатии на гиперссылку слова глоссария. Предпочтения генератора MS Help Параметр Значение General CAPKEY Y N GRHLOC ITMPPM Комментарий Автоматически создаются ключевые слова. Для их создания используются свойства: модуля - Top Title компоненты модуля - Title группы элементов - Prompt элемента - Prompt Ключевые слова автоматически не создаются Путь до графических файлов, используемых в справочной системе. Символ, используемый в свойстве элемента Prompt, чтобы разделить заголовок элемента на две части, отображаемых до и после элемента. MS Help генератор убирает первое вхождение этого символ и заключает оставшийся текст в скобки. Рекомендуется проследить, чтобы у этого параметра было то же значение, что и у одноименного параметра в предпочтениях Forms. ITMSPM Hyperlink Titles DCULTL DTULTL GRPLTL MODLTL Символ, используемый в свойстве Prompt для разделения заголовка элемента на разные строки. Генератор MS Help заменяет любое вхождение этого символа на пробел. Рекомендуется проследить, чтобы у этого параметра было то же значение, что и у одноименного параметра в предпочтениях Forms. Текст, который генератор MS Help вставляет перед списком гиперссылок на справочную информацию к элементам. Текст, который генератор MS Help вставляет перед списком гиперссылок на справочную информацию к компонентам модуля. Текст, который генератор MS Help вставляет перед списком гиперссылок на справочную информацию к группам элементов. Текст, который генератор MS Help вставляет перед списком гиперссылок на справочную информацию к модулям. Topic Structure IGPLTC ALWAYS Генератор MS Help создает новую страницу справки для каждой группы элементов. STACKED Для каждой группы элементов, у которых свойство Stacked установлено в Yes создается отдельная страница справки, при этом справки по остальным группам помещаются в одном разделе. NEVER Справки по всем группам элементов помещаются на одну страницу справки. TUPLCT ALWAYS Для каждого компонента модуля создается отдельная страница справки. MORE Для каждого компонента модуля создается отдельная страница справки THEN ONE только в том случае, если в модуле более одного компонента. NEVER Справки по всем компонентам модулям помещаются на одну страницу справки. Topic Text DCUCAP Y Заголовок элемента помещается в справку даже в том случае, если для этого элемента нет справочной информации. N Заголовок элемента помещается в справку только в том случае, если для этого элемента есть справочная информация. DCUJPS Если количество элементов и/или групп элементов (которые отображаются в одном разделе) больше чем значение этого параметра, то перед справочной информацией создается список гиперссылок на эти элементы. DCUNHP USE HINT Если для элемента отсутствует текст справки, то будет использоваться TEXT текст в свойстве Hint этого элемента. USE Если для элемента отсутствует текст справки, то будет использоваться COLUMN текст в свойстве User/Help Text колонки соответствующей этому DEFINITION элементу. NONE Текст справки для элемента не выводится. Выводится только заголовок. DTUNHP USE TABLE Если для компоненты модуля отсутствует текст справки, то будет DEFINITION использоваться текст в свойстве User/Help Text базовой таблицы для этой компоненты. NONE Текст справки для компоненты модуля не выводится. Выводится только заголовок. NOHTML Y MS Help генератор фильтрует все тэги HTML, удаляя их из текста справки. Также удалятся и некоторые символы (например, <) и символы находящие между < и >. N Весь текст выводится "как есть" со всеми тэгами HTML. Что выбрать? Достоинства и недостатки Справочные таблицы Достоинства Недостатки Вся справочная информация находится в одной таблице и после внесения в текст справки изменений, все сразу видят обновленный вариант Переносимость. Справочная форма может вызываться на разных платформах, при запуске формы в текстовом режиме и через Web используя Forms server. Крайне убогое представление информации, отсутствие графики и гиперссылок Нестандартный и непривычный интерфейс Отсутствие списка ключевых слов (указатель) Отсутствие поиска по справочной системе Невозможно прочитать справку без специализированного ПО (Forms Runtime, SQL*Net, форма для просмотра справки) MS Help Достоинства Недостатки Стандартный интерфейс, привычная Непереносимость между форма представления информации, платформами, невозможность удобство пользования использования при запуске формы через Web (через Forms Server) Использование графики и гиперссылок некоторые недостатки есть у самого MS Help генератора, Возможность контекстного поиска например, графику нельзя Наличие списка ключевых слов использовать в тексте справки (указатель) (можно только перед заголовком Возможность чтения справки на раздела). любом компьютере с ОС Windows При внесении изменений в текст без дополнительного ПО справки необходимо копировать новую версию на каждое рабочее место. Я считаю, что сейчас имеет смысл использовать MS Help генератор, так как базовая конфигурации ПО рабочего места пользователя ИИАС предполагает использование Windows в качестве операционной системы, а для выполнения форм - Forms Runtime. А чтобы не возникало проблем при выполнении формы через Web (help будет запускаться на стороне сервера), можно в процедуре CGHP$CALL_MS_HELP из библиотеки OFGHPL.PLL поставить заглушку, которая гарантирует, что help будет вызываться только из ОС Windows: If Get_Application_Property(USER_INTERFACE) = 'MSWINDOWS32' Then rc := WinHelpApi.winhelp(hwnd,h_path,h_command,h_data); End If; В дальнейшем стоит подумать об использовании справочной системы на основе HTML, что позволит избежать проблем с совместимостью. При таком подходе имеет смысл текст справки хранить в таблицах БД и с помощью Oracle Application Server формировать страницу справки по контекстному запросу. Ничто также не помешает, в этом случае, на основании содержимого этих таблиц сгенерировать статичные страницы HTML, чтобы избежать излишнего обращения к серверу, а статичные html-страницы, в свою очередь, могут быть преобразованы в MS HTML Help. Обозначенный выше подход мне наиболее симпатичен, однако его реализация равносильна написанию еще одного HELP-генератора и выполнение ее в сжатые сроки проблематично.