| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Создание отчета в HTML |
| Автор: Нитонисе 9.6.2011, 22:01 |
| Нужно сгенерировать отчет о выполненном инженерном расчете. Возможностей мемо и ричэдита не хватает. Генерация в ворд происходит медленно. Решил делать в HTML используя компонент CppWebBrowser. На данный момент это выглядит лучшим вариантом, хотя есть и определенные неудобства. Есть ли какие-то еще компоненты, куда можно выводить HTML-отчет? Есть ли какие-то специальные классы облегчающие работу с HTML? |
| Автор: Alca 10.6.2011, 09:57 |
| У тебя только таблицы? Добавлено через 3 минуты и 5 секунд FastReport кажись может делать HTML |
| Автор: Нитонисе 10.6.2011, 10:16 |
| Таблицы, картинки, формулы, текст... FastReport что-то мне совсем не понравился... точнее сказать я не разобрался как он работает |
| Автор: Alca 10.6.2011, 11:14 |
| глянь здесь http://jvcl.delphi-jedi.org/ |
| Автор: Нитонисе 10.6.2011, 11:44 |
А что это такое? |
| Автор: Alca 10.6.2011, 11:47 | ||
|
| Автор: artsb 13.6.2011, 22:24 |
| Зачем какие-то компоненты? Я делал так: Добавлял в проект форму, на которой лежит только CppWebBrowser. В коде формировал страницу динамически или же брал шаблон и делал соответствующие замены. Далее, сохранял готовую страницу во временную папку %Temp% Скармливал этот файл CppWebBrowser. Вызывал метод "Предпросмотр" (для печати). |
| Автор: artsb 14.6.2011, 10:58 | ||||
Судя по последнему предложению, вы делаете не так как я Говоря, вызываю предпросмотр, я имел ввиду, не отображение окна с CppWebBrowser, а вызов его метода, который создаёт стандартное окно предпросмотра с различными опциями:
|
| Автор: Нитонисе 14.6.2011, 14:15 |
| А где можно посмотреть возможные параметры такого вызова? |
| Автор: Нитонисе 14.6.2011, 15:15 |
| С параметрами немного разобрался. Вот какой вопрос появился. У меня CppWebBrowser лежит на отдельной форме. На главной форме кнопка - предварительный просмотр. По нажатию на нее CppWebBrowser заполняется актуальным отчетом и нужно чтобы раскрылась форма предварительного просмотра на весь монитор. Ваша команда в этом случае не срабатывает. Похоже ей надо чтобы форма с отчетом была видна. |
| Автор: artsb 14.6.2011, 17:40 |
| Странно. У меня всё работало. Правда, я не помню точно как делал. Весь код у меня на работе. А я сейчас в отпуске. Если получится, позвоню другу: может он глянет. |
| Автор: ZVano 14.6.2011, 18:25 | ||
Можно текст HTML гнать напрямую в TWebBrowser без временного файла. Функция, которая делает это 3мя разными способами. Способ задается в method (1, 2, 3)
|
| Автор: Нитонисе 15.6.2011, 13:25 |
| А где можно посмотреть управляющие команды для формирования колонтитулов в отчете при выполнению функции предпросмотра? Вот например номер страницы задается последовательностью &p. А как выровнять этот номер страницы по правому краю? |
| Автор: artsb 16.6.2011, 10:27 | ||
Удалось дозвониться. В целом всё как я и говорил. Единственное, CppWebBrowser лежит на главной форме и он не скрыт, а убран за левый край формы.
Нужно на MSDN'е поискать. По идее, всё это Microsoft'овские фишки. Так что я думаю, что можно и в справке по Word это поискать. |
| Автор: Нитонисе 19.6.2011, 12:36 | ||
Да, так все работает, но есть неудобство связанное с тем, что окно предварительного просмотра имеет размеры формы моего приложения. У меня приложение не полноэкранное, соответственно и форма предпросмотра маленькая. А хотелось бы ее развернуть на весь монитор. Как это сделать? Стандартной системной кнопки в этом окне нет. |
| Автор: artsb 19.6.2011, 18:58 |
Да. Кнопки нет. Ещё одна поправочка: я использовал не CppWebBrowser, а просто WebBrowser |
| Автор: Нитонисе 20.6.2011, 08:52 | ||
А где вы такой компонент нашли? |
| Автор: artsb 20.6.2011, 10:53 |
Там же где и CppWebBrowser, в разделе Internet. |
| Автор: Нитонисе 20.6.2011, 11:17 |
А у меня нет такого компонента. У меня билдер 6, а у вас? |
| Автор: artsb 20.6.2011, 11:25 |
| У меня RAD Studio XE. |
| Автор: Нитонисе 20.6.2011, 11:43 |
| А можно как-то ваш компонент установить на билдер? |
| Автор: artsb 20.6.2011, 12:18 |
| Нет. Это компонент вшитый в среду. В принципе, разница между превью (Print Preview) одного и другого только в том, что у WebBrowser окно предпросмотра развёрнуто на весь экран. Это можно сделать и вручную: 1. найти окно и получить его хендл 2. получить размеры рабочей области экрана 3. установить эти размеры для окна предпросмотра Но тут есть один нюанс. Окно предпросмотра открывается как модальное. Поэтому, нужно либо стартовать поток (перед вызовом окна предпросмотра), который выполнит описанные выше шаги, либо искать ещё какое-нибудь решение. |
| Автор: Нитонисе 20.6.2011, 13:26 |
| Чем вручную это делать - мне наверное будет проще установить эту среду разработки с тем чтобы использовать более удобный компонент |
| Автор: artsb 20.6.2011, 15:57 |
| Да делать не так уж и много. Но решайте сами. По идее, этот компонент появился с C++Builder 2006. Но я точно не уверен. |
| Автор: Нитонисе 20.6.2011, 16:19 |
| Я имел ввиду не то, что это много кода, а то, что я не знаю как это делать. А в билдере 6 такого компонента точно нет... А RAD Studio XE - получше шестерки, или на любителя? |
| Автор: artsb 20.6.2011, 16:59 |
| Ну как получше... Среда развивается. Добавляется что-то новое. Устраняются старые баги. Появляются новые |
| Автор: ZVano 21.6.2011, 09:07 |
Не знаю как XE, но в 2010й есть плющки из за которых стоит переходить. + сворачивание кода + удобная палитра компонент + удобные сворачивающиеся панели инструментов + поиск и замена имен переменных и типов. ну, и деготь - менее удобная справка - больше глюков самой IDE |
| Автор: Нитонисе 21.6.2011, 09:30 |
| Улучшения интерфейса мне менее важны. А вот уменьшение глюков IDE и наличие новых компонентов - приветствуется |
| Автор: ZVano 21.6.2011, 10:37 |
IMXO: Сворачивание кода просто обязана поддеорживать любой современный редактор кода. Иначе путаешся на больших кусках кода. Еще одна очень важная функция - самодокументирование кода с возможностью генерации хклпов по исходникам (как в VS). К сожалению, 2010я этого не умеет. Опять же IMXO - компонент в инете валом. Можно найти на любой вкус и цвет как для BCB6, так и для 2010й. В 2010 есть ряд стандартных интересных новых(возможно, насчет некоторых ошибаюсь) компонент. + TCategoryPanrlGroup + TGridPanel + TButtonedEdit + TButtonGroup + TTrayIcon + TCategoryButtons + TButtonedEdit |
| Автор: Нитонисе 21.6.2011, 12:01 |
Хотелось бы, чтоб они были выполнены профессионально и хорошо документированы. |