Главная страница
    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
14-57221
ProfiUgl
2001-12-27 16:07
2002.02.18
Откуда можно скачать Update Pack 1 для Delphi5 и ADO Express Update 1 и 2


1-57094
lvovich
2002-02-02 10:45
2002.02.18
Модальные окна


1-57065
frostbite
2002-02-01 17:17
2002.02.18
Сбой кодировки при копировании


4-57246
YUS
2001-12-12 20:43
2002.02.18
Нужна помощь


1-57049
Ura
2002-02-01 18:37
2002.02.18
Опять потоки. Круговорот.





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