Здравствуйте!

Не нашел ответа на такие вопросы - по какому правилу отображаются элементы FastReport на печатной форме, поскольку вышестоящий элемент отображается нижестоящего?

Можно ли итоги по колонке в таблице вывести вверху, а не внизу? Если да - то что для этого нужно сделать?

Нравится

2 комментария

Я год назад поднимал вопрос об итогах www.community.terrasoft.ua/forum/topic/8403 . Но мне это не помогло. Вышел из положения путем двойного прогона MasterData. При первом прогоне считаем, что нам надо и заносим в массив (на форму ничего не выводим), а при втором прогоне уже выводим на форму и ищем в массиве нужные итоги и используем их в расчете и выводе в нужном месте на форме.

В стандартном отчете значение итоговой величины (количество, сумма) становится доступным только после того, как будут обработаны все записи.
Чтобы вывести итог в заголовке (до того, как будет обработана группа данных) воспользуйтесь алгоритмом

Порядок и правила отображения элементов FastReport следующий:

- бэнд "Заголовок страницы" (PageHeader) выводится в самом верху на каждой странице;
- бэнд "Подвал страницы" (PageFooter) выводится в самом низу на каждой странице;
- бэнд "Заголовок отчета" (ReportTitle) выводится на первой странице отчета вверху;
- бэнд "Подвал отчета" выводится в самом конце отчета, на свободном месте;
- дата-бэнды (MasterData, DetailData ....) - выводят на печать данные из таблиц БД;

Полный перечень элементов отчета FastReport приведен здесь

Показать все комментарии

Матричный отчет. Суммы по колонкам и строкам надо менять таким образом: значения по некоторым ячейкам обходить (например, если Value > 100). Сами значения не убирать из печати.
Например, в колонке 10, 20, 50, 110, 5. Сумма должна быть 85. 110 при этом из колонки не убирается. Кто-то с таким сталкивался? Был бы благодарен за подсказку.

Нравится

3 комментария

Может быть Вам подойдет использование конструкции IIF совместно с функцией SUM:
[SUM(IIF( логическое выражение булевого типа , логика в случае true, логика в случае false))]

Например:

[SUM(IIF( <ds_ReportOfferingsInInvoice."Quantity"> = 50 ,(<ds_ReportOfferingsInInvoice."BasicTotalAmount">), 0))]

В данном примере суммируем BasicTotalAmount в случае Quantity = 50, и не суммируем (суммируем с 0 ) если Quantity <> 50

Спасибо за ответ. Мне тоже приходило в голову, что надо использовать условие. Но в cross-tab editor (см. прикрепленный файл) только выбор агрегатных функций из меню (SUM, AVG, MIN...)
А как мне туда вклиниться, чтобы использовать условие?
И еще в процессе создания отчета возникла проблема. В фаст репорт размеры ячеек нормальные. При экспорте в Excel длина ячеек меняется (см. прикрепленные файлы). Свойств у ячеек вроде бы много, но как я ни экспериментировал с ними, от этого эффекта не избавился. В некоторых случаях этот глюк касается и высоты. Не знаете, как от него избавиться?

В случае с cross-tab можно попробовать управлять итоговой величиной программно.
Либо отказаться от cross-tab и использовать датабенды.

Что касается экспорта в Excel, с такой ситуацией не сталкивалась. Нужно общаться с технической поддержкой FastReport (http://www.fast-report.com/ru/forum/index.php)

Показать все комментарии