Еще такой вопрос: у MatrixObject колонки сортируются в алфавитном порядке. Если названиями колонок, например, являются названия месяцев, то они идут в неестественном порядке. Можно как-то решить эту проблему ?
Варианта два:
- вместо названия месяца использовать номер (см. документацию - там есть пример, как вместо номера показать название);
- отключить сортировку, в этом случае месяцы должны поступать в матрицу в нужном порядке.
rpt.Preview не установлен
rpt.Prepare();
rpt.ShowPrepared(false);
и если в отчете есть диалоговая форма, то при нажатии кнопки "Отмена" в этой форме, окно FastReport`a все равно показывается. Можно сделать чтобы оно не показывалось ? Так, как происходит при использовании метода Show().
Такой вопрос: в Excel экспортируется отчет-таблица. В конечном Excel-файле ячейки, содержащие числа, распознаются Excel как текст. Чтобы далее использовать эти ячейки в формулах необходимо вручную преобразовать их в числа. Можно как-нибудь добиться, чтобы сразу после экспорта в Excel ячейки с числами были числами в Excel (например, основываясь на свойстве Format объекта TextObject) ??
Такой вопрос:
В дизайнере FR на диалоговой форме лежат два ComboBoxControl. У обоих установлено свойство DataColumn -т.е. оба привязаны к источникам данных. Данные в одном из них нужно отфильтровывать в зависимости от значения в первом. Вопрос - как установить фильтр на данные во втором ComboBoxControl ? Точнее, как заставить ComboBoxControl реагировать на изменение источника данных, я источник фильтрую, а Combo не меняется.
Фильтрация выполняется при закрытии формы. Вам нужно отключить автоматическую фильтрацию (св-во AutoFilter) и делать ее руками при смене фокуса или при выборе значения. См. руководство пользователя, раздел "Диалоговые формы/Управление фильтрацией из кода".
Здравствуйте.
Я храню отчет в БД и его загрузку/сохранение выполняю не из дизайнера.
Поэтому мне нужно полностью отключить стандартные диалоги открытия/сохранения шаблона а также отключить запрос на сохранение измененного отчета.
Использую обработчики событий CustomOpenReport/CustomSaveReport и CustomOpenDialog/CustomSaveDialog.
А как отключить запрос на сохранение измененного отчета?
И еще. Как в дизайнере убрать некоторые кнопки и пункты меню?
Designer designer = new Designer(your_report);
designer.AskSave = false;
designer.ShowDialog();
Чтобы получить доступ к меню:
DesignerMenu menu = designer.Plugins.Find("MainMenu") as DesignerMenu;
// см. Class Reference по поводу доступных пунктов меню
menu.miFileNew.Enabled = false;
К панелям инструментов доступа нет, т.к. они все объявлены как internal. Можно запретить некоторые операции, изменив св-во designer.Restrictions - см. Class Reference.
1. При выполнении метода Report.Export(..) у пользователя всегда запрашивается имя файла. Можно ли как-нибудь имя файла задать из кода ?
2. При экспорте в Excel, если на странице есть свободное место, оно превращается в одну или несколько больших ячеек. Можно ли как то этого избежать ?
Пробовал решить эту проблему след. способами:
Первый: В событии _StartReport уменьшить свойство Height страницы - чтобы свободного места не оставалось. Не помогло.
Второй: В моем конкретном случае в отчете есть таблица-MatrixObject. Положил ее на бэнд Данные, добавил Дочерний бэнд, установил ему свойство "Заполнять пустое место страницы" и положил на него текстовые поля по ширине совпадающие колонками Matrix - чтобы равномерно заполнить этими полями страницу и получить в Excel нормальные ячейки. Однако Дочерний бэнд напечатался почему-то над бэндом данные.
3. У объекта TableCell в дизайнере в редакторе свойств не доступны свойства Height и Width. В коде доступны.
1) в методе Report.Export(ExportBase export, string fileName) есть такой параметр. Или имеется в виду экспорт из превью?
2) в версии FR VCL у нас был способ экспорта - continuous, без экспорта колонтитулов. Добавим позже.
3) размеры ячейки определяются шириной колонки и высотой строки таблицы.
Добрый день.
Подскажите пожалуйста, как печатать из web формы? На форме кнопки печати нет, а вызов WebReport1.Report.Print(); возвращает ошибку
Показ модального диалогового окна или формы является допустимой операцией, только если приложение запущено в режиме UserInteractive. Для отображения уведомления из служебного приложения укажите стиль ServiceNotification или DefaultDesktopOnly.
Report.Abort - должно сработать. Зависит от того, какой процесс пытаетесь прервать, не везде стоят проверки на Aborted. В отчете Simple List - работает.
Можно как-то добиться того, чтобы несколько объектов типа "Таблица" располагались рядом и автоматически смещались бы вправо/влево в зависимости от изменения ширины соседней таблицы слева?
Нет. Проблема с таблицей в другом, там сложный алгоритм разбивки большой таблицы на страницы. Учесть в нем еще и наличие соседней таблицы сложно, придется все переписывать. Я к этому не готов.
Комментарии
Варианта два:
- вместо названия месяца использовать номер (см. документацию - там есть пример, как вместо номера показать название);
- отключить сортировку, в этом случае месяцы должны поступать в матрицу в нужном порядке.
if (rpt.Prepare())
rpt.ShowPrepared(false);
Работает.
Спасибо.
Такой вопрос: в Excel экспортируется отчет-таблица. В конечном Excel-файле ячейки, содержащие числа, распознаются Excel как текст. Чтобы далее использовать эти ячейки в формулах необходимо вручную преобразовать их в числа. Можно как-нибудь добиться, чтобы сразу после экспорта в Excel ячейки с числами были числами в Excel (например, основываясь на свойстве Format объекта TextObject) ??
Сделаем.
В дизайнере FR на диалоговой форме лежат два ComboBoxControl. У обоих установлено свойство DataColumn -т.е. оба привязаны к источникам данных. Данные в одном из них нужно отфильтровывать в зависимости от значения в первом. Вопрос - как установить фильтр на данные во втором ComboBoxControl ? Точнее, как заставить ComboBoxControl реагировать на изменение источника данных, я источник фильтрую, а Combo не меняется.
Я храню отчет в БД и его загрузку/сохранение выполняю не из дизайнера.
Поэтому мне нужно полностью отключить стандартные диалоги открытия/сохранения шаблона а также отключить запрос на сохранение измененного отчета.
Использую обработчики событий CustomOpenReport/CustomSaveReport и CustomOpenDialog/CustomSaveDialog.
А как отключить запрос на сохранение измененного отчета?
И еще. Как в дизайнере убрать некоторые кнопки и пункты меню?
Чтобы запретить этот диалог, сделайте так:
Чтобы получить доступ к меню:
К панелям инструментов доступа нет, т.к. они все объявлены как internal. Можно запретить некоторые операции, изменив св-во designer.Restrictions - см. Class Reference.
1. При выполнении метода Report.Export(..) у пользователя всегда запрашивается имя файла. Можно ли как-нибудь имя файла задать из кода ?
2. При экспорте в Excel, если на странице есть свободное место, оно превращается в одну или несколько больших ячеек. Можно ли как то этого избежать ?
Пробовал решить эту проблему след. способами:
Первый: В событии _StartReport уменьшить свойство Height страницы - чтобы свободного места не оставалось. Не помогло.
Второй: В моем конкретном случае в отчете есть таблица-MatrixObject. Положил ее на бэнд Данные, добавил Дочерний бэнд, установил ему свойство "Заполнять пустое место страницы" и положил на него текстовые поля по ширине совпадающие колонками Matrix - чтобы равномерно заполнить этими полями страницу и получить в Excel нормальные ячейки. Однако Дочерний бэнд напечатался почему-то над бэндом данные.
3. У объекта TableCell в дизайнере в редакторе свойств не доступны свойства Height и Width. В коде доступны.
1) в методе Report.Export(ExportBase export, string fileName) есть такой параметр. Или имеется в виду экспорт из превью?
2) в версии FR VCL у нас был способ экспорта - continuous, без экспорта колонтитулов. Добавим позже.
3) размеры ячейки определяются шириной колонки и высотой строки таблицы.
И еще вопрос:
4.В MatrixObject есть возможность печатать заголовки строк справа от данных ?
FReport.Prepare();
FReport.Export(new RTFExport(), @d:\1.rtf);
4) нет.
Спасибо.
Подскажите пожалуйста, как печатать из web формы? На форме кнопки печати нет, а вызов WebReport1.Report.Print(); возвращает ошибку
Показ модального диалогового окна или формы является допустимой операцией, только если приложение запущено в режиме UserInteractive. Для отображения уведомления из служебного приложения укажите стиль ServiceNotification или DefaultDesktopOnly.
Пока никак. Возможность печати появится, как только мы закончим работу над экспортом в PDF.
Есть возможность прервать выполнение отчета из кода отчета ?
Пробовал Report.Abort(); - не помогает, выполнение отчета продолжается.
Report.Abort - должно сработать. Зависит от того, какой процесс пытаетесь прервать, не везде стоят проверки на Aborted. В отчете Simple List - работает.
Можно как-то добиться того, чтобы несколько объектов типа "Таблица" располагались рядом и автоматически смещались бы вправо/влево в зависимости от изменения ширины соседней таблицы слева?
К сожалению, нет. Алгоритм развертки таблицы это не поддерживает.
У бэнда Данные можно задать количество колонок, а можно такую же фичу сделать и для других бэндов?
Это могло бы решить проблему?