Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

редактирование в гриде.   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.047 c
15-1266434679
NewZ
2010-02-17 22:24
2010.08.27
Язык ОС.


15-1269692542
Kerk
2010-03-27 15:22
2010.08.27
Задачка


2-1272205654
romario
2010-04-25 18:27
2010.08.27
Работа с текстовым файлом


4-1239166396
Человек
2009-04-08 08:53
2010.08.27
Не правильно работает WM_NCHITTEST на Vista x64


2-1268397398
timekiller
2010-03-12 15:36
2010.08.27
Интерактивный генератор текстов