Рисунок 2.1 – Структура базы данных
Для работы с таблицами базы данных используется редактор таблиц, внешний вид которого представлен на рисунке 2.2.
Рисунок 2.2 – Редактор таблиц
В верхней части редактора расположена панель инструментов. Ниже приведены назначения кнопок на панели инструментов редактора слева–направо:
· Перейти к первой записи
· Перейти к предыдущей записи
· Перейти к следующей записи
· Перейти к последней записи
· Добавить запись
· Удалить запись
· Редактировать запись
· Отменить редактирование
· Обновить таблицу
В зависимости от структуры таблицы редактирование записи может происходить как напрямую в редакторе таблицы, так и с помощью соответствующего диалога.
Для поиска записи в редакторе имеются возможности сортировки и фильтрации.
Наложение фильтра происходит в режиме просмотра таблицы при вводе символов с клавиатуры. При использовании фильтра запись отображается в редакторе, если хотя бы для одного поля значение включает в себя строку фильтра.
Для работы с таблицами параметров и зависимостей можно дополнительно фильтровать записи соответственно по группе параметра и виду зависимости.
Формулы в программе представляют собой некоторое арифметическое выражение, в котором могут участвовать параметры электродвигателя. Для использования параметра в формуле, надо указать его обозначение. Обозначение параметра имеет следующий вид: латинская буква «P» и следующий за ней индекс параметра. Например, для параметра с индексом 500 обозначение будет «P500». Для вставки обозначения в выражение пользователь может пользоваться диалогом выбора параметров. В выражениях можно использовать:
· арифметические операции: «+», «-», «*», «/», «^».
· операции сравнения: «=», «<>», «>», «<», «>=», «<=».
· логические операции: «AND», «OR», «NOT».
· математические функции: «abs», «atn», «cos», «exp», «int», «log», «sgn», «sin», «sqr», «tan».
· Операторы приоритета «(», «)».
Строковые значения в выражениях должны заключаться в одинарные кавычки.
Пример выражения: «P100*1000/(P1300*P1400)».
Для нахождения значения параметра требуется построить последовательность вычислений параметров (если такая существует) по которой можно найти заданный параметр. Эта последовательность (или по-другому путь решения) должна быть такой, чтобы к моменту проведения вычислений по каждой зависимости значения всех необходимых параметров, использующихся в этой зависимости, были уже известны.
Поиск пути решения для параметра, производится в функции FindPath. Аргументом функции является неизвестный параметр электродвигателя. Результат работы функции – значение true, если для параметра путь решения успешно найден и значение false в противном случае.
Рассмотрим работу этой функции. Пусть в качестве аргумента ей передан параметр с индексом I.
Из базы данных выбирается зависимость по которой можно определить данный параметр. При этом учитывается заданный метод решения.
При наличии условия на использование зависимости. Для каждого неизвестного параметра в условии запускается процедура нахождения пути решения и процедура расчета. Если все параметры в выражении условия известны, то производится вычисление этого выражения. В случае когда результатом расчета выражения является 0, либо когда не удается определить хотя бы один из параметров в выражении, рассматриваемая зависимость отвергается и производится поиск новой зависимости для параметра с индексом I.
Для каждого параметра, используемого в зависимости, выполняются следующие проверки:
1. Если значение параметра известно (т.е. параметр входит в состав исходных данных), то переходим к просмотру следующего параметра.
2. Если этот параметр просматривался ранее (т.е. для него уже вызывалась функция FindPath), но путь решения пока не найден, то данная зависимость является обратной к одной из уже рассмотренных и на текущем этапе должна быть отвергнута.
3. Если этот параметр просматривался ранее, и путь решения для него уже найден, то для него и для всех параметров, участвующих в его нахождении помечается порядок расчета после параметра с индексом I.
4. Если параметр неизвестен и не был рассмотрен ранее, то происходит рекурсивный вызов функции FindPath для этого параметра. Если результатом работы функции будет значение true, то переходим к просмотру следующего параметра, если false – берем другую зависимость.
Если эти проверки были выполнены, для каждого параметра, то зависимость включается в путь решения и функция возвращает значение true.
В случае, когда не удается подобрать зависимость для нахождения параметра с индексом I, результатом работы функции будет значение false.
При запуске программа производит попытку подключения к базе данных. Подключение происходит посредством интерфейса ADO. Параметры строки связи для подключения хранятся в секции «[DataBase]» файла настроек Options.ini, который находится в рабочем каталоге программы. В этом файле значение ключа «Data» определяет местонахождение базы данных, значение ключа «Provider» определяет поставщика Базы данных и параметры подключения. В случае, когда доступ к базе данных защищен паролем, при запуске программы пользователю предлагается ввести пароль. Если подключение к базе данных не было произведено, то после запуска программы пользователю будет доступен только один пункт главного меню – «Настройка программы». В диалоге Настроек программы пользователь может указать все необходимые параметры строки связи и выполнить соединение с базой данных.
Из главного меню «Справочники» можно вызвать редакторы для таблиц Units, Tables, Groups и Methods.
Редактирование таблиц методов вычислений и групп параметров происходит непосредственно в редакторе. Имена методов и групп параметров должны быть уникальными. Метод с именем «Основной метод» удалить или изменить нельзя.
Добавление таблицы происходит с помощью диалога создания таблицы, в котором пользователь указывает, уникальное наименование таблицы, имена и типы полей таблицы. Структуру, созданной таблицы изменить нельзя.
Редактирование единиц измерений происходит через диалог, показанный на рисунке 2.3.
Рисунок 2.3 – Диалог редактирования единицы измерения
Пользователь указывает уникальное наименование, код, который используется при выводе в отчет, тип единицы измерения: целый, действительный или строковый. Для единиц измерений целого и действительного типа, требуется указать предельные значения, которые могут принимать параметры, относящиеся к данному типу. Для действительного типа необходимо также необходимо указать количество знаков после запятой. Если выбран строковый тип, то пользователь в редакторе таблицы Enums должен указать все строковые значения, которые могут принимать параметры, относящиеся к данной единице измерения.
В пункте «Параметры» главного меню программы находятся подпункты, соответствующие группам параметров. При выборе одного из подпунктов, открывается диалог редактирования значений параметров данной группы. В этом диалоге все параметры располагаются по алфавиту на нескольких вкладках. При вводе/выводе значений десятичных и целых параметров учитываются максимальные и минимальные значения параметров, а также количество знаков после запятой. Для ввода строковых значений параметров используются выпадающие списки. Внешний вид диалога изображен на рисунке 2.4.
Рисунок 2.4 – Диалог редактирования значений параметров
Имеется возможность сохранения / загрузки значений параметров в файл. Эти операции осуществляются через соответствующие пункты меню «сохранить» и «загрузить». При сохранении значений параметров в файл записывается также индекс параметра, группа, наименование и единица измерения. При загрузке значений параметров эта информация о параметре, полученная из файла сравнивается с информацией, хранящейся в базе данных. В случае несоответствия пользователю предлагается автоматически внести исправления в файл и продолжить операцию загрузки значений, пропустить текущий параметр либо отменить операцию загрузки параметров. В диалоге настройке программы можно выбрать одно из этих трех действий, которое будет автоматически выполняться, не выводя пользователю предупреждений.
Для просмотра и редактирования информации о параметрах двигателя нужно выбрать подпункт настройка параметров в пункте настройка главного меню программы. В отрывшемся редакторе можно выбрать параметр для модификации, либо создать новый параметр. Информация о параметре вводится в диалоге редактирования параметров, изображенном на рисунке 2.5 Пользователь указывает в диалоге уникальный номер параметра, уникальное наименование параметра, выбирает единицу измерения и группу параметра. Также можно ввести описание для параметра и его текущее значение.
Рисунок 2.5 – Диалог редактирования параметра