![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
редактирование в гриде. [D6, XP]
DROWSY © (2010-04-28 21:33:00)Можно ли как-то организовать редактирование в гриде набора из полей двух таблиц, связанных внутренним соединением( по первичному и внешнему ключам). (Firebird 1.5, IBX)
Sergey13 (2010-04-30 09:32:00) [1]> [14] DROWSY (29.04.10 18:11)
Нельзя объять необъятное. (с) К.Прутков.
Ты по моему пересмотрел фильмов типа "Матрицы". Грид - это плоская штука. В нем конечно можно попробовать отобразить нечто объемное, но это будет только проекция объема на плоскость, т.е. штука малопонятная и неудобоваримая.
Все что ты хочешь легко (и главное правильно!) можно сделать на одной форме (если уж хочется концентрации), но в разных гридах и датасетах. Причем даже в этом случае придется отдельно рассматривать варианты, когда (в твоем случае) работа идет "от элемента" и "от набора".
Ты же пытаешься сначала все свалить в кучу и тут-же, хитрыми способами, разбивать эту кучу на составляющие. Это как минимум не очень разумно.
Для решения твоей задачи на твоих же условиях, можно, как вариант, в модифицирующий запрос датасета прописать выполнение ХП, в которой и разруливать ситуацию.
Но правильнее все таки будет пересмотреть подход к решению.
DROWSY (2010-04-29 18:11:00) [2]Смысл в том, чтобы в одной таблице видеть ВСЮ номенклатуру имеющихся элементов и информацию о том, какие из них входят в КОНКРЕТНЫЙ набор.
И иметь возможность редактировать как общую для ВСЕХ наборов номенклатуру(таблица TabEl), так и состав ЭТОГО набора(таблица TabNab).
Sergey13 (2010-04-29 17:47:00) [3]> [12] DROWSY (29.04.10 17:32)
> В таблице наборов TabNab только 3 поля:
> автоинкрементный ключ, код набора, код элемента Таблицы
> TabEl, входящего в данный набор.
Так это и есть та, "третья" таблица, про которую я говорил, только с лишним полем "ключ" (хотя это конечно по вкусу). Я так понял, что еще есть таблица, где "код набора" является первичным ключем?
> Нужно как-то так, чтобы в гриде редактировать обе таблицы,
А я по прежнему не могу представить себе смысла этого действия. Как впрочем и внешнего вида грида, где совмещены все "карандаши, ластики, ручки" и все "пеналы", их содержащие.
8-)
DROWSY (2010-04-29 17:32:00) [4]В таблице наборов TabNab только 3 поля:
автоинкрементный ключ, код набора, код элемента Таблицы TabEl, входящего в данный набор.
Нужно как-то так, чтобы в гриде редактировать обе таблицы, т.е.
что-то типа Left Joint для первой и второй таблиц.
Sergey13 (2010-04-29 17:14:00) [5]> [9] DROWSY (29.04.10 17:08)
Я что то не понял. У тебя в таблице наборов есть отдельные поля под все возможные элементы что ли?
Вообще обычно это делают через третью таблицу связи, т.к. получается классическое отношение многие-ко-многим.
DROWSY (2010-04-29 17:11:00) [6]Например, элементы : карандаши, ластики, ручки. Нужно "собирать" пеналы из этих штук.
DROWSY (2010-04-29 17:08:00) [7]Нет, не то.
Мне надо редактировать не только элементы, но и открытый набор (отмечать или отменять вхождение элемента в этот набор).
Sergey13 (2010-04-29 17:02:00) [8]> [7] DROWSY (29.04.10 16:58)
Ну так причем тут тогда таблица с наборами? Меняй свои элементы как заблагорассудится. Потом переоткрой датасет с наборами и удивись что все готово.
ЗЫ: Разумеется если ты не ключи менять будешь. 8-)
DROWSY (2010-04-29 16:58:00) [9]Именно это и нужно. Элементы во всех наборах одни и те же.
Нужно менять только их "номенклатуру" в наборах.
Sergey13 (2010-04-29 16:54:00) [10]> [4] DROWSY (29.04.10 16:45)
Ну так ты отдаешь себе отчет в том, что поправив описание конкретного элемента, этот элемент "поправится" ВО ВСЕХ наборах элементов, куда он входит?
Может тебе все таки Мастер-Детальное соединение нужно?
DROWSY (2010-04-29 16:53:00) [11]Ничего не придумал, кроме того, чтобы в таб. элементов TabEl ввести поле флага Active.
После открытия набора из полей TabEl, пройтись по всем записям и помечать Active, если код элемента входит в набор.
После редактирования, снова пройти по записям, сбрасывая коды активных записей, в таблицу наборов.
Уверен, что можно сделать красивше. Посоветуйте...
DROWSY (2010-04-29 16:45:00) [12]Есть таблица с описанием разных элементов. И таблица, в которой описываются наборы из этих элементов ( поля : код набора, значение внешнего ключа элемента, входящего в набор). Вопрос в том, как правильнее организовать редактирование выбранного набора в гриде.
Anatoly Podgoretsky (2010-04-29 12:21:00) [13]> Sergey13 (29.04.2010 10:32:02) [2]
Какая разница, можно и сразу обе, а можно и по очереди.
Sergey13 (2010-04-29 10:32:00) [14]> [0] DROWSY (28.04.10 21:33)
Редактировать надо сразу обе таблицы или таки одну из двух?
Игорь Шевченко (2010-04-28 21:47:00) [15]не вижу причины для невозможности. UpdateSQL или как его там...