powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Custom Fields
11 сообщений из 11, страница 1 из 1
Custom Fields
    #32762474
SM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь уже решал подобную задачу в Access ADP? - форма строится на хранимой процедуре, процедура возвращает переменный набор полей в результируещем рекордсете. Мне нужно реализовать в существующем приложении возможность добавлять Custom Fields к любому бизнес объекту, причем эти Custom Fields могут быть text, boolean, Datatime, ValueList

Например пользователь может решить что в существюющей системе помимо прочих данных о Customer ему до зарезу необходимо так же поле CreditCardNumber - text, CreditCardType - ValueList (Visa, MasterCard etc) и Approve - boolean

Все это он добавляем в Settings для Customer - после чего эту инфу нужно видеть в табличной форме CustomerList (хорошо что форму не нужно днлать editable - редактирование будет осуществляться в колумарной форме на одну запись)


Эту функциональность я реализовывал в ASP.NET приложение год назад, теперь вот начальство захотело добавить такую фичу в существующее Access приложение. Что и как делать на серверной части- проблем нет, а вот с GUI -

пока у меня одна мысль - добавлять в форму скажем 10 несвязанных полей, при открытии проверять а если CustomFields в результирующем рекордсете , связывать пустые контролы, а ненужные прятать.
...
Рейтинг: 0 / 0
Custom Fields
    #32767124
SM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неужели никому эта тема не интересна? :)
...
Рейтинг: 0 / 0
Custom Fields
    #32767135
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На форму помещаем рамку подчинённой формы - в её источнике указываем временную табличку с этими полями...
...
Рейтинг: 0 / 0
Custom Fields
    #32767218
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тема интересна, токо нафиг такая самодеятельность

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

один начнет вводить кредитные карты к сотрудникам а другой прицепит к их контрактам каждый введет часть данных противоречащих друг другу а программист все равно потом будет этот мусор разгребать.

уж лучше сразу - надо - техзадание - граммотный спец сделал все в соответствии с политикой партии

написал, собрал, и опубликовал для распространения новую версию проекта
...
Рейтинг: 0 / 0
Custom Fields
    #32767235
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Custom Fields
    #32767723
SM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейКтема интересна, токо нафиг такая самодеятельность

один наклепает тысячу ненужных полей
другой погрохает ...

Жизнь ваще страшная штука, ты знаешь чем она заканчивается? :)

А если серьезно,представь что ты создаешь систему не для одного заказчика - с которым все ясно и прозрачно (и то не всегда). А для многих и многих - и каждый хочет вести свой бизнес чуть чуть по-своему. И возможность это "чуть чуть" предоставить потенциальному заказчику без дополнительных затрат на custom development - и есть флексабилити (гибкость) которая существенно помогает сделать потенциального заказчика просто заказчиком.

Вот описание http://rpmsoftware.com/rpm/feature.php?a=Fields

А теперь подумай о таких общих системах как Issue Tracking Management, Change Control Management, Process& Project Management - все это было реализовано в рамках одной системы и легко настраивается под большинство запросов заказчиков. Если кто-нибудь видел StarTeam - идея была взята оттуда. Представь, в существующей системе ты можешь сам добавлять нужные для тебя поля (CustomFields) , видеть их в гриде, редактировать, фильтровать информацию по ним, делать поиск. Причем без обращений к фирме разработчику (и без дополнительных затрат) :)
...
Рейтинг: 0 / 0
Custom Fields
    #32767724
SM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HummerНа форму помещаем рамку подчинённой формы - в её источнике указываем временную табличку с этими полями...

подчиненная форма с источником данных но без контролов (количество и тип которых заранее не известны) - это интересный подход :)
...
Рейтинг: 0 / 0
Custom Fields
    #32767725
SM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Витал Глянь здесь. М.б. это выход (или вход)

Спасибо, я никогда флексгрид не использовал, возможно это выход
...
Рейтинг: 0 / 0
Custom Fields
    #32768209
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SM Витал Глянь здесь. М.б. это выход (или вход)

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

Здесь кстати я хотел обратить внимание на это высказывание
Serge Gavrilov...зачем режим конструктора?
И даже не надо делать создания таблицы (что я написал).
У контрола Подчиненная форма в свойстве SourceObject просто указывайте свой перекрестный запрос.

Я проверил - все работает. И действительно не надо гридов. Достаточно ссылки на запрос или таблицу. Только не следует создавать подчиненную форму. Как сказал Hummer - просто рамку подчиненной формы.
SourceObject в том числе можно менять программно. А если изменилась таблица или запрос - все автоматом меняется как в гридах...
...
Рейтинг: 0 / 0
Custom Fields
    #32768301
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА теперь подумай о таких общих системах как Issue Tracking Management, Change Control Management, Process& Project Management - все это было реализовано в рамках одной системы и легко настраивается под большинство запросов заказчиков. Если кто-нибудь видел StarTeam - идея была взята оттуда. Представь, в существующей системе ты можешь сам добавлять нужные для тебя поля (CustomFields) , видеть их в гриде, редактировать, фильтровать информацию по ним, делать поиск. Причем без обращений к фирме разработчику (и без дополнительных затрат) :)

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

аксесс сам по себе хороший конструктор.

как идея рабочий проект в (mdb,adp) варианте чтоб
клиент мог создавать свои формы и код а остальное (собственность фирмы разработчика и возможность сервиспаков) в виде библиотек (ade, mde)

что касается пользовательских данных, то наверное тоже имеет смысл
выделить в специальную базу (mdb - отдельный файл, SQL - отдельная база)
чтоб разрулить сервиспаки и права на создание и изменение объектов

так наверное было бы максимально гибко...
...
Рейтинг: 0 / 0
Custom Fields
    #32769255
SM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейКвечная боьба за универсальность и оптимальность
сложности начнутся когда нужно будет делать сервис паки для таких приложений - придется учитывать при корректировке структуры данных возможные пользовательские изменения, да и с правами на изменение таблиц - щекотливо это.


Я думаю, я должнен немного прояснить как это все организовано.
Самое основное - пользователь не изменяет структуры данных.

Итак, создается сервисная таблица
ObjectType (ObjectTypeID int, ObjectTypeName varchar...) , для каждой бизнес сущности в эту тоблицу заносится запись и присваивается ID типа
например (5, "customer"). Тогда любой объект в системе можно будет задать парой значений - ObjectTypeID, ObjectSpecificID -это будет ПК записи в соответствующей таблице, например пара значение (5,1130) - ссылается на кастомера с первичным ключом 1130

Далее создаем таблицу CustomField -
CustomFieldID int ПК,
FieldName,
FieldType (например 1 - текст, 2 число,3 дата и т.д.)
ObjectTypeID - определяет какому типу объектов это поле принажлежит,
TabOrder - порядок среди других полей для данного типа объектов

Далее создаем таблицу CustomFieldValue
CustomFieldValue PK
CustomFieldID
Value
ObjectSpecificID - а тут мы храним ключ конкретного объекта, которому и принадлежит это значение customField

То есть, если мы для нашего типа Customer создаем 3 кастом поля - то в таблице CustomField будет 3 записи с ObjectTypeID=5
Когда же мы начнем присваивать значения этим кастом полям для конкретного кастомера - будут создаваться записи в таблице CustomFieldValue

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

Пример выше сильно упрощен и сокращен дабы показать идею, на самом деле там еще есть списки значений, ссылочные типы на бизнес объекты в системе, система безопасности когда кастом полям назначается уровень доступа, группы кастом полей - когда по определенному условию такая група может быть видимой или скрытой и всякое такое прочее
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Custom Fields
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]