Форум: "Базы";
Текущий архив: 2003.09.15;
Скачать: [xml.tar.bz2];
ВнизДГрид ДублКлик вызываю модальную форму и тут не то что надо Найти похожие ветки
← →
Alik$ (2003-08-25 12:09) [0]С ДБГрида вызываю модальную форму SHowModal т.е. окно редактирования и мне надо что форма открывало текущую запись а моя форма открывает первую строку ДБГрида как быть?
← →
Алексей Петухов (2003-08-25 12:15) [1]Если разные наборы, то Locate
← →
stud (2003-08-25 12:47) [2]так у тебя курсор на какой записи при открытии формы?
← →
Alik$ (2003-08-25 14:05) [3]На первой строке так ведь при вызове форма открывает только с первой строки...
← →
Hawk2 (2003-08-25 14:22) [4]Тогда переходи на нужную запись (вручную или програмно как получится), а потом вызывай форму для редактирования и читай значения полей и записывай в Едиты или как ты там делаешь, только нд не переоткрывай :-)
← →
Alik$ (2003-08-25 15:00) [5]Вручную неоченьто удобно для пользователя вернее нет смысла открывать модальную форму. А вот как програмно реализовать проблема с Locate пробовал что-то не переходит.
← →
Alik$ (2003-08-25 15:01) [6]и Ещё ведь мне надо вызвать с ДБгрида мадальную и чтоб где строка просмотра кликает клиент выводился форма для редактирования.
← →
Hawk2 (2003-08-25 15:05) [7]Alik$ © (25.08.03 15:00) [5]> Вручную неоченьто удобно для пользователя вернее нет смысла открывать модальную форму.
Смысл есть, в форме удобнее редактировать, есть подсказки, можно контролировать вводимые данные и т.д., а в Гриде можно запретить редактирование и все.
>А вот как програмно реализовать проблема с Locate пробовал что-то не переходит.
Как-то не приходилось сталкиваться.
← →
MsGuns (2003-08-25 15:13) [8]Делеашь так:
При клике на гриде основного НД, делаешь:
1) В глоб.переменную записываешь значение поля - указателя на справочник или 0, если НД пустой
2) Даешь ShowModal форме, на которой грид с НД справочника.
3) В событии OnShow формы со справочником:
- переоткрываешь датасет справочника
- анализируешь переменную (см.п.1). Если ноль, то ничего не делаешь, если >0, то Locate по полю идентификатора справочника
4) В гриде справочника разрешаешь редактирование/вставку/удаление одиночной записи. Лучше всего это делать по спец.кнопкам, а редактить давать не в гриде, а в контролах, не связанных с DB, и расположенных на отд.панельке, "высвечиваемой" при нажатии узером соотв. кнопки ("Добавить", "Править"). При добавлении (узер ввел и нажал соотв.кнопку на панели ввода-редакт-я) делаешь все необходимые проверки новой записи, затем в блоке Try Except добавляешь запись и, если Ok, то новый идентификатор помещаещь в ту же глоб.переменную, где было "стартовое" значение, а форму закрываешь.
По такой схемке можно стряпать даже правку иерархических справочных зависимостей.
Хотя, ИМХО, для справочников лучше использовать MDI-форму с возможностью редактить любой справочник в любой момент времени. (По типу окон в вордах)
← →
Hawk2 (2003-08-25 15:25) [9]А разве автор вопроса спрашивал о редактировании справочников? Причем здесь они?
← →
MsGuns (2003-08-25 16:19) [10]>Hawk2 © (25.08.03 15:25) [9]
>А разве автор вопроса спрашивал о редактировании справочников? Причем здесь они?
Понятие "справочник" употреблено как средство отличить таблицы в контексте данной проблемы (основная и дополнительная в мод.окне)
То, что между этими таблицами существует некая связь (даже только логическая), ИМХО, из сабжа видно достаточно отчетливо.
← →
Hawk2 (2003-08-25 16:40) [11]MsGuns © (25.08.03 16:19) [10]
Пречитав Ваше предидущее сообщения еще раз 5 (наверное плохо соображаю), я так понял что открывается та самая таблица еще раз, только во время открытия производится переход на нужную запись, но зачем все эти муки? Ведь для автора вопроса в том и есть проблема как осуществить переход. И вообще он уже куда-то пропал.
← →
MsGuns (2003-08-25 16:45) [12]>Hawk2 © (25.08.03 16:40) [11]
Наверное, я плохо излагаю ;((( Ессно, таблицы, отображаемые в гриде основной формы и в гриде модальной - разные. Именно поэтому я употребил слово "справочник", чтобы с одной стороны, явно разделить эти таблицы, а с другой - подчеркнуть их зависимость
ЗЫ. Хочется верить, что Вами руководит здоровое любопытство, а не желание постебаться.
← →
Hawk2 (2003-08-25 17:03) [13]>ЗЫ. Хочется верить, что Вами руководит здоровое любопытство, а не желание постебаться.
Я знаю что Вы на этом форуме можно сказать один из старейшин (так как заглядываю сюда уже 2,5 года и Ваш ник вижу уже здесь давно), а я уважаю умных людей и у меня нет желания постебаться, просто как я понял из вопроса автору нужно было просто редактировать запись в открытом НД, но не напрямую в гриде, а отдельно в форме. Ну да ладно с этим вопросом, мы ведь всеравно не уточним, автор не отзывается.
← →
Dred2k (2003-08-25 20:59) [14]> Alik$ © (25.08.03 15:01) [6]
> и Ещё ведь мне надо вызвать с ДБгрида мадальную и чтоб где
> строка просмотра кликает клиент выводился форма для редактирования.
Просто не создавай в модальной форме TTable или TQuery. Кинь на форму TDataSource, его и поставь всем компонентам редактирования. А перед ShowModal просто присвой набор данных текущего окна просмотра этому DataSource. Что-то типа:
Form1.DataSource1.DataSet := Table1;
Form1.ShowModal;
Набор данных должен быть изменяемым. И все. Форма начнет редактировать то, что ты видишь ;)
← →
Alik$ (2003-08-26 07:58) [15]Спасибо ребята получилось
Я сделал так
в модальной форме обявил uses mydodule
потом процедуре обявил
мастерсорс и все получилось :)
а при закрытии формы создал кнопку с процедурой
procedure TForm1.Button1Click(Sender: TObject);
begin
MainForm.DataSource1.Edit;
Form1.Close;
end;
и все Ок
Спасибо.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.09.15;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.018 c