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