Как работает SummaryBand в QuickReporte?
Столкнулся с проблемой подсчёта в столбце отчёта.
Ну и не получается объеденить все значения каждой ячейки столбца в одно число :sad:
Всё что выводится - это последняя ячейка.
Расскажите как работает эта компонента:-?
Заранее благдарю:)
Привет всем!
Столкнулся с проблемой подсчёта в столбце отчёта.
Ну и не получается объеденить все значения каждой ячейки столбца в одно число :sad:
Всё что выводится - это последняя ячейка.
Расскажите как работает эта компонента:-?
Заранее благдарю:)
понимаешь, он сам ничего не суммирует - это же просто банд - область для размещения компонентов после всех записей... ставь на него лабел, а перед тем как выводить репорт - есть там такое событие - считай сумму и кидай ее в лабел. сумму можешь посчитать пробежав по всем записям или через SQL...
понимаешь, он сам ничего не суммирует - это же просто банд - область для размещения компонентов после всех записей... ставь на него лабел, а перед тем как выводить репорт - есть там такое событие - считай сумму и кидай ее в лабел. сумму можешь посчитать пробежав по всем записям или через SQL...
через SQL я не смогу этого сделать, потому что использовал первоначально Table, a не Query.
Я её задейсвовал во многих операциях. И поэтому замену делать слишком долго.
А возможно подсчитать сумму представив список,
т.е. отдельный столбец базы массивом? Ну скажем так к примеру с поомощью ARRAYSIZE?
Или может как нибудь применить QRExpr. Вот только проблема в том, что я практически с ним не знаком
и не знаю его правильного применения.
Может подскажешь как мне быть в дальнейшем... :D :-?
int summ = 0;
for(Table->First(); !Table->Eof; Table->Next())
summ += Table->FieldByName("Field1")->Value;
а потом на репорт ставишь лабел и значение summ заносишь ав этот лабел...
ну так я ж говорю - есть два варианта, если вариант с SQL тебе не подходит - просо делай цикл типа:
int summ = 0;
for(Table->First(); !Table->Eof; Table->Next())
summ += Table->FieldByName("Field1")->Value;
а потом на репорт ставишь лабел и значение summ заносишь ав этот лабел...
Странно! Но у меня все равно ничего не получается.
При такой операции он мне абсолютно ничего не выдаёт. Метка как была QRLabel, так такой и осталась.
Хотя ввёл я все вроде правильно:
AnsiString summ1 = 0;
for(Form1->Table4->Bof; !Form1->Table4->Eof; Form1->Table4->Next())
summ1 += Form1->Table4->
FieldByName("Поле")->Value;
QRLabel->Caption = (summ1);
Где возникает проблема?
Странно! Но у меня все равно ничего не получается.
При такой операции он мне абсолютно ничего не выдаёт. Метка как была QRLabel, так такой и осталась.
Хотя ввёл я все вроде правильно:
AnsiString summ1 = 0;
for(Form1->Table4->Bof; !Form1->Table4->Eof; Form1->Table4->Next())
summ1 += Form1->Table4->
FieldByName("Поле")->Value;
QRLabel->Caption = (summ1);
Где возникает проблема?
а ты погляди чем твой код отличается от моего... у тебя стоит Bof вместо First()... это неправильно! First() - это функция, которая позиционирует указатель текущей записи на начало таблицы, а Bof - это просто признак - он ничего не позиционирует, просто позволяет узнать на первой записи стоит указатель или на какой-нибудь другой...
а ты погляди чем твой код отличается от моего... у тебя стоит Bof вместо First()... это неправильно! First() - это функция, которая позиционирует указатель текущей записи на начало таблицы, а Bof - это просто признак - он ничего не позиционирует, просто позволяет узнать на первой записи стоит указатель или на какой-нибудь другой...
Relax, и так и так ничего не получается. Я вставлял First(), но результатом становится последовательность значений каждой ячейки вычисляемого поля.
Напрмер, "Поле" имеет три ячейки со значениями
1 - 10
2 - 21
3 - 23
Результат получается равный 0102123.
При этом предварительный просмотр вскрывает метку только со второго раза, т.е. кнопку preview приходится кликать два раза прежде чем QRLabel примет вид указанного выше примера.
Попробовал найти сумму через QRExpr введя:
SUM(Items.Cost). В итоге он мне написал нуль.
Попробовал через БД: SUM(Table4.Cost) - результат тот же - "0"...
__________________________________________________
Relax, и так и так ничего не получается. Я вставлял First(), но результатом становится последовательность значений каждой ячейки вычисляемого поля.
Напрмер, "Поле" имеет три ячейки со значениями
1 - 10
2 - 21
3 - 23
Результат получается равный 0102123.
При этом предварительный просмотр вскрывает метку только со второго раза, т.е. кнопку preview приходится кликать два раза прежде чем QRLabel примет вид указанного выше примера.
....
ну еще бы у тя получилась сумма summ1 вообще-то строка!!!
а у Relax`a int summ; и далее по тексту...
внимательнее надо быть граждане.