Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FastReport. Вертикальные бэнды / 25 сообщений из 36, страница 1 из 2
13.09.2018, 12:23
    #39702008
OlyaLora
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
Доброго времени суток! И с праздником!
Собственно вопрос простой: можно ли заставить FR переносить заголовки с данными на следующую страницу, если имеются вертикальные бэнды?
На странице: 2 "обычных" горизонтальных GroupHeaderов, 2 вертикальных GroupHeaderов. Ну, и соответственно, 2 MasterDatы.
Задача состоит в том, чтобы печатать каждый из GroupHeaderов с его MasterDatой на отдельной странице.
Решения почему-то, ни в нете, ни в документации не нашлось.
...
Рейтинг: 0 / 0
13.09.2018, 15:09
    #39702163
OlyaLora
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
Вот картинка, если не совсем понятно по тексту...

Причем, если MasterData достаточно длинная (т.е в запросе несколько/много записей), то сам FR без труда переносит заголовки с содержимым как надо сам. НО....количество строк в запросе, разумеется, не фиксированное... Да и страница по-хорошему должна быть бесконечной ширины.

Есть идеи? Впервые работаю с вертикальными бэндами. Мож, что-то не так делаю?


...
Рейтинг: 0 / 0
13.09.2018, 15:13
    #39702164
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
Вертикальные бэнды это анахронизм, доставшийся со времён безскриптового движка.
Проще динамически создать нужно количество колонок.
...
Рейтинг: 0 / 0
13.09.2018, 15:18
    #39702170
OlyaLora
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
DimaBrПроще динамически создать нужно количество колонок.
Бе...создавать динамически (без обид). Мне не проще, честно говоря. У меня масса форм (включая и те, что с crosstabaми), где заранее неизвестна длина таблицы ни вниз, ни вправо. Писать для каждой из них динамическое построение как-то не хочется. + Тогда уж проще обойтись без FR, создавая отчет на том же Excel....
...
Рейтинг: 0 / 0
13.09.2018, 15:20
    #39702176
OlyaLora
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
Да и, чего уж там,...я и подумать не могла, что возникнет эта проблема (ибо с "обычным" горизонтальным расположение тех же бэндов таких проблем никогда не наблюдалось)
...
Рейтинг: 0 / 0
13.09.2018, 15:58
    #39702204
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
Поверьте, проще создать динамически, там кода то на 5-10 строчек
...
Рейтинг: 0 / 0
13.09.2018, 16:02
    #39702205
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
СrossТabы такое же зло как и Вертикальные Бэнды.
Отчёт должен красиво печатать готовые данные, а не создавать их из имеющихся.
...
Рейтинг: 0 / 0
13.09.2018, 16:25
    #39702218
OlyaLora
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
DimaBr,
Не буду с Вами спорить, хотя бы потому что глубоко уважаю Ваше мнение и опыт. Но мне по-прежнему не ясно, зачем вообще нужны данные бэнды, или зачем они наследуют св-во "StartNewPage"... И почему FR беспроблемно переносит те части данных, которые необходимо, самостоятельно, когда место на странице заканчивается...

В любом случае, спасибо за помощь ))
...
Рейтинг: 0 / 0
13.09.2018, 18:52
    #39702315
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
DimaBr> СrossТabы такое же зло как и Вертикальные Бэнды.

Так точно.

Кода для "вручную" там не 5 строчек, конечно, но таки лучше самому.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.09.2018, 20:42
    #39702333
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
DimaBrСrossТabы такое же зло как и Вертикальные Бэнды
Гаджимурадов РустамТак точно
Не всё так однозначно

Мне кажется, что многие решения, принятые при проектировании FastReport'а (как то типы бэндов, свойства, провайдеры баз данных или как они там назывались, скриптовый движок), были приняты с оглядкой на киллер-фичу фаста: возможность дизайнить отчеты конечным пользователем
...
Рейтинг: 0 / 0
13.09.2018, 21:11
    #39702338
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
Едва ли много конечных пользователей смогут забацать СrossТab :)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.09.2018, 21:12
    #39702339
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
Справедливости ради, забацать нормальный СrossТab в общем
случае в принципе нетривиальная задача, даже для программиста.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.09.2018, 21:33
    #39702341
_Den_Z
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
Гаджимурадов Рустам,
Пользователи могут делать через связку с FastCube ;)


OlyaLora ,
У вертикальных бэндов StartNewPage не обрабатывается, т.к. они не развиваются (сейчас весь упор делается на таблицу).
NewPage вызывать тоже бесполезно, т.к. вывод вертикальных отличается от обычного вывода.

Но можно воспользоваться скриптом, и менять Engine.PageWidth.
Что-то вроде :
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
var
  nWidth, PageW: Extended;

procedure BandOnAfterPrint(Sender: TfrxComponent);
begin                   
 if Sender is TfrxGroupHeader then
 begin
   Engine.PageWidth := PageW;
   nWidth := 0;
 end;
 nWidth := nWidth + TfrxBand(Sender).Width;
 if Sender is TfrxGroupFooter then
   Engine.PageWidth := nWidth;
end;

procedure Page1OnBeforePrint(Sender: TfrxComponent);
begin
 PageW := Engine.PageWidth;
end;
  
procedure Page1OnAfterPrint(Sender: TfrxComponent);
begin
  Engine.PageWidth := PageW;
end;



Событие BandOnAfterPrint связывается с всеми вертикальными бэндами.
Накапливаем ширину, в вертикальном подвале устанавливаем PageWidth равным этой ширине. При печати заголовка сбрасываем, и повторяем заново.

Или подождать нового билда, функционал StartNewPage для вертикальных добавляется одной строчкой, в следующем билде добавлю ее обработку.
...
Рейтинг: 0 / 0
13.09.2018, 21:42
    #39702343
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
А вот и начальник транспортного цеха.

_Den_Z> Пользователи могут делать через связку с FastCube ;)

Боюсь, этого большинство тоже не осилит.
Вообще, нелегкое это дело - ваять end-user
отчеты самим пользователям и тем паче дать
удобный инструмент для этого. У тех же 1С
он тоже далек от идеала.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.09.2018, 21:52
    #39702347
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
Если хочешь сделать что-то хорошо, сделай это сам. (Фердинанд ПОРШЕ)
...
Рейтинг: 0 / 0
13.09.2018, 21:55
    #39702348
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
Отож. Но у меня такая задача пока не стояла, вроде, а ради
спортивного интереса я за такую сложную задачу не возьмусь.
А формировать отчеты в МСО по шаблонам - это несложно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.09.2018, 23:02
    #39702360
Gator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
Гаджимурадов РустамЕдва ли много конечных пользователей смогут забацать СrossТab :)
Ну... желание у заказчиков бывает.
И решения есть и компоненты кубов, и в Экселе... (даже у "девок" красивый Pivot). Другое дело, что сотрудники не пользуют их по разным причинам ( неудобно, нахненадь, время... их спросить ещё? ).
НО
imho Заказчик имеет [сеть] OLTP , но не имеет средств на OLAP
____________
когда тописал здесь или в соседнем форуме
...
Рейтинг: 0 / 0
13.09.2018, 23:24
    #39702364
Bali
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
Нормальный кросстаб в Фастрепорте, если его "немного" допилить.
У меня основная масса отчетов на кросcтабах сделаны.
Динамически формируемый SQL запрос + CrossTab - самое то. Пользователи на одном шаблоне не один десяток отчетов могут сформировать, только выбирая что с чем группировать, в какой последовательности выводить, и где итоги нужны.
...
Рейтинг: 0 / 0
13.09.2018, 23:29
    #39702365
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
BaliНормальный кросстаб в Фастрепорте, если его "немного" допилить.
Допилите, пожалуйста, чтобы прятались колонки, сортировались, перемещались и фильтровались, чтобы заголовки были Custom и итоги по условию
...
Рейтинг: 0 / 0
14.09.2018, 08:29
    #39702398
чччД__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
DimaBrСrossТabы такое же зло как и Вертикальные Бэнды.
Отчёт должен красиво печатать готовые данные, а не создавать их из имеющихся.
Я как-то довольно долго боролся с ними (кросс), и даже добился нужного результата, но в итоге все чаще стал использовать событие OnManualBuild...
...
Рейтинг: 0 / 0
14.09.2018, 09:23
    #39702418
OlyaLora
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
_Den_Z,
Рада Вас слышать в наших рядах! :))
_Den_ZУ вертикальных бэндов StartNewPage не обрабатывается, т.к. они не развиваются (сейчас весь упор делается на таблицу).
NewPage вызывать тоже бесполезно, т.к. вывод вертикальных отличается от обычного вывода.Эт я уже поняла....
_Den_ZИли подождать нового билда, функционал StartNewPage для вертикальных добавляется одной строчкой, в следующем билде добавлю ее обработку.

Ну, и самый главный тривиальный вопрос: "Когда?" )))
(мне не то, чтобы сильно горит, но хотелось бы знать: делать по вышеописанной схеме или потерпеть)

ps Я так понимаю, в 6 версии этот функционал останется? (пару проектов уже переведены, до текущего еще не дошла). Опять же, как я понимаю, необходимый в данном случае функционал реализовывается в 6ке с помощью объекта "таблица"?



Гаджимурадов РустамБоюсь, этого большинство тоже не осилит.

Хотите верьте, хотите - нет. У меня такие есть пользователи. Да, их по пальцам перечесть, но есть же...



Гаджимурадов РустамDimaBr> СrossТabы такое же зло как и Вертикальные Бэнды.

Так точно.

Кода для "вручную" там не 5 строчек, конечно, но таки лучше самому.


Я согласна с Вами обоими, что штуки эти очень и очень негибкие. НО! Зачем же ж тогда вообще нужны такие объекты, если не использовать их по прямому назначению, хотя бы для несложных построений без оглядки на то
DimaBr, чтобы прятались колонки, сортировались, перемещались и фильтровались, чтобы заголовки были Custom и итоги по условию
А уже для более сложных решений использовать скрипты/excel и т п и т д...
Может, конечно, я и не права....Но справедливости ради, отмечу, что до сих пор практически все задачи удавалось решать при помощи стандартных методов, лишь только изредка прибегая к "изощрениям" под условие.
...
Рейтинг: 0 / 0
17.09.2018, 18:11
    #39703805
_Den_Z
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
OlyaLoraНу, и самый главный тривиальный вопрос: "Когда?" )))

Билд 5ки уже обновился.
Для FR6 будет позже, т.к. там еще ряд изменений будет. Приблизительно в середине этой недели.

OlyaLoraОпять же, как я понимаю, необходимый в данном случае функционал реализовывается в 6ке с помощью объекта "таблица"?

Да, но сейчас пока только через скрипт.
В 6.3 планируется упрощение работы с таблицей. Поэтому для перехода советую дождаться этого обновления.
...
Рейтинг: 0 / 0
18.09.2018, 10:57
    #39704086
OlyaLora
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
_Den_ZБилд 5ки уже обновился.
Если имеется в виду 6.18 билд, то еще на выходных пробовала, но что-то пошло не так....

Полагаю, что я некорректно работаю с вертикальными бэндами в принципе. Я вложила тестовый пример на базе из Demos (Таблица Sales). Предполагается, что отчет должен выводить на каждой отдельной странице информацию о каждом из заказов (печатая их не "вниз", а "вправо"), повторяя при этом на каждой из страниц заголовок (т е весь GroupHeader1 целиком). Т е должно получится что-то вроде листовки по каждому из заказов. Но заголовки в приложенном отчете не повторяются на каждой странице + у бэнда GroupHeader3 свойство StartNewPage будто бы игнорируется вообще.

_Den_ZВ 6.3 планируется упрощение работы с таблицей. Поэтому для перехода советую дождаться этого обновления.
Разумеется, подожду.
Спасибо )))
...
Рейтинг: 0 / 0
24.09.2018, 09:46
    #39706788
OlyaLora
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
OlyaLora Я вложила тестовый пример на базе из Demos (Таблица Sales).
Эммм.....неудачный пример?....Или может не совсем понятно объяснила поставленную цель?
...
Рейтинг: 0 / 0
24.09.2018, 12:28
    #39706913
_Den_Z
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport. Вертикальные бэнды
OlyaLora,

GroupHeader1 не будет перепечатываться, его объекты не лежат четко на пересечении вертикальных горизонтальных бэндов, поэтому расти в ширину он не будет (а будет напечатан как обычный бэнд). Для печати этого заголовка над всеми объектами которые переносятся при расти в ширину, должны быть соответствующие объекты строго на пересечении с вертикальными бэндами.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FastReport. Вертикальные бэнды / 25 сообщений из 36, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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