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

advertisement
681450766
1
Руководство пользователя GArchive
Введение
Программа создана для ведения архива геодезических работ.
Программа работает на Windows-98 и Windows-XP и не требует наличия
дополнительных системных компонент.
Архив ведется как база MSAccess
Основными записями базы являются Договора, Организации, Обьекты, Заказчики.
Удобные формы поиска/фильтрации записей.
Конфигуратор позволяет создавать/удалять поля записей, определять новые атрибуты
поиска/выборки договоров из базы, а также расширять базу путем создания новых типов
записей.
Установка программы
Установка производится при запуске GArchiveSetup.exe и осуществляется по умолчанию в
следующую директорию:
После установки на рабочем столе создается ярлык
.
При переустановке программы все программные модули и файлы шаблонов
перезаписываются новыми, последними версиями.
681450766
2
Запуск программы
При запуске программы через ярлык программа запрашивает имя проекта (GArchive –
это умалчиваемое имя проекта):
Данные проекта находятся в директории <Директория Установки>\Data\<Имя Проекта>
и состоят из Access базы <Имя Проекта>.mdb. Эта база создается путем копирования из баз
шаблонов <Директория Установки>\Template\*.mdb. Шаблон rus_template.mdb содержит
русский, а ukr_template.mdb вариант базы.
Контекстное меню формы содержит следующие сервисные команды:
Отладка
Сбросить
пользовтеля
Опция дампирования SQL команд
установки Сброс настроек программы к умалчиваемым значениям
Установить настройки
Установка настроек программы из файла
Очистить данные
Удалить файл проекта
Удаление все данных проекта (Настройки при этом остаются)
Удалить файл ранее созданного проекта. При этом база
проекта вновь создается из шаблона
При запуске программа проверяет наличие ключа активации и в случае его отсутствия
работает в демо-режиме. В демо-режиме, только первые 20 записей договаров добавляются
нормально.
После регистрации (путем получеиии у автора кода активации) ограничения деморежима исчезают.
681450766
3
Как работать
Интерфейс Garchive является списочной формой по Договорам и имеет следующий вид:
Кроме списочных форм (немодальных), программа поддерживает формы единичных
объектов.
681450766
4
Списочные формы
Для обзора объектов базы предназначены списочные формы. Списочная форма состоит
из командной панели находящейся в верхней части формы. Командная панель состоит из
инструмента редактирования, инструмента фильтра поиска и дополнительных команд. В
средней части формы находится таблица списка объектов, а в нижней строка состояния.
Фильтр поиска работает по выбранной колонке списка. Колонка выбирается щелчком
по заголовку. Выбор можно изменить щелчком по заголовку другой колонки. Для выполнения
операции поиска активируйте поле поиска и наберите начальные символы искомой строки.
Список автоматически обновляется после каждого символа введенного в строку поиска.
Также щелчок по заголовку колонки меняет его цвет на синий. Это значит, что список
группируется по алфавиту (возрастанию) указанных данных в выбранной колонке. Повторний
щелчок по заголовку колонки перекрашивает название в коричневый цвет и размещает записи
в обратном порядке.
Допускает ввод/корректировку прямо в поля формы.
Кроме того можно использовать команды инструмента редактирования, и затем
заполнить поля единичной формы.
Чтобы вывести форму на экран щелкните на иконку
(для новой записи) или
выделить нужную строку и щелкнуть на
(для корректировки существующей). Такого
же результата можно добиться при
двойном щелчке по элементу списочной
формы.
Кроме того возможно прямо вводить данные в ячейки таблицы (a’la Excel). Чтобы
вводить данные прямо в ячейки таблицы выделите нужную ячейку кликом мыши или
стрелками клавиатуры, затем введите данные. Для перемещения выделения влево по строке
используйте клавишу клавиатуры Tab (вправо Shift+Tab). Добавить строку можно кнопкой
Insert. Пустая строка появится над выделенной. Также строка с пустыми ячейками образуется
снизу в случае перемещения выделительной строки ниже последней строки.
Текущий элемент удаляется комбинацией клавиш Ctrl/Del.
С помощью всплывающего меню, которое вызывается, правой
кнопкой мыши, вы можете посмотреть статистику столбцов, настроить
колонки и вставить таблицу в Microsoft Excel. Еще можно перемещать
колонки мышкой, как значки на рабочем столе. Удерживать нужно за
название колонки.
Над элементами списочной формы допустимы групповые
операции (например удаление). Для выбора нужно использовать стандартные Window
комбинации Ctrl/<Левая кнопка мыши>-одиночный выбор, Alt/<Левая кнопка мыши>-выбор
диапазона, Ctrl/A-выбор всех. Расположение формы, порядок и ширина колонок, а также
порядок сортировки запоминаются программой.
681450766
5
Формы для единичных объектов
Такая форма появляется при использовании инструмента редактирования или при
двойном щелчке по элементу списочной формы (режим редактирования). Видимостью полей
на форме, а также порядком их размещения, можно управлять пользуясь конфигуратором
версией программы. Расположение формы запоминается программой.
681450766
6
Типы полей данных
База данных состоит из записей, которые состоят из полей следующих типов:
Тип
Координата
Высота
Угол
Родительский тип
Double
Double
Double
Длина
Строка
Вещественное
Целое
Логическое
Дата
Ссылка
Double
String
Double
Integer
Boolean
Date
Integer
Папка
String
Blob
Blob
Примечание
Значения углов вводятся в одно поле, отделяя
градусы от следующих минут и последующих
секунд пробелом.
Поля типа Ссылка имеют вид
<Название ссылки> где кнопка справа служит
для получения списка возможных значений.
Кроме того, этот список можно получить
комбинацией клавиш Alt/<Стрелка вниз>.
Клавишей <Стрелка вниз><Стрелка вверх>
можно менять значение ссылки.
При двойном щелчке по полю активируется
форма для изменения значения ссылаемого поля.
Директория на диске вида С:\DATA\Drawing1\1.
При двойном щелчке по полю активируется
настреный на данную деректорию Explorer.
Текст с разделителями
Формат отображения полей можно изменять командой Сервис- Настройки настроив
поля следующей формы:
681450766
7
Конфигуратор
Это задача Kdesign.exe которая запускается ярлыком
для настройки следющую схему базы данных:
и визиализирует
Слева на форме понель с деревом типов. Можно расширять схему базы путем создания
новых типов.
Справа вверху командные кнопки для добавления/удаления/изменения порядка полей, а
также название поля для идентификации данного типа записи(для записи DOGOVORY это
NAME).
Ниже справа панель со списком полей данного типа(закладка Поля). Можно изменять
поля типа при добавлении/удалении/изменении характеристик поля.
При переключении на закладку Скрипты становится доступной страница VB скриптов
модифицирующих поведение программы:
681450766
8
Сам обьект является умалчиваемым для скрипта.
Пример: value("DATA_DOGOVORA")=now
Для именования полей можно пользоваться не английскими именами.
Пример: value("Дата работ")=now
Кроме него скрипту известен обьект-коннектор ocon(интерфейс Iproject).
Функция OnLoad вызывается при загрузке единичной формы. Параметр pc0 это панель
на которой размещаются поля единичной формы.
Функция AfterInsert вызывается пoсле создания новой записи.
Функция BeforePost вызывается перед записью в таблицу.
Функция BeforDelete вызывается перед удалением записи из таблицы.
Для создания собственных кнопок-обработчиков нужно определить функцию с именем
Кнопка_заголовок_кнопки.
Внизу справа список записей базы данного типа.
681450766
9
Обьектная модель
Ниже приведена обьектая модель системы достаточноя для создания собственных
скриптов.
Обьект интерфейса IProject
Обьект-коннектор к базе данных.
property ACatalog:variant
Возвращает обьект каталог типов записей(Icatalog)
property Log:variant
Возвращает обьект выполняющий логирование сообщений(IMessWindow)
property AdoCon:variant
Возвращает обьект типа AdoDb.Connection для базы
Function GetBaseVal (aSql: BSTR;aDef:varinat;): variant;
Возвращает результат выполнения запроса aSql или aDef при его отсутсвии(см. скрипт
Договара)
Function GetBaseValPar (aSql: BSTR;aParams:variant;aDef:varinat;): variant;
Возвращает результат выполнения запроса aSql с параметрами aParams или aDef при его
отсутсвии(см. скрипт Договара)
Обьект интерфейса IMessWindow
Обьект выполняющий логирование сообщений
procedure LogEvent(acap:string;atext:string;aElevel:integer)
Выдает в окне логирования с заголовком acap, текст atext, где aElevel урвень сообщений.
Обьект DELOKX.Catalog
Основой системы является обьект DELOKX.Catalog, который существует в единственном
экземпляре. Обьект имеет следующие методы и свойства:
property Connection:variant
Подключение к базе.
property Tables:variant
Возвращает обьект-перечислитель таблиц базы. Элементами его будут обьекты интерфейса
типа IDTable.
property Fields[apronum:variant]:variant
Список описаний полей для типа apronum. Описания полей представлены как TClientDataSet,
а данная функция возвращает ее свойство Data.
Function getTypes(afather: Integer): variant;
Возвращает список пар propnum=имя таблицы
property.Types[aname: variant]: variant;
Возвращает обьект интерфейса типа IDObjects (см. ниже)
Пример: oorgs:=ocat.types['Организации']; или oorgs:=ocat.types[41];
property MySReport:variant
Обьект генератора простых отчетов.
Function Execute(const CommandText: WideString): OleVariant;
681450766
10
Аналог Connection.Execute
Procedure Refresh;
Обновить
property ActiveConnection:variant
Синоним Connection подключения к базе
function myTypeInfo(apropnum: OleVariant): TDTypeRec;
Возвращает подробное описание типа apropnum, где
TDTypeRec = class
propnum: integer;
//номер типа
pfather:integer;
//номер родительского типа
rusname : shortString;
//имя
engname : shortString;
//english имя
tablename:shortstring;
//имя таблицы
Proptip: integer;
//номер типа
haspropnum:boolean;
//наличие поля PROPNUM в табдице
propnumix:integer;
//индекс поля PROPNUM в табдице
cdsfields: TClientDataSet; //описание всех полей
end;
Обьект интерфейса IDObjects
Представляет список обьектов некоторого типа.
property Fields:variant
Возвращает обьект-перечислитель описания полей. Доступ к полю возможен по номеру поля и
по его русскому или английскому имени. Поскольку описания полей представлены как
TClientDataSet, то сначала ищется нужная запись, а затем возвращается ее значение в виде
Array(Array(‘Название’,…),Array(‘Тип’,…)…, Array(‘Видимое’,…))
property Objects:variant
Возвращает динамический перечислитель (DynaCollection) обьектов. Доступ к обьекту
возможен по номеру в коллекции и по ключу.
function.Locate(avalues: OleVariant; const afields: WideString): OleVariant;
Если удалось найти обьект у которого поля afields имеют значения avalues возвращается
обьект интерфейса типа IDObject (см. ниже) иначе Unassigned
property Name: OleVariant
Возвращает название типа
property.Value[aname: OleVariant]: OleVariant;
Возвращает результат скриптовой функции aname.
Обьект интерфейса IDObject
Представляет обьект некоторого типа.
property Fields:variant
Возвращает обьект-перечислитель полей. Поля представлены как обьекты интерфейса IField.
681450766
11
procedure Post;
Фиксирует в базе состояние обьекта.
property.Value[aname: OleVariant]: OleVariant;
Возвращает/устанавливает значение поля или скриптовой функции aname.
Вместо этого свойства можно иметь доступ к полям/скриптовым функциям следующим
образом: professia=oIspolnitel.Профессия
Причем значения ссылочных полей при выборке заменяется на строку идентифицирующую
соответствующую запись, а при вставке строка вносится в базу и заменяется корректной
ссылкой.
Обьект DELOKX.RecordsetProps
Является оболочкой для обычного Adodb.Recordset и кроме свойств последнего имеет
следующую обьектную начинку:
property DataSet:long;
Связывает даный обьект с его Delphi TAdoRecordset собратом.
procedure Def4Defs;
Устанавливает умалчиваемые значения для DataSet.
property Fields:variant
Возвращает обьект-перечислитель полей. Поля представлены как обьекты интерфейса
IField.
function IsReference(afname: OleVariant): WordBool;
Определяет является ли поле afname ссылкой (ftReference) на другой обьект.
procedure SetNewKey;
Устанавливает значение ключа для новой записи DataSet.
property FilterExpr: WideString
Возвращает строку типа Ключ=Значение для данной записи.
property keyNames: WideString
Возвращает имена ключевых полей.
property KeyValues: OleVariant
Возвращает значения ключевых полей.
property RusKeyNamesWideString
Возвращает имена ключевых полей по русски.
procedure SetVisibility;
Устанавливает видимость полей записи DataSet в соответствии с описанием.
function delete1: Integer;
Удаляет текущую запись из базы.
property Parent: OleVariant
681450766
12
Возвращает обьект типа DELOKX.Catalog.
property OrderNames:WideString
Возвращает имена полей для ORDER BY.
function Conv2Sql(const asql: WideString): OleVariant;
Руссифицирует asql замения имена полей в списке выборки на конструкции вида
fieldname AS ‘русское имя’
function IsCollection(afname: OleVariant): OleVariant;
Определяет является ли поле afname коллекцией
function findfield(afname: OleVariant): OleVariant;
Возвращает обьект интерфейса IField.
property Editor1:Tform
Позволяет устанавливать/определять тип формы для редактрования единичного обьекта.
property Propnum:Variant
Позволяет устанавливать/определять тип записей даного набора.
Обьект интерфейса IField
Является оболочкой для обычного Adodb.Field.
Причем значения ссылочных полей при выборке заменяются на строку идентифицирующую
соответствующую запись (функция GetPropName), а при вставке строка вносится в базу и
заменяется корректной ссылкой.
Кроме свойств Adodb.Field имеет следующую обьектную начинку:
property _Field:Variant;
Возвращает начальное Adodb.Field.
function edit1(akey: Integer; finsert: WordBool; fthisrec: WordBool): WordBool;
Вызывает встроенный или определенный пользавателем редактор свойств записи на которую
ссылается данное поле.
function select1(aFilter: OleVariant): OleVariant;
Вызывает встроенный редактор списка значений данного поля.
function GetPropName(aref: OleVariant): OleVariant;
Возвращает название данного поля. В случае коллекции это будет список названий.
property Propnum:Integer
Возвращает иомер типа обьекта на который ссылается данное поле.
property mvalue:Variant
Позволяет выбирать изменять значения внутренего обьекта _Field.
function IsCollection: WordBool;
Определяет является ли поле коллекцией
681450766
13
function IsReference: WordBool;
Определяет является ли поле ссылкой
property EngName: WideString
Возвращает имя поля базе.
property Default: Variant
Возвращает умалчиваемое значение поля.
property mobj: Variant
Возвращает обьект интерфейса типа IDObject для данного поля поля.
property Count:Integer
Возвращат число элементов в коллекции.
property Item[Param1: OleVariant]:OleVariant
Возвращат Param1 элемент коллекции.
procedure Append(Param1: OleVariant);
Добавление элемента в коллекцию.
procedure Delete(Param1: Integer);
Удаление элемента из коллекции.
procedure Clear;
Очистка коллекции.
Download