Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OTVET_NA_BD.docx
Скачиваний:
19
Добавлен:
08.11.2019
Размер:
916.72 Кб
Скачать

Событие OnValidateRow

Событие OnValidateRow возникает для каждой строки данных, позволяя управлять включением строки данных в отчет или нет. Обычно это единственное событие, которое определяется для не пользовательских подключений.

Пример:

procedure TDataForm.CustomCXNValidateRow(Connection: TRvCustomConnection;

var ValidRow: Boolean);

begin

ValidRow := DataRecord.FloatField >= 0.0;

end;

Событие OnRestore

Событие OnRestore для прекращения текущей сессии и восстановления предыдущего состояния. В этом событие Вы можете закрыть файлы данных, освободить ресурсы и восстановить предыдущее состояние, которое было перед событием OnOpen.

Пример:

procedure TDataForm.CustomCXNRestore(Connection: TRvCustomConnection);

begin

CloseFile(DataFile);

end;

Приложение

Null-значения

Основное назначение баз данных состоит в том, чтобы хранить и предоставлять информацию о реальном мире. Для представления этой информации в базе данных используются привычные для программистов типы данных - строковые, численные, логические и т.п. Однако в реальном мире часто встречается ситуация, когда данные неизвестны или не полны. Например, место жительства или дата рождения человека могут быть неизвестны (база данных разыскиваемых преступников). Если вместо неизвестного адреса уместно было бы вводить пустую строку, то что вводить вместо неизвестной даты? Ответ - пустую дату - не вполне удовлетворителен, т.к. простейший запрос "выдать список людей в порядке возрастания дат рождения" даст заведомо неправильных ответ.

Для того чтобы обойти проблему неполных или неизвестных данных, в базах данных могут использоваться типы данных, пополненные так называемым null-значением. Null-значение - это, собственно, не значение, а некий маркер, показывающий, что значение неизвестно.

Таким образом, в ситуации, когда возможно появление неизвестных или неполных данных, разработчик имеет на выбор два варианта.

Первый вариант состоит в том, чтобы ограничиться использованием обычных типов данных и не использовать null-значения, а вместо неизвестных данных вводить либо нулевые значения, либо значения специального вида - например, договориться, что строка "АДРЕС НЕИЗВЕСТЕН" и есть те данные, которые нужно вводить вместо неизвестного адреса. В любом случае на пользователя (или на разработчика) ложится ответственность на правильную трактовку таких данных. В частности, может потребоваться написание специального программного кода, который в нужных случаях "вылавливал" бы такие данные. Проблемы, возникающие при этом очевидны - не все данные становятся равноправны, требуется дополнительный программный код, "отслеживающий" эту неравноправность, в результате чего усложняется разработка и сопровождение приложений.

Второй вариант состоит в использовании null-значений вместо неизвестных данных. За кажущейся естественностью такого подхода скрываются менее очевидные и более глубокие проблемы. Наиболее бросающейся в глаза проблемой является необходимость использования трехзначной логики при оперировании с данными, которые могут содержать null-значения. В этом случае при неаккуратном формулировании запросов, даже самые естественные запросы могут давать неправильные ответы. Есть более фундаментальные проблемы, связанные с теоретическим обоснованием корректности введения null-значений, например, непонятно вообще, входят ли null-значения в домены или нет.

Подробное обсуждение проблем использования null-значений выходит за пределы данной работы. Можно только сказать о том, что этот вопрос в теории реляционных баз данных окончательно не решен. Основоположник реляционного подхода Кодд считал null-значения неотъемлемой частью реляционной модели. К.Дейт, один из крупнейших теоретиков реляционной модели выступает категорически против null-значений (подробное обсуждение проблем, возникающих при использовании null-значений приведено в книге [11].

Практически все реализации современных реляционных СУБД позволяют использовать null-значения, несмотря на их недостаточную теоретическую обоснованность. Такую ситуацию можно сравнить с ситуацией, сложившейся в начале века с теорией множеств. Почти сразу после создания Кантором теории множеств, в ней были обнаружены внутренние противоречия (антиномии). Были разработаны более строгие теории, позволяющие избежать этих противоречий (конструктивная теория множеств). Однако в реальной работе большинство математиков пользуется классической теорией множеств, т.к. более строгие теории более ограничены и негибки в применении именно в силу своей большей строгости.

Мнение автора (очень скромное по сравнению с мнением корифеев реляционной теории) состоит в том, что желательно избегать null-значений. Тем не менее, приведем здесь описание трехзначной логики, необходимой для работы с null-значениями.

Трехзначная логика (3VL)

Т.к. null-значение обозначает на самом деле тот факт, что значение неизвестно, то любые алгебраические операции (сложение, умножение, конкатенация строк и т.д.) должны давать также неизвестное значение, т.е. null. Действительно, если, например, вес детали неизвестен, то неизвестно также, сколько весят 10 таких деталей.

При сравнении выражений, содержащих null-значения, результат также может быть неизвестен, например, значение истинности для выражения есть null, если один или оба аргумента есть null. Таким образом, определение истинности логических выражений базируется на трехзначной логике (three-valued logic, 3VL), в которой кроме значений T - ИСТИНА и F - ЛОЖЬ, введено значение U - НЕИЗВЕСТНО. Логическое значение U - это то же самое, что и null-значение. Трехзначная логика базируется на следующих таблицах истинности:

AND

F

T

U

F

F

F

F

T

F

T

U

U

F

U

U

Таблица 1 Таблица истинности AND

OR

F

T

U

F

F

T

U

T

T

T

T

U

U

T

U

Таблица 2 Таблица истинности OR

NOT

 

F

T

T

F

U

U

Таблица 3 Таблица истинности NOT

Имеется несколько парадоксальных следствий применения трехзначной логики.

Парадокс 1. Null-значение не равно самому себе. Действительно, выражение null = null дает значение не ИСТИНА, а НЕИЗВЕСТНО. Значит выражение не обязательно ИСТИНА!

Парадокс 2. Неверно также, что null-значение не равно самому себе! Действительно, выражение null null также принимает значение не ИСТИНА, а НЕИЗВЕСТНО! Значит также, что и выражение тоже не обязательно ЛОЖЬ!

Парадокс 3. не обязательно ИСТИНА. Значит, в трехзначной логике не работает принцип исключенного третьего (любое высказывание либо истинно, либо ложно).

Таких парадоксов можно построить сколько угодно. Конечно, это на самом деле не парадоксы, а просто следствия из аксиом трехзначной логики.

Экзаменационный билет №25

1) Фирма Borland разработала собственную технологию доступа к данным SQL Links, имеющую возможность взаимодействовать с ODBC через специальные «интерфейсы-мосты». Технология BDE является набором динамических библиотек, которые предоставляют интерфейсы, позволяющие передавать запросы на получение или модификацию данных из приложения в нужную базу данных и получать результат обработки. В процессе работы библиотеки используют вспомогательные файлы языковой поддержки и информацию о настройках среды.

 

Для разработчика BDE предоставляет множество преимуществ: - непосредственный доступ к локальным базам данных (dBase, Paradox, текстовые файлы); - доступ к SQL-серверам (Oracle, Sybase, MS SQL Server, InterBase, Informix,DB2) с помощью набора драйверов Borland SQL Links; - доступ к любым источникам данных, имеющим драйвер ODBC (Open Data-Base Connectivity), например к файлам электронных таблиц (Excel, Lotus1-2-3), и серверам баз данных, не имеющим драйверов SQL Links (например, Gupta/Centura); - создание приложений «клиент—сервер», использующих разнородные данные; - использование SQL (Structured Query Language — язык запросов к серверным СУБД), в том числе и при работе с локальными данными; - изоляцию приложения от средств языковой поддержки.

На рис. 3.1 представлена схема, на которой показана связь приложений и BDE.

 

Рис. З.1. Связь приложений с источниками данных при помощи BDE

 

Создание псевдонима базы данных При работе с таблицами локальных БД ИЛИ СУБД сама база размещается либо п каталоге на диске и хранится в виде отдельного набора файлов, либо на удаленном сервере. Обращение к базе данных происходит по ее псевдониму (Database Alias). Псевдоним должен быть зарегистрирован на конкретной машине, с которой будет производиться доступ к базе данных. Псевдонимы баз данных и другие настройки BDE хранятся в файле idapi32.cfg. расположенном в том же каталоге, что и файлы BDE.

Создание и работа с псевдонимами баз данных производится из утилиты BDE Administrator. Для того чтобы создать псевдоним, в главном меню утилиты надо выбрать пункт Object > New, В появившемся окне, показанном на рис, 3.2, будет предложено выбрать драйвер для доступа к базе дампа:

 

Рис. 3.2. Окно выбора драйвера

 

В рассматриваемом случае надо оставить выбранным пункт STANDARD и нажать кнопку ОК. Созданный псевдоним базы данных можно переименовать по своему вкусу. В примере псевдоним получил название TestAlias. В правой части окна в качестве значения свойства Path указывается путь к базе данных. Обычно требуется создать каталог, в котором позже будет размещена эта база. В примере используется путь D:\TestDB (рис 3.3) Путь к каталогу можно указать с помощью диалогового окна, который активируется соответствующей кнопкой в поле Path. После выполнения этих действии необходимо сохранить данные о созданном псевдониме. Для этого следует выполнить команду меню Object --- Apply. Окно, демонстрирующее сказанное, показано на рис. 3.3.

 

Рис. 3.3. Создание и настройка псевдонима

2)

Любое профессиональное приложение для операционной системы Windows должно содержать справочную систему стандартного вида, позволяющую пользователю получить дополнительную информацию по любому вопросу. Если внешний вид и принципы работы справочной системы будут отличаться от принятых в среде Windows, то это означает, что пользователь будет вынужден затратить дополнительное время на обучение. Обе версии Visual Basic (Professional и Enterprise) поставляются с компилятором файловой системы Windows, который позволяет легко встраивать справочную систему в приложения.

Примечание: Полное рассмотрение всех средств справочной системы Windows заняло бы слишком мною места, поэтому в данной главе рассказывается в основном только о взаимодействии справочной системы Windows с приложением. Справочное руководство Visual Basic Books Online для обоих версий Professional и Enterprise включает полную информацию, необходимую для построения справочной системы.

Грубо говоря, метод использования компилятора справочной системы достаточно прост: создается текстовый файл, содержащий соответствующие коды формата, которые компилятор преобразует во внутренние ссылки, выпадающие окна и т.д. Текстовый файл должен создаваться в текстовом редакторе, поддерживающем формат RTF (rich text format) фирмы Microsoft. Большинство современных текстовых редакторов поддерживают этот формат.

Совет: Некоторые инструменты независимых поставщиков существенно облегчают процесс создания справочной системы. Один из них, который постоянно используется автором в его работе, это "RoboHelp" фирмы BlueSky Software. Если нужно создать сложную справочную систему, то пакет RoboHelp окажет в этом неоценимую помощь. Для создания более простых справочных систем можно воспользоваться продуктами, распространяемыми по принципу shareware. Список подобных систем приведен в WINDSK forum системы CompuServe. Инструменты WHAT (Windows Help Authoring Templates) и WHPE (Windows Help Project Editor), которые можно найти на компакт-диске Microsoft Software Developers, также отличается простотой в использовании.

Система помощи Windows также включает в себя меню с дополнительными средствами. (При работе с Windows 95 может понадобиться создать многоуровневую систему меню.) Подобное меню содержит такие пункты, как Search, который выводит список ключевых слов и позволяет пользователю перемещаться по списку, вводя первые буквы интересующего его слова. Далее, при помощи ключевого слова можно сразу перейти к нужному разделу. Также различные части приложения (как и в Visual Basic) могут содержать контекстно-зависимую подсказку. Этот способ получения подсказки доступен при нажатии клавиши F 1 (или при помощи кнопки WhatsThisHelp в среде Windows 95) и выдает информацию о том инструменте среды, который задействован в настоящий момент.

Создание тематических разделов справочной системы

Базовой операцией при создании справочной системы является определение набора тематических разделов помощи. В идеале это должен быть короткий список (не более одного - двух экранов) тем помощи, объединенных общим принципом классификации. Обычно тематические разделы организуются в виде иерархической системы. Это позволяет пользователю легко перемещаться от общих тем к более специфическим. Тем не менее каждый раздел должен содержать достаточное количество ссылок для перехода к другим темам без необходимости подниматься на самый верхний уровень иерархии.

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

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

Дополнительное окно можно использовать для получения дополнительной ииформагщн, не покидая текущий раздел помощи, однако, в отличие от всплывающего окна, оно содержит собственное название (и. если это необходимо, полосы прокрутки).

Обратная сторона тематических разделов

Совет: Если найти файл Iconwrks.rtfB директории VBVHC, то он сможет стать отличным примером файла RTF. Этот файл содержит простейшую справочную систему для приложения Iconwrks. (Исполняемый файл этого приложения называется Iconwrks.ехе и находится в том же директории.) Далее, сравнивая содержимое RTF-файла с экраном помощи Iconwrks.ехе, можно увидеть, как управляющие символы формата RTF превращаются в дополнительные возможности справочной системы. Возможно, это даже поможет достаточно хорошо изучить значение управляющих символов. Однако более предпочтительным является использование программных инструментов независимых поставщиков.

Практически нет людей (за редким исключением), которые для создания справочной системы не использовали бы простые пакеты, основанные на макроопределениях, для расстановки управляющих символов RTF. Используя подобный пакет можно смело забыть о том, что обозначет тот или иной идентификатор формата RTF, щелкнув вместо этого несколько раз мышкой. В качестве примера можно привести внешний вид панели инструментов пакета RoboHelp, дающей доступ к некоторым из его возможностей.

В любом случае, как об этом уже говорилось ранее, необходим текстовый редактор, поддерживающий формат RTF (rich text format) для сохранения файла, который будет впоследствии перетранслирован компилятором в справочную систему. (Это связано с тем, что большинство доступных инструментов типа RoboHelp доступны в качестве дополнительных модулей к редактору Microsoft Word, который, без сомнения, полностью поддерживает спецификацию RTF-формата.)

Каждый тематический раздел справочной системы должен быть отделен от другого символом "разрыв страницы" (hard page break). (Этот символ надо вводить самостоятельно, в отличие от других символов разрыва, которые тестовый редактор проставляет автоматически. Символ "разрыв страницы" можно ввести путем нажатия комбинации клавиш CTRL+ENTER в семействе редакторов фирмы Microsoft.) Каждый тематический раздел должен содержать идентификатор контекстной строки, название, а также список доступных ключевых слов. Контекстная строка используется для перехода к разделу, следовательно, каждый раздел должен иметь уникальную строку. Ключевые слова используются для организации возможностей поиска в справочной системе. Естественно, несколько тематических разделов могу т иметь одинаковые ключевые слова.

Привязка по ключевым словам, использующая идентификаторы, является основой для построения справочной системы. Например, контекстная строка выделяется при помощи идентификатора привязки "#". Контекстная строка может использовать символы от А до Z, числа, точки и символы подчеркивания. Максимальная длина строки ограничена 255 символами.

Название тематического раздела выделяется при помощи идентификатора привязки "$" (знак доллара). Название может содержать до 127 символов из стандартного набора системы Windows. И, наконец, ключевые слова выделяются при помощи идентификатора привязки "К" (в верхнем регистре).

(Ключевые слова не являются обязательными, однако можно назначить тематическому разделу более чем одно ключевое слово, перечислив их в списке, разделенном знаками ";". Ключевые слова могут содержать произвольные символы из стандартного набора символов системы Windows. Максимальная длина ключевого слова не должна превышать 255 символов.)

Далее заметим, что можно организовать ссылку на файл с растровым изображением.bmp, указав его имя в фигурных скобках. При этом растровое изображение будет помещено в соответствующее место экрана помощи. Можно также поместить растровое изображение на страницу со списком тематических разделов. Если для создания справочной системы используется текстовый редактор Word for Windows, то того же результата можно достичь, воспользовавшись функцией Insert Picture. (Для вставки изображения большого размера следует воспользоваться методом вставки "By Reference".) Графическая часть справочной системы также может использоваться в качестве точек перехода к другим темам. Если не используется редактор Word for Windows, то следует создать ссылку на растровое изображение в файле тематических разделов.

Обратим внимание, что некоторые фрагменты текста (например, "Status Area") подчеркнуты двойной линией. Такие фрагменты используются в качестве точек перехода к другим разделам. Вслед за каждым таким фрагментом следует текст, указывающий место перехода (этот текст не выводится на экран в справочной системе). Общий синтаксис подобного механизма ссылок может быть записан как:

JumpString CONTEXT_SroWG

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

Примечание: Способ указания фрагмента текста как скрытого зависит от используемого текстового редактора.

Создание контекстно-зависимой справочной системы.

Свойство, ссылающееся на файл справочной системы, является базовым свойством любого объекта типа Арр (application). Для того чтобы связать это свойство с соответствующим слайдом, необходимо выполнить следующее:

Выбрать пункт Tools\0ptions. а затем щелкнуть мышкой по странице Project.

Ввести имя скомпилированного файла справочной системы в текстовой панели HelpFile. (Если файл находится в отличном от базового для приложения директории, то следует указать полный путь.)

Далее, предположим, что уже создан файл справочной системы, который будет откомпилирован и добавлен к приложению. Прежде чем использовать возможности контекстно-зависимой справочной системы, необходимо выполнить ряд действий.

Ключевым моментом для программиста при создании контекстно-зависимой справочной системы является установка соответствующих значений HelpContextJD для рабочей формы или элементов управления. Все управляющие элементы, за исключением теневых линий, изображений и элементов управления метками, имеют в своем составе свойство HelpContextID.

Ключевым моментом для создателя справочной системы является проверка того. чтобы значения HelpContextID соответствовали различным элементам, для которых необходима контекстно-зависимая подсказка.

Например, если программист установит значение 5 для свойства HelpContextID меню File, то создатель справочной системы должен об этом знать. После этого он (или она) должен сообщить компилятору, как следует соотносить значение свойства HelpContextID с соответствующим тематическим разделом (более подробно эта операция описана в следующем разделе). В нашем случае тематический раздел FILE MENU должен иметь контекстный номер 5.

Совет: Если требуется назначить элементу управления изображением контекстно-зависимую подсказку (это невозможно сделать обычным способом по причине отсутствия свойства HelpContextID у такого элемента), следует заменить подобный элемент панелью с изображением.

Создание и компиляция файла справки

Файл проекта справочной системы содержит всю информацию, необходимую для корректной работы компилятора. Кроме этого, он содержит таблицу (карчу) соответствий для установления связей между контекстной строкой и контекстным номером ID, которая будет использоваться в проекте (еще раз напомним, что должно существовать строгое соответствие между информацией, содержащейся в файле проекта справочной системы, и кодом приложения).

Файл проекта справочной системы представляет собой обычный текст в формате ASCII. В качестве расширения для всех подобных файлов проекта используется.hpj. Файл проекта справочной системы содержит список всех файлов с тематическими разделами, а также может содержать растровое изображение или таблицу соответствия между контекстными строками и контекстными номерами ID. Можно также назначить две контекстные строки одному и тому же тематическому разделу, модифицировав файл проекта.

Для установления соответствий между контекстным номером ID и определенным тематическим разделом необходимо указать имя раздела после ключевого слова [MAP], после чего через пробел (т.е. после нажатия клавиши SPACE или TAB) следует указать контекстный номер справки. Например, секция [МАР]-файла проекта справочной системы может содержать следующую информацию:

[MAP]

FILE_MENU 5 ;5 is the context number

;Comments follow semicolons

EDIT_MENU 10 ;10 is context number

VIEW_MENU 15 ;15 is context number

Теперь, если вызвать инструмент создания справочной системы со значением HelpContextID, установленным в 5, получим экран помощи для тематического раздела FILE_MENU; установив HelpContextID в 10 и вызвав инструмент создания справочной системы, получим экран EDIT MENU и т.д.

После создания файла проекта справочной системы остается только вызвать компилятор системы помощи. (Заметим, что директорий, в котором находится компилятор, должен содержаться в системной переменной PATH, в противном случае необходимо будет указать полный путь.) Например, в системе Windws 95 можно использовать для этого диалоговую панель Run, доступную из меню Start, в которой нужно написать нечто подобное:

C:\VB\HC\HC Named fHelpPi-ojectFile

если компилятор находится в назначенном по умолчанию директории (для версии Professional). Или же можно написать:

НС NameOfHelpProjectFile

в IUM случае, когда директорий, содержащий компилятор, содержится в переменной PATH.

Компилятор справочной системы имеет большое количество возможностей, не рассматриваемых здесь. Например, можно компилировать только определенные части файла или управлять размерами и видом его окон. Кроме этого, можно использовать всю мощь макроопределений, написанных фирмой Microsoft, для расширения возможностей компилятора справочной системы. Эта и другая информация содержатся в Visual Basic Books Online. Также можно почерпнуть большое количество информации, внимательно изучив содержание файла Iconwrks.rtf.

Доступ к справочной системе Windows

Для доступа к справочной системе можно использовать метод ShowHelp обычной диалоговой панели. Далее приведена последовательность действий, которые необходимо для этого выполнить:

Добавитъ ооычныч аналоговый управляющий элемент в то место формы, где надо использовать средство справочной системы Windows.

Установить соответствующие значения для свойств HelpFile u HelpCommand управляющего элемента CommonDialog.

Например, если надо использовать метод ShowHelp для получения контекстно-зависимой подсказки:

Назначить свойству HelpFile имя скомпилированного файла справки.

Установить для свойства HelpCommand -значение cdlHelpContext.

Установить соответствующее значение контекстного номера ID для свойства HelpContext.

И. наконец, можно вызвать справочную систему при номоиш метода ShowHeIn

Если необходимо вызвать справочную систему самой системы Windows (например, для получения доступа к экрану Windows "Help on Help"), необходимо вызвать API - функцию WinHelp. Для этого необходимо добавить в приложение соответствующий фрагмент кода. Для 32-битной версии справочной системы это может быть такой фрагмент:

Declare Function WinHeip Lib "user32" Alias "WinHelpA" (ByVal hHnd As Long, ByVal IpHclpFu

As String, ByVal wCommand As Long, ByVal dwData As Long) As Long

Параметр hWnd ("window's handle) является параметром свойства hWnd рабочей формы. Параметр IpHelpF указывает путь к файлу справки (этот файл находится в директории, отличном от директория .ехе-файлов). Мог понадобиться следующие константы, используемые параметром wCommand:

Global Const HELP CONTEXT = &H1 'Display topic by id number

Global Const HELP QUIT -- &H2 'Terminate help

Global Const HELP INDEX = &H3 'Display index

Global Const HELP HELPONHELP = &H4 'Display help on using help

Global Const HELP SETINDEX = &H5 'Set an alternate Index

Global Const HELP KEY = &H101 'Display topic for keyword in Data

Global Const HELP MULTIKEY = &H201 'Look up keyword in alternate table

Например, для того, чтобы вызвать стандартную справочную систему "Help on Help", необходимо испольвать следующую процедуру:

Public Sub DisplayHelp On Help(X As Form)

Dim Foo As Long ' dummy variable

Foo = WinHeip(X.hWnd,"C:\WINDOWS\HELP\WINDOWS.HLP",

HELP HELPONHELP,CLng(O))

End Sub

После этого любая строка вида

DisplayHelp_On_Help_Me

будет вызывать стандартную справочную систему Windows.

Примечание: После присвоения параметру hCommand значения HELP_CONTEXT следует установить для параметра dwData соответствующий номер ID контекстной строки.

Если для вызова справочной системы используется WinHeip API, то для того чтобы закрыть дополнительные окна справки, вам нужно снова вызвать функцию WinHeip API (т.к. справочная система Windows является отдельным приложением). Это можно сделать следующим образом (обычно для этого используется событие Form Unload). Переменные Foo и Bar должны иметь правильный тип, хотя реально они не несут никакой полезной нагрузки.

Sub Form_Unload(Cancel As Integer)

Dim Foo As Integer, Bar As String 'dummy variables

Foo = WinHeip(Me.hWnd, Bar, Help_Quit, CLng(O))

End Sub

Справочная система What's This

Операционная система Windows 95 имеет новый тип контекстно-зависимой подсказки, который вызывается щелчком мышки над изображением небольшого вопросительного знака, расположенного на заголовке экранной формы. При этом указатель мыши изменяет свой внешний вид на вопросительный знак, после чего пользователь может щелкнуть мышкой по любому объекту. В результате этих действий на экран выводится контекстно-зависимая информация о выбранном объекте. Точно так же, как и в других вариантах контекстно-зависимой подсказки, для корректной работы подсказки "What's This" надо установить соответствие между приложением и секцией MAP в файле проекта справочной системы.

Примечание: Для использования этого варианта контекстно-зависимой подсказки необходимо установить значение True для свойства WhatsThisHelp. Кроме этого, надо установить для свойства WhatsThisHelpID значение соответствующего контекстного номера ID.

Для встраивания контекстно-зависимой подсказки What's This в приложение доступны три способа. Но в любом случае свойство WhatsThisHelp должно быть установлено в True.

Создать кнопку What's This на заголовке вашей формы, установив свойство WhatsThisButton в True. Теперь, если пользователь нажмет эту кнопку, указатель мышки изменит свой внешний вид на стрелку с вопросительным знаком, а после выбора объекта система Windows автоматически вызовет тематический раздел, чей контекстный номер ID соответствует свойству WhatsThisHelpID выбранного элемента.

Вызвать метод WhatsThisMode. Синтаксис метода следующий:

FormObject.ShowWhatThis

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

И, наконец, можно вызывать систему помощи напрямую из приложения при помощи метода WhatsThisMode. Эффект вызова при этом такой же, как и в случае, когда пользователь щелкает по кнопке What's This на полосе заголовка. (Подобный метод вызова может использоваться для запуска приложения в режиме обучения, когда пользователь будет видеть описание каждого выбираемого им пункта меню.)

Экзаменационный билет №26

1) Для успешного доступа к данным приложение и BDE должны обладать информацией о местоположении файлов требуемой базы данных. Задание маршрута входит в обязанности разработчика.

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

Для решения такого рода проблем разработчик может использовать псевдоним базы данных, который представляет собой именованную структуру, содержащую путь к файлам БД и некоторые дополнительные параметры. В первом приближении можно сказать, что вы просто присваиваете маршруту произвольное имя, которое используется в приложении. Тогда при переносе приложения на компьютере заказчика достаточно создать стандартными средствами BDE одноименный псевдоним и настроить его на нужный каталог. При этом само приложение не требует переделок, т. к. оно обращается к псевдониму с одним именем, а вот BDE уже "знает" куда отправить запрос приложения, использовавшего этот псевдоним.

Помимо маршрута к файлам базы данных, псевдоним BDE обязательно содержит информацию о драйвере БД, который используется для доступа к данным. Наличие других параметров зависит от типа драйвера, а значит, от типа СУБД.

Для управления псевдонимами баз данных, настройки стандартных и дополнительных драйверов в составе BDE имеется специальная утилита — BDE Administrator (исполняемый файл BDEADMIN.EXE). Стандартная конфигурация BDE сохраняется в файле IDAPI.CFG. При необходимости текущую конфигурацию можно сохранить в новом файле с расширением cfg или загрузить заново при помощи команд Save As Configuration и Open Configuration из меню Object.

В верхней части окна утилиты расположена Панель инструментов, кнопки которой используются при работе с конкретным элементом настройки BDE. Рабочая область утилиты BDE Administrator представляет собой двухстраничный блокнот.

Страница Databases (рис. 16.2) содержит иерархическое дерево, в узлах которого расположены установленные в системе на данный момент псевдонимы БД. При выборе какого-либо псевдонима в правой части панели появляется путь к файлам базы данных и перечень параметров драйвера, соответствующего псевдониму, которые можно настраивать вручную.

Рис. 16.2. Окно утилиты BDE Administrator с открытой страницей Databases

Рис. 16.3. Окно утилиты BDE Administrator с открытой страницей Configuration

Страница Configuration (рис. 16.3) используется для настройки параметров драйверов BDE, предназначенных для обеспечения доступа к локальным СУБД и серверам БД. Также здесь определяется системная конфигурация BDE, которая включает параметры числовых форматов, форматов даты и времени. Вся информация на этой странице также структурирована в виде иерархического дерева.

При выборе в левой части панели утилиты какого-либо узла, в правой части на странице Definition отображается вся необходимая информация для этого объекта.

Сохранение изменений осуществляется при помощи команд меню Object, всплывающего меню или при перемещении на другой псевдоним.

Для создания нового псевдонима требуется выбрать команду New из меню Object или из всплывающего меню узла Databases на одноименной странице. Затем в появившемся простом диалоге задается необходимый драйвер.

Отметим, что один из четырех стандартных локальных драйверов устанавливается на странице Configuration в качестве предопределенного, поэтому в списке он доступен под названием STANDARD, а остальные не видны вообще. Из драйверов SQL Links доступны те, которые были установлены при инсталляции Delphi или позже.

Кроме того, в списке можно выбрать один из драйверов ODBC, установка которых осуществляется стандартными системными средствами на Панели управления Windows.

После выбора драйвера в дереве псевдонимов БД появляется новый узел, для драйвера которого требуется установить необходимые параметры (см. ниже).

Для четырех локальных драйверов список параметров в правой части панели утилиты на странице Definition ограничивается параметрами стандартного драйвера (STANDARD), подробная настройка для каждого драйвера осуществляется на странице Configuration.

Назначение параметров локальных драйверов BDE (Paradox, dBASE, FoxPro, ASCII) представлено в табл. 16.2.

Таблица 16.2. Параметры драйверов BDE для локальных баз данных

Параметр

 Назначение

STANDARD

DEFAULT DRIVER

 Задает тип конкретного локального драйвера (Paradox, dBASE, FoxPro, ASCII)

ENABLE BCD

i Определяет способ представления вещественных чисел. При значении True такие числа преобразуются в формат BCD (Binary Coded Decimals— десятичные с двоичным кодированием). Точность составляет 20 знаков после запятой

PATH

 Указывает путь к файлам базы данных

PARADOX

NET DIR

Указывает путь к файлу обеспечения сетевого доступа  к БД PDOXUSRS.NET. Драйвер приложения, которое  работает с БД локально, должен указывать на этот файл, расположенный на том же компьютере. Драйвер приложения, обращающегося к БД по сети, должен указывать на подключенный сетевой диск с этим файлом

VERSION

Нередактируемая информация о версии драйвера

TYPE

Тип СУБД. Для Paradox имеет значение FILE. Только для чтения

LANGDRIVER

 Определяет драйвер языковой поддержки (используйте  драйвер Paradox Cyrr 866)

BLOCK SIZE

 Задает размер блоков дискового пространства для хранения записей, кратно 1024

FILL FACTOR

 Определяет процент заполнения блока дискового пространства при хранении индексов, по умолчанию 95%

LEVEL

 Задает формат временной таблицы в памяти: 

  •   3 — совместим с Paradox 3.5 и ниже; 

  •  4 — Paradox 4.0; 

  •  5 — Paradox 5.0; 

  •  7 - Paradox для WIN32

STRICTINTEGRTY

Определяет возможность использования приложениями на базе Paradox 4.0 более поздних таблиц со ссылочной целостностью. При значении True использование разрешается, но возникает риск нарушения целостности данных

DBASE

VERSION

Нередактируемая информация о версии драйвера

TYPE

Тип СУБД. Для dBASE имеет значение FILE. Только для чтения

LANGDRIVER

Определяет драйвер языковой поддержки (используйте драйвер dBASE RUS ср866)

LEVEL

Задает формат таблиц. Значение соответствует номеру  версии СУБД

MDX BLOCK SIZE

Размер блоков для файлов с расширением mdx, кратно 51 2

MEMO FILE BLOCK SIZE

Размер блоков для файлов с данными типа Memo (pacширение dbt), кратно 512

FOXPRO

VERSION

 Нередактируемая информация о версии драйвера

TYPE

Тип СУБД. Для FoxPro имеет значение FILE. Только для  чтения

LANGDRIVER

Определяет драйвер языковой поддержки

LEVEL

Имеет значение 25

Примечание 

Драйвер текстовых файлов ASCIIDRV имеет параметры стандартного драйвера.

Назначение параметров драйверов SQL Links для серверов SQL представлено в табл. 16.3. Сначала приведены параметры, которые встречаются в двух и более драйверах, затем уникальные для каждого драйвера параметры. Драйверы для серверов InterBase и Sybase не представлены, т. к. содержат только общие для двух серверов параметры.

Таблица 16.3. Параметры драйверов ВОЕ для серверов SQL

Параметр

Назначение

Общие параметры (встречаются как минимум у двух драйверов)

VERSION

Нередактируемая информация о версии драйвера

TYPE

Тип СУБД. Только для чтения

DLL

Название библиотеки динамического связывания SQL Links для 16-разрядного драйвера. Только для чтения

DLL32

Название библиотеки динамического связывания SQL Links для 32-разрядного драйвера. Только для чтения

DRIVER FLAGS

Используется только при необходимости применения старых версий драйвера, где не поддерживается уровень изоляции транзакций Read Committed. Для этого необходимо установить значение 512

TRACE MODE

Содержит битовую маску, которая определяет тип выдаваемой отладочной информации

BATCH COUNT

Задает число записей, модифицируемых в одном пакете при фиксации транзакций

BLOB SIZE

Размер кэша для данных типа BLOB. Диапазон от 32К до 1000К

BLOBS TO CACHE

Задает число кэшируемых записей с данными BLOB. Диапазон от 64 до 65 536

ENABLE BCD

Определяет способ представления вещественных чисел. При значении True такие числа преобразуются в формат BCD (Binary Coded Decimals — десятичные с двоичным кодированием), который позволяет округлять погрешности высших разрядов дробной части числа. Изменение параметра для псевдонима работает, только если параметр драйвера на странице Configuration не пустой

ENABLE SCHEMA CACHE

Определяет режим кэширования структуры данных. При значении True структура таблиц БД кэшируется локально в каталоге, задаваемом параметром SCHEMA CACHE DIR. Рекомендуется использовать только для баз данных с постоянной структурой

LANGDRIVER

Определяет драйвер языковой поддержки

MAX ROWS

Ограничивает максимальное число записей, которое может быть передано клиенту в ответ на запрос. Значение по умолчанию  (ограничений нет)

OPEN MODE

Режим работы с записями БД: 

  •  READ/WRITE — полный доступ; 

  •  READ ONLY — только чтение

SCHEMA CACHE DIR

Каталог для локального кэширования структуры данных (см. параметр ENABLE SCHEMA CACHE)

SCHEMA CACHE SIZE

Задает число таблиц, структура данных которых может кэшироваться

SCHEMA CACHE TIME

Задает время хранения кэшируемой структуры данных: 

  •  -1 — время не ограничено;

  •   0 — данные не кэшируются;

  •   1 — 21 47483647 — секунды

SERVER NAME

Указывает путь к таблицам БД (это может быть локальный маршрут или маршрут с указанием удаленного сервера БД)

SQLPASSTHRU MODE

Задает способ использования соединения с сервером прямыми запросами SQL и запросами, управляемыми пользователем.

SHARED AUTOCOMMIT— соединение используется совместно и прямые запросы фиксируются автоматически.

SHARED NO AUTOCOMMIT— соединение используется совместно и прямые запросы фиксируются сервером самостоятельно.

NOT SHARED — совместное использование запрещено

 

SQLQRYMODE

Задает режим управления запросами.

NULL — сначала запрос передается серверу, если тот не может обработать его, запрос выполняется локально.

SERVER — запрос передается серверу.

 LOCAL — запрос выполняется локально

VENDOR INIT

Название файла динамической библиотеки поставщика

CONNECT TIMEOUT 

Определяет временной интервал, после которого клиент попытается восстановить прерванную связь с сервером

TIMEOUT

Задает время ожидания ответа сервера на запрос

BLOB EDIT LOGGING 

Управляет механизмом сохранения всех изменений для полей типа BLOB. При значении True изменения сохраняются

DATABASE NAME 

Имя базы данных

MAX QUERY TIME

Задает максимальное время ожидания ответа на запрос

USER NAME

Имя пользователя, которое используется сервером при подключении

Microsoft SQL Server (MSSSQL)

MAX DBPROCESSES 

Максимальное число процессов, одновременно работающих в данном соединении

APPLICATION NAME 

Имя приложения, помогающее серверу идентифицировать процессы

DATE MODE

Определяет формат даты:

  • 0 - МДГ; 

  •  1 - ДМГ;

  • 2-ГМД

HOST NAME

Содержит имя рабочей станции. Помогает серверу при идентификации процессов

NATIONAL LANG NAME 

Задает национальный язык, который используется для вывода текста в сообщениях об ошибках

TDS PACKET SIZE 

Определяет размер пакетов потоков данных

Oracle (ORACLE)

NET PROTOCOL 

Устанавливает сетевой протокол передачи данных

Informix (INFORMIX)

DATE SEPARATOR 

Задает разделитель для формата даты

Microsoft Access (MSACCIESS)

SYSTEM DATABASE

Путь к системной базе данных с информацией о правах доступа. При изменении параметра драйвер необходимо перезагрузить

DB2 (DB2)

DB2 DSN 

Задает имя соединения с БД. Это название псевдонима клиента DB2, который создается на сервере

DRIVER 

Имя драйвера DB2

ROWSET SIZE 

Определяет число записей, передаваемых одновременно

Драйверы ODBC

ODBC DRIVER 

Имя драйвера ODBC

ODBC DSN 

Имя набора данных ODBC

После настройки параметров драйвера и сохранения текущей конфигурации новый псевдоним становится доступен для любого приложения, использующего BDE.

Страница Configuration, помимо настройки установленных в BDE драйверов, позволяет редактировать параметры, используемые BDE при инициализации приложения. Эти параметры доступны при выборе узлов System, a затем INIT иерархического дерева. Назначение параметров представлено в табл. 16.4.

Таблица 16.4. Параметры инициализации приложения

Параметр

Назначение

AUTO ODBC

В значении True при каждой инициализации в BDE автоматически импортируются все установленные в системе драйверы ODBC

DATA REPOSITORY

Имя текущего словаря данных

DEFAULT DRIVER

Локальный драйвер, используемый по умолчанию в драйвере STANDARD

LANGDRIVER

Драйвер языковой поддержки. При использовании стандартных локальных драйверов это значение перекрывают те, которые определены непосредственно в конфигурациях драйверов Paradox, dBASE, FoxPro, ASCII

LOCAL SHARE

Устанавливает режим совместного использования файлов приложениями, работающих через BDE и другие программы. В значении True совместное использование разрешено

LOW MEMORY USAGE LIMIT

Максимальный объем памяти (в Кбайтах), который BDE пытается использовать в первом Мбайте оперативной памяти

MAXBUFSIZE

Максимальный размер кэша данных. Он должен быть не меньше значения параметра MINBUFSIZE и кратен 1 28

MAXFILEHANDLES

Максимальное число используемых файлов

MEMSIZE

Максимальный объем используемой BDE памяти в Мбайтах

MINBUFSIZE

Минимальный размер кэша данных. Он должен быть не больше значения параметра MAXBUFSIZE и кратен 128

MTS POOLING

Управляет режимом объединения ресурсов MTS (Microsoft Transaction Server). Обеспечивает лучшую производительность

SHAREDMEMLOCATION

Содержит адрес памяти, который пытаются использовать Менеджер памяти и Менеджер буфера. При возникновении конфликтов адрес необходимо поменять вручную. Задается только второе слово адреса

SHAREDMEMSIZE

Максимальный объем памяти, используемый Менеджером памяти и Менеджером буфера

SQLQRYMODE

См. табл. 16.2

SYSFLAGS

Не используется

VERSION

Номер внутренней версии BDE. Только для чтения

Также на странице Configuration устанавливаются параметры форматов даты, времени и чисел. Доступ к параметрам осуществляется через узлы System и Format.

2) Краткое описание программ, использующихся для создания справочных систем.

В предыдущей своей работе Создание справочной системы в Microsoft Help Workshop, я описывала, как можно создать справочную систему с использованием программы Microsoft Help Workshop, но также существует несколько других программ, с помощью которых можно также создать справочную систему. Далее я расскажу о некоторых из них, и не только разработанными Microsoft (Microsoft Help Workshop, Microsoft HTML Help), но и другими фирмами (WinHelp 2000, HelpScribble, AnetHelp Tool, Help And Manual, Mif2GO и RoboHelp). А также покажу достоинства и недостатки справочника созданного на основе языке HTML.

Общая характеристика.

Чем больше справочного материала в распоряжении пользователя, тем спокойнее он должен себя чувствовать. Но обилие материалов порождает другую проблему: как обеспечить пользователю быстрый и удобный доступ к конкретной теме, к конкретному термину и т.д. Создание электронной документации уже длительное время базируется на технологии гипертекста. Одно из важнейших его достоинств - наличие интерактивных ссылок, которые позволяют читателю перемещаться между темами почти в произвольном порядке. "Почти", потому что на самом деле возможные переходы определяются навигационной структурой документа, предложенной его создателем. Кроме того, определенные особенности в работе с документом обусловлены спецификой конкретного гипертекстового формата. В настоящее время для создания гипертекстовых документов применяются около десятка различных форматов, включая PDF (Portable Document Format), RTF (Rich Text Format), DOC (Document Word) и WinHelp (Windows Help), а также целое семейство языков гипертекстовой разметки, самыми популярными из которых можно считать HTML (Hypertext Markup Language) и XML (eXtensible Markup Language). Сюда же следует добавить и специализированный формат CHM (Compiled HTML). Однако далеко не все из существующих форматов пригодны для создания справочников. Причины разные: одни форматы не обеспечивают приемлемую компактность итогового документа, другие не обладают достаточной функциональностью и выразительностью, третьи требуют установки на компьютеры пользователей дополнительного (причем дорогостоящего) программного обеспечения.

Файл справочной системы в формате PDF.

Доступ к справочнику может быть реализован несколькими способами. Наиболее распространенный из них - явный вызов посредством соответствующей команды меню справка, но возможны также использование специальной кнопки на панели инструментов или вызов через контекстное меню значка конкретного объекта. Итак, для того чтобы формат электронного документа был пригоден для создания справочника, он (формат) должен обладать следующими свойствами:

обеспечивать приемлемую компактность итогового документа;

обладать достаточной функциональностью (в частности, поддерживать полнотекстовый поиск);

поддерживать возможность представления мультимедийной информации (графики, видео, звука);

не требовать установки на компьютеры пользователей дополнительного программного обеспечения;

достаточно легко интегрироваться с программным кодом создаваемого приложения.

Для приложений, разрабатываемых под Windows, на сегодняшний день большинству их перечисленных выше требований отвечают три формата: WinHelp, HTML, HTML Help (CHM).

За время, прошедшее с момента появления Help Workshop (а затем - HTML Help Workshop), сторонними разработчиками было предложено немало инструментов предназначенных для создания справочников. Однако все они для генерации выходных файлов (.hlp и .chm) используют движки от Help Workshop и HTML Help Workshop. В одних продуктах задействованы только компиляторы соответствующих форматов, в других разработчику справочника предоставлялся полный доступ к интерфейсу Help Workshop и HTML Help Workshop.

Таким образом, когда встает вопрос о выборе наиболее подходящего инструмента, имеет смысл принимать во внимание следующие факторы:

Какие выходные форматы справочников он поддерживает;

Насколько полно он использует те возможности, которые предоставляет формат справочника;

Насколько удобны средства управления параметрами проекта;

Имеются ли в составе инструмента средства тестирования гипертекстовых ссылок;

Позволяет ли инструмент работать с исходными форматами данных (RTF - для WinHelp и HTML - для HTML Help);

Насколко удобно реализовано взаимодействие с дополнительными инструментами, необходимыми для подготовки мультимедийных материалов;

Какова степень (или возможность) интеграции со средой разработки приложения, для которой создается справочник.

При создании справочников на русском языке существенным фактором является также то, насколько корректно инструмент работает с кириллицей (хотя сами форматы WinHelp и HTML Help никаких ограничений в этом отношении не накладывают.)

Microsoft Help Workshop

Справочные системы в формате WinHelp появились практически одновременно с созданием первых приложений для Windows 3.*, получив с тех пор широкое распространение. Немалую роль в этом сыграло наличие весьма удобного и совершенно бесплатного инструмента для разработки справочников в формате HLP - Microsoft Help Workshop.

Основные особенности формата WinHelp:

Формат WinHelp позволяет готовить исходный текстовый материал для справочника в любом текстовым редакторе, что, в свою очередь, позволяет привлекать к работе специалистов в соответствующей предметной области без дополнительной подготовки.

Справочник в формате WinHelp существенно (в несколько раз) компактнее аналогичного по объему документа в формате DOC и компактнее исходного файла в формате RTF.

Специальная программа просмотра HLP-файлов (WinHelp) входит в состав Windows, не требует установки и при необходимости может быть просто скопирована на компьютер пользователя (файл WINHLP32.EXE имеет небольшой размер - всего около 300 Кбайт).

Формат WinHelp обладает поистине широчайшей функциональностью, в том числе: возможностью иерархической организации документа в сочетании с удобными средствами навигации; поддержкой графики, видео и звука; возможностью полнотекстового поиска по ключевым словам и тематического поиска по разделам, возможностью создания индексной базы данных и многим другим.

В настоящее время операционные системы семейства Windows поддерживают три версии формата WinHelp: WinHelp 3 (16-разрядная версия для Windous 3.*), WinHelp 4 (32-разрядная версия для Windous 9*) и WinHelp 2000 (модифицированная 32-разрядная версия от компании eHelp).

Help Workshop используется исключительно на создании справочников в формате WinHelp. Причем последняя версия продукта (Help Workshop 4.0) поставляется только с компилятором HCRTF (файл HCRTF.EXE), который обеспечивает создание справочника в формате WinHelp 4. (Для созданиясправочника в формате WinHelp 3 требуется компилятор HCP.EXE)

С точки зрения файловой системы справочник в формате WinHelp представляет собой файл специального формата с расширением .hlp. Такой файл создается путем компиляции предварительно подготовленного и специальным образом размеченного текстового файла в формате RTF. Компиляцию выполняют с помощью соответствующих инструментальных средств, в частности, с помощью программы Help Workshop, входящей в состав пакета Visual Studio и доступный (в свободном доступе для скачивания) на сайте Microsoft. Если для работы со справочником предусмотрено окно навигации с вкладкой Содержание, то на компьютер пользователя дополнительно должен быть перенесен одноименный файл с расширением .cnt (Help Contents File), хранящий описание структуры (оглавление) справочника.

При первом обращении к справочнику в той же папке генерируется одноименный файл конфигурации с расширение .gid (по умолчанию для него установлен атрибут Скрытый).

Если для работы со справочником предусмотрена вкладка поиск, то при первом обращении пользователя к функции полнотекстового поиска будет сгенерирован файл словарной базы справочника с расширением .fts (аббревиатура от Full-Text Search). Сам файл проекта имеет расширение .hpj (Help Project File).

Следует отметить, что пакет Help Workshop снабжен весьма подробной справкой, которая содержит сведения не только о самом инструменте, но также описание технологии создания справочника в формате WinHelp, справочник по макросам WinHelp и другую полезную информацию.

WinHelp 2000

Формат WinHelp 2000 был разработан не компанией Microsoft, а создателем пакета RoboHelp, компанией eHelp Corporation. По организации интерфейса и функциональным возможностям формат WinHelp 2000 близок к Microsoft HLP Help. Основное визуальное отличие справочника в формате WinHelp 2000 от предшествующих форматов состоит в том, что панель навигации справочника реализована в виде фрейма, входящего в состав единого окна справочника. Благодаря этому пользователи получили возможность видеть одновременно и средства навигации в справочнике, и собственно справочную информацию.

Помимо указанной выше особенности, формат WinHelp 2000 поддерживает некоторые дополнительные функциональные возможности:

В панели инструментов окна справочника появилась интеллектуальная кнопка "Смотри также". Эта кнопка обеспечивает доступ к связанным темам следующим образом: если выбранная пользователем тема входит в группу тем, связанных с некоторым ключевым словом, то щелчок на кнопке открывает список всех относящихся к этому ключевому слову тем.

WinHelp 2000 позволяет создавать на страницах справочника ссылки на локальные HTML-файлы, а также на файлы, размещенные в Интернете или Интранете. Когда пользователь щелкает на такой ссылке, вызываемая страница отображается в окне справочника.

WinHelp 2000 позволяет присоединять к страницам справочника графический фон с водяными знаками. Это позволяет создать для справочника в целом либо для отдельных его разделов определенное стилевое оформление и сделать тем самым его узнаваемым для пользователей.

При всех перечисленных достоинствах у формата WinHelp 200 есть один (по крайней мере) недостаток: пока он не является стандартным для операционных систем семейства Windows. Чтобы реализовать присущие этому формату возможности, справочная система должна устанавливаться на компьютеры пользователей вместе с дополнительными динамическими библиотеками (необходимые DLL-файлы помещаются в папку Windows/System). Если необходимая библиотека на компьютере пользователя отсутствует, при попытке открыть файл справки на экран будет выведено соответствующее сообщение. После которого файл справки буде открыт в формате WinHelp 4.

Справочник на языке HTML.

Технология создания такого справочника практически не отличается от технологии создания веб-сайта и предполагает наличие у разработчика соответствующих знаний и навыков, а также знакомство с инструментами веб-дизайна.

Достоинства:

Независимость от платформы, на которой работают потенциальные пользователи.

Возможность использовать при создании справочника все средства, которые поддерживаются языками HTML 4 и Dynamic HTML, в том числе:

интерактивность, основанная на включении в страницы справочника разнообразных элементов управления и связанных с ними сценариев;

стиливое оформление страниц справочника на основе технологии CSS (Cascading Style Sheets);

наполнение страниц справочника различными мультимедийными элементами (анимацией, Flash-роликами, видео, звуковым рядом);

удобная интеграция с удаленной (сетевой) службой технической поддержки от компании-производителя программного обеспечения.

Многие программисты владеют инструментами веб-дизайна значительно лучше, чем менее популярными специализированными средствами создания справочных систем. То есть создание HTML-справочника избавляет многих авторов от необходимости освоения новых инструментов и технологий.

Недостатки:

Для просмотра HTML-справочников требуется дополнительное программное обеспечение - Интернет-браузер. Что может доставить многим пользователям определенные неудобства:

пользователь совсем не обязательно должен иметь на своем компьютере установленный браузер, и уж тем более он не обязан уметь работать с ним;

практически все современные браузеры предоставляют пользователям широкие полномочия по управлению их работой (например, многие пользователи отключают в браузерах загрузку графики, звука, запрещают использование сценариев, Java-апплетов, таблиц CSS и т.д., причем вряд ли такой пользователь захочет изменят настройки, чтобы просмотреть справочник, и что он тогда сможет увидеть или услышать?);

совсем не обязательно разработчик справочника является хорошим веб-дизайнером, способным унифицировать верстку справочника для всех популярных браузеров, а ведь каждый из них имеет определенные особенности в интерпретации HTML-документов - в результате часть пользователей может увидеть на экране совсем не то, что предполагал автор.

Любой HTML-справочник - это совокупность достаточно большого числа самостоятельных и притом совершенно разнотипных файлов. Это не только затрудняет распространение справочника среди пользователей, но и снижает его надежность: стоит только потерять или испортить одну папку (или даже один файл), и часть справочной информации окажется недоступной пользователям. Отследить же своевременно такую потерю бывает очень сложно.

Для HTML-справочника невозможен полнотекстовый поиск штатными средствами браузера, что существенно снижает эффективность применения такого справочника.

Microsoft HTML Help.

Формат HTML Help обеспечивает объединение "в одном флаконе" основных достоинств рассмотренных выше форматов. С одной стороны, он поддерживается операционной системой Windows, может считаться стандартным и практически не требует дополнительного изучения со стороны пользователя. С другой стороны он позволяет применять при создании справочника практически все возможности языка HTML.

Но есть один недостаток: средство просмотра справочника в формате HTML Help базируется на компонентах Иетернет-браузера Internet Explorer версии 4 и выше (точнее требует файла Shdocvw.dll). Отсюда отсутствие на компьютере пользователя указанного программного средства делает работу со справочником невозможной. Кроме того, все пользовательские настройки браузера наследуются и программой HTML Help Viewer.

И все-таки формат HTML Help можно считать на сегодняшний день наиболее распространенным форматом справочников для вновь создаваемых Windows-приложений. Для операционных систем Windows 2000 и выше этот формат объявлен компанией Microsoft стандартом электронный справочных систем 32-разрядных Windows-приложений. Исходным материалом, "сырьем" для создания справочника в формате HTML Help служат HTML-файлы. При этом каждый раздел справочника генерируется на основе отдельного HTML-файла. В вою очередь, исходный HTML-файл может содержать любые объекты (сценарии, элементы ActiveX, мультимедийные элементы), поддерживаемые HTML. Из графических объектов HTML Help поддерживает JPEG и GIF (В том числе прозрачный и анимированный форматы GIF). Из мультимедийных форматов в HTML Help разрешено использование форматов AVI, MOV, AU, WAV, MID, RMI.

Гиперссылки, имеющиеся в исходном HTML-файле, могут указывать не только на аналогичные файлы-разделы, но и на внешние ресурсы (например, на веб-страницы в Интернете, адреса электронной почты и др.). При этом формат HTML Help позволяет создавать для вызываемого раздела дополнительное (вторичное) окно либо с теми же возможностями, что и основное окно справочника, либо с ограниченными возможностями.

После компиляции исходных HTML-файлов справочник в формате HTML Help представляет собой единый файл с расширением CHM (от Compiled HTML). Размер такого файла оказывается существенно меньше суммарного объема исходных HTML-файлов и связанных с ними внешних файлов (графических, таблиц CSS и т.д.). Попутно он поможет создать исходный файл оглавления (.hhc), файл индекса ключевых слов справочника (.hhk) и базу данных для полнотекстового поиска.

Важным отличием пакета HHW от его предшественника является то, что он позволяет декомпилировать готовый продукт (CHM-файл) и получить исходные файлы в первозданном виде (текстовые файлы, HTML, мультимедиа и т.д.)

Также, пакет HHW способен автоматически конвертировать справочник из формата WinHelp в формат HTML Help, сохраняя при этом в работоспособном состоянии оглавление, указатель ключевых слов и базу полнотекстового поиска.

HHW, как и Help Workshop, вполне корректно работает с кириллицей. Правда, возможны некоторые проблемы при конвертировании в формат HTML Help русскоязычного справочника, созданного ранее в формате WinHelp.

HelpScribble.

Программа HelpScribble создана компанией JGSoft. Оценочную версию программы можно загрузить с веб-сайта компании (www.helpscribble.com). Она имеет некоторые функциональные ограничения, в частности, в каждый раздел справочника помещается уведомление о том, что он создан с использованием trial-версии программы.

Программа HelpScribble в определенной степени поддерживает технологию единственного источника: она позволяет получать справочную систему в форматах WinHelp и HTML Help, а также выполнять экспорт содержимого справочника в RTF- и/или HTML-файлы. Тем не менее в основном программа HelpScribble ориентирована на подготовку справочника WinHelp.

Для генерации HLP- и CHM-файлов HelpScribble использует соответствующие компиляторы от Microsoft, которые разработчик справочника должен предварительно установить на свой компьютер самостоятельно. Поскольку при попытке первой компиляции справочника HelpScribble начинает сканировать все жесткие диски компьютера в поисках компилятора. Поэтому надо сначала указать пути до компилятора: (Options/Compilator).

Достоинством HelpScribble можно считать наличие развитых средств редактирования текста в формате RTF. При этом авторское решение по визуальному представлению редактируемого текста достаточно оригинально: элементы разметки, относящиеся к основному RTF-формату, остаются скрытыми, а элементы разметки, относящиеся к подмножеству Help RTF, отображаются на экране. Вся информация о создаваемом справочнике хранится в файле проекта HelpScribble (.hsc).

AnetHelp Tool.

Инструмент AnetHelp Tool создан российской компанией Anet Soft. Демонстрационная версия продукта (которая отличается от рабочей только тем, что при запуске напоминает о необходимости зарегистрироваться) доступна на сайте компании (www.anetsoft.com).

Программа AnetHelp Tool (AHT), как и HelpScribble, поддерживает технологию единого источника: она позволяет получать электронную справку в форматах WinHelp, HTML Help и Java Help, а также выполнять экспорт содержимого справочника в RTF-, HTML- и/или XML-файлы. При этом уровень поддержки формата HTML Help здесь существенно выше, чем в HelpScribble.

Для генерации HLP-и CHM-файлов AHT использует компиляторы от Microsoft. Причем в дистрибутив входят не только компиляторы, но и полностью приложения Help Workshop и HTML Help Workshop (в некоторых случаях разработчик справочника получает доступ к их интерфейсу из среды АНТ).

Следует отметить удобные средства экспорта справочника в формат RTF, которые позволяют выбрать, экспортировать весь справочник в один файл или создать для каждого раздела отдельный файл. Операция экспорта в АНТ имеет одну существенную особенность: при генерации исходного файла АНТ убирает из RTF-кода элементы разметки, относящиеся к подмножеству Help RTF. Благодаря этому вы получаете документ, пригодный для самостоятельного использования (например, для вывода на печать). Однако при этом он не может более служить сырьем для генерации справочника.

АНТ позволяет также экспортировать разделы справочника в HTML-файлы. АНТ поддерживает механизм шаблонов, которые позволяет быстро создавать однотипные разделы справочника. В комплект поставки АНТ входит набор из десятка шаблонов, предназначенных для описания приложения на уровне программных компонентов.

Начиная работать с AnetHelp Tool, необходимо сразу создать резервную копию файла проекта (.mdb). Дело в том, что вносимые в проект изменения сразу переносятся в файл. Если отмена выполненного действия окажется невозможной (например, в случае создания неперемещаемой области), то восстановить предыдущее состояние проекта не удастся. Именно по этой причине AnetHelp Tool не запрашивает о необходимости сохранения проекта перед выходом из приложения.

Help And Manual.

Оценочная версия программы находится на сайте разработчика, компании EC Software, по адресу www.helpandmanual.com. Оценочная версия работоспособна в течении 14 дней. Имеется ещё одно ограничение: при генерации справочника в формате HTML Help некоторые гипертекстовые ссылки заменяются ссылками на сайт разработчика.

С помощью этого пакета можно получить справочник в трех форматах: WinHelp, HTML Help и WebHelp (разработчики HelpAnd Manual именуют его Brouser Based Help). Кроме того, возможен экспорт справочника в PDF-файл и в файл формата текстового редактора Word (.doc или .rtf). И наконец, пакет Help And Manual способен создавать электронные книги (electronic book). Такая книга внешне очень похожа на справочник в формате HTML Help, но представляет собой самостоятельное Windows-приложение (EXE-файл). Формат электронной книги имеет один существенный недостаток, - он не очень компактен (но вполне пригоден для распространения дополнительных обучающих материалов на компакт-дисках).

Пакет HelpAnd Manual использует для генерации справочников в форматах WinHelp и HTML Help компиляторы от Microsoft, однако прямого доступа к интерфейсу Help Workshop и HTML Help Workshop разработчик справочника не имеет.

Следует отметить, что в дистрибутив входит программа Help Workshop, а вот HTML Help Workshop предполагается получить на сайте компании EC Software. Если же этот инструмент уже установлен на компьютере, следует указать его расположение.

Пакет HelpAnd Manual способен декомпилировать справочные файлы (.hlp и .chm) и создать на их основе новый проект.

При создании русскоязычного справочника в формате WinHelp никаких дополнительных настроек выполнять не требуется. Перед генерацией CHM-файла необходимо указать используемый язык. Также, на сайте компании можно получить русский словарь, подключаемый к Help And Manual для проверки правописания текста разделов.

Mif2GO

Mif2GO- это не самостоятельное приложение, а подключаемый модуль, который может работать только совместно с пакетом Adobe FrameMaker.

FrameMaker- это программа для верстки, ориентированная на создание документов большого объема, имеющих сложную структуру. В ней реализованы средства для автоматической нумерации таблиц и иллюстраций, построения оглавления и указателей. Кроме того, она поддерживает перекрестные ссылки и гипертекстовые связи, позволяет привязывать графику к абзацам текста и многое другое. Можно разделить документ на главы, собрать главы в книгу, и FrameMaker автоматически обновит номера страниц и ссылки независимо от того, каким образом переставлены страницы, главы или разделы.

Для хранения документов FrameMaker использует собственный формат файлов (.fm и .book), однако в программе имеются средства, позволяющие экспортировать файлы в форматы PDF и HTML. Необходимо также отметить, сто программа FrameMaker изначально создавалась для подготовки технических описаний систем вооружения (в частности, авиационной техники), а также верстки текстов, требующих частого обновления (каковой является документация к программному обеспечению).

Пакет Mif2GO разработан компанией Omni Systems, и для отдельных категорий пользователей(не корпоративных технических писателей, студентов изучающих FrameMaker, и некоторых других) распространяется бесплатно. На сайте компании (www.omsys.com) доступна также демо-версия пакета. Она является полнофункциональной, за исключением того, что при генерации справочника отдельные фрагменты текста заменяются случайным образом строками из стихотворения Льюиса Кэролла "Jabberwocky".

Mif2GO позволяет создавать справочники в пяти форматах: WinHelp, HTML Help, OmniHelp (собственный кроссплатформенный формат справочной системы компании Omni Systems, аналогичный формату WebHelp), Oracle Help и JavaHelp. Для генерации выходных файлов в перечисленных форматах требуется наличие на компьютере соответствующих компиляторов, которые не входят в дистрибутив Mif2GO и должны устанавливаться отдельно. Собственно говоря, для подключения Mif2GO к FrameMaker установка как таковая не требуется. Достаточно скопировать файлы из дистрибутива в папки, указанные в инструкции по установке.

В качестве исходных данных для создания справочников WinHelp и HTML Help программа Mif2GO использует файлы в форматах RTF и HTML. Однако прежде, чем ни будут получены из собственных файлов FrameMaker (.fm и .book), должен пройти многоэтапный процесс преобразований.

RoboHelp.

RoboHelp - это целое семейство продуктов, выпускаемых компанией eHelp Corporation (www.ehelp.com). Возможны три варианта комплектации.

1. Enterprise. Этот вариант включает единственный продукт RoboHelp Enterprise, который позволяет создавать справочную систему в одноименном формате. Его существенное отличие от всех форматов, рассмотренных выше, состоит в том, что он предполагает наличие серверной и клиентской части справочной системы. Серверное программное обеспечение, основанное на использовании сервера IIS (Internet Information Server) от Microsoft, позволяет отслеживать действия пользователя, работающего со справочной системой. Благодаря этому разработчик может получить весьма ценные статистические данные об интересах пользователей. Формат клиентской части справки аналогичен формату WebHelp.

2. Professional. Этот вариант включает набор инструментов под общим наименованием RoboHelp Office. В набор входят:

- RoboHelp HTML - приложение, предназначенное для создания справочных систем на основе языка HTML и позволяющее генерировать справочники в форматах WebHelp, Microsoft HTML Help, JavaHelp и Oracle Help for Java;

RoboHelp Classic - приложение, специализирующееся на подготовке справочников в формате WinHelp, в том числе в модифицированном формате WinHelp 2000;

RoboHelp Tools - дополнительные сервисные приложения, призванные облегчить работу автора справочника (в том числе Software Video Camera - приложение, которое позволяет "снять" звуковой видеофильм о работе с приложением).

3. Standart. Это облегченный вариант RoboHelp Office, который включает три инструмента:

RoboHelp for Microsoft HTML Help - приложение для разработки справочных систем в формате HTML Help;

RoboHelp for WinHelp - приложение для разработки справочных систем в формате WinHelp;

RoboHelp for Word - приложение, которое позволяет создать справочники во всех стандартных форматах (WebHelp, Microsoft HTML Help, JavaHelp), но с одним ограничением: в качестве редактора разделов (в том числе HTML-файлов) с ним может использоваться только Microsoft Word.

Для работы с исходными форматами данных (RTF - для WinHelp и HTML - для HTML Help) RoboHelp по умолчанию использует Microsoft Word, однако для создания разделов справочника он подключает собственные шаблоны, в значительной степени автоматизирующие процесс редактирования.

MS Word нельзя считать идеальным инструментом для создания файлов в форматах RTF и HTML, поскольку выходные файлы содержат избыточные теги. Но если для работы с RTF альтернативы нет, то для подготовки разделов в RoboHelp HTML модно подключать любой HTML-редактор.

При разработке с помощью приложения RoboHelp HTML возможно не корректное отображение кириллицы. Т.к. изначально в RoboHelp Office не предусмотрена поддержка русского языка. Вместе с тем, RoboHelp практически не изменяет параметры RTF-файла, созданного в Word. Поэтому при генерации справочника в формате WinHelp языковые проблемы достаточно редки. При создании справочной системы в формате HTML Help проблемы с корректным отображением кириллицы (на этапе разработки справочника) более вероятны. Эта проблема может быть решена несколькими способами, в том числе посредством подключения к RoboHelp HTML внешнего HTML-редактора.

Экзаменационный билет №27

1) 2.1. Имена таблиц и полей

Базы данных созданные в формате Paradox, Dbase, FoxPro относятся к классу файл – серверных БД.

В БД формата Paradox имя таблицы совпадает с именем файла, в котором размещаются все содержащиеся в ней данные. Поскольку 32-разрядные версии Windows разрешают длинные русскоязычные имена файлов, было бы заманчиво назвать таблицы КНИГИ, НАКЛАДНЫЕ и т.п. Я не советую вам делать этого по причине не полной поддержки кириллицы языками программирования и языками манипулирования данными. По этой же причине не следует использовать кириллицу в именах полей.

В именах полей полезно ставить префикс из одной-двух букв названия таблицы (в таблице WORKER все имена начинать с «W», в ADDRESS – с «A» и т.п.). Это исключит вероятность того, что вы случайно назовете поле одним из зарезервированных слов языков программирования, что может сделать его использование невозможным. И еще одна рекомендация: старайтесь делать имена полей по возможности лаконичными – это сократит код программы и сроки ее создания.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]