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

Вниз

Порядок связывания таблиц   Найти похожие ветки 

 
ruslan_as ©   (2002-11-25 17:34) [0]

Есть таблица ТОВАР
есть еще две таблицы МЕХАНИК и ЭНЕРГЕТИК
Таблица ТОВАР мастер (по двум полям) к МЕХАНИК и ЭНЕРГЕТИК.

В третьей таблице ОБЩАЯ (тоже связанная с ТОВАР по этим же полям) я хочу получить сумму по полям МЕХАНИК и ЭНЕРГЕТИК.
Выкручиваюсь так:
Поставил процедуру на onCalcFields таблицы ОБЩАЯ типа:
ОБЩАЯ.ПОЛЕ1:=МЕХАНИК.ПОЛЕ1+ЭНРЕГЕТИК.ПОЛЕ1
В результате при переходе к следующую запись таблицы ТОВАР я получаю в ОБЩЕЙ сумму предыдущих значений МЕХАНИК и ЭНЕРГЕТИК (на которых перед этим был установлен курсор).
Получаестся, что CalcFields просчитывает раньше, чем поменяют свои значения МЕХАНИК и ЭНЕРГЕТИК. Как сделать, что бы считались уже измененные значения...


 
Johnmen ©   (2002-11-25 17:41) [1]

Нет ! Значения вычисляемых поля получаются после занесения значимых полей в буфер текущей записи, т.е. все должно быть ок...
Но лучше сделать в запросе МЕХАНИК.ПОЛЕ1||ЭНРЕГЕТИК.ПОЛЕ1 AS <Field>


 
ruslan_as ©   (2002-11-25 18:09) [2]

Речь идет о наборах данных. Поля отображаються в DBGrid. Запроса на таблицу ОБЩАЯ нет.
Я уже раньше делал это, но сейчас создавал эти наборы в другом порядке, может тут собака зарыта...


 
Johnmen ©   (2002-11-25 18:17) [3]

Кажись, я понял...
Вычисляемые поля, в общем случае, вычисляются из значимых в рамках текущего НД, т.е. и выч-ые и зна-ые берутся из одного НД.
А ты берешь из другого, в котором нет движения...



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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
1-36263
vanya
2002-12-02 12:01
2002.12.12
Форма поверх всех окон


1-36288
smok_er
2002-12-01 00:52
2002.12.12
Auto-increment build number


6-36318
Flex
2002-09-29 09:25
2002.12.12
Как закачать файл с сервера, если сервер проверяет поле REFERER?


1-36090
IronHawk
2002-12-01 02:52
2002.12.12
Запуск ЕХЕ-шника с параметром?


3-36040
Calm
2002-11-25 14:46
2002.12.12
MS SQL: Как вернуть несколько строк с помощью Raiserror()