Печать Bindinglist
kalina9001
Germany
Добрый день!
Ковыряю демо версию 1.1.20.0
Пытаюсь вывести на печать данные находящиеся в потомке BindingList.
Возникло несколько вопросов:
1. При экспорте в Pdf возникает ArgumentException
2. InvalidCastException если одно из свойств обьекта является потомком Nullable<>
3. Создаю отчет в коде, при этом если свойств у объекта много, создаю несколько страниц (к примеру свойства 1-3 на первой странице, свойства 4-6 на второй).
При генерации отчета вывод производится в таком порядке: сначала первая страница (если данных много то несколько страниц), потом вторая (аналогично). Можно ли каким либо образом изменить порядок распечатки?
Тестовый проект находится тут: http://rapidshare.de/files/47540632/FR.rar.html
Спасибо
Ковыряю демо версию 1.1.20.0
Пытаюсь вывести на печать данные находящиеся в потомке BindingList.
Возникло несколько вопросов:
1. При экспорте в Pdf возникает ArgumentException
2. InvalidCastException если одно из свойств обьекта является потомком Nullable<>
3. Создаю отчет в коде, при этом если свойств у объекта много, создаю несколько страниц (к примеру свойства 1-3 на первой странице, свойства 4-6 на второй).
При генерации отчета вывод производится в таком порядке: сначала первая страница (если данных много то несколько страниц), потом вторая (аналогично). Можно ли каким либо образом изменить порядок распечатки?
Тестовый проект находится тут: http://rapidshare.de/files/47540632/FR.rar.html
Спасибо
Комментарии
В нашей системе пользователь выбирает язык GUI при входе в программу. Как бы Preview окошко заставить использовать тот же язык?
Искал в EnvironmentSettings, не нашел
1,2 - исправил, ждите очередной сборки (сегодня ночью).
3 - именно таков порядок печати многостраничных отчетов. Возможно, Вам лучше использовать динамический объект "Таблица", чтобы напечатать широкую таблицу (см. отчеты в демо, Table/Column Datasource).
4 - выполните следующий код:
Res.LoadLocale(@.....\Russian.frl);
тут есть одна тонкость - это надо делать после того, как загрузится файл конфигурации FastReport (а это происходит при первом обращении к экземпляру Report). Можно сделать так:
using (Report report = new Report());
Res.LoadLocale(@.....\Russian.frl);
Буду ждать
Если это так, то возникает такой вопрос:
При переводе случается такое, что разные свойства Бизнес Объекта получают одно и тоже DisplayName: Соответственно в отчете выдаются неправильные данные. Можно как то разрулить эту ситуацию?
И как собственно дизайнить отчеты для разных языков? Для каждого языка свой?
ЗЫ. Подал заявку в бухгалтерию на лицензию
Да, для каждого языка надо делать свой отчет. Языки бывают разные, и помимо замены текста может потребоваться подгонка размеров объектов отчета.
Подозреваю, что сам виноват. Мне нужно иногда в зависимости от атрибутов или типов свойств выдать на печать не результат ToString метода этого свойства, что нибудь другое. Для этого подписываюсь на BeforePrint - event у ячеек TableObject, и присваиваю свйство Text
Не подскажете как лучше?
Тестовый проект: http://rapidshare.de/files/47555206/FR.rar.html
PS. Про алиасы еще думаю. Обнаружил у себя в переводах(ресурсах) точки и квадратные скобки в именах полей
Проблема в том, что подходящего события для этой задачи нет - в BeforePrint данных еще нет, а в AfterPrint уже поздно что-либо менять. Я добавил событие AfterData (кто работал с FR VCL - там есть аналог), которое вызывается сразу после того, как объект заполняется данными. Вам надо будет поменять код
tableObject[col, 1].BeforePrint+=OnBeforePrintPassworsProperty;
на
tableObject[col, 1].AfterData+=OnBeforePrintPassworsProperty;
И за оперативность отдельное спасибо!