Эталонный интерфейс для произвольной таблицы БД.
Проведенный анализ нескольких разнохарактерных приложений, разработанных ранее как фирмой
DataX/FLORIN, так и некоторыми другими (среди них можно упомянуть научную информационную
систему FLORIN, прикладную медицинскую систему, бухгалтерские системы) привел нас к следующей
модели работы с отдельной таблицей и ее словарями, позволяющей в определенной мере преодолеть
ограничения алфавитно-цифрового интерфейса.
Как легко видеть, эталонный интерфейс для работы с произвольной таблицей базы данных включает
три экранные формы:
- форма ввода и модификации информации - add_form (она же
используется для просмотра записей при удалении - delete_form);
- форма формирования запроса на поиск - find_form;
- форма списка с двумя подрежимами :
а - список с отметками, в котором можно отметить одну или более
записей для проведения с ними определенной операцией - list_form;
а - список с выбором единственной - choose_form (для выбора
записей из словарей при экспорте ссылок или значений в вышестоящую
таблицу).
Для выбора начальной операции с таблицей и операций с выбранной записью (записями) из
списка используются вертикальные меню (реализуемые специальной функцией). При начале
работы с таблицей можно выбрать режим ввода новой записи, либо поиска всех записей по
введенному запросу с формированием списка найденных записей. После ввода новой записи
пользователь также получает список, хотя и состоящий из одной этой записи. Отметив одну или
несколько записей в списке вы попадаете в меню выбора операции. Среди них ввод новой записи
по образцу (введенная запись добавляется в список), модернизация или удаление отмеченных
записей.
При формировании полноэкранной формы для работы с таблицей и ее словарями поля базовой
таблицы разбиваются на видимые и невидимые (но поддерживаемые программой). К последним, как
правило, относятся уже упоминавшееся сериальное поле, импортированные из словарей (master-
tables) их сериальные поля, а также (в нашей разработке, реализуемой с помощью генератора) поля с
логнеймом внесшего последнее изменение в данную запись и временем этого изменения. Все словари
единообразно представляются на экране одним "вычисляемым" полем, которое мы традиционно
используем для "строчного" представления записи, получаемого конкатенацией наиболее важных для
пользователя полей таблицы. Импортированные ключевые поля словарей используются в программе
для определения связи между таблицами.
Одним из принципиальных моментов интерфейса является то, что строковое представление для
таблицы единственно и используется как в полях для словарных значений, так и при формирование
списков с отметками и списков для выбора.
Хотя это является явным "ограничением общности", принятое решение представляется нам весьма
разумным, ибо приучает пользователя к единообразному представлению записи, где бы она не
появилась.