Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
3-48434
Lenchik_Z
2003-08-25 06:54
2003.09.15
ADOQuery


3-48481
Lamer_of_Delphi
2003-08-22 11:04
2003.09.15
Получение значений ВСЕХ записей!!!


1-48516
plotn
2003-09-02 15:03
2003.09.15
нужна мемка с хайлайтингом.


1-48533
wdsergius
2003-09-02 12:35
2003.09.15
Как удалить каталог програмно ??????


14-48694
Marser
2003-08-25 00:03
2003.09.15
Именинники 25 августа





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский