Главная страница
    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.032 c
1-1103114913
korvin
2004-12-15 15:48
2005.01.02
В TCheckListBox проставить галочки тыкая в названия


3-1101972252
guestt
2004-12-02 10:24
2005.01.02
выпадающий список


9-1093887755
xman
2004-08-30 21:42
2005.01.02
Карты


14-1103053860
Verg
2004-12-14 22:51
2005.01.02
ARP шторм. Да, вот так бывает...


14-1102832267
Редкий гость
2004-12-12 09:17
2005.01.02
код на C++ Builder





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