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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.003 c
1-57088
Serg001
2002-02-02 08:18
2002.02.18
У меня такой вопросик: как узнать дескриптор dll-ки из которой я загружаю функцию


4-57244
a-leksey
2001-12-19 13:44
2002.02.18
Нужно имитироить нажатие клавиш в другом приложений!!!


1-57040
Иванов Юрий
2002-02-01 11:53
2002.02.18
Дамы и Господа! Помогите! Как получить список директорий в директории


1-57100
@andrew
2002-02-01 14:45
2002.02.18
ПРИВЕТ ВСЕМ!!! Делаю смену курсора на событие....


1-57043
SAlex
2002-02-04 11:57
2002.02.18
вставка таблицы в RichEdit





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