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

Вниз

Как вывести результат суммы по столбцу?   Найти похожие ветки 

 
Axex12   (2002-01-25 04:36) [0]

Уважаемые мастера!
Есть таблица Nakl.
1) Как вывести в Memo1 результат суммы в столбце NaklSum?
Проблема в том, что при OnGetText программа зацикливается.
2) Как остановить событие OnCalcFields?
AutoCalcFields:=False почему-то не работает.
3) Можно ли остановить обработку всех событий?

Вот фрагмент программки:
-----------------------------------------------------
procedure TDMBook.NaklCalcFields(DataSet: TDataSet);
begin
NaklSum.Value:=NaklCount.Value*NaklPrise.Value;
end;

procedure TDMBook.Nakl К КАКОМУ СОБЫТИЮ? (Sender: TField);
var SS:real;
begin
SS:=0;
Nakl.First;
repeat
SS:=SS+NaklSum.Value;
until not Nakl.FindNext;
FormBook.Memo1.Lines.Add(FloatToStr(SS));
end;
-----------------------------------------------------

Не судите строго. Про Delphi услышал только месяц назад.
С уважением, Алексей.


 
Desdechado   (2002-01-25 10:37) [1]

не ясно, с какими компонентами доступа к БД работаешь TTable или TQuery
1) для TQuery можно (если без показа данных, просто сумма)
SELECT sum( поле ) FROM таблица WHERE условие
если с показом, то
with( dataset ) do
begin
first;
sum := 0;
while( not EOF ) do
begin
sum := sum + FieldByName( "поле" ).AsFloat;
Next;
end;
end;

событие OnGetText предназначено для хитрого преобразования данных поля при попытке чтения из поля
2) остановить событие нельзя, оно либо случается, либо нет.
AutoCalcFields просто дает указание посчитать, сколько полей в датасете.
OnCalcFields предназначено для обработки вычисляемых полей, т.е. тех, которых нет в БД, но могут быть сформированы на основании имеющихся для отображения. с AutoCalcFields никак не связано
3) обработку событий отменить нельзя. Они все равно будут происходить. Но обработчик события в компоненте можно присвоить nil, тогда он будет пустой, а в нужный момент можно его вернуть назад. Но для начинающего лучше с этим не мудрить - вполне достаточно и стандартного поведения.

САМОЕ ГЛАВНОЕ:
в любом месте дельфей ткни мышой, нажми F1 - и читай, что это такое и для чего оно, тогда не будет таких несуразностей. И почитай книжку о событийных принципах программирования в виндах.



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

Форум: "Базы";
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.003 c
6-57156
SemFLY
2001-11-26 04:05
2002.02.18
Как определить какой тип подсоединение использует юзер ?


1-57087
Егор
2002-01-31 04:25
2002.02.18
DCOM


3-56987
Fay
2002-01-23 15:18
2002.02.18
Как в запросе MSSQL7 проверить сущ-е временной таблы


1-57135
HDD
2002-02-03 16:48
2002.02.18
Помогите люди добренькие


14-57201
vlad17
2001-12-20 17:17
2002.02.18
https





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