主页
Top.Mail.Ru Yandeks.Metrika
论坛:“基地”;
当前存档:2004.02.02;
下载:[xml.tar.bz2];

向下

我呼吁大师的集体智慧! 我们在动态方面工作。 找到类似的分支


Bezsonov Yuri   (2004-01-09 11:47) [0]

向所有人致以问候!
С увеличением количества таблиц в БД растет и количество форм в проекте. И со временем назревает необходимость в динамическом формировании интерфейса приложения (меню, формы и т.д.) на основании данных а БД.
И при попытке создания такого приложения-конструктора возникает много вопросов. Но наверно у многих в практике возникали подобные проекты и есть наработанные решения или идеи, может кто подскажет?
И если с самими данными и их отображением динамически все достаточно понятно, просто требует хорошей проработки структуры таблиц для метаданных, то к вопросу где и как хранить обработчики событий не очень понятно как и подойти.
У кого какие есть идеи? Может есть уже отработанные технологии? или эта затея бесперспективна?



Sergey13   (2004-01-09 11:50) [1]

2Bezsonov Yuri © (09.01.04 11:47)
>И со временем назревает необходимость в динамическом формировании интерфейса приложения (меню, формы и т.д.) на основании данных а БД.
У меня не назревает. ИМХО, это тупик. Чем это лучше то?



rootim   (2004-01-09 11:53) [2]

>или эта затея бесперспективна?
скорее всего так и есть...
Конструктор имхо можно и нужно использовать, например для поиска.. или что-то подобное.
Лично я не нагромождаю кучей формочек в один проект, делю функционал на АРМ и пишу модулями, которые при необходимости можно соединять в под одним приложением.



Bezsonov Yuri   (2004-01-09 12:28) [3]

некоторые возможные преимущества такого подхода в том, что не нужна постоянная перекомпиляция проекта, т.е. изменения можно вносить непосредственно у заказчика.
И даже если идея полной динамики бесперспективна, то как вы поступаете с кучей одинонакых справочников типа REC_ID NAME SHORT_NAME, которые различаются только информацией, сливаете все в одну табличку или как?



Academic   (2004-01-09 12:37) [4]

Я думаю, что выход в создании отдельных тематических АРМ со связью по базе данных.



Nikolay M.   (2004-01-09 12:44) [5]

Как вариант - хранить новые формы в dfm-ках на сервере, а функционал - в дллках или СОМ-объектах, тоже хранящихся на сервере и подтягивающихся по мере надобности.

Но, ИМХО, это все высасывание проблем из пальца на ровном месте.



Bezsonov Yuri   (2004-01-09 12:46) [6]

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



int64   (2004-01-09 12:46) [7]

Можно юзать XML. На ibase.ru был пример.



HSolo   (2004-01-09 12:49) [8]

> как вы поступаете с кучей одинонакых справочников типа REC_ID NAME SHORT_NAME, которые различаются только информацией, сливаете все в одну табличку или как?

Например, так: делаем форму - обработчик всех таких справочников. У нее есть private-переменная - имя таблицы; если поля во всех справочниках называются единообразно, то этого достаточно. Переопределяем конструктор, чтобы он принимал параметр - имя таблицы и укладывал его в ту самую переменную. Запросы на insert/update/delete/refresh формируем в run-time (в OnCreate, к примеру); настройки отображения - по вкусу :)



Bezsonov Yuri   (2004-01-09 12:54) [9]

если хранить в БД формы, то это действительно приобретение проблем, но вся идея в том чтобы формы генерились на основе базовой формы в проекте и метаданных в БД



Academic   (2004-01-09 13:15) [10]

没有绝对的程序可以考虑到所有因素。 如果顾客需要这个,那么他自己就不知道自己想要什么。



Bezsonov Yuri   (2004-01-09 13:17) [11]

to HSolo >
а если справочник отличается от базового, то для него делаем отдельную форму в проекте или все таки как-то динамически?



Alex_Bredin   (2004-01-09 13:24) [12]

я, например, с формами-справочниками вообще не парюсь- давно написана процедура, которая в качестве параметра получает датасет,который надо редактировать, анализирует его структуру, и динамически создает форму с нужными компонентами(boolean-DBCheckBox,string- DBEdit, итп).
Получается очень прилично.
好运



Bezsonov Yuri   (2004-01-09 13:24) [13]

Я и не хочу программу учитывающую абсолютно все. Просто если есть задача написать для каждого отдела хранилище документов, но у каждого из них свои параметры (для секретаря входящие/исходящие и пр., для технарей - полка, инв. номер и пр), то не перспективнее ли написать движок, который будет визуализировать описанные в БД метаданные?



Bezsonov Yuri   (2004-01-09 13:32) [14]

to Alex_Bredin © (09.01.04 13:24) [12]
а если у справочника есть ссылки на другие справочники, которые должны заполнять dbComboBox, то вы тоже это реализуете динамически или это работает только для простых таблиц вида select * from table?



Academic   (2004-01-09 13:33) [15]

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



Alex_Bredin   (2004-01-09 13:36) [16]


> Bezsonov Yuri © (09.01.04 13:32) [14]
> to Alex_Bredin © (09.01.04 13:24) [12]
> а если у справочника есть ссылки на другие справочники,
> которые должны заполнять dbComboBox, то вы тоже это реализуете
> динамически или это работает только для простых таблиц вида
> select * from table?


это тоже динамически.Это нетрудно- главное правильно описать метаданные



Bezsonov Yuri   (2004-01-09 13:40) [17]


> Academic © (09.01.04 13:33) [15]
> Описать в базе данных структуру форм, события, создать какой-то
> язык для настройки этих данных много тяжелее, чем разратотать
> конкретную небольшую программу для определенного рабочего
> места.


это если программа небольшая и таких программ не много, а вот если это идет на поток, тогда конструктор наверное бы помог.



Bezsonov Yuri   (2004-01-09 13:55) [18]


> to Alex_Bredin © (09.01.04 13:36) [16]

вы в метаданных описываете только названия полей для отображения или как-то храните сам текст запроса для выборки/редактирования или все разбираете на основании данных таблицы которую редактируем?



Alex_Bredin   (2004-01-09 14:49) [19]


> Bezsonov Yuri © (09.01.04 13:55) [18]


стучитесь в аську - все обсудим



Страницы: 1 整个分支

论坛:“基地”;
当前存档:2004.02.02;
下载:[xml.tar.bz2];

楼上









内存:0.63 MB
时间:0.035 c
1-2064
Pirat的
2004-01-19 19:32
2004.02.02
DoubleBuffered:=true и ThemeServices : палка о двух концах ?


1-2110
Natusya
2004-01-19 21:21
2004.02.02
Doule в string


1-2231
男子
2004-01-19 19:49
2004.02.02
как получить список процессов, которые используют данный файл


14-2370
安德列夫
2004-01-09 21:37
2004.02.02
付款方式


6-2268
Evgen 18
2003-11-28 09:10
2004.02.02
Как узнать время создания файла





南非荷兰语 阿尔巴尼亚人 阿拉伯语 亚美尼亚 阿塞拜疆 巴斯克 白俄罗斯 保加利亚语 加泰罗尼亚 简体中文 中国(繁体) 克罗地亚 捷克 丹麦语 荷兰人 英语 爱沙尼亚语 菲律宾人 芬兰 法文
加利亚西语 格鲁吉亚语 德语 希腊语 海地克里奥尔语 希伯来语 印地语 匈牙利 北日耳曼语 印度尼西亚人 爱尔兰语 意大利语 日本性玩偶 韩语 拉脱维亚 立陶宛 马其顿 马来语 马耳他语 挪威语
波斯语 波兰语 葡萄牙语 罗马尼亚 俄语 塞尔维亚 斯洛伐克 斯洛文尼亚 西班牙语 斯瓦希里 瑞典语 泰国人 土耳其 乌克兰 乌尔都语 越南人 威尔士语 意第绪语 孟加拉 波斯尼亚
宿务 世界语 古吉拉特语 豪萨语 苗族 伊博 爪哇 卡纳达语 高棉 老挝 拉丁语 毛利 马拉 蒙古人 尼泊尔 旁遮普 索马里 泰米尔人 泰卢固语 约鲁巴语
祖鲁
英文 Французский Немецкий Итальянский Португальский 俄文 Испанский