![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Взываю к коллективному разуму Мастеров! Работаем в динамике. [D7, IB6.x]
Bezsonov Yuri © (2004-01-09 11:47:00)
Приветствую Всех!
С увеличением количества таблиц в БД растет и количество форм в проекте. И со временем назревает необходимость в динамическом формировании интерфейса приложения (меню, формы и т.д.) на основании данных а БД.
И при попытке создания такого приложения-конструктора возникает много вопросов. Но наверно у многих в практике возникали подобные проекты и есть наработанные решения или идеи, может кто подскажет?
И если с самими данными и их отображением динамически все достаточно понятно, просто требует хорошей проработки структуры таблиц для метаданных, то к вопросу где и как хранить обработчики событий не очень понятно как и подойти.
У кого какие есть идеи? Может есть уже отработанные технологии? или эта затея бесперспективна?
Alex_Bredin (2004-01-09 14:49:00) [1]
> Bezsonov Yuri © (09.01.04 13:55) [18]
стучитесь в аську - все обсудим
Bezsonov Yuri (2004-01-09 13:55:00) [2]
> to Alex_Bredin © (09.01.04 13:36) [16]
вы в метаданных описываете только названия полей для отображения или как-то храните сам текст запроса для выборки/редактирования или все разбираете на основании данных таблицы которую редактируем?
Bezsonov Yuri (2004-01-09 13:40:00) [3]
> Academic © (09.01.04 13:33) [15]
> Описать в базе данных структуру форм, события, создать какой-то
> язык для настройки этих данных много тяжелее, чем разратотать
> конкретную небольшую программу для определенного рабочего
> места.
это если программа небольшая и таких программ не много, а вот если это идет на поток, тогда конструктор наверное бы помог.
Alex_Bredin (2004-01-09 13:36:00) [4]
> Bezsonov Yuri © (09.01.04 13:32) [14]
> to Alex_Bredin © (09.01.04 13:24) [12]
> а если у справочника есть ссылки на другие справочники,
> которые должны заполнять dbComboBox, то вы тоже это реализуете
> динамически или это работает только для простых таблиц вида
> select * from table?
это тоже динамически.Это нетрудно- главное правильно описать метаданные
Academic (2004-01-09 13:33:00) [5]
Описать в базе данных структуру форм, события, создать какой-то язык для настройки этих данных много тяжелее, чем разратотать конкретную небольшую программу для определенного рабочего места.
Bezsonov Yuri (2004-01-09 13:32:00) [6]
to Alex_Bredin © (09.01.04 13:24) [12]
а если у справочника есть ссылки на другие справочники, которые должны заполнять dbComboBox, то вы тоже это реализуете динамически или это работает только для простых таблиц вида select * from table?
Bezsonov Yuri (2004-01-09 13:24:00) [7]
Я и не хочу программу учитывающую абсолютно все. Просто если есть задача написать для каждого отдела хранилище документов, но у каждого из них свои параметры (для секретаря входящие/исходящие и пр., для технарей - полка, инв. номер и пр), то не перспективнее ли написать движок, который будет визуализировать описанные в БД метаданные?
Alex_Bredin (2004-01-09 13:24:00) [8]
я, например, с формами-справочниками вообще не парюсь- давно написана процедура, которая в качестве параметра получает датасет,который надо редактировать, анализирует его структуру, и динамически создает форму с нужными компонентами(boolean-DBCheckBox,string- DBEdit, итп).
Получается очень прилично.
Удачи
Bezsonov Yuri (2004-01-09 13:17:00) [9]
to HSolo >
а если справочник отличается от базового, то для него делаем отдельную форму в проекте или все таки как-то динамически?
Academic (2004-01-09 13:15:00) [10]
Не может быть абсолютных программ, учитывающих все. Если заказчик требует этого, то он сам не знает что хочет.
Bezsonov Yuri (2004-01-09 12:54:00) [11]
если хранить в БД формы, то это действительно приобретение проблем, но вся идея в том чтобы формы генерились на основе базовой формы в проекте и метаданных в БД
HSolo (2004-01-09 12:49:00) [12]
> как вы поступаете с кучей одинонакых справочников типа REC_ID NAME SHORT_NAME, которые различаются только информацией, сливаете все в одну табличку или как?
Например, так: делаем форму - обработчик всех таких справочников. У нее есть private-переменная - имя таблицы; если поля во всех справочниках называются единообразно, то этого достаточно. Переопределяем конструктор, чтобы он принимал параметр - имя таблицы и укладывал его в ту самую переменную. Запросы на insert/update/delete/refresh формируем в run-time (в OnCreate, к примеру); настройки отображения - по вкусу :)
int64 (2004-01-09 12:46:00) [13]
Можно юзать XML. На ibase.ru был пример.
Bezsonov Yuri (2004-01-09 12:46:00) [14]
а если пишется программа для хранения информации структура которой заранее не определена, например, хранилище документов. В котором для каждого отдела параметры ихнего хранилища (набор полей), разные и определяются заказчиком по мере создания. Как быть в таком случае?
Nikolay M. (2004-01-09 12:44:00) [15]
Как вариант - хранить новые формы в dfm-ках на сервере, а функционал - в дллках или СОМ-объектах, тоже хранящихся на сервере и подтягивающихся по мере надобности.
Но, ИМХО, это все высасывание проблем из пальца на ровном месте.
Academic (2004-01-09 12:37:00) [16]
Я думаю, что выход в создании отдельных тематических АРМ со связью по базе данных.
Bezsonov Yuri (2004-01-09 12:28:00) [17]
некоторые возможные преимущества такого подхода в том, что не нужна постоянная перекомпиляция проекта, т.е. изменения можно вносить непосредственно у заказчика.
И даже если идея полной динамики бесперспективна, то как вы поступаете с кучей одинонакых справочников типа REC_ID NAME SHORT_NAME, которые различаются только информацией, сливаете все в одну табличку или как?
rootim (2004-01-09 11:53:00) [18]
>или эта затея бесперспективна?
скорее всего так и есть...
Конструктор имхо можно и нужно использовать, например для поиска.. или что-то подобное.
Лично я не нагромождаю кучей формочек в один проект, делю функционал на АРМ и пишу модулями, которые при необходимости можно соединять в под одним приложением.
Sergey13 (2004-01-09 11:50:00) [19]
2Bezsonov Yuri © (09.01.04 11:47)
>И со временем назревает необходимость в динамическом формировании интерфейса приложения (меню, формы и т.д.) на основании данных а БД.
У меня не назревает. ИМХО, это тупик. Чем это лучше то?