Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Программный комплекс “STOCK” версия 6.0

Руководство по настройке на прикладную задачу

Гродно

01.09.2009

I. Инсталляция ПК “Stock”..................................................................................................... 4

1. Дополнительное программное обеспечение..................................................................... 4

2. Инсталляция......................................................................................................................... 4

II. Идеология хранения данных в “STOCK”.......................................................................... 6

1. Объекты и их атрибуты....................................................................................................... 6

2. Структура базы “STOCK”.................................................................................................. 7

III. Этапы разработки конфигурации на прикладную задачу........................................ 11

1. Первый вход в программу................................................................................................ 11

2. Разработка структуры базы для новой конфигурации.................................................. 12

Категории атрибутов......................................................................................................... 12

Атрибуты............................................................................................................................ 12

Типы объектов.................................................................................................................... 13

НЕ нашли? Не то? Что вы ищете?

3. Управления данными........................................................................................................ 15

Пользовательские формы - обзор..................................................................................... 15

Пользовательские формы - разработка............................................................................ 17

Советы по составлению запросов.................................................................................... 21

Разработка операций и отчетов........................................................................................ 22

Разработка скриптов.......................................................................................................... 30

Разработка схемы действий.............................................................................................. 30

Разработка меню пользователя......................................................................................... 31

Настройка пользователей.................................................................................................. 32

Установка обновлений...................................................................................................... 33

Информация о конфигурации.......................................................................................... 33

IV. Описание объектов “STOCK”...................................................................................... 34

1. Объект StockLib.................................................................................................................. 34

2. Объект StockReport............................................................................................................ 37

3. Объект StockOper............................................................................................................... 39

4. Объект StockDataSet.......................................................................................................... 40

5. Объект StockForm............................................................................................................... 41

6. Объект frmProgress............................................................................................................. 43

V. Stock-Agent......................................................................................................................... 45

1. Способ запуска................................................................................................................... 45

2. Настройка............................................................................................................................ 45

3. Другие возможности.......................................................................................................... 46


 

Права.

Данный программный продукт защищен всеми правами от копирования и использования без согласия автора. г. Гродно, *****@***ru 09.

Введение.

“STOCK” является специализированным программным комплексом (далее ПК), который можно относительно быстро и просто по сравнению с профессиональными программными средами разработки (Delphi, FoxPro, Visual C++ и т. п.) настроить для ведения различных задач, связанных с учетом и анализом значительных объемов информации, хранимых в базе данных (далее БД). Это - бухучет, складской учет и т. п.. “STOCK” позволяет при разработке прикладной задачи отойти от связанного с этим решения низкоуровневых задач. Например, программирование интерфейсных элементов и связей между ними, решение задач управления сервером баз данных и т. п. Все подобные вещи уже заложены в системном ядре ПК и разработчик использует уже готовые решения. Ему остается сосредоточиться исключительно на разработке алгоритма прикладной задачи (хранение и управления данными).

Условно ПК “STOCK” можно разделить на три составных части (потому он и называется программным комплексом) :

§  База данных. В качестве БД используется SQL сервер “Sybase SQL Anywhere” версии 5.5 или Adaptive Server Anywhere версии 9.0. В БД хранятся внутренние системные объекты, которые предоставляют возможности по разработке структуры хранимой информации, текущие настройки на прикладную задачу и непосредственно оперативные данные( данные с которыми работает конечный пользователь).

§  Интерпретаторы языков VBScript (Visual Basic Script) или JScript (Java Script) версии 3.0 и выше фирмы Microsoft, которые входят в стандартную поставку Win32. Используются для получения отчетов и для расширения функциональных возможностей программы. Какой из этих скриптовых языков выбрать - дело вкуса программиста.

§  Собственно сам программный модуль stock. exe, который используется как для разработки, так и для непосредственной работы конечного пользователя в уже настроенной задаче.

Подробно каждая из этих частей будет описана выше.

Для самостоятельной настройки (конфигурировании) “STOCK” на прикладную задачу программист должен внимательно изучить данное руководство. Кроме того, необходимо обладать знаниями языка структурированных запросов SQL и одним из скриптовых языков. VBScript или JScript. В плане простоты и времени изучения VBScript выглядит предпочтительнее и, как правило, знаний в пределах школьного курса вполне хватает для придания прикладной задаче достаточных функциональных возможностей.

Также надо понимать, что “STOCK” является всего лишь удобным инструментом (и не более) для программиста, чтобы облегчить решение соответствующих задач. Так же, как и гвоздь с помощью удобного молотка можно заколотить в стену быстро и потом долго любоваться сделанной качественно работой. И наоборот, забить еще быстрее, но криво и затем долго пытаться выдернуть его из стены.

I.  Инсталляция ПК “Stock”

1. Дополнительное программное обеспечение.

§  SQL сервер “Sybase SQL Anywhere” версии 5.5.03 или Adaptive Server Anywhere версии 9.0 (в зависимости с какой версией базы данных будете работать). Устанавливается вместе инсталляцией в ограниченном виде без дополнительных утилит(только локальный движок базы данных). Для самостоятельной разработки желательно иметь полный набор.

§  интерпретаторы языков VBScript и JScript версии 3.0 и выше фирмы Microsoft. VBScript и Jscript. Они установлены в ОС Windows 2000/XP по умолчанию. В ОС Windows NT, Windows 95,98 они уже будут установлены в случае, если на компьютере установлен Internet Explorer версии 4.0 и выше.

§  Borland Database Engine (BDE). Желательно версию BDE ставить поновее (5.01). Устанавливается вместе инсталляцией.

2. Инсталляция

Автоматическая.

Для установки ПK на компьютер необходимо запустить файл Setup*.exe и последовательно выполнить все шаги инсталляции. Обязательно указать при этом правильные реквизиты организации.

Ручная.

После того, как проинсталлирован Sybase SQL Anywhere версии 5.5.03 или Adaptive Server Anywhere версии 9.0 и запущен локально или на центральном компьютере SQL-сервер с базой Stock(файлы Stock. db или Stock9.db), можно приступать к настройке конкретной машины, на которой будет работать задача.

1. 


В первую очередь необходимо настроить источник данных в ODBC. В окне настройки источника данных ODBC для этой базы пропишите необходимые параметры. Пример для тестовой базы Sybase SQL Anywhere версии 5.5.03 показан на рисунке. Имя источнику данных дайте на свое усмотрение.

2.  Войти в BDE и удостовериться, что Алиас “StockSample” прописался, значение настроек этого алиаса не имеют значения.

3.  Перепишите в каталог \Program Files\Stock локальной машины или на сетевой диск файлы из архива stock. zip в точности сохраняя структуру каталогов ..\Stock\… . Файлы с базой данных (stock. db и stock. log) из каталога \Db к этому моменту должны быть уже перенесены в выбранное вами место и запущены.

4.  На рабочем столе машины создайте ярлык для запуска программы, где в поле “Объект” пропишите, следующую команду:

-  "..\Stock\stock. exe" "..\Stock\Sample\". Параметр запуска "..\Stock\Sample\" является рабочим каталогом, где хранятся настройки на текущую конфигурацию.

-  а в поле “Рабочий каталог”: "C:\Program Files\Stock\Sample\". Рабочий каталог должен быть индивидуальным для каждого пользователя, даже, если программа установлена на сетевом диске. В нем хранится файл stock. cfg с индивидуальными настройками интерфейса(размеры окон, колонок и т. п.) пользователя.

5  В файле stock. ini измените значения параметров из секции [System]. Строковый параметр Alias должен иметь такое же значение, как вы назвали свою базу в ODBC. Например, StockSample. Строковому параметру AppName присвойте название разрабатываемой вами конфигурации. Это название появится при входе в программу в заголовке окна программы.

6  Для первого входа в программу наберите код пользователя 1 и пароль – “admin”.

Если на компьютере имеется несколько конфигураций, то они все запускаются одним файлом stock. exe, который находится в каталоге “..\Stock\”. И в зависимости от параметра с которым происходит запуск (каталог, в котором находится требуемая конфигурация), подключается та или иная прикладная задача. Программу можно запускать со вторым параметром, в котором указывается, подключаемый файл меню, если их несколько. По умолчанию, берется файл stock. mnu из каталога, где находится текущая конфигурация.

Пример ярлыка для запуска:

Объект: S:\STOCK\STOCK. EXE "S:\STOCK\SAMPLE\" "S:\STOCK\SAMPLE\stock. mnu"

Рабочая папка: "C:\Program Files\Stock\OrderBuh"

II.  Идеология хранения данных в “STOCK”.

1. Объекты и их атрибуты.

Прежде всего, необходимо понять в каком виде данные разрабатываемой вами прикладной задачи будут храниться в базе. Условно информацию, с которыми предполагается работа в прикладной задаче, можно представить как множество объектов, каждый из которых характеризуется наличием у него каких-то свойств (далее я буду именовать их атрибутами). Например, в задачах складского учета, присутствуют данные о товарах, хранимых на складе. Товар - это ничто иное, как объект, который может иметь атрибуты “Цена”, “Дата поставки”, “Место хранения” и т. п. Однако, понятие “Товар” является довольно общим и для того, что бы его конкретизировать данный тип объекта можно разбить на подтипы: компьютеры, оргтехника и т. д.. Компьютеры можно охарактеризовать атрибутами “Скорость”, “Объем памяти” и т. п., а оргтехнику – атрибутом “Вид оргтехники”. (См. рис.) Таким образом, тип объекта “Товар” является обобщающим (иными словами родительским или абстрактными) для подчиненных типов и наделяет их общими свойствами. Т. е. и компьютеры, и оргтехника кроме того, что могут иметь какие-то свои атрибуты, наделены атрибутами родительского типа: “Цена”, “Дата поставки”, “Место хранения”.

 

 

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

Как было сказано выше, атрибут, а именно его значение, служит для описания какого-то свойства объекта. Эти значения могут быть строго определенного типа (денежный, текстовый или другой), об этом подробнее будет рассказано далее. Кроме того, атрибуты могут принимать значения так называемого объектного типа, т. е. ссылаться на другие объекты в базе. Например, в базе существует объект с именем “Факс Epson” типа “Оргтехника”, который имеет атрибут “Место хранения” со значением ссылающимся на другой объект в базе с именем “Склад №3” и типом “Склад”. Объект

 

“Склад №3” в свою очередь может имеет атрибуты “Номер склада” “Адрес” “Время работы” и т. п.

Бывают случаи, когда для характеристики какого-то свойства объекта достаточно просто наличие или отсутствие атрибута, а не его конкретное значение. Например, в задаче складского учета нам хотелось бы знать имеет ли какой-то товар гарантийное обслуживание или нет. На первый взгляд, кажется, что достаточно для всех товаров определить атрибут “Имеет гарантию”, и если товар гарантийный, то присваивать ему данный атрибут, в противном случае товар данного атрибута иметь не будет. В принципе такая возможность в программе существует, но это не лучшее решение. Можно сделать по другому. Назвать атрибут как “Срок гарантии” и, если товар имеет гарантию, то присваивать ему этот атрибут с конкретными значениями(год, два, три и т. д), в противном случае - нет. Таким образом, по одному атрибуту мы сможем узнать не только о наличии или отсутствии гарантии у товаров, но и о её длительности.

На этапе проектирования перед разработчиком может встать выбор, в каком виде лучше описать какую-то сущность: в виде множества объектов различных типов или одним типом объекта и атрибутом. Вернемся к примеру с квалификацией товаров. Тип “Оргтехника” имеет атрибут “Вид оргтехники”, который может принимать значения: факс, ксерокс и т. п. А можно было бы тип объекта “оргтехника” представить двумя дочерними типами: факс, ксерокс. Тогда в БД могут существовать объекты разных типов, относящихся к оргтехнике. И в первом, и во втором случаях мы гарантированно сможем получить информацию по оргтехнике, например, о количестве на складе факсов и ксероксов. Тогда какой из этих вариантов выбрать? Если вы уверены, что в будущем по оргтехнике никакая другая информация кроме, как ее вид, не понадобится, то стоит остановится на варианте с соответствующим атрибутом. Если такой уверенности нет и, возможно, когда-то понадобится дополнительная информация, которая у каждого типа оргтехники может быть своя, то второй вариант выглядит предпочтительнее.

2. Структура базы “STOCK”.

Как же на практике в ПК “STOCK” реализуется описанная выше идеология. Для того, чтобы понять это, необходимо ознакомиться со структурой базы: основными таблицами и связями между ними). Схема БД с этими таблицами приведена на рис.1. Ниже приведено подробное описание этой схемы.

1.  Таблица Attr_Category. Служит для удобной группировки атрибутов по функциональному назначению.

2.  Таблица Attributes. Хранит список всех атрибутов, которые можно назначать объектам. При этом один и тот же атрибут может быть присвоен разным типам объектов. Таблица имеет следующие поля:

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

Attr_Gateg (внешний ключ)Категория атрибута. Ссылается на поле с тем же названием в таблице Attr_Category и указывает к какой группе атрибут относится.

Attr_Type – Определят какой тип может иметь значение атрибута: string, integer, float, money, date, object.

Attr_Measure – Единица измерения атрибута (грамм, метр и т. п.). Заполнение этого поля не является обязательным.

Pred_Value – В этом поле, если необходимо, можно задать через точку с запятой(;) строго предопределенные значения, которые может принимать атрибут. Например,


для атрибута “Тип клиента” это поле примет следующий вид: резидент;нерезидент. Количество этих значений ограничено десятью. Для атрибутов объектного типа можно указать тип объекта, который он может принимать. При этом в последующем вы не сможете присвоить данному атрибуту объект не являющийся потомком этого типа (система выдаст ошибку).

ID – Уникальный идентификатор атрибута.

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

3.  Таблица TypeObjects описывает все возможные типы объектов, которые могут существовать в базе, а также их иерархию. И имеет следующие поля:

ID_Type (первичный ключ) – Уникальный идентификатор типа

Name – Наименование типа.

Parent (внешний ключ) – Ссылка на тип объекта, который для данного типа является родительским.

Image – Изображение в виде формата ICO, соответствующее типу объекта. Может быть пустым.

4.  В Таблице TypeAttr каждому типу объекта назначаются из таблицы Attributes атрибуты, которыми может обладать объект. И имеет следующие поля:

ID_Type (первичный ключ, внешний ключ) – Ссылка на поле с тем же названием в таблице TypeObjects.

Attr (первичный ключ, внешний ключ) – Ссылка на поле с тем же названием в таблице Attributes.

Require – Может иметь только два значения. 1 – указывает на то, что атрибут является обязательным для объектов данного типа. 0 – необязательным, т. е. может отсутствовать у объектов данного типа.

Once_Multi – Может иметь только два значения. 0 – атрибут у объектов данного типа может встречаться только один раз. 1 – атрибут может встречаться более одного раза.

ValueDef – значение атрибута по умолчанию.

И, наконец, две таблицы, в которых хранится вся оперативная информация прикладной задачи.

5.  В таблице Objects в виде записей хранятся объекты. Например, товары, склады, поставщики и т. д. Структура полей следующая:

Inv_N (первичный ключ) – Уникальный идентификатор объекта.

ID_Type (внешний ключ) – Указывает к какому типу относится данный объект и ссылается на поле с тем же названием в табл. TypeObjects.

Name – Наименование объекта. Например, для объекта типа товар – это может быть “ксерокс Epson 6L”. Обязательно для заполнения.

DateRecieve (индексное поле) – Дата создания объекта. Обязательно для заполнения. Какой смысл должно нести данное поле для конкретного типа объекта., разработчик может выбрать сам. Например, у товаров это может быть дата получения на склад.

User_ID (внешний ключ) – Код пользователя, ссылается на поле с тем же названием в табл. Users. Можно использовать для регистрации каким пользователем был вставлен или изменен объект.

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

6.  В таблице Objects_Attr хранятся все атрибуты объектов из таблицы Objects и она имеет следующую структуру:

Inv_N (первичный ключ, внешний ключ) – Идентификатор объекта из табл. Objects, которому принадлежит атрибут.

Attr (первичный ключ, внешний ключ) – Ссылка на поле с тем же названием в табл. Attributes.

DateBegin (первичный ключ) – Дата с которой действует атрибут. Обязательно для заполнения. Какой смысл должно нести значение этого поля для объектов выбирает разработчик прикладной задачи. Например, пусть в БД имеется объект “Валюта USD” и он обладает несколькими атрибутами “Курс к нац. валюте” типа float. Тогда это поле можно использовать для задания даты, с которой действует определенный курс.

DateEnd – Данное поле пока оставлено для совместимости с ранними версиями “STOCK”, поэтому использовать его не рекомендую.

ValString, ValInt, ValFloat, ValMoney, ValDate – В зависимости от типа атрибута (string, integer, float, money, date) в соответствующем поле хранится значение атрибута.

ValObject (внешний ключ) – Если тип атрибута - object, то в этом поле хранится его значение, которое ссылается на какой-либо объект в табл. Objects (поле Inv_N).

User_ID (внешний ключ) – Код пользователя, ссылается на поле с тем же названием в табл. Users. Можно использовать для фиксирования, кем был вставлен или изменен атрибут.

III.  Этапы разработки конфигурации на прикладную задачу.

Для лучшего понимания данный материал будет излагаться на примере конфигурации “Распоряжения бухгалтерии”.

1. Первый вход в программу.

При входе в программу в заголовке главной формы будет стоять название, взятое из значения параметра AppName в stock. ini. В правом нижнем углу формы отображается имя текущего пользователя. В центре формы размещается текст, взятый из значения параметра Name секции [Organization] в stock. ini. Назначение последнего параметра состоит только в выводе текста на главную форму.


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

Stock предоставляет возможность доступа к сторонним базам данных и работы с ними непосредственно из программы также, как и с “родной” базой. Единственное, что вы не сможете сделать в сторонней БД – это изменить данные. Для подключения к БД необходимо:

1)  Чтобы она была обязательно прописана в BDE (БД, прописанные в ODBC автоматичеки создаются и в BDE).

2)  В файле stock. ini добавить секцию [Alias_NAME] с параметрами подключения к БД. NAME необходимо заменить на нужное название. Например,

[Alias_DEMODATA]

OPEN MODE=READ/WRITE

SCHEMA CACHE SIZE=8

SQLQRYMODE=SERVER

LANGDRIVER=db866ru0

SQLPASSTHRU MODE=SHARED NOAUTOCOMMIT

SCHEMA CACHE TIME=-1

MAX ROWS=-1

BATCH COUNT=200

ENABLE SCHEMA CACHE=FALSE

SCHEMA CACHE DIR=

ENABLE BCD=FALSE

ROWSET SIZE=20

BLOB SIZE=32

BLOBS TO CACHE=64

ODBC DSN=DEMODATA

USER NAME=dba

PASSWORD=sql

2. Разработка структуры базы для новой конфигурации.

После того, как вы поняли, как информация хранится в “STOCK” (если нет, то вернитесь к гл. II данного руководства и читайте снова), можно приступить к разработке структуры базы для новой конфигурации. Вы должны четко представить какие типы объектов, атрибуты вам понадобятся для того, чтобы достаточно полно описать всю информацию прикладной задачи, которую понадобиться хранить. Затем можно приступить к описанию планируемой структуры в “STOCK”.

Категории атрибутов.

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

 

Attr_Category. По кнопке выбранной группе можно присвоить какое-либо изображение в формате ICO. Это изображение выводится в некоторых других системных формах из меню “Настройка”.

Атрибуты.

Пункт меню “Настройка” – “Атрибуты”. Эта форма отражает содержание таблицы Attributes и предназначена для ввода и редактирования всех атрибутов, которыми могут обладать объекты. Форма содержит закладки, отображая атрибуты по группам, которые введены в предыдущей форме.


Колонка “Код” заполняется автоматически при вставке нового атрибута. Колонка “Наименование атрибута” является ключевым полем в таблице и должна быть уникальной. Ее длина не должна превышать 30 символов. Колонка “Тип значения” определяет тип атрибута и может принимать строго определенные значения: string, integer, float, money, date, object. Смысл этих типов следующий: string – значение атрибута является строка в 127 символов; integer – значение атрибута является целое число; float – значение атрибута является число с плавающей точкой; money – значение атрибута является денежным выражением; date – значение атрибута является дата; object – значение атрибута является ссылкой на другой объект в базе. В колонке “Ед. изм.” можно задать единицу измерения значения атрибута. В колонке “Предопред. значения.” через “;” можно задать строго определенные значения, которые атрибут может принимать. Их может быть не более 10. Для атрибутов объектного типа в этой колонке можно указать код типа объектя, значение которого может принимать атрибут. Колонка “Размер” в данной версии не используется и поэтому является необязательной для заполнения. Но я рекомендую в нее все-таки ставить число символов, необходимых для вывода значения атрибута на экран. Может в следующих версиях эта колонка и будет использоваться.

Типы объектов.

Пункт меню “Настройка” – “Типы объектов”. Эта форма отражает содержание таблиц TypeObjects и TypeAttr. В ней осуществляется основная работа по конфигурации структуры базы. В левой области формы представлена вся иерархия типов объектов, в правой – присвоенные им атрибуты (см. рис.). Новые родительские типы и типы-потомки вставляются с помощью кнопок левой панели, там же имеется кнопка для присвоения типу изображения в формате ICO для большей наглядности. Каждый тип должен иметь


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

В правой области формы кнопками + или ++ мы присваиваем выбранному типу атрибуты, которые могут иметь объекты этого типа. Т. е. если вы попробуете присвоить объекту атрибут, который не определен для данного типа или родительских типов, то программа сгенерирует исключительную ситуацию. Атрибуты выбираются из формы “Атрибуты”. Вторая кнопка позволяет выбрать для типа сразу несколько атрибутов. Чтобы выделить одновременно несколько записей в форме “Атрибуты” используйте клавиши Shift + стрелки вниз, вверх или Ctrl + левая кнопка мыши.

Рассмотрим смысл каждой колонки для атрибута. Если в колонке “Обязат.” стоит “да” – это значит, что атрибут является обязательным для всех объектов этого типа, а также подчиненных типов, если - “нет”, то наоборот. Это означает, что когда в базе создается объект, у которого определены обязательные атрибуты, то у него автоматически создаются и эти атрибуты. А если к тому же для этих атрибутов задано значение по умолчанию (в колонке “Default”), то атрибутом присвоится это значение. Обязательный атрибут нельзя удалить у объекта. Чтобы это сделать, сначала необходимо для него выставить в колонке “Обязат.” “нет”. Кроме того, может возникнуть следующая ситуация, о которой необходимо помнить. Если в базе уже существуют объекты, и затем в процессе доработки прикладной задачи возникает необходимость добавить этому типу или родительскому обязательный атрибут, то у всех этих объектов автоматически создастся этот атрибут с пустым значением или со значением, определенным в колонке “Default”.

Колонка “>=1”. Если для атрибута в этой колонке стоит “нет”, то объект этого типа может иметь только один такой атрибут. И, наоборот, если стоит “да”, то может иметь несколько таких атрибутов. Например, у организации может быть только один руководитель и, следовательно, у объекта типа 90000 “Наша организация” может быть только один атрибут “ Руководитель (ФИО)”. И другой случай. Пусть в нашей структуре определен тип объекта “Отдел” и мы хотим описать информацию по сотрудникам отдела. Для этого типу 90002 “Отдел” присваиваем атрибут “Сотрудник” (тип object) и так, как в отделе может присутствовать несколько сотрудников, в колонке “>=1” ставим “да”. Эту технику можно использовать в ситуациях, когда используется атрибут типа string, но его длины не хватает для полного описания информации (может содержать не более 127 символов). Например, для у объекта 91002 “Тип платежа” имеется атрибут “Назначения платежа” и его длина, естественно, может быть больше 127 символов. Поэтому он должен встречаться у таких объектов более одного раза. Чтобы не возникало конфликтов в базе при вставке множественных атрибутов, в поле “DateBegin” таблицы “Objects_Attr” присваивайте им разные значения. По умолчанию, когда создается атрибут, значение поля “DateBegin” для него берется из поля “DateRecieve” таблицы Objects, т. е. дата создания атрибута равна дате создания объекта.

При разработки структуры необходимо постоянно помнить о том, что программа поддерживает механизм наследования атрибутов у подчиненных типов. Т. е., если вы определили атрибут для родительского типа с определенными свойствами (“Обязат.”, “>=1”, “Default”), то это распространяется и на все подчиненные типы. Кроме того, существует возможность переопределить какой-либо атрибут, у подчиненных типов. Например, если у родительского типа атрибут задан, как обязательный, тогда, присвоив тот же атрибут подчиненному типу, но как необязательный, мы можем создавать объекты подчиненного типа уже без этого атрибута.

3. Управления данными.

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

Пользовательские формы - обзор.

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


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

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

Кроме того, форма может иметь подчиненные ей другие формы, и они могут “докироваться” к ее нижнему и правому краям. Положение, размеры формы, размеры колонок в сетке, положение кнопок на панели инструментов при закрытии формы запоминаются в файле stock. cfg, который у каждого пользователя программы свой. Т. е. пользователь войдя в свою программу на другой машине, может сильно удивиться обнаружив, что программные окна, в которых он работал на своей машине, здесь имеют несколько другой вид.

Пользовательские формы - разработка.

Разработка пользовательских форм осуществляется в специальной системной форме, вызываемой в пункте меню “Настройка” – “Формы”. Образец представлен на рисунке. Каждой записи в таблице соответствует отдельная пользовательская форма. В конечном итоге пользовательская форма представляет из себя набор данных,

возвращаемых одним SQL-оператором SELECT, который заносится в элемент управления MEMO “Главный SQL-скрипт”. Остальные колонки предназначены для того, чтобы вывести на экран этот набор данных в удобном для пользователя виде. Таким образом, как я упоминал выше, язык запросов SQL вы должны знать. И запросы вы должны составлять такие, чтобы они обрабатывались SQL-сервером быстро. Пользователь не должен уснуть, ожидая пока откроется его форма. В конце раздела я дам несколько практических советов по составлению запросов.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3