Вопросы по Fastreport.net

Dracula_DISDracula_DIS Москва
отредактировано 03:23 Раздел: FastReport .NET
Задаем вопросы по FastReport.Net связанные с построением, выводом и работой с отчетами
«13456

Комментарии

  • Dracula_DISDracula_DIS Москва
    отредактировано 03:23
    Начну ))

    Есть две связанные таблицы ( Table1, Table2) связь: Table1.CurrentRow.ID == Table2.CurrentRow.ParentID , Вывод должен выглядеть так:

    На странице выводится заголовок с данными из записи Table1.
    После заголовка в таблицу выводится данные Table2 связанные с текущей запесью Table1.
    Каждая запись Table1 и таблица выводятся с новой странице.
    Help Pls. Горю :)
  • отредактировано 03:23
    Здравствуйте,

    Это отчет master-detail. См. аналогичный в демке. Чтобы сделать вывод записи table1 на новой странице, нужно у бэнда Data установить св-во Start New Page.
  • Dracula_DISDracula_DIS Москва
    отредактировано 03:23
    Посмотрел, то что нужно, за одним исключнием , мне нужно выводить именно в TableObject, т.к. все поля не умещаются по ширине одного листа...
  • отредактировано 03:23
    А полей фиксированное количество? Или заранее неизвестное?
  • отредактировано 03:23
    Как возможный вариант решения проблемы:
    - в настройках страницы укажите ширину листа такую, чтобы уместились все колонки таблицы;
    - в настройках печати (File|Printer Settings) нажмите кнопку "More options" и выберите в комбобоксе "Print mode" режим "Split big pages".

    В превью будут видны листы увеличенного формата; печататься будет порезанным на листы А4, которые впоследствии надо будет склеивать.
  • Dracula_DISDracula_DIS Москва
    отредактировано 03:23
    Для колонки в таблице нужно сделать доступным метод SizeToGrid.
    Я открываю дизайнер из своей программы, передаю в него датасет.
    как мне в дизайнере использовать схему данных из датасета??
  • отредактировано 03:23
    1) подумаю над этим;
    2) ваш датасет виден в окне Data|Choose Report Data. Выбираете там нужные таблицы и все.
  • Dracula_DISDracula_DIS Москва
    отредактировано 03:23
    чтото не могу найти Data|Choose Report Data
    в Окне Data > Actions:
    ... Dictionary ...
    New Data Source
    New Relation
    New Paremeter
    New Total
  • отредактировано 03:23
    Сорри, я имел в виду меню "Data|Choose Report Data...".
  • Dracula_DISDracula_DIS Москва
    отредактировано 03:23
    Ок, спасибо..
    Может было бы логично продублировать его и в меню Actions ??
  • отредактировано 03:23
    Логично, добавлю.
  • Dracula_DISDracula_DIS Москва
    отредактировано 03:23
    Было бы хорошо еслибы Print Mode -> Split big pages разбивал страницы с учетом полей в не просто нарезкой..
  • отредактировано 03:23
    Вы имеете в виду, чтобы объекты переносились на другой лист целиком, если не помещаются на странице? Невозможно будет добиться 100% качества. Отчет - это ведь набор объектов, не связанных друг с другом. Если бы весь отчет был таблицей, как лист в Excel, тогда это довольно просто.
  • Dracula_DISDracula_DIS Москва
    отредактировано 03:23
    нет, я имею в виду что пусть режутся сами объекты, но чтоб при переносе на другой лист сохранялись настройки полей. а то вродибы на странице настроены размеры полей, а при резке эти настройки не учитываются.....
  • отредактировано 03:23
    А надо ли их учитывать? Ведь это разрезанные страницы, которые надо потом склеивать.
  • Dracula_DISDracula_DIS Москва
    отредактировано 03:23
    Ну если склеивать то всеравно в нахлест а не встык.
  • Dracula_DISDracula_DIS Москва
    отредактировано September 2008
    Выяснилась такая проблема: вывожу две связанные таблицы через вложенный Data бэнд.
    таблица шириной в два листа. выставил мод Split Big Pages отступы полей сделал через пустую вставку в середне таблицы.
    Как мне на втором листе вывести номер страницы и графику PageFooter???
    или каким мне еще образом можно вывести связанную таблицу на двух листах??
  • отредактировано 03:23
    У вас получается один лист превью. Номер страницы выводится на этом листе. При печати лист тупо режется и все. Вывести в момент разрезки что-либо на листе невозможно. Можно в режиме дизайнера сделать 2 копии объектов на PageFooter, чтобы при разрезке они попали на нужное место на листе.
  • отредактировано 03:23
    Dracula_DIS написал: »
    Ну если склеивать то всеравно в нахлест а не встык.

    Нахлест делается автоматически, попробуйте распечатать и увидите сами.
  • Dracula_DISDracula_DIS Москва
    отредактировано 03:23
    AlexTZ написал: »
    У вас получается один лист превью. Номер страницы выводится на этом листе. При печати лист тупо режется и все. Вывести в момент разрезки что-либо на листе невозможно. Можно в режиме дизайнера сделать 2 копии объектов на PageFooter, чтобы при разрезке они попали на нужное место на листе.

    Копию то можно вывести, но она не считается за отдельную страницу, т.е. [PageN] в ней не работает и [TotalPages] тоже показывает неправильное число.. как быть?
  • отредактировано 03:23
    В таком случае, не используйте этот режим печати - он такие вещи не поддерживает в принципе.
  • Dracula_DISDracula_DIS Москва
    отредактировано 03:23
    Dracula_DIS написал: »
    ....
    или каким мне еще образом можно вывести связанную таблицу на двух листах??
  • отредактировано 03:23
    Можно сделать так:
    - установить ширину листа такую, чтобы поместилась вся таблица;
    - нарисовать таблицу;
    - вернуть стандартные размеры листа;
    - использовать ManualBuild для построения таблицы.

    Позже я придумаю что-нибудь для облегчения задачи.
  • Dracula_DISDracula_DIS Москва
    отредактировано 03:23
    А можно добавить в Demo пример Master detail но выводящийся с помощью ManualBuild ??
  • отредактировано 03:23
    Добавил, пример будет доступен в следующей сборке. Сборка будет сегодня ночью, уже в формате .msi.
  • отредактировано 03:23
    Доступна новая сборка. Качать здесь: http://www.fast-report.com/pbc_download/FRNetDemo.msi или со страницы Download.
  • отредактировано 03:23
    Каким образом организовать загрузку, сохранение шаблона отчета не в файл, а скажем в поток, поле базы данных?
  • отредактировано 03:23
    Report.Save(stream), Report.Load(stream)
  • отредактировано 03:23
    AlexTZ написал: »
    Report.Save(stream), Report.Load(stream)
    С загрузкой понятною. Хотелось бы при интеграции дизайнера и выборе элемента меню Save перехватывать событие и выполнять сохранение. Пока не нашёл.
  • отредактировано 03:23
    Этого пока нет, сделаю.
Дискуссия закрыта.