powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FastReport - помогите сформировать итоги
12 сообщений из 12, страница 1 из 1
FastReport - помогите сформировать итоги
    #40114732
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итоговое количество судов не должно совпадать с суммой в строках, потому что в строках идет группировка по типу груза, а на одном судне может быть 3 груза, так что, например, по сумме в строках получится 17, а на самом деле 15 судов.
Следовательно, итожки формируются другим запросом, без группировки по количеству грузов.
Нужно, чтобы после таблицы каждого района выводилась итожка по этому району.
Но в GroupHeader указана [DS0."cargo_zone_id"] - это первый желтый бэнд. А сумма выводится во втором бэнде DS1.
Поэтому все итожки получаются в самом низу отчета. Как сделать, чтобы каждая итожка шла после своего района?
...
Рейтинг: 0 / 0
FastReport - помогите сформировать итоги
    #40114733
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Форма
...
Рейтинг: 0 / 0
FastReport - помогите сформировать итоги
    #40114770
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GroupFooter после MasterData1 и на него Итого
...
Рейтинг: 0 / 0
FastReport - помогите сформировать итоги
    #40114774
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr
GroupFooter после MasterData1 и на него Итого

А GroupFooter же управляется условием, прописанным в GroupHeader, а там ссылка на DS0. Как этот параметр передать в DS1?
Пробовал, в результате после каждого района выводится сумма по 1-му району.
...
Рейтинг: 0 / 0
FastReport - помогите сформировать итоги
    #40114775
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как этот параметр передать в DS1?
В момент печати GroupFooter датасет стоит на последней строчке группы. Вот с датасета (DS0) данные и берите
Если DS1 уже готовый и колонка DS0 уникальна, то достаточно будет просто спозиционировать DS1 методом Locate
...
Рейтинг: 0 / 0
FastReport - помогите сформировать итоги
    #40114782
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr
В момент печати GroupFooter датасет стоит на последней строчке группы. Вот с датасета (DS0) данные и берите
Если DS1 уже готовый и колонка DS0 уникальна, то достаточно будет просто спозиционировать DS1 методом Locate

На DataSource.OnDataChange первого запроса повесил вызов второго запроса, где вычисляется сумма. Теперь на каждую строку первого запроса вызывается второй запрос, долго.
...
Рейтинг: 0 / 0
FastReport - помогите сформировать итоги
    #40114784
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr
>
Если DS1 уже готовый и колонка DS0 уникальна, то достаточно будет просто спозиционировать DS1 методом Locate

В какой момент это делать-то? Там все определяет сама форма frxReport. Как в этот процесс вклиниться? Кроме события DataSource.OnDataChange.
...
Рейтинг: 0 / 0
FastReport - помогите сформировать итоги
    #40114793
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svnvlad

В какой момент это делать-то? Там все определяет сама форма frxReport. Как в этот процесс вклиниться? Кроме события DataSource.OnDataChange.

Я же написал "В момент печати GroupFooter датасет стоит на последней строчке группы".
Вот в момент печати GroupFooterю.OnBeforePrint и делаете всё что вам нужно в скрипте отчёта.
Повесить мемку в которой напишите вызов функции.
А в функции вычисляйте что вам вздумается.
Конкретно в вашем случае (если valuees_count - это готовые суммы по каждой группе) можно написать в мемке [DS1."valuees_count"], а в GroupFooter.OnBeforePrint спозиционировать на нужную строку DS1

Код: pascal
1.
2.
3.
4.
procedure GroupFooter1OnBeforePrint(Sender: TfrxComponent);
begin
  DS1.Lacate('ПолеГруппыDS0', <DS0."ПолеГруппыDS0">,0);
end;
...
Рейтинг: 0 / 0
FastReport - помогите сформировать итоги
    #40114821
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr
svnvlad

В какой момент это делать-то? Там все определяет сама форма frxReport. Как в этот процесс вклиниться? Кроме события DataSource.OnDataChange.

Я же написал "В момент печати GroupFooter датасет стоит на последней строчке группы".
Вот в момент печати GroupFooterю.OnBeforePrint и делаете всё что вам нужно в скрипте отчёта.
Повесить мемку в которой напишите вызов функции.
А в функции вычисляйте что вам вздумается.
Конкретно в вашем случае (если valuees_count - это готовые суммы по каждой группе) можно написать в мемке [DS1."valuees_count"], а в GroupFooter.OnBeforePrint спозиционировать на нужную строку DS1

Код: pascal
1.
2.
3.
4.
procedure GroupFooter1OnBeforePrint(Sender: TfrxComponent);
begin
  DS1.Lacate('ПолеГруппыDS0', <DS0."ПолеГруппыDS0">,0);
end;


Код: pascal
1.
2.
3.
4.
procedure GroupFooter1OnBeforePrint(Sender: TfrxComponent);
begin
  DS1.Locate('cargo_zone_id', <DS0."cargo_zone_id">, 0);  
end;


Ругается на inentifier DS1.
...
Рейтинг: 0 / 0
FastReport - помогите сформировать итоги
    #40114835
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну у вас же DS1 есть. Может стоит ему UserName прописать ?
...
Рейтинг: 0 / 0
FastReport - помогите сформировать итоги
    #40114836
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так попробовал
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
procedure GroupFooter1OnBeforePrint(Sender: TfrxComponent);
var
  DS: TfrxDataSet;                                       
begin
  DS := MasterData2.DataSet;                                                            
  DS.First;
  DS.Locate('cargo_zone_id', <DS0."cargo_zone_id">, 0);
end;


DS.First работает, а Locate - Undeclared identifier 'Locate'
...
Рейтинг: 0 / 0
FastReport - помогите сформировать итоги
    #40114837
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr
Ну у вас же DS1 есть. Может стоит ему UserName прописать ?

Так это и есть UserName
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FastReport - помогите сформировать итоги
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]