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

Вниз

обновление detail - таблицы   Найти похожие ветки 

 
zunder ©   (2004-12-02 17:17) [0]

в событии master.OnDataChange закрываю таблицу и если связываемые поля в master`е не пустые открываю ее, при работе программы возникает ошибка обращения не к свое области памяти.
Не могу понять что не так.

const Busy: Boolean = False;
begin
 if Busy then
   Exit;
   
 Busy := True;  
 if (AnsiUpperCase(Sender.FieldName) = "AR_INN") then
   if Sender.IsNull then begin
     dstMain.FN("AR_NAME").Clear;
     dstMain.FN("DOG_NO").Clear;
     dstMain.FN("DOG_DATA").Clear;
   end;

 if (AnsiUpperCase(Sender.FieldName) = "DOG_NO") then
   if Sender.IsNull then
     dstMain.FN("DOG_DATA").Clear;

 //обновить договоры арендатора
 if dstMarkDogs.State = dsBrowse then begin
   dstMarkDogs.Close;
   if (dstMain.FN("AR_INN").AsString <> "") or (dstMain.FN("DOG_NO").AsString <> "") then
     dstMarkDogs.CloseOpen(False);
 end;

 if (AnsiUpperCase(Sender.FieldName) = "RENT") or (AnsiUpperCase(Sender.FieldName) = "PENI") or (AnsiUpperCase(Sender.FieldName) = "NDS") then begin
   dstMain.FN("PAY_AMOUNT").AsFloat := dstMain.FN("RENT").AsFloat+dstMain.FN("NDS").AsFloat+dstMain.FN("PENI").AsFloat;
 end;
 
 Busy := False;


 
msguns ©   (2004-12-02 18:14) [1]

Не вникая в смысл таких странных переоткрытий (зачем их делать руками, если определена связь Master-Detail, причем стринговые поля, если связь д.б. по ID, что делает таинственный Busy,который по идее всегда ложь (или он переприсваивается в обработчмках событий датасетов) и т.д.), не понятно как работает присвоение в последней конструкции if, если предварительно НД не был переведен в моду Edit.
Вообще странная связь ;))


 
zunder ©   (2004-12-03 11:04) [2]

dstMain переходит в режим [dsEdit,dsInsert] при открытии модального окна.
Busy нужна для того чтобы не было рекрсивных обработок, т.к. dstMain - master.
В master-detail, если ключ мастера пустой (добавляем запись в master) у меня detail-таблица выдает все записи, мне это не надо, может какая-то настройка есть в FIBPlus компонентах, которая позволяет автоматически закрывать detail dataset и открывает его при установке ключа?



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

Текущий архив: 2005.01.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.036 c
1-1103207930
redlord
2004-12-16 17:38
2005.01.02
завершение потока приводит к зависанию


4-1100772561
DelphiN!
2004-11-18 13:09
2005.01.02
Как сделать чтобы дочернее окно было всегда поверх родителя?


1-1103279056
Дмитрий В. Белькевич
2004-12-17 13:24
2005.01.02
Чем ловить Mem Leak и выход за границы массивов под Delphi 7.0?


1-1103139136
Kot
2004-12-15 22:32
2005.01.02
Создание теста


14-1102766463
DillerXX
2004-12-11 15:01
2005.01.02
Хочу спросить ваше мнение что покупать