Topic: Скрипт в FastReport

Кто силен в написании или проверке скрипта написанного в FastReport.
Вчера полночи просидел на ютюбе и в документации по фаст репорту но не смог решить проблему.

Есть таблица.
Вывожу группировку в отчете по одному полю "name".
Составить итоговую сумму по окончанию каждой группы не проблема - достаточно в GroupFooter добавить ячейку с вычисляемой формулой [MAX(<Report."max(maxR80)">,MasterData1)].
Надо отразить тоже самое но не в конце группы а в заголовке группы то есть в бэнде GroupHeader.

Написал по аналогии скрипт:
Привязал обе процедуры к обоим бэндам.
Добавил опцию в настройках отчета (Report - Options - Double Pass)

procedure GroupHeader1OnBeforePrint(Sender: TfrxComponent);
begin
if Engine.FinalPass then
Memo85.Text :=Get(<Report."name">);
end;

procedure GroupFooter1OnBeforePrint(Sender: TfrxComponent);
begin
Set(<Report."name">,
   FloatToStr(MAX(<Report."max(maxR80)">,MasterData1)));
end;

Но выводит ошибку:
The following error(s) have occured:
Could not convert varriant of type (Null) into type (Double)

Не удалось преобразовать вариант типа ( Null ) в тип ( Двухместный)

Не подскажете в чем косяк?

Чучкин Евгений

Re: Скрипт в FastReport

Не знаком с процедурами Get и Set в скрипте.


Приложте ваш проект, постараюсь помочь.

Dmitry.

3 (edited by Xexrby Tdutybq 2016-04-13 12:00:01)

Re: Скрипт в FastReport

так проект тот же самый - нефтепродукты smile
я взял другой метод но там тоже проблема выходит.
агрегатный функции типа min, avg не игнорируют пустые значения и воспринимают их как нули и отсюда неверно расчитывают

Post's attachments

Attachment icon Нефтепродукты.rar 580.19 kb, 422 downloads since 2016-04-13 

Чучкин Евгений

Re: Скрипт в FastReport

Вы забыли указать о каком именно отчете идет речь, в вашем проекте их несколько.

Dmitry.

Re: Скрипт в FastReport

Отчет по поселениям

Чучкин Евгений

Re: Скрипт в FastReport

Xexrby Tdutybq wrote:

так проект тот же самый - нефтепродукты smile
я взял другой метод но там тоже проблема выходит.
агрегатный функции типа min, avg не игнорируют пустые значения и воспринимают их как нули и отсюда неверно расчитывают

Не заметил такого в вашем отчете, пожалуйста пишите подробней, где именно это происходит.
Например 'Кондинский район, там имеются пустные значения, но функция MAX расчитывается верно.

Dmitry.

Re: Скрипт в FastReport

функция MAX макс рассчитывается верно, но если заменить эту функцию на MIN или AVG то начинаются проблемы.
пустые строки принимаются в расчет как нули и функция MIN отражает не минимальнео значение а нуль,
насчет среднего не помню но если в расчете будут считаться рустые строки как нули то и расчет верным не будет.

Чучкин Евгений

Re: Скрипт в FastReport

Xexrby Tdutybq wrote:

функция MAX макс рассчитывается верно, но если заменить эту функцию на MIN или AVG то начинаются проблемы.
пустые строки принимаются в расчет как нули и функция MIN отражает не минимальнео значение а нуль,
насчет среднего не помню но если в расчете будут считаться рустые строки как нули то и расчет верным не будет.

В дизайнере отчетов на вкладке "Data" выберите объект "Report", затем ниже на вкладке "Properties" раскройте настройку EngineOptions и снимите галочку с пункта "ConvertNulls"

Dmitry.

Re: Скрипт в FastReport

В бэнде Footer то он расчитвает теперь но если пытаюсь изменить скрипт для вывода итоговых значений в Header все равно выдает ошибку

The following error(s) have occured:
Could not convert varriant of type (Null) into type (Double)

Задача то была  чтоб итоговые значения не в Footer  выводились а в Header иначе и скрипт не было смысла писать

Чучкин Евгений

Re: Скрипт в FastReport

К сожалению я не смог найти решения.

Dmitry.