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

Вниз

обновление 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.037 c
8-1096621268
Gear
2004-10-01 13:01
2005.01.02
Как добавить wav в ресурсы и проиграть его?


1-1103464023
Pabse
2004-12-19 16:47
2005.01.02
открыть html


14-1102806756
TButton
2004-12-12 02:12
2005.01.02
Душа болит...


1-1103286366
Cosinus
2004-12-17 15:26
2005.01.02
Хм... Никак не разберусь с TreeView


3-1102336931
Shved
2004-12-06 15:42
2005.01.02
Отбор в DBGrid





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