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

Вниз

Простой отчет   Найти похожие ветки 

 
sloug ©   (2005-02-28 21:42) [0]

Привет мастера Delphi. У меня такая проблема. У меня в программе имеются следующие поля: Total_2, Summ и другие. Мне нужно узнать:
1.Сколько записей содердит таблица;
2.Сколько записей содержит таблица, у которых поле "Total_2">0;
3.Сложить значения полей "Summ" всех записей;
4.Сколько записей имеют в поле "Total_2" значение 0;
5.Просчитать сумму всех значений в поле "Total_2";
6.Получить разницу между суммой в поле "Total_2" и "Summ".
И вывести все это на Label-ы. Привожу код, который я написал.

procedure TForm1.N7Click(Sender: TObject);
var k,n,i: integer;
   Summ,Summ2,IT: Real;
begin
Form3.Label7.Caption:=IntToStr(Form1.Table1.RecordCount);
k:=Table1.RecordCount;
  N:=0;
 For i:=0 to Table1.RecordCount-1 do
    begin
    If Table1.FieldValues["Total_2"]>0 then
     begin
      N:=N+1;
      DataSource1.DataSet.Next
     end;
  end;
  Summ:=0;
  Summ2:=0;
  With Table1 Do
  Begin
   While not eof do
    begin
     Summ:=Summ+FieldByName("Summ").AsFloat;
     Summ2:=Summ2+FieldByName("Total_2").AsFloat;
     next;
    end;
  End;
Form3.Label8.Caption:=IntToStr(k);
Form3.Label9.Caption:=IntToStr(k-n);
Form3.Label10.Caption:=FloatToStr(Summ);
Form3.Label11.Caption:=FloatToStr(Summ2);
IT:=Summ2-Summ;
If IT>0 Then
 Form3.Label12.Caption:="+"+FloatToStr(IT) Else
Form3.Label12.Caption:=FloatToStr(Summ2-Summ);
Form3.showmodal
end;

В моей таблице имеется 2 записи:
1.Значение поля Summ=200, значение поля Total_2=312;
2.Значение поля Summ=300, значение поля Total_2=0;
В отчете выдается следующее:
1.Кол-во записей = 2;
2.Кол-во записей у которых поле "Total_2">0  = 2;
3.Сумма значений поля Summ = 300;
4.Кол-во записей у которых поле "Total_2">0 = 1;
5.Сумма значений поля Total_2 = 0;
6.Разница составила -300;
Почему так, помогите исправить ошибки. Спасибо.


 
Anatoly Podgoretsky ©   (2005-02-28 22:35) [1]

Ну не фига себе, у тебя еще есть вопрося, выкладывай все их сразу, а то ну чего мучаться по одному задавать, да еще не дай бог и искать ответы на эти вопросы.
Только ты сразу скажи, что это все, что бы не промахнуться, не начать отвечать раньше времени.

Кстати на всякий случай, все ответы на эти вопросы есть в стандартной справке.


 
Anatoly Podgoretsky ©   (2005-02-28 22:36) [2]

И где сам вопрос про отчет, чего то не видать


 
sloug ©   (2005-03-01 16:27) [3]

Это просто маленькая статистика. Все, что мне надо, я написал. Но вот в чем парадокс, я уже писал подобную статистику и эта процедура работара на ура, а в новой программе она почему-то работает криво, поэтому я решил все описать на форуме, может я где-то ошибся и что-то можно написать по-другому.


 
ЮЮ ©   (2005-03-02 04:42) [4]

А где позиционирование в начало таблицы?
Вместо
For i:=0 to Table1.RecordCount-1 do
должно быть
 Table1.First;
 while not Table1.Eof do begin
   ...
   Table1.Next;
 end;


 
Ильш   (2005-03-02 06:10) [5]


> А где позиционирование в начало таблицы?

:)))) а нафига ? видимо sloug перед вызовом N7Click как раз открывает таблу и считает, что вызывает First в падлу :))))


 
Ольга   (2005-03-02 09:10) [6]

Замените Table на Query, и проблем будет на порядок меньше.
Тогда вот вам ответы на вопросы:
SELECT count(*) FROM Table1
SELECT count(*) FROM Table1 WHERE Total_2>0
SELECT SUM(Summ) FROM Table1
SELECT count(*) FROM Table1 WHERE Total_2=0
SELECT SUM(Total_2) FROM Table1
SELECT SUM(Summ)-SUM(Total_2) FROM Table1



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

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

Наверх




Память: 0.46 MB
Время: 0.04 c
14-1110011521
boriskb
2005-03-05 11:32
2005.03.27
Читайте лицензионное соглашение. :)


1-1110349102
kblc
2005-03-09 09:18
2005.03.27
TRichEdit & *.doc


14-1109869953
Тимур
2005-03-03 20:12
2005.03.27
Снятие скриншотов кнопкой "Prt Sc SysRq"


3-1109321159
juice
2005-02-25 11:45
2005.03.27
где IB Expert хранит свои настройки?


3-1109581335
cbandit
2005-02-28 12:02
2005.03.27
between не магу понять почему не работает





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