Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Вниз

OnSetText на Lookup поле - возникают проблемы   Найти похожие ветки 

 
DelphiLexx ©   (2006-09-06 12:07) [0]

Возникла следующая ситуация.
Состояние DBGridEh"a такое же как в вопросе http://delphimaster.net/view/2-1157366364/ , а именно:

Есть FibDataSet1 (типа ТFibDataSet) который подключен через TDataSource к TDBGridEh"у. Одно из полей ТFibDataSet1 является Lookup поле и связано через LookupDataSet со вторым FibDataSet2 (типа ТFibDataSet). Это приводит к тому что в одной из колонок моего DBGridEh"a при нажатии в этой колонке на любой записи выскакивает раскрывающийся список из которого и выбирается нужное значение для текущей записи.
cписка.

На Lookup поле в FibDataSet1 стоит обработчик OnSetText:

procedure TForm1.FIBDataSet1LookupSetText(Sender: TField; const Text: String);
begin
 Sender.AsString := Text;
 FibDataSet1.First;
{хочу обратить внимание, что здесь FibDataSet1.State =  dsBrowse, но прикол в том, что после выхода из этой процедуры первая запись DBGridEh находится в режиме редактирования,
хотя не должна быть в режиме редактирования. Как с этим бороться?}
end


 
Рустем ©   (2006-09-06 12:27) [1]

А для чего ты перемещаешься на первую запись?
Может лучше строку FibDataSet1.First заменить на FibDataSet1.Post?


 
DelphiLexx ©   (2006-09-06 12:53) [2]


> Может лучше строку FibDataSet1.First заменить на FibDataSet1.
> Post?

На самом деле ниже моего комментария в приведенном коде следует продолжение т.е.

procedure TForm1.FIBDataSet1LookupSetText(Sender: TField; const Text: String);
begin
Sender.AsString := Text;
FibDataSet1.First;
{здесь идет обработка в зависимости от выбранного значения Text, меняются другие поля}
end.


 
Sergey13 ©   (2006-09-06 13:02) [3]

> [0] DelphiLexx ©   (06.09.06 12:07)

Я что-то не понял, а зачем вообще этот обработчик?


 
DelphiLexx ©   (2006-09-06 13:10) [4]


> Я что-то не понял, а зачем вообще этот обработчик?

Ну как зачем? Как только изменяется значение Lookup поле в зависимости от его значение меняются значения записей других полей (колонок).


 
Sergey13 ©   (2006-09-06 13:16) [5]

> [4] DelphiLexx ©   (06.09.06 13:10)

Почему другие должны меняться, как и где они меняются? Ты бы описал задачу то.


 
DelphiLexx ©   (2006-09-06 13:42) [6]


> Почему другие должны меняться, как и где они меняются? Ты
> бы описал задачу то.

Ну так надо, чтобы в зависимости от значания Lookup поля изменялись значения записей рядом стоящего поля, в котором у меня хранятся числа.
(Я думую, что развжевывать предметную область под которую я пишу программу не важна, важно решить вопрос, чтобы запись не оставалась в режиме редактирования).


 
Sergey13 ©   (2006-09-06 14:07) [7]

> [6] DelphiLexx ©   (06.09.06 13:42)
> Ну так надо, чтобы в зависимости от значания Lookup поля
> изменялись значения записей рядом стоящего поля, в котором
> у меня хранятся числа.
А ты думаешь без твоей помощи не изменится?


 
DelphiLexx ©   (2006-09-06 14:32) [8]


> А ты думаешь без твоей помощи не изменится?

Объясняю для особо одаренных. Например, из раскрывающегося списка Lookup поля выбираю занчение "Пшеница", становлюсь на первую запись, если выбранное значение "Пшеница" и первая запись Кукуруза,  то в рядостоящее поле "общий показатель" присваевается значение 2, "Пшеница" и первая запись Рожь,  о в рядостоящее поле "общий показатель" присваевается значение 43 и так для всех записей, там вообщем сложный алгоритм, но поверь мне нужно сделать так, чтобы запись не оставалась редактируемой после выполнения процедуры.


 
Sergey13 ©   (2006-09-06 14:42) [9]

> [8] DelphiLexx ©   (06.09.06 14:32)

Наверное я не особоодаренный - ничего не понял. Злаковые какие то рядомстоящие. Уборочная началась?


 
DelphiLexx ©   (2006-09-06 15:21) [10]


>
> Наверное я не особоодаренный - ничего не понял. Злаковые
> какие то рядомстоящие. Уборочная началась?

Если не понял, то дай понять другим.


 
Sergey13 ©   (2006-09-06 15:30) [11]

> [10] DelphiLexx ©   (06.09.06 15:21)
> Если не понял, то дай понять другим.
А я что, я пожалста. А ты пока про лукап поля почитай что нибудь. И про вычисляемые заодно.


 
evvcom ©   (2006-09-06 15:35) [12]

> [10] DelphiLexx ©   (06.09.06 15:21)
> то дай понять другим

Даже не хочется в эту галиматью вникать. Меняешь поле, тут же в обработчике осуществляешь навигацию, которая опять воздействует на LookupDataSet, он теперь при некоторых условиях опять может воздействовать на первичный НД, опять обработчик, ... Бред какой-то. Да еще и кукуруза с пшеницей...


 
DelphiLexx ©   (2006-09-06 15:48) [13]


> Даже не хочется в эту галиматью вникать. Меняешь поле, тут
> же в обработчике осуществляешь навигацию, которая опять
> воздействует на LookupDataSet,

Да фиг c ним, что он воздействует, если dataset находится в режиме dsBrowse, то следовательно и грид не должен быть в режиме редактирования вот, в чем вся фишка.


 
evvcom ©   (2006-09-06 16:24) [14]

> [13] DelphiLexx ©   (06.09.06 15:48)
> грид не должен быть

Видимо, разработчику грида не пришло в голову потестировать такое извращение, не находишь? Если не нравится, напиши свой грид.


 
DelphiLexx ©   (2006-09-06 17:10) [15]


Помоему нашел
Вручную переводим грид из состояния редактирования
DBGridEh1.EditorMode := true



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.044 c
15-1160853337
Rader
2006-10-14 23:15
2006.11.05
Помогите клавиши изменить!


2-1161277797
funky
2006-10-19 21:09
2006.11.05
окно зависает


2-1161674453
dera
2006-10-24 11:20
2006.11.05
Как убрать пароль на открытие любой БД в MS Access?


2-1161090702
varlam87
2006-10-17 17:11
2006.11.05
Как считать (записать) значение бита?


15-1160733102
Elen
2006-10-13 13:51
2006.11.05
Математический Вопрос





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