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

Вниз

Вычисляемое поле   Найти похожие ветки 

 
Mmmaloy   (2007-01-25 17:20) [0]

есть две таблицы  в связи master - details

Нужно в master сделать поле, что бы в него входила вся информация из details.

Создал вычисляемое поле. а вот процедура вычисления:


procedure TDM1.personen_dsetCalcFields(DataSet: TDataSet);
var
  st: String;

begin
    st := "";

    if (notizen_dset.Active = true) then
    begin
         notizen_dset.First;
         while not notizen_dset.Eof do
         begin
              st := st + Copy(notizen_dsetdatum_add.AsString, 1, 10) + ": "; // DATA

              if (notizen_dsetthematik_abk.AsString <> "") then
              begin
                   st := st + notizen_dsetthematik_abk.AsString;
                   if (notizen_dsetnotizen.AsString <> "") then
                   begin
                        st := st + " - "
                   end;
              end;
              st := st  +  notizen_dsetnotizen.AsString + #13#10;

              notizen_dset.Next;
         end;
    end;

    personen_dsetnotizen.Value := st;
end;


Надеюсь смысл понятен. Внутри функции перебираются поля из таблицы details. Так вот, что - то вычисляет, но обсолютно неправильно, т.е. значения из details в момент расчета не соответсвуют реальным, как буд-то бы в момент расчета, details привязана совсем к другой записи master.

Как победить? Спасибо


 
Johnmen ©   (2007-01-25 17:33) [1]

А в чём сакральный смысл сего извращения?


 
Mmmaloy   (2007-01-25 17:39) [2]

Смысл есть, иначе не извращался бы.


 
Johnmen ©   (2007-01-25 17:46) [3]

А-а-а.. Я кажись понял смысл, несмотря на то, что ты его скрываешь.
Хочешь иметь в выч.поле некоторый результат действия над соответствующими записями из детального НД?
Если да, то почему ты решил, что навигационные методы типа First, Next и т.п. распространяются (в данном случае) только на соотв.записи детали?


 
Mmmaloy   (2007-01-25 20:43) [4]

// Если да, то почему ты решил, что навигационные методы типа First, Next и т.п. распространяются (в данном случае) только на соотв.записи детали?

Я так считал (сейчас уже нет), потому как details (notizen_dset) привязана к master (personen_dset). Но по видимому OnCalcFields можно с уверенностю говорить только об одной записи из того DataSet, для которого этот обработчик и создан.

Завтра попробую подругому, идеи уже у меня есть


 
Mmmaloy   (2007-01-26 00:45) [5]

Что, действительно такой глупый вопрос, что только в начинающих и годиться?



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

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

Наверх




Память: 0.47 MB
Время: 0.045 c
15-1168961336
isasa
2007-01-16 18:28
2007.02.11
Беспроводная сеть в офисе(обычные 100 Мбит/с).


2-1169558509
vitv
2007-01-23 16:21
2007.02.11
Возможен ли следующий запрос?


2-1169396785
md
2007-01-21 19:26
2007.02.11
динамический массив


15-1169395280
optimizer
2007-01-21 19:01
2007.02.11
Помогите оптимизировать.


3-1163764708
DelphiLexx
2006-11-17 14:58
2007.02.11
Как определить измененные записи, FIBDataSet и CacheUpdate