C-Rover Software C-Rover Software

Главная

Новости

О программе

Справка

Лицензии

Скачать

Оставить отзыв

Контакты

Английский язык Русский язык


Руководство Пользователя

Если при работе с Менеджером Данных или его демонстрационной версией Вы столкнетесь с проблемами, недостатком функциональности или неудобством в работе - сообщите нам, пожалуйста, об этом по адресу support@c-rover.com или bvn@c-rover.com . Во-первых, мы постараемся ответить Вам без задержек. И, во-вторых, Ваши замечания и предложения будут обязательно учтены при подготовке новых версий Менеджера Данных.

Назначение

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

  • Функции для ведения базы данных
  • Работа с данными из интернета, встроенный специализированный браузер
  • Работа с табличной информацией - проверка, анализ и обработка, импорт данных из различных источников
  • Работа с Наборами Данных, создание и использование различных форм доступа к данным
  • Создание и исполнение запросов к базам данных
  • Представления данных в виде экранных форм, встроенный HTML-редактор
  • Настройка и администрирование; Разработка специализированных информационных систем или их модулей

В настоящем руководстве эти функциональные группы рассмотрены подробно.


Что такое Менеджер Данных (по существу)

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

Наиболее близкий к нему тип программных продуктов - это Базы Данных.

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

Для того, чтобы МД мог работать с Базой Данных требуется, чтобы она была реляционной и поддерживала ODBC интерфейс, то есть для нее имелся ODBC драйвер ОС Windows. Поскольку все реляционные Базы Данных являются ODBC-совместимыми, ODBC драйвера имеются для них всех, так что Менеджер Данных может быть подключен практически к любой реляционной Базе Данных.

Несмотря на то, что для работы Менеджера Данных нужна какая-нибудь внешняя База Данных, он является вполне самостоятельным продуктом. Для того, чтобы его использовать, не нужно приобретать еще и какую-нибудь Базу Данных. Дело в том, что Базы Данных - настолько широко распостраненная вещь, что они есть везде (во всяком случае, это относится к миру Windows). В частности, с давних пор в состав Windows штатно входит база данных MS Jet, которая (при наличии соответствующих ODBC драйверов) поддерживает работу Базы Данных DBase (с файлами формата DBF), работу с таблицами Excel, файлами базы MS Access, а также текстовыми файлами. Даже если ODBC драйвера в системе штатно отсутствуют (как это, например, имеет место в 64-разрядной версии Windows 8), то они легко могут быть загружены с сайта Microsoft вместе со свободно распостраняемым пакетом Microsoft Access Database Engine 2010 Redistributable.

Менеджер Данных настроен на поддержку MS Jet по умолчанию, так что с самого начала, сразу же после его установки возможна полнофункциональная работа с ним, поскольку он уже подключен к локальной Базе Данных Вашего компьютера.

Но если База Данных уже есть, то зачем нужен еще и Менеджер Данных? Просто он "умеет" делать то, чего Базы Данных сами по себе делать "не умеют".

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

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

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

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

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

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

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

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

Перейти на начало страницы

Сферы применения

Прежде всего, поскольку Менеджер Данных может функционировать, непосредственно используя штатную локальную базу данных Windows (MS Jet) - он может применяться пользователями, не предъявляющими особенных требований к движку базы данных, для создания и последующего развития локальных приложений для конкретной проблемной области. То есть Менеджер Данных - это готовая адаптируемая целевая База Данных.

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

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

Перейти на начало страницы

Табличный ввод и редактирование данных


My Datasets

По нажатию на на кнопку My Datasets "Мои Наборы Данных" выбирается и может быть открыт один из наборов данных (таблиц) пользователя.

Формы показа табличных наборов данных

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


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

Для таблицы (набора данных) может быть создана одна или несколько форм показа. Формы показа представляются в системе файлами с расширением VME.

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

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

Перейти на начало страницы

Окно редактирования Набора Данных

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

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


В верхней части окна редактирования появились панель управления сортировкой записей и панель управления фильтрацией записей.

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

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

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

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

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

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

  • Для Набора Данных определяется одна или несколько Форм Запросов для выборки данных из таблицы и получения итоговых сведений по ним. Кнопка "Запросы" позволяет выбрать и открыть в отдельном окне такую форму запроса.

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

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

В левом верхнем углу окна редактирования, выше панелей управления фильтрацией и сортировкой находятся 3 кнопки. О крайней левой кнопке "Сохранить текущие установки диалогового окна" - мы уже говорили. Рядом с ней находится кнопка "Изменить свойства Набора Данных". Эта кнопка открывает диалоговое окно для управления компонентами Набора Данных - формами показа, формами запросов, панелями и дополнительными таблицами. С помощью этого окна можно выбрать требуемую компоненту и вызвать соответствующий редактор для изменения её свойств. Здесь же можно создавать новые компоненты Набора Данных.

Кнопка с изображением карандаша "Изменить структуру таблицы" предназначена для изменения структуры основной таблицы Набора Данных - добавления, и удаления столбцов, изменения их наименования или типа данных, хранящихся в этом столбце.

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

Слева от основной таблицы находятся кнопки управления редактированием -

  • "Удалить запись",
  • "Дублировать запись"
  • "Добавить запись".

Эти кнопки выполняют соответствующие операции редактирования над строками таблицы.

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

Перейти на начало страницы

Управление сортировкой строк

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

Выбрать форму ввода

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

Строки панели управления сортировкой содержат названия столбцов, по которым может производиться сортировка записей (возможно многоуровневая). Активные столбцы (столбцы, по которым сортировка включена) отмечаются знаком "V" слева и подсвечиваются желтым фоном. Клик левой кнопкой мыши на строке панели управления меняет состояние строки на противоположное и, таким образом, включает или выключает сортировку по соответствующему столбцу.

Верхняя строка панели управления "Отключить сортировку" служит для сброса признаков активности всех строк панели управления сортировкой и выключения сортировки.

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

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

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

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

Следует отметить, то выборочная сортировака не работает для больших таблиц, просмотр которых выполняется "на лету".

Перейти на начало страницы

Управление фильтрацией записей

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

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

Выбрать форму ввода

Строки панели управления фильтрацией записей содержат названия фильтров и условия выборки записей. Активные фильтры (фильтры, по которым отбор записей задействован) отмечаются знаком "V" слева и подсвечиваются желтым фоном. Клик левой кнопкой мыши на строке панели управления фильтрацией меняет состояние строки на противоположное и, таким образом, включает или выключает соответствующий фильтр. Отключить все фильтры можно, кликнув мышью на верхнюю строку панели управления фильтрацией.

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

Условие, задаваемое фильтром, формулируется посредство сравнения значения некоторого поля записи с некоторым эталонным значением - параметром условия (для условия "от-до" задаются два параметра - нижняя и верхняя граница сравнения).

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

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

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

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

  • "=" - равно;
  • "><" - не равно;
  • "<" - меньше;
  • ">" - больше;
  • "<=" - меньше или равно;
  • ">=" - больше или равно;
  • "от-до" - сравнение с диапазоном значений;
  • "образец" - сравнение с образцом;

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

Операция сравнения поля с образцом заключается в определении соответствия текущего значения этого поля указанному образцу. Если указать в качестве образца обычную текстовую строку, то операция сравнения по образцу будет просто сравнивать начальное значения поля на совпадение с указанным значением. Например, если поле "Фамилия" сравнивать по образцу "А", то будут отбираться все фамилии, начинающиеся на букву "А".

Если в любом месте текстовой строки в образце указать символ "%" ("любая последовательность символов"), то с данныму образцу будут соответсвовать все строки, начало которых совпадает с символами образца слева от знака "%", а конец - с символами образца справа от него. Например, образцу "%ов" будут соответствовать все фамилии, заканчивающиеся на "ов". А под образец "А%ов" подойдут все фамилии, начинающиеся на букву "А" и заканчивающиеся на "ов".

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

Знак "_" в образце соответствует любому одиночному символу. Таким образом, под образец "перв__" будут подходить как значение "первый", так и значение "первая".

Перейти на начало страницы

Меню управления фильтрацией

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

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


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


В режиме редактирования при селектировании пункта меню в нижней части диалогового окна показывается таблица фильтров, соответствующих данному пункту меню. По умолчанию в только что созданном меню корневому пункту "БЕЗ ФИЛЬТРАЦИИ" соответствует пустой список фильтров (это означает, что при выборе этого пункта меню фильтрация не будет производиться и, более того, никакой из определенных в форме показа фильтров в окне управленя фильтрацией доступен не будет). Второму, вложенному пункту меню "По умолчанию" соответствует набор фильтров, который был задан в Форме показа при ее создании (редактировании). Именно этот пункт меню и представлен выше.

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

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


Заголовок таблицы будет окрашен в красный цвет, а в списке фильтров будут показаны все фильтры, определенные в данной форме показа. При этом фильтры, доступные (видимые) в данном пункте меню управления фильтрацией, будут отмечены желтым. В нашем случае желтым отмечены оба фильтра, так как оба они доступны в данном пункту меню. То что в этом пункте один из фильтров окажется активным, а другой нет - в данном случае не имеет значения.

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

Кажется немножко запутанным, но после некоторой практики все становится понятно.

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

Добавление новых пунктов меню производится с помощью кнопки "Добавить" справа от дерева меню. Нажатие этой кнопки приводит к вставке нового пункта меню в уровень НИЖЕ СЕЛЕКТИРОВАННОГО. Поэтому, если мы хотим добавить еще один пункт меню на 1-й уровень (рядом с пунктом "По умолчанию"), то нужно селектировать корневой пункт меню (пункт "БЕЗ ФИЛЬТРАЦИИ") и нажать кнопку "Добавить". Кнопки со стрелками (справа) позволяют менять последовательность пунктов меню в пределах одного уровня.

Важной возможностью при редактировании пунктов меню является возможность изменения эталонных значений в фильтрах. Эти значения редактируются непосредственно в таблице фильтров и, будучи изменены, отмечаются красным цветом. О таких значения говорят, что это ЗАМЕЩАЮЩИЕ значения.


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

Перейти на начало страницы

Редактирование записей

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

Выбрать форму ввода

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

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

При использовании справочника значение из него выбирается подсвечиванием нужной строки и нажатия кнопки "Выбрать". Можно также выбрать нужное значение двойным щелчком мыши на соответстующей строке справочника. Если значение изменять не нужно, то из справочника можно выйти, нажав кнопку "Отказаться", либо нажав клавишу "Esc" на клавиатуре компьютера.

Некоторые поля редактируемой таблицы могут быть снабжены справочниками-подсказками, то есть справочниками, вызываемыми по требованию пользователя. Для вызова такого справочника выберете поле для редактирования двойным щелчком мыши и нажмите клавишу "F1".

Клавиша "F1" может также использоваться для удаления значения поля - сброса его в состояние NULL (специальное значение, означающее, что значение поля не задано). Она вызывает диалоговое окно, позволяющее это сбросить значение поля.

Для перехода к редактирования следующего поля можно использовать клавише "Tab" (Табуляция), для перехода на предыдущее поля - Shift/Tab (удерживая нажатой клавишу Shift нажмите клавишу Табуляция).

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

Перейти на начало страницы

Добавление, удаление, дублирование записей

Добавление, дублирование и удаление записей редактируемой таблицы производится посредством команд "Добавить запись", "Дублировать запись" и "Удалить запись" расположенным слева от редактируемой таблицы.

Выбрать форму ввода

Команда "Добавить запись" создает новую запись и добавляет её в конец таблицы.

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

Добавленная запись становится текущей, то есть её можно немедленно редактировать.

Команда "Дублировать запись" доступна, когда в таблице выбрана некоторая запись. Эта команда создает копию текущей (выбранной) записи и помещает её в конец редактируемой таблицы. Добавленная запись становится текущей.

Команда "Удалить запись" доступна, когда в таблице выбрана некоторая запись. Эта команда удаляет текущую запись. Текущей записью становится запись, следующая за удаленной.

Перейти на начало страницы

Редактирование справочников

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

Выбрать форму ввода

В этом режиме становится возможным изменение полей текущей записи справочника (поля "Код" и поля "Значение"), а также справа от таблицы выбора появляются кнопки "Добавить", "Дублировать" и "Удалить", которые делают возможным добавление и удаление записей.

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

Кнопка "Добавить" создает новую запись справочника, помещая его в конец таблицы. При этом, в поле ключа записывается специальный код ("***" в случае текстового поля и "999", если поле ключа числовое). Предполагается, что сразу после добавления записи в справочник будет произведено её редактирование и полю ключа будет присвоен некоторый уникальный код.

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

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

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

По завершении редактирования спрвочника Менеджер Данных производит автоматическое обновление основной таблицы, принимая во внимание новое содержимое справочника.

Перейти на начало страницы

Редактор форм показа Наборов Данных

Как вызвать редактор Форм Показа

Редактор Форм Показа наборов данных может быть вызван двумя способами. Стандартный способ вызова редактора Форм Показа использует окно изменения свойств набора данных. Вначале нужно нажать кнопку "Изменить свойства набора данных", расположенную в левом верхнем углу окна показа набора данных.

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

При нажатии на кнопку "Изменить данную форму показа" вызывается окно редактора форм показа набора данных.

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

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

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

В окне данных имеется кнопка "Изменить форму показа", с помощью которой и можно вызвать редактор форм показа .


Перейти на начало страницы

Окно редактирования формы показа. Общее описание

Окно редактора форм показа прендставлено ниже:

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

За именем описания таблицы находится окно "ПОЛЯ ТАБЛИЦЫ" - чуть ниже, в левой части экрана. Здесь высвечивается полный список полей (столбцов) целевой таблицы. Выбрав нужные поля в этом списке можно их переместить в центральное окно - список "ПОЛЯ РЕДАКТИРОВАНИЯ". Здесь задаются столбцы таблицы базы данных, которые подлежат редактированию при работе с данной формой показа. Именно эти поля, и только они будут представлены в таблице, представляемой в этой форме показа. Важен порядок, в котором эти поля перечислены - он определяет порядок расположения полей в таблице, представляемой в форме показа.

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

Справа находится окно управления сортировкой "ПОЛЯ СОРТИРОВКИ". Здесь можно указать поля, по которым пользователь сможет производить сортировку редактируемой таблицы.

Окно, занимающее правую нижнюю часть экрана, предназначено для формирования условий отбора записей для редактирования (задания фильтров). Кнопки правее надписи "УСЛОВИЯ ВЫБОРКИ (ФИЛЬТРЫ") предназначены для задания условий в отдельных фильтрах.

В правом верхнем углу окна редактирования форм показа набора данных находятся 3 переключателя:

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

    Установка признака "Только для чтения" возможна также и для отдельных полей. Для этого в списке полей редактирования для соответствующего поля установить признак Т/Ч - дважды щелкнуть левой клавишей мыши в соответствующем столбце с писка Полей Редактирования

  • Для больших таблиц - Этот переключатель управляет механизмом буферизации записей таблицы при её показе. По умолчанию этот переключатель сброшен и показ таблицы осуществляется с предварительной буферизацией данных. Установка этого переключателя отменяет буферизацию данных, ускоряя работу с большими таблицами
  • Кнопка доступа к web - Данный переключатель указывает системе, нужно ли показывать пользователю при открытии данной формы доступа кнопку вызова интернет-браузера.

В последствующих главах данного руководства элементы окна редактирования форм проказа и работа с ними описаны подробно.


Перейти на начало страницы

Выбор таблицы

В строке ниже имени названия формы ввода находится окно "Описание Таблицы:", предназначенное для выбора таблицы Базы данных, к которой относится данная форма показа данных.

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


Перейти на начало страницы

Определение полей редактирования

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

Вставка столбцов в список редактируемых полей производится путем их выборки в списке "ПОЛЯ ТАБЛИЦЫ:" и последующем их переносе в список "ПОЛЯ РЕДАКТИРОВАНИЯ:" клавишей .

Для выбора поля необходимо навести на него указатель мыши и нажать ее левую клавишу. Можно выбрать несколько полей, если одновременно удерживать нажатой клавишу Shift или Ctrl - при нажатии клавиши Shift выбирается группа смежных полей, а при нажатии клавиши Ctrl можно произвести произвольную выборку.

Порядок столбцов в редактируемой таблице определяется порядком, в котором они перечислены в списке "ПОЛЯ РЕДАКТИРОВАНИЯ:". Этот порядок может быть изменен путем перемещения полей в этом списке. Выберите поле, которое Вы хотите переместить и нажмите клавишу для перемещения поля вверх в списке или клавишу для перемещения поля ближе к концу списка выходных полей.

Можно выбрать несколько полей для перемещения, если использовать клавиши Shift или Ctrl.

Выбранное поле может быть удалено из списка редактируемых полей нажатием клавиши .

Перейти на начало страницы

Задание сортировки

При редактировании базы данных в зависимости от желания пользователя записи в редактируемой таблице могут быть упорядочены (отсортированы) по значению одного или нескольких полей (столбцов). Для указания столбцов, по которым пользователь может осуществлять сортировку используется список "ПОЛЯ СОРТИРОВКИ:".

Вставка столбцов в список полей сортировки производится путем выборки нужного поля в списке "ПОЛЯ РЕДАКТИРОВАНИЯ:" и последующем их переносе в список "ПОЛЯ СОРТИРОВКИ:" клавишей .

Для выбора поля необходимо навести на него указатель мыши и нажать ее левую клавишу. Можно выбрать несколько полей, если одновременно удерживать нажатой клавишу Shift или Ctrl - при нажатии клавиши Shift выбирается группа смежных полей, а при нажатии клавиши Ctrl можно произвести произвольную выборку.

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

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

Можно выбрать несколько полей для перемещения, если использовать клавиши Shift или Ctrl.

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

Перейти на начало страницы

Задание условий выборки записей (фильтров)

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

Фильтры создаются путем добавления новых строк в таблицу "УСЛОВИЯ ВЫБОРКИ (фильтрЫ):", расположенную внижней части экрана.

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

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

Для добавления нового фильтра в таблицу условий выборки (фильтров) необходимо выбрать в списке полей таблицы поле, на которое Вы хотите наложить условие, т.е. поле, значение которого должно сравниваться с некоторым эталонным значением. Затем следует перенести это поле в первый столбец списка фильтров ("ПОЛЕ В БАЗЕ") путём нажатия клавиши .

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

  • "=" - равно;
  • "><" - не равно;
  • "<" - меньше;
  • ">" - больше;
  • "<=" - меньше или равно;
  • ">=" - больше или равно;
  • "от-до" - сравнение с диапазоном значений;
  • "образец" - сравнение с образцом;

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

Операция сравнения с диапазоном "от-до" требует указания дополнительного аргумента, размещаемого в столбце "Доп. аргумент".

Особым образом задается аргумент операции сравнения с образцом "образец". Это должна быть строка, задающая некоторый образец. Обычно это последовательность символов, с которых должны начинаться значения сравниваемого поля. Например, если поле "Ф.И.О." будет сравниваться с образцом, в качастве которого задана большая буква А, то будут отбираться записи, в которых ФИО начинается с буквы А.

Если в любом месте текстовой строки в образце указать символ "%" ("любая последовательность символов"), то с данныму образцу будут соответсвовать все строки, начало которых совпадает с символами образца слева от знака "%", а конец - с символами образца справа от него. Например, образцу "%ов" будут соответствовать все фамилии, заканчивающиеся на "ов". А под образец "А%ов" подойдут все фамилии, начинающиеся на букву "А" и заканчивающиеся на "ов".

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

Знак "_" в образце соответствует любому одиночному символу. Таким образом, под образец "перв__" будут подходить как значение "первый", так и значение "первая".

Флажки

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

Диалог Редактирования Формы Показа

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

Установка признака "Только для чтения" возможна также и для отдельных полей. Для этого в списке полей редактирования для соответствующего поля установить признак Т/Ч - дважды щелкнуть левой клавишей мыши в соответствующем столбце с писка Полей Редактирования

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

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

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

Перейти на начало страницы

Создание и редактирование описаний таблиц

Простое редактирование структуры таблицы набора данных

При создании нового табличного набора данных всегда автоматически создается стандартная таблица простой структуры - она состоит из трех столбцов (полей) с именами СТОЛБЕЦ_1, СТОЛБЕЦ_2 и СТОЛБЕЦ_3, предназначеных для хранения текстовых данных. Как только таблица создана и появилась на экране в диалоговом окне для ее просмотра и заполнения данными (пока она представлена только заголовками столбцов, строк с данными еще нет) - можно изменить её структуру. Обычно это сразу и делается, поскольку для конкретной задачи обычно хочется иметь специфическую структуру таблицы.

Для изменения структуры таблицы нужно нажать на кнопку "Изменить структуру таблицы" (изображение карандаша) в левом верхнем углу диалогового окна. По нажатии этой кнопки открывается другое диалоговое окно - окно Редактирования Структуры Таблицы.

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

Таким образом, описание таблицы Менеджера Данных может быть представлено списком всех столбцов (полей записей) этой таблицы. Именно токой список мы и видим в окне Редактирования Структуры Таблицы.

В этом списке для каждого поля (столбца таблицы) указывается его наименование и ТИП данных, которые могут быть записаны в данное поле (столбце). Кроме этого задается также ширина поля в символах (в графе "<--->" описания таблицы). Ширина поля определяет сколько позиций (максимально) данное поле занимает при печати или показе на экране. Для числовых полей также задаётся точность представления дробной части (в графе ".хх" описания таблицы) - точность задает количество знаков, печатаемых после десятичной точки.

При выделении щелчком мыши одной или нескольких строк списка столбцов (для выделения нескольких строк списка столбцов необходимо при щелчке мыши держать нажатой клавишу Shift или Ctrl) становятся доступны команды, представленные кнопками слева и справа от сриска столбцов. Эти команды позволяют удалять и добавлять столбцы, а также изменять порядок их следования в списке.

Слева от списка столбцов находятся кнопки (снизу вверх) Добавить еще одно поле (столбец) "Добавить еще одно поле (столбец)", Добавить копию выбранных полей (столбцов) "Добавить копию выбранных полей (столбцов)", Удалить выбранные поля (столбцы) "Удалить выбранные поля (столбцы)". Эти команды добавляют или удаляют из списка описания полей (столбцов) таблицы.

Кнопки со стрелками, расположенные справа от списка столбцов, перемещают выделенные строки списка вверх или вниз меняя, тем самым, порядок появления столбцов в описываемой таблице.

Изменение наименование поля (столбца) производится его прямым редактированием в списке столбцов.

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

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

Перейти на начало страницы

Типы данных

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

В настоящий момент для таблиц Менеджера Данных могут быть определены поля следующих типов:

  • Char - текстовые поля. Текстовое поле характеризуется шириной, которая определяет максимально допустимую длину поля в символах.
  • Memo - текстовое поле большого размера.
  • Num (Numeric) - числовые поля. Числовое поле характеризуется шириной поля и точностью. Ширина поля указывает, сколькими десятичными цифрами (максимально) может представляться число в печатном документе. Точность определяет, сколько цифр знаков дробной части (после десятичной точки) должно печататься. Для целых чисел =0.
  • Data - поле даты. Это дата Григорианского календаря, задаваемая в виде ДД.ММ.ГГГГ
  • DData - Общая дата (дата общего типа). Общая дата - это дата, которая может задаваться с различной степенью точности. Обычно она задается в естественном виде, например "начало 18 века"
  • Log (Logical) - логическое значение (да-нет).
  • Picture - изображение. Имя файла графического формата, представляющий изображение.
  • File - файл. Имя файла данных любого стандартного формата.
  • Link - ссылка. URL адрес (интернет-ссылка).
  • Point - Точка на карте. Географические координаты точки на карте.

Текстовые поля типа Char и Memo

Символьная информация - самый часто используемый тип данных. Как и в большинстве баз данных в МД предусматриваются символьные поля двух типов - символьные поля с ограничением максимальной длины (Char) и символьные поля произвольной длины (Memo). Отличия между ними обусловлены двумя разными подходами к реализации этих полей в базах данных (движках).

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

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

Реализация полей типа Memo, напротив, ориентирована на хранения символьных данных относительно большого обЪёма. Жестких ограничений на размер (длину) фактических значений при этом не устанавливается, но предполагается, что данные редактируются (изменяются) сравнительно редко. Обычно в базах данных эта реализация основана на хранении значений полей типа Memo в отдельном файле, в который значение записывается однажды и не подлежит редактированию непосредственно в отведенном для него месте. При изменении значения поля новое значение просто добавляется в конец этого файла, а старое значение "забывается".

При выборе типа поля для хранения символьных данных следует руководствоваться простым правилом. Если длина символьных данных, которые предполагается хранить в этом поле, невелика и может быть ограничена некоторым максимальным значением, то следует использовать тип Char. В противном случае - используйте тип Memo

Числовые поля типа Num

Числовые данные хранятся в полях типа Num (numeric). Это могут быть как целые числа, так и числа с плавающей точкой.

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

Поля для представления дат типа Date и DDate

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

Даты типа Date представляют собой точные календарные даты а рамках Григорианского календаря, то есть любые календарные даты вида "день-месяц-год" после 1 Января 1600 года. Более ранние даты полями типа Date представлены быть не могут.

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

Для общих дат Менеджер Данных обеспечивает возможность их задания в терминах общепринятых сокращений (с помощью специального диалогового окна-подсказки). Можно, например, задать такую дату как "1я половина 18 века" или "5 тыс лет назад". Возможно также задать общую дату в виде некоторого временного интервала (диапазона точных дат), как, например, "21.07.1952 по 30.08.1952".


Представленное выше окно-подсказка используется при редактировании полей типа DDate в формах показа табличных данных. На нем представлены основные возможности задания общих дат. Во-первых, может быть указана точная дата вида день-месяц-год. При этом, не выдвигается требование принадлежности этой даты Григорианскому календарю - дата может быть любая, в том числе "до нашей эры" (например "5.01.200 до н.э."). Можно указать дату с точностью до месяца (например "октябрь 1917") или можно указать только год (например "1961"). Можно указать дату как век (например "5 век до н.э.") или даже часть века (начало-конец-середина) - например, "середина 18 века"). И, наконец, с точность до тысячи или миллиона лет - например "5 тыс. лет назад" или "10 млн. лет назад".

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

При выборе способа представления дат в таблицах Менеджера Данных прежде всего следует учитывать диапазон представляемых дат. В деловых приложениях, в которых обычно используются текущие даты, имеет смысл хранить даты в традиционных полях типа Date. Для приложений, имеющих дело с историческими датами - лучше подойдут поля типа DDate.

Поля для представления логических данных

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

Поля для представления изображений (picture) и файлов (file)

Изображения в Менеджере Данных представляются именами соответствующих им графических файлов. Если поле имеет достаточную длину, то может быть указано абсолютное имя файла, но обычно используются относительные имена - файлы изображений обычно хранят в стандартной директории, задаваемой в Менеджере Данных по умолчанию, или явно заданной в описании поля таблицы. Аналогично, в полях типа File хранятся имена различных файлов, представляющих интерес для пользователя.

Разумеется, имена файлов, в том числе имена файлов изображений, можно было бы хранить в обычном текстовом поле. Однако, наличие специализированных типов полей для таких данных позволяет Менеджеру Данных интерпретировать их в некоторых ситуациях особым образом. Так, при вводе значения в поле типа Picture может быть открыто стандартное окно выбора файла, позволяющее, например, произвести выбор графического файла по снапшоту изображения. Аналогично, при активизации кликом мыши значения поля File на панели показа содержимого строки таблицы Менеджер Данных может открыть указанный файл в отдельном окне.

Поля для представления интернет-ссылок (link)

Данные типа Link предназначены для представления ссылок на интернет страницы. Они имеют синтаксис, стандартный для URL-адресов.

Поля для представления точек на карте (point)

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

Перейти на начало страницы

Окно расширенного редактирования описаний таблиц

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

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


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

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

Что касается редактирования свойств отдельных полей, то оно производится в специальном окне редактирования описания поля, вызываемом двойным кликом мыши на нужной строке в списке полей.

Окно редактирования описания поля

Однако, прежде обсуждать эти темы детально - обсудим сначала некоторые аспекты реализации работы с таблицами в Менеджере Данных.


Перейти на начало страницы

Некоторые детали реализации работы с таблицами

Менеджер Данных не привязан к форматам конкретных баз данных и не ссылается непосредственно на физические файлы / таблицы, где данные физически хранятся. Вместо этого он имеет дело с набором логических таблиц (табличных Наборов Данных).

Табличный Набор Данных является логической таблицей, в том смысле, что она является описанием структуры некоторых табличных данных, но сами данные хранятся отдельно, в некотором физическом файле (таблице) базы данных. Обычно каждая логическая таблица Менеджера Данных ссылается на какой-то физический файл или на таблицу физического файла, в котором (в которой) хранятся реальные данные. В этом случае говорят, что логическая таблица (Набор Данных) ПОДКЛЮЧЕНА к некоторому физическому файлу (физической таблице). О физическом файле, к которому подключена (или может быть в при необходимости подключена) логическая таблица, можно говорить как о некотором ЭКЗЕМПЛЯРЕ этой логической таблицы.

Так вот, в описании таблицы Набора Данных (логической таблицы МД) для каждого поля нужно указываться имя поля физического файла базы данных, соответствующего данному полю (исключение делается для виртуальных полей). Это имя указывается в графе "ПОЛЕ В БАЗЕ". Ссылка на поле базы позволяет Менеджеру Данных при подключении к логической таблице физического файла правильно определять, из какого поля физического файла нужно брать данные для данного поля логической таблицы.

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

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

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


Перейти на начало страницы

Выбор используемой Базы Данных

Чтобы настроиться на базу данных необходимо, чтобы она была включена в список баз данных, известных Менеджеру Данных - должна быть определена логическая База Данных, ссылающаяся на эту физическую базу. По умолчанию Менеджер Данных работает с логической Базой Данных myDb, настроенной на локальную базу типа DBase (некоторый директорий с dbf-файлами). Создание дополнительных логических Баз Данных и переопределение Базы myDb производится в диалоговом окне Настройки Баз Данных. Для его вызова нужно в главном окне Менеджера Данных кликнуть кнопку "Администрирование" и в открывшемся окне настроек - кнопку "Настройка Баз Данных".

Окно Настройки Баз Данных

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


Новую Базу Данных можно определить и непосредственно из этого окна, выбрав строку "### Определить новую БД". После этого будет открыто окно выбора типа вновь определяемой Базы Данных


Когда тип новой Базы Данных выбран, то Менеджер Данных, в зависимости от выбранного типа, запросит параметры этой базы (директорий, имя файла или имя DSN. Кроме того, нужно будет определить имя для новой логической Базы Данных и её краткое описание.


Перейти на начало страницы

Подключение к физическим файлам/таблицам БД

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

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

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


Так, например, в данном описании сразу три поля логической таблицы соответствует физическому полю R1. Поле "№ карты" представляет непосредственно физическое поле R1, оно используется напрямую, так как оно есть в физическом файле. Поля "ФИО пациента" и "Дата рождения" - кодированные поля, причем они кодируются одним и тем же справочником (sem_kart). Но ссылаются они на разные поля записи в sem_kart. Поле "ФИО пациента" представляет поле К1_3, а поле "Дата рождения" - поле К1_4. Таким образом к записи одного файла как бы присоединяется часть записи другого файла.

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

Перейти на начало страницы


Создание физических файлов/таблиц БД по описаниям таблиц

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

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


Перейти на начало страницы

Создание описаний таблиц по физическим файлам/таблицам БД

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

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

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

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


Перейти на начало страницы

Редактирование состава полей таблицы

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

Нажатием кнопки "Добавить" можно добавить еще одно поле (столбец) в таблицу. Кнопка "Удалить" удаляет селектированное поле.

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


Перейти на начало страницы

Описания таблиц. Дополнительные возможности

Окно редактирования описания поля

Двойной клик мышью на любом значимом поле в некоторой строке диалогового окна расширенного редактирования структуры табличного набора данных приводит к открытию окна Редактирования Описания соответствующего Поля.


В самой верхней строке окна Редактирования Описания Поля находится область редактирования для изменения Наименования поля (Внешнее имя поля) и ниспадающий список для выбора и установки его типа (Тип данных). Изменение наименование поля (столбца) производится его прямым редактированием в области редактирования. Тип данных может быть изменен путем выбора нужного типа данных из ниспадающего списка.

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

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

Если для поля тип данных определен как Изображение или Файл, то для них может быть указан соответствующий им базовый директорий - папка, в которой хранятся файлы изображений или файлы общего типа


Если стандартная папка для файлов в описании поля не определена, то, по умолчанию, файлы изображений хранятся в стандартной папке, определяемой системной переменной picSite (обычно это папка pic в корневой директории приложения), а файлы общего типа - в стандартной папке, определяемой системной переменной fileSite (обычно - в папке file в корневой директории приложения). Системные переменные для стандартных локаций (сайтов) приложения и их определение обсуждаются здесь.

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


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


Перейти на начало страницы

Вычисляемые поля

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


Определение поля как вычисляемого производится посредством устновки соответстующего флажка в Диалоге редактирования описания поля.

В нижней части этого диалогового окна находится флажок "Вычисляемое поле", установка которого и определяет данное поле как вычисляемое.

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

Справа от переключателя Типа обработки находится поле текста формулы. Текст в этом поле задает формулу, используемую для вычисления значения данного вычисляемого поля. Поле текста формулы не доступно для записи и редактирования, непосредственно в этом поле формула изменена быть не может. Изменение формулы производится в специальном диалоговом окне Определения формулы (скрипта), для вызова которого нужно нажать кнопку "Изменить", расположенную справа от поля текста формулы.

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

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


Перейти на начало страницы

Синтаксис формул вычисления значения поля

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

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

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

В случае необходимости определение поля может быть удалено из списка определений полей нажатием кнопки "Удалить".

В нижней части окна находится текстовая зона для ввода и редактирования текста формулы. Зона формулы - многострочная, так что текст формулы можно размещать на нескольких строках. Для переноса части формулы на новую строку следует нажать клавишу Enter при нажатой клавише Ctrl.

Слева от заголовка "Формула:" (сразу над зоной ввода текста формулы) находится маленькая кнопка "?". Эта кнопка служит для вызова справочного окна, в котором приведены краткие сведения о синтаксисе формул и перечислены основные функции, к которым можно обращаться в формулах. В данном разделе, ниже, приводятся подробные сведения о синтакисе формул и доступных функциях.


Общий синтаксис

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

Типы данных

Операнды и результаты вычисления выражений могут иметь один из следующих типов:

  • Целые числа
  • Числа с плавающей точкой
  • Логические значения (да-нет)
  • Даты
  • Общие Даты
  • Символьные значения (строки)
  • Точки на карте

Операнды

В качестве целочисленных операндов могут выступать:

  • Целочисленные константы (целые числа - без точки и дробной части)
  • Однобуквенные обозначения целочисленных полей (числовых полей типа Numeric, не имеющих дробной части)
  • Вызовы функций возвращающие целочисленное значение
  • Выражения с целочисленным результатом

В качестве числовых операндов с плавающей точкой могут выступать:

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

В качестве операндов логического типа могут выступать:

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

В качестве операндов типа Дата могут выступать:

  • Однобуквенные обозначения полей типа Дата
  • Вызовы функций возвращающие значение типа Дата
  • Выражения с результатом типа Дата
  • Дата-константа (в виде текстовой строки, ограниченной кавычками)

В качестве операндов типа Общая Дата могут выступать:

  • Однобуквенные обозначения полей типа Общая Дата
  • Выражения с результатом типа Общая Дата
  • Дата-константа (в виде текстовой строки, ограниченной кавычками)

В качестве операндов с символьным значением могут выступать:

  • Символьные константы - текстовые строки, ограниченные кавычками
  • Однобуквенные обозначения полей символьного типа, полей типа Memo, а также типов Изображение и Ссылка
  • Вызовы функций возвращающие симольное значение
  • Выражения с результатом в виде символьного значения

В качестве операндов типа Точка на карте могут выступать:

  • Однобуквенные обозначения полей типа Точка на карте
  • Константные координаты (в виде текстовой строки, ограниченной кавычками)

Операции

В формулах могут использоваться следующие знаки операций :

+ сложение числовых значений или катенация (соединение) символьных значений
- вычитание числовых значений или катенация символьных значений с их разделением знаком "пробел"
* умножение числовых значений или катенация символьных значений с их разделением знаком "_"
/ деление числовых значений или катенация символьных значений с их разделением знаком "перевод строки"
= сравнение значений на равенство
# сравнение значений на неравенство
< сравнение на "меньше"
> сравнение на "больше"
<= сравнение на "меньше или равно"
>= сравнение на "больше или равно"
! операция отрицания (применяется к логическому значению)
| операция логического ИЛИ
& операция логического И
a?b:c операция выбора по условию

Операция сложения ( + )

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

Для символьных (строковых) значений операция сложения выполняет катенацию (сцепление) строк, представляющих её операнды - результатом катенации строк s1 и s2 является строка s1s2, составленная путем присоединения строки s2 к строке s1 (без каких-либо разделительных знаков между ними).

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

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

Логические значения и Значения типа Точка на карте складывать нельзя. В этом случае, как и во всех других случаях недопустимого смешивания типов операндов в операции сложения, результатом будет логическое значение FALSE ("нет").

Операция вычитания ( - )

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

Для символьных (строковых) значений операции вычитания, также как и операция сложения, выполняет катенацию (сцепление) строк, представляющих её операнды. Однако, в отличие от операции катенации s1+s2, результатом катенации строк s1-s2 является строка "s1 s2", составленная путем присоединения строки s2 к строке s1 с вставкой знака "пробел" между ними. Это удобно, когда операнды представляют отдельные слова, из которых необходимо составить предложение.

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

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

Определена также и операция вычитания для двух операндов типа "Точка на карте". Результатом этой операции будет расстояние между этими точками в метрах.

Логические значения вычитать нельзя. В этом случае, как и во всех других случаях недопустимого смешивания типов операндов в операции вычитания, результатом будет логическое значение FALSE ("нет").

Операция умножения ( * )

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

Для символьных (строковых) значений операции умножения, также как и операция сложения, выполняет катенацию (сцепление) строк, представляющих её операнды. Однако, в отличие от операции катенации s1+s2, результатом катенации строк s1*s2 является строка "s1_s2", составленная путем присоединения строки s2 к строке s1 с вставкой знака "подчеркивание" между ними.

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

Перемножать даты нельзя. Также нелья перемножать операнды типа "Точка на карте".

Логические значения перемножать можно. Операция перемножения логических значений эквивалентна операции "логическое И".

Во всех случаях недопустимого смешивания типов операндов в операции умножения, результатом будет логическое значение FALSE ("нет").

Операция деления ( / )

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

Для символьных (строковых) значений операции деления, также как и операция сложения, выполняет катенацию (сцепление) строк, представляющих её операнды. Однако, в отличие от операции катенации s1+s2, результатом катенации строк s1/s2 является строка "s1\ns2", составленная путем присоединения строки s2 к строке s1 с вставкой знака "перевод строки" между ними.

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

Делить даты друг на друга нельзя. Также операция деления не определена для операндов типа "Точка на карте".

Логические значения делить друг на друга нельзя. В этом случае, как и во всех других случаях недопустимого смешивания типов операндов в операции сложения, результатом будет логическое значение FALSE ("нет").

Операции сравнения ( =, #, <, >, <=, >= )

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

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

Операции сравнения на неравенство для операндов типа "Точка на карте" сравнивают значения широты для точек.

Операция отрицания ( ! )

Операция отрицания является унарной - она имеет только один операнд. Эта операция применима только к логическому значению, поэтому перед выполнением операции её операнд приводится к логическому типу. Результатом операции отрицания является логическое значение, противоположное значению операнда.

Операции логическое "И" и логическое "ИЛИ" ( & и | )

Операции логическое "И" и логическое "ИЛИ" применимы только к логическим операндам. Как правило, операндами этих операций являются результаты операций сравнения. Результат логических операций - также логическое значение.

Результатом операции логическое "И" будет значение TRUE, если значения обоих её операндов - TRUE. Если хотя бы один операнд имеет знвчение FALSE, то и операция логическое "И" будет иметь в качестве результата значение FALSE.

Результатом операции логическое "ИЛИ" будет значение TRUE, если значение хотя бы одного из её операндов - TRUE. Если оба операнда имеют знвчение FALSE, то операция логическое "ИЛИ" будет иметь в качестве результата значение FALSE.

Операция логическое "И" имеет приоритет выше, чем операция логическое "ИЛИ", однако, приоритет обеих логических операций ниже приоритета операций сравнения. Таким образом, выражение :

a < b | c > d & e = f

эквивалентно выражению :

(a < b) | ( (c > d) & (e = f) )

Операция выбора по условию ( a?b:c)

Операция выбора по условию является тернарной - она имеет три операнда. Первым операндом является логическое значение. Второй и третий операнды могут быть любого типа, однако обычно их типы совпадают. Эта операция выполняется следующим образом: проверяется значение первого операнда. Если операнд "a" имеет значение TRUE, то результатом операции выбора по условию a?b:c будет операнд b. В противном случае (если операнд "a" имеет значение FALSE) - результатом будет значение операнда c.

Важно! В отличие от С++ формула a?b:c?d:e трактуется как (a?b:c)?d:e


Функции

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

INT(a) приведение к целочисленному значению
FLOAT(a) приведение к числу с плавающей точкой
SIN(a) вычисление синуса
COS(a) вычисление косинуса
MAX(a,b) определение максимума
MIN(a,b) определение минимума
RNUM("tbl") номер текущей строки (записи) в указанной таблице
RLNUM() номер текущей строки (записи) в группе при запросе
TODAY() сегодняшняя дата
DAY(d) день месяца в дате
MONTH(d) номер месяца в дате
YEAR(d) число лет в дате
LASTMONTHDAY(d) последний день месяца
DATEDIFF(d1,d2) вычисление числа лет, месяцев и дней между двумя датами
ADDDAY(d,n) добавить к дате n дней
ADDMONTH(d,n) добавить к дате n месяцев
ADDYEAR(d,n) добавить к дате n лет
DATETEXT(d) преобразование даты в текст
DATETEXTSHORT(d) преобразование даты в текст укороченного формата
LTXT(s) определение длины текста
PRINTF1(f,a) форматированная строка с одной управляющей последовательностью
PRINTF2(f,a,b) форматированная строка с двумя управляющими последовательностями
PRINTF3(f,a,b,c) форматированная строка с тремя управляющими последовательностями

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

DateText( AddDay( Today(), 7 ) )

будет текстовая строка, представляющую дату, следующую через неделю после сегодняшней.

INT(a)

Функция INT приводит значение своего аргумента к целому числу. Аргументом этой функции может быть значение любого типа.
Число с плавающей точкой преобразуется к целому путем отбрасывания дробной части.
Приведение строкового значения к целому имеет смысл лишь в случае, если строка - это текстовое представление целого числа.
Логическое значение TRUE преобразуется в 1, FALSE преобразуется в 0.
Дата преобразуется в целое путем вычисления числа дней от "нулевой даты" (Рождества).

FLOAT(a)

Функция FLOAT приводит значение своего аргумента к числу с плавающей точкой. Аргументом этой функции может быть значение любого типа.
Приведение строкового значения к числу с плавающей точкой имеет смысл лишь в случае, если строка - это текстовое представление числа с плавающей точкой.
Логическое значение TRUE преобразуется в 1.0, FALSE преобразуется в 0.0
Дата преобразуется в число путем вычисления числа дней от "нулевой даты" (Рождества).

SIN(a), COS(a)

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

MAX(a,b), MIN(a,b)

Функции MAX и MIN сранивают значения своих аргументов и выдают в качестве результата максимальный или минимальный из них. Аргументами этих функций могут быть числовые значения, даты, либо текстовые значения. Для текстовых значений аргументы сравниваются посимвольно, в лексикографическом (алфавитном) порядке. Типы аргументов должны совпадать. При сравнении Точек на карте сранивается значение широты, то есть функция MAX(a,b) выбирает более северную точку, а функция MIN(a,b) - более южную.

RNUM("tbl")

Функция RNUM имеет 1 аргумент - текстовую строку, представляющую имя источника данных (таблицы). Она выдаёт в качестве результата целочисленное значение - номер текущей строки (записи) в указанной таблице. Обычно вместо имени таблицы (источника данных) в качестве аргумента этой функции указывается 0 (ноль). В этом случае будет выдан номер строки в текущей таблице (по контексту).

RLNUM()

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

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

В формах показа таблиц функция RLNUM() выдает то же значение, что и функция RNUM()

TODAY()

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

DAY(d)

Функция DAY имеет один аргумент типа дата. Значение этой функции является целое число, соответствующее дню, указанному в дате-аргументе.

MONTH(d)

Функция MONTH имеет один аргумент типа дата. Значение этой функции является целое число, соответствующее месяцу, указанному в дате-аргументе (номер месяца, т.е. январю соответствует 1).

YEAR(d)

Функция YEAR имеет один аргумент типа дата. Значение этой функции является целое число, соответствующее году, указанному в дате-аргументе.

LASTMONTHDAY(d)

Функция LASTMONTHDAY имеет один аргумент типа дата. Значение этой функции является последний день месяца в указанной дате (число дней в месяце, определяемом этой датой).

DATEDIFF(d1,d2)

Функция DATEDIFF вычисляет, сколько лет, месяцев и дней прошло от одной даты до другой. Результат выдается в виде даты, но это "не настоящая" дата. Предполагается, что далее к ней будут применены функции для выделения отдельных компонентов даты:
YEAR(DATEDIFF(d1,d2)) - для определения числа лет,
MONTH(DATEDIFF(d1,d2)) - для определения числа месяцев,
DAY(DATEDIFF(d1,d2)) - для определения числа дней.

ADDDAY(d,n), ADDMONTH(d,n), ADDYEAR(d,n)

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

DATETEXT(d), DATETEXTSHORT(d)

Функции DATETEXT и DATETEXTSHORT преобразовывают дату, указанную в качестве аргумента, в текстовый вид. Результатом этих функций будет текстовая строка, представляющая дату, то есть строка с указанием наименования месяца (например 1 Января 2013). Различие между этими функциями заключается в том, что в случае функции DATETEXT название месяца указывается полностью, а функция DATETEXTSHORT формирует строку с сокращенным наименованием месяца(например 1 Янв 2013). Функции DATETEXT работает также для Общих дат.

LTXT(s)

Функция LTXT возвращает число символов в текстовом значении, указанном в качестве аргумента. Если аргумент функции LTXT не текстовый, то возвращается ноль.

PRINTF1(f,a), PRINTF2(f,a,b), PRINTF3(f,a,b,c)

Функции PRINTF1, PRINTF2 и PRINTF3 форматируют строку, указанную в качестве первого аргумента (f), вставляя в неё следующие аргументы (a,b,c), преобразованные в соответствии с указанными в этой строке управляющими последовательностями. Эти функции соответствуют случаям, когда в форматируемой строке указана одна, две или три управляющие последовательности. Соответственно, в дополнение к форматируемой строке в этих функциях указываются один, два, или три дополнительных аргумента, которые преобразуются и вставляются в форматируемую строку вместо этих управляющих последовательностей. Семантика этих функций полностью совпадает с семантикой стандартной функции printf языков программирования С и С++, с той лишь разницей, что число аргументов в них жестко фиксировано.

Функции PRINTF1, PRINTF2 и PRINTF3 выдают в качестве результата текстовую строку, полученную путем замены в строке форматирования (аргумент f) всех управляющих последовательностей значениями параметров, которые предварительно преобразуются в текстовый вид в соответствии с флагом, шириной, точностью и типом, указанными в соответствующей управляющей последовательности.

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

Управляющая последовательность имеет вид:

%[флаги][ширина][.точность]тип

Обязательными составными частями являются символ начала управляющей последовательности (%) и тип.

Ширина задается как десятичное число, которое указывает минимальную ширину поля (включая знак для чисел). Если представление величины больше, чем ширина поля, то запись выходит за пределы поля (например, %2d для величины 100 даст значение поля в три символа). Если представление величины менее указанного числа, то оно будет дополнено (по умолчанию) пробелами слева, но это поведение может меняться предшествующими флагами.

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

В управляющих последовательностях, соответствующим целочисленным аргументам можно использовать следующие типы:

d — десятичное знаковое число. По умолчанию записывается с правым выравниванием, знак пишется только для отрицательных чисел.

o — восьмеричное беззнаковое число

x или X — шестнадцатеричное число, x использует маленькие буквы для представления числа (abcdef), X - большие (ABCDEF)

c — вывод символа с кодом, соответствующим переданному аргументу

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

f — число с плавающей точкой. По умолчанию выводятся с точностью 6 (число знаков после точки), Если число по модулю меньше единицы, перед десятичной точкой пишется 0.

e или E — число с плавающей точкой в экспоненциальной форме записи (вида 1.1e+44); e выводит символ «e» в нижнем регистре, E — в верхнем (3.14E+0);

g — число с плавающей точкой; форма его представления будет зависетьь от значения числа (f или e - как разумнее);

a — число с плавающей точкой в шестнадцатеричном виде.

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

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

- (дефис) — выводимое значение выравнивается по левому краю в пределах минимальной ширины поля (в отсутствие этого флага - по правому).

+ (плюс) — всегда указывать знак (плюс или минус) для выводимого десятичного числового значения (в отсутствие этого флага знак указывается только для отрицательных чисел).

(пробел) — помещать перед результатом пробел, если первый символ значения не знак, а цифра

0 (ноль) — дополнять поле до ширины, указанной в поле ширина управляющей последовательности, символом 0 слева (в отсутствие этого флага вставляются пробелы)

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

s — вывод строки.

Вместе с этим типом в управляющей последовательности можно указать ширину поля (которая задаёт минимальную ширину), и точность (которая задаёт максимальную ширину выводимого поля). Если задана ширина, то можно также задать и флаг - (дефис) для выравнивания текста по левому краю поля.

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

Перейти на начало страницы

Поля, выбираемые из нормативных таблиц

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


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


Перейти на начало страницы

Cправочники и их использование

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

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

Часто бывает, что некоторые поля Набора Данных можно отнести к разряду перечислимых полей - полей с перечислимым набором значений. Такие поля могут принимать значение только из некоторого фиксированного множества значений. Например, поле "Пол" может иметь только одно из значений "мужчина" или "женщина", а полю "Специальность" можно присваивать значения только из фиксированного набора специальностей. Если задавать значения таких полей в виде обычных текстовых строк, то при вводе название специальности может быть введено с ошибкой, и запись с ошибочным названием специальности будет неправильно обрабатываться.

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

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

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

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

Перечислимые поля, в которых хранятся коды из некоторого справочника, а не сами значения, называются кодированными полями.

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

Менеджер Данных поддерживает как справочники для кодированных полей, так и использование справочников-подсказок.

Перейти на начало страницы

Подключение справочников к полям Набора Данных

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


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

Справочник может быть подключен к полю в режиме "автоматического выбора". В этом случае Менеджер Данных будет всегда высвечивать справочник и предлагать пользователю выбрать данные из справочника - при каждой попытке пользователя изменения данные в этом поле.

Другой режим использования справочника - "справка по требованию (F1)". В этом режиме редактирование поля возможна путём прямого ввода данных с клавиатуры и Менеджер Данных будет высвечивать справочник для подсказки и выбора данных только по требованию пользователя - по нажатию пользователем клавиши F1. Для краткости первый способ будем будем называть подключением справочника в автоматическом режиме (режим "авто"), а второй - в режиме вызова по требованию (режим "F1").

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

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

Для кодированного поля целевое значение определяется полем значения справочника.

Если же справочник используется не для кодирования, а для вспомогательной расшифровки, то в поле основной таблицы хранится непосредственно целевое значение. В общем случае оно может выбираться из подключенного справочника, в котором оно снабжается расширенной расшифровкой, помогающей пользователю сделать выбор строки из справочника. Целевое значение, подлежащее расшифровке, играет в справочнике роль ключа, по которому Ьенеджер Данных ищет его подсказку для показа её пользователю. Если пользователь на основании найденной подсказки выбирает строку из справочника, то в качестве целевых данных в поле основной таблицы попадут данные из поля ключа справочника.

В первом случае (случае кодированного поля) будем говорить, что описываемое поле является кодированным.


Если к полю должен быть подключен справочник, то в графе "Подключение" в описании данного поля должен быть указано как справочник должен вызываться (атоматически или по F1) и способ его использования (используется он для кодирования поля или нет)ю В графе "СПРАВОЧНИК" при этом должно быть указано имя справочника - имя физического файла (без пути и без расширения) или имя таблицы (для баз данных, представленных многотабличными файлами типа Access и Excel).

Итак, в графе "Подключение" Может быть указан один из следующих способов подключения справочника:

  • код, авто - подключение для кодирования поля, справочник вызывается автоматически:
    - справочник кодирует данное поле (в поле основной таблицы хранится код, автоматически расшифровываемый Менеджером Данных через указанный справочник),
    - при любой попытке редактирования данных в этом поле Менеджер Данных автоматически открывает справочник и предлагать выбрать значение;

  • код, F1 - подключение для кодирования поля, справочник вызывается по требованию пользователя:
    - справочник кодирует данное поле (в поле основной таблицы хранится код, автоматически расшифровываемый Менеджером Данных через указанный справочник),
    - разрешен прямой >ввод данных в это поле с клавиатуры, и Менеджер Данных высвечивает справочник для выбора строки из него только по требованию пользователя (по нажатию клавиши F1);

  • авто - подключение без кодирования поля, только для подсказки; справочник вызывается автоматически:
    - поле основной таблицы хранится непосредственно целевое значение, а справочник хранит все возможные расшифровки поля (подсказки);
    - при любой попытке редактирования данных в этом поле Менеджер Данных автоматически открывает справочник и предлагает выбрать код;

  • F1 - подключение без кодирования поля, только для подсказки; справочник вызывается по требованию пользователя:
    - поле основной таблицы хранится непосредственно целевое значение, а справочник хранит все возможные расшифровки поля (подсказки);
    - разрешен прямой ввод данных в это поле с клавиатуры, и Менеджер Данных высвечивает справочник для выбора строки из него только по требованию пользователя (по нажатию клавиши F1);

Как уже говорилось, справочник - это вспомогательная таблица, записи которой имеют два основных поля - поле ключа и поле значения. При описании подключенного справочника необходимо указать названия этих полей (в графе "ПОЛЕ КЛЮЧА" и графе "ПОЛЕ ЗНАЧЕНИя" соответственно). Кроме этого необходимо указать их тип.

Тип какого поля справочника указывается в графе "ТИП", расположеннойи между графами "ПОЛЕ КЛЮЧА" и "ПОЛЕ ЗНАЧЕНИЯ"? Ответ на этот вопрос зависит от типа поключения справочника.

Если поле кодированное (то есть справочник подключен в режиме "выбор значения" или "ввод значения"), то значением данного поля логической таблицы считается поле значения подключенного справочника, так что его тип фактически указан в графе "ТИП" рядом с графой "ВНЕШНЕЕ ИМЯ". Таким образом, в данном случае справа от "ПОЛЯ КЛЮЧА" должен указываться тип поля ключа справочника. Считается, что этот тип совпадает с типом "ПОЛЯ В БАЗЕ" - внутреннего поля основной таблицы.

Если же справочник подключен в режиме "выбор кода" или "ввод кода", то значением данного поля логической таблицы считается значение внутреннего поля основного файла ("ПОЛЕ В БАЗЕ"). Тип "ПОЛЯ КЛЮЧА" справочника совпадает с типом внутреннего поля основной таблицы, и в графе типа справа от "ПОЛЯ КЛЮЧА" указывается тип "ПОЛЯ ЗНАЧЕНИЯ" справочника.

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

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

Перейти на начало страницы

Примеры описаний таблиц


В данном примере логической таблицы поля "ФИО пациента" и "Врач" являются кодированными. Поле "ФИО пациента" кодировано файлом sem_kart.dbf, представляющем список пациентов. Фактическая фамилия пациента хранится в поле K1_3 файла sem_kart.dbf, а ссылка к ней из основного файла осуществляется через поле R1 - по коду в этом поле ищется запись в файле sem_kart.dbf (со значением в поле ключа K1_2, совпадающим со значением R1), и поле значения K1_3 этой записи и считается искомым именем пациента.

Другое поле в данном примере - "Врач" - кодируется справочником "sprav1.dbf". Значение поля "Врач" будет не просто выбираться из поля R2 основного файла, на который ссылается логическая таблица. Вместо этого поле R2 будет расшифровываться - Менеджер Данных будет сравнивать его значение со значением поля ключа K_FILE справочника "sprav1.dbf" и выбирать искомое значение из поля S_FILE.

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

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

В приведенном выше примере файл "sprav1.dbf" является мульти-справочником. Кроме ключевого поля K_FILE и поля значения S_FILE в него включено дополнительное поле N_FILE, идентифицирующее подсправочник, к которому относится запись. Для всех записей подсправочника врачей в этом поле записан код 'K6_15'. Таким образом, дополнительным условием для данного кодированного поля является условие
N_FILE='K6_15'

При записи дополнительных условий следует соблюдать следующие правила:

  • Дополнительное условие должно начинаться с названия дополнительного поля,
  • В зависимости от типа дополнительного поля значение, с которым это поле сравнивается, должно указываться:
    • в одиночных кавычках ( 'K6_15' ), если это текстовое поле
    • в виде #ГГГГ-ММ-ДД# для полей типа дата ( #2010-03-29# )
    • просто в виде числа (без ограничивающих кавычек) для числовых полей ( 17.21 )

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

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

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

Перейти на начало страницы

Настройка и администрирование Менеджера Данных

Окно настроек и администрирования

Диалоговое окно Настройки и Администрирования предназначено для выбора и установки режима работы программы, для выбора и запуска на исполнение приложений Менеджера Данных, установки его свойств и параметров.

Это диалоговое окно вызывается нажатием кнопки Администрирование "Администрирование" в главном окне Менеджера Данных. В верхней части окна находится переключатель режима работы Менеджера Данных и окно выбора языка интерфейса пользоватедя. Чуть ниже находятся переключатели общих свойств Менеджера Данных.

Окно настройки Менеджера Данных

Кнопка Выбор приложения "Экспорт/Импорт приложений; Редактирование библиотеки приложений", расположенная в центре окна, предназначена для вызова диалоговой панели, обеспечивающей организацию локальной библиотеки Менеджера Данных. Там же можно управлять загрузкой типовых приложений из сети, а также наоборот, подготавливать своё приложение для загрузки в сетевую библиотеку приложений.

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

Кнопка Настройка Баз Данных "Настройка Баз Данных"

Кнопка Настройка директориев "Настройка путей к стандартным папкам"

Кнопка Редактирование сценариев "Редактирование сценариев"

Кнопка Редактирование панелей "Создание и Редактирование панелей"

Кнопка Редактирование панелей "Редактирование свойств Набора Данных"

Перейти на начало страницы

Установка режимов работы и переключателей

...

...

...

Перейти на начало страницы

Приложения Менеджера Данных

...

...

...

Перейти на начало страницы

Настройка Баз Данных

Менеджер данных работает с базами данных, используя ODBC (Open Database Connectivity) интерфейс. Для того, чтобы МД мог получить доступ к базе данных через этот интерфейс необходимы 2 условия. Во-первых, на Вашем компьютере должен быть установлен ODBC драйвер для доступа к базам данного типа. Во-вторых - для доступа к конкретному экземпляру базы данных Менеджер Данных должен сформировать и указать при открытии канала связи специальную Строку Описания Соединения (ODBC Driver Connection String).

ODBC драйвера

32-разрядные версии Windows штатно имеют в стандартной комплектации набор ODBC драйверов для 4 типов баз данных:

  • драйвер для локальных баз данных DBase; каждая база представлена отдельным директорием (папкой) с набором файлов формата DBF; в этой базе каждый DBF файл представляет отдельную таблицу. (Замечание для пользователей Делфи: драйвер обеспечивает работу с базой как с установленным BDE так и без него, но в этом случае индексные файлы надо ликвидировать)
  • драйвер для MS Access 2003 (и ниже); каждая база представлена отдельным файлом MDB, поэтому, когда Вы настраиваете Менеджер Данных на такую базу - надо указывать конкретный MDB файл. Драйвер не может создавать новые MDB файлы (по соглашению для создания файлов нужно иметь лицензию MS Office, а драйвер доступен без такой лицензии), потому нужно их создавать в MS Office или переиспользовать имеющийся MDB файл
  • драйвер для MS Excel 2003 (и ниже); каждая база представлена отдельным файлом XLS, поэтому, когда Вы настраиваете Менеджер Данных на такую базу - надо указывать конкретный XLS файл. Драйвер не может создавать новые MDB файлы (для этого надо иметь лицензию MS Office), потому нужно их создавать в MS Office или переиспользовать имеющийся XLS файл. Кроме того, с помощью этого драйвера произвольный доступ по записи к таблицам (страницам) XLS файла невозможен - обеспечивается лишь чтение данных или единовременная запись всех данных в новую таблицы (страницу). Поэтому в Менеджере Данных нельзя организовать полноценную локальную базу данных непосредственно на основе Excel файлов - при работе с Excel данными используйте схему работы, при которой Excel данные зачитываются Менеджером Данных из XLS файлов, записываются и обрабатываются в локальной базе на основе DBase или Access драйверов, и по завершении обработки результаты записываюся в XLS файл в виде новых таблиц (страниц).
  • драйвер для текстовых баз данных; каждая база представлена отдельным директорием (папкой) с набором файлов формата TXT, SCV, ASC или TAB; Также как и в случае драйверадля MS Excel, драйвер текстовых баз данных не обеспечивает произвольного доступа к данным по записи, поэтому текстовые файлы используются преимущественно как универсальное средство импорта данных (ввода данных из других баз) и их экспорта (вывода данных для передачи в другие информационные системы)

64-разрядные версии Windows штатно не имеют установленных ODBC драйверов, поэтому для работы с 64-разрядной версией Менеджера Данных необходима установка пакета Microsoft Access Database Engine 2010 Redistributable. Этот бесплатный пакет загружается с сайта корпорации Microsoft. Он устанавливает набор ODBC драйверов для работы с файлами Microsoft Office - Microsoft Office Access 2010 (*.mdb and *.accdb), Microsoft Office Excel 2010 (*.xls, *.xlsx, and *.xlsb), а также с текстовыми базами данных и базами DBase (файлами *.dbf).

Установка указанного выше пакета ODBC драйверов имеет смысл не только для 64-разрядной, но и для 32-разрядной версии Windows, так как после их установки Менеджер Данных сможет работать не только с файлами MS Office 2003, но и с файлами MS Office 2010.

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

Узнать, установлен ли в системе нужный Вам ODBC драйвер можно через Панель Управления Windows - откройте элемент "Администрирование" и выберете пункт "Источники Данных ODBC". Список установленных ODBC драйверов представлен в закладке "Драйверы".

Строки Описания Соединения

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

Менеджер Данных "знает" о том, какая именно информация и в каком формате должна быть выдана в строках соединения для "стандартных" ODBC драйверов, перечисленных выше. Поэтому для этих драйверов (для этих типов Баз Данных) Менеджер формирует строки описания соединения автоматически, при необходимости запрашивая недостающую информацию у пользователя (для MS Excel, например - к какому именно XLS файлу следует обращаться).

Если для "стандартных" типов баз данных Менеджер Данных может формировать Строки Описания Соединения автоматически, то для баз данных других типов (условно назовем их внешними) информация для Строк Описания Соединения должна быть предоставлена в виде так называемых Имен Источников Баз Данных - DSN (Database Source Name) - специальных структур данных, содержащих необходимую для формирования Строк Описания Соединения информацию.

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

DSN (Database Source Name)

Итак, DSN - это специальная структура данных Windows, содержащая информацию, необходимую для формирования Строки Описания Соединения с некоторым экземпляром базы данных через соответствующий ODBC драйвер. DSN для Вашей базы данных должен быть определен до начала работы с Менеджером Данных.

Различают Пользовательские DSN, Системные DSN, и Файловые DSN.

Пользовательские И Системные DSN хранятся в Реестре (Registry) и создаются с помощью закладок "Пользовательские DSN" или "Системные DSN" в Панели Управления Windows - элемент "Администрирование", пункт "Источники Данных ODBC". Там находятся кнопки, позволяющие создать новый DSN и задать его свойства - вначале ODBC драйвер, через который должно устанавливаться соединение, а затем, в зависимости от выбранного драйвера, тот или иной набор свойств этого соединения.

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

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

Когда Менеджер Данных запрашивает имя DSN для подключения к Базе Данных, то можно указать как машинный (пользовательский или системный) DSN, так и файловый DSN - интерпретация зависит от наличия в имени DSN расширения .dsn

Об интерфейсе ODBC и источниках данных можно почитать еще и здесь.

Определение Базы Данных в Менеджере Данных

Для ссылок на базы данных в Менеджере Данных используются специальные именованные логические объекты, так же называемые Базами Данных. По умолчанию, в МД определена логическая База Данных myDb, которая (опять же по умолчанию) ссылается на физическую базу данных типа dbf (поддерживаемую драйвером DBase) и представленную директорием (папкой) db, размещенным в корневом директории приложения (по умолчанию - директорий C:\users\user_name\Документы\Менеджер Данных\db ).

Такая DBase база, представляемая набором файлов формата DBF (dbf-файлами), является удобным универсальным и эффективным вариантом для организации локальной базы данных и работы с ней с помощью Менеджера Данных. Из стандартных типов баз данных, поддерживаемых штатно, единственной возможной альтернативой такому выбору является использование базы данных формата MS Access - остальные стандартные типы баз данных имеют ограничения по работе в режиме записи данных. Однако, каких-либо преимуществ в переходе на базу формата MS Access нет. DBase база является лучшим выбором.

Если мы, работая с базой DBase как основной базой, хотим иметь доступ к данным других форматов - таблицам MS Access или MS Excel, то можно создать новую логическую базу, скажем, anotherDb и связать её с нужной физической базой. Если нам нужно работать с другой, не стандартной, "внешней" базой, то мы можем либо переопределить Базу myDb, связав ее с интересующей нас физической базой, либо создать новую логическую базу, скажем, hisDb и уже её связать с нужной физической базой.

Как именно следует поступить - зависит от обстоятельств. При создании Наборов Данных соответствующие им физические таблицы создаются в Базе Данных myDb. Если необходимо, чтобы Набор данных относился к другой Базе Данных - ее нужно всякий раз явно указывать. Поэтому, если мы хотим в данном приложении Менеджера Данных постоянно работать с новой, внешней базой, то лучше переопределить myDb, настроив ее на внешнюю базу. Если же основная обработка данных предполагается в локальной dbf-базе, а внешняя база данных будет использоваться лишь для доступа к исходных данных и записи результатов работы - то лучше определить новую логическую Базу Данных и связать внешнюю базу с ней. Обычно используется именно этот вариант.

В любом случае - создание дополнительной логической Базы Данных и переопределение Базы myDb - производится в диалоговом окне Настройки Баз Данных. Для его вызова нужно в главном окне Менеджера Данных кликнуть кнопку "Администрирование" и в открывшемся окне настроек - кнопку "Настройка Баз Данных".

Окно Настройки Баз Данных

В данном случае была добавлена новая логическая База Данных b2010, предназначенная для доступа к Excel файлу Book2010.xlsx


Перейти на начало страницы

Установки путей к стандартным папкам

...

...

...

Перейти на начало страницы

Редактирование сценариев

...

...

...

Перейти на начало страницы

Создание и редактирование Панелей общего назначения

...

...

...

Перейти на начало страницы

Таблица-перечень файлов данных и служебных файлов Менеджера Данных

...

...

...

Перейти на начало страницы

Приложения

Особенности работы с таблицами Excel

Менеджер Данных может работать информацией, подготовленной в Excel.

С точки зрения Менеджера Данных таблицей является именованный диапазон смежных ячеек на листе Excel. Это должна быть регулярная таблица. В первой её строке должен находиться заголовок таблицы, задающий имена столбцов. Следующие строки представляют данные и должны иметь одинаковую структуру - все значения в столбце должны быть одного и того же типа. Если типы данных в столбце будут чередоваться, то это приведет к ошибке чтения Менеджером Данных записей из этой таблицы.

Для присвоения имени диапазону смежных ячеек (таблице) необходимо:

  • открыть в Excel файл XLS,
  • выделить соответствующие таблице смежные ячейки,
  • подать команду Insert / Name, указав в ней нужное имя.

В Excel 2007 после выделения ячеек следует нажать правую кнопку мыши и выбрать команду Имя диапазона.

Файл XLS (книга excel) может содержать несколько таблиц.

Перейти на начало страницы


Режимы работы Менеджера Данных

  • Административный режим. Предназначен для создания и ведения пользовательской Базы данных. В этом режиме производится составление описаний логических таблиц, их привязка к физическим файлам / таблицам, настройка на местоположение баз данных, а также разработка презентационных или иных приложений на основе созданной базы даных. Для работы в этом режиме требуется понимание состава и структуры используемых таблиц и файлов Баз данных. Специальных программистких знаний и навыков не требуется.
  • Стандартный рабочий режим (режим исполнения). Этот режим прежназначен для работы приложений на основе пользовательской базы данных. Типичное приложение обеспечивает выбор и представление информации из базы данных в различном виде, а также ввод данных и редактирования таблиц по выбранной форме ввода, исполнение запросов к базе данных для поиска необходимой информации, печать результатов запроса или их сохранение в виде файла / таблицы для дальнейшей обработки.

Перейти на начало страницы


Все права на материалы, находящиеся на сайте, охраняются в соответствии с действующим законодательством
© C-Rover, 2010-2014