Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1272486602
Юрий
2010-04-29 00:30
2010.08.27
С днем рождения ! 29 апреля 2010 четверг


15-1268222361
@!!ex
2010-03-10 14:59
2010.08.27
Самый быстрый C++ компилятор


2-1266564186
oleg1963lora
2010-02-19 10:23
2010.08.27
Как маскировать исключение EDatabaseError?


15-1264084215
SAN_i
2010-01-21 17:30
2010.08.27
Проблема с использованием памяти


11-1216809601
Dy1
2008-07-23 14:40
2010.08.27
утечки памяти. Помогите, пожалуйста





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский