Набор классов для создания справочников. VFP8.

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

Набор классов для создания справочников.

Теперь кратко как это все работает.
Для демонстрации работы я выдернул кусок из вполне рабочей программы, что конечно не означает 100% работоспособность куска, нуда рассмотреть по нему основной принцып возможно.
В демо проект входят несколько библиотек классов:
inctext.vcx
midatepic.vcx
project.vcx
splitter.vcx
spravoch.vcx – основная библиотека
xpbutton.vcx

несколько демонстрационных форм:
sprotdel.scx – основная форма с которой логически связаны все остальные
sprprof.scx
sprrazr.scx
sprsotrudn.scx

ну и прочий мусор, который даже описывать нестану 😉

Процесс создания нового справочника.
1. Идете в Tools>Options...> Forms
1.1. В группе Template classes ставите галгу радом с Form set:
1.2. Выбераете spravoch.vcx > frmsetsprav
1.3. Давите OK.
2. Затем в меню File>New... выбераете Form и жмете здоровенну кнопку New file.
3. На этом шаге нужно определить Data Еnvironment. Сдесь такой ньюанс, основная таблица должна быть добавлена первой или должна быть прописана в InitialSelectedAlias.
4. Если вым нужны для отображения не все поля, накидайте их в грид сами. Не удаляйте первую колонку. Оформление заголовков колонок устанавливается по образцу первой колонки. Возможно, задание вычисляемых полей. Как это сделать посмотрите в демо форме sprOtdel. Также на форме sprMain есть пара полезных своиств – sqlFields и sqlOrders. Почитайте к ним описание внизу Properties Window.
5. Далше нужно накидать элементов редактирования на окна «Редактирование группы» и «Редактирование записи». У кнопок Ок этих форм есть оброботчики призванные облегчить процесс записи. Для их использования нужно прописать в Click контрола cntOk DoDefault(список параметров). Далее привиду шапку одного обработчика с описанием передаваемых параметров.
===========================================================================
* tcName - имя поля которое нужно проверять на уникальность
* если не указано проверяется поле NAME
* если пустая строка, проверки на уникальность не производится.
* tlSposob - способ проверки
* .F. или опущено - проверка на уникальность осуществляется по всему справочнику
* .T. - только в текущей группе
* tcErrorMessage - сообщение об ошибке, если поле не уникельно
LPARAMETERS tcFldName, tlSposob, tcErrorMessage
===========================================================================
В принципе все, можно запускать и опробовать.

Создание таблиц для справичника.
Справочник работает только с таблицами содержащимися в базе данных, причем таблицы должны удовлетворять нескольким обязательным условиям.
Обязательная структура таблиц.
Id Numeric x
Pid Numeric x
Isfolder Numeric 1
Name Character x
Остальные поля по необходимости.

Индексы:
Id Primary Id
Pid Regular Pid
Isfolder Regular Isfolder
Name Regular UPPER(name)
DEL Regular DELETED()

Желательно заполнение у полей свойства Caption, т.к. оно используется для заполнения хадеров колонок, если они небыли добавлены вручную.

Для поля Id необходимо создать Default value - присвоение уникального значение.

Необходимо заполнить поле Table Comment: на закладке Table прописав в нем русское название справочника. Это название в дальнейшем будет использоваться для формирование капшинов для окон.

На этом все.

Автор: Жихарев Дмитрий
0

Автор публикации

не в сети 1 год

Joys

2
Комментарии: 5Публикации: 200Регистрация: 25-06-2000
Вложенные файлы
Warning: filesize(): stat failed for /home/f/foxclub/test.foxclub.ru/public_html/wp-content/uploads/2020/08/284sprdemo.zip in /home/f/foxclub/test.foxclub.ru/public_html/wp-content/themes/lipi/framework/include/functions.php on line 2138
#
Тип файла
Размер
Название
1 .zip 284SprDemo
Оставить комментарий
Авторизация
*
*
Генерация пароля