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

Любому из нас, разрабатывая какую-нибудь программу, приходилось возиться со справочниками. И дело это не так чтобы уж слишком радостное и захватывающее. Наверное, многие, запрограммировав справочник типа 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 прописав в нем русское название справочника. Это название в дальнейшем будет использоваться для формирование капшинов для окон.

На этом все.

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

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

не в сети 3 месяца

admin

Комментарии: 1Публикации: 123Регистрация: 10-12-2000
Вложенные файлы
#
Название
Тип файла
Размер
1 284SprDemo .zip 483,61 КБ
Материалы по теме
Оставить комментарий
//////////////// ///////////////
Авторизация
*
*
Генерация пароля