Russian Qt Forum
Ноябрь 22, 2024, 17:17
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Печать
>
Отчеты
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Отчеты (Прочитано 20053 раз)
naico
Гость
Re: Отчеты
«
Ответ #15 :
Октябрь 24, 2008, 12:51 »
Привет! Понимаю, что некропост, но мой вопрос в точности соответствует теме.
Есть такая проблема - есть наборы различных объектов, нужно отобразить их в форме таблицы, распечатать.
Первое, что мне пришло в голову это руками генерить html, благо, что для этого мало что нужно. Т.е простым циклом по всем объектам пройтись, добавляя соответствующие строчки в таблицы, вот и весь файл. Ну а его уже можно показать на QTextWidget, распечатать, т.е все что мне нужно.
Второе что мне пришло в голову - это что уже точно есть генератор отчетов. Он, вернее они, и есть,но либо недоделанные, либо за $, которого мне никто не даст. К тому же обязательное условие - ко всему что я пишу и использую должны быть исходники, а тут с этим загвоздка, поэтому от этого я отказался.
В данный момент я думаю быстренько накатать класс, генерирующий html, и так решить проблему, но несколько смущает кустарность этого решения, ясно, что нормальный редактор я не сделаю. Может сталкивались с таким, есть предложения?
Записан
Admin
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1988
Re: Отчеты
«
Ответ #16 :
Октябрь 24, 2008, 13:19 »
Я у себя в программе так и сделал. Есть файлик в формате html, в нем теги типа:
Код:
<tr>{$WORD}</td>
при подстановке в QTextWidget теги парсятся - пока все довольны. Но как промышленное решение не пойдет.
Записан
spirit
Гость
Re: Отчеты
«
Ответ #17 :
Октябрь 24, 2008, 13:35 »
а если XLTS заюзать, sablot классная штука.
Записан
naico
Гость
Re: Отчеты
«
Ответ #18 :
Октябрь 24, 2008, 15:01 »
Цитата: Admin от Октябрь 24, 2008, 13:19
Я у себя в программе так и сделал. Есть файлик в формате html, в нем теги типа:
Код:
<tr>{$WORD}</td>
при подстановке в QTextWidget теги парсятся - пока все довольны. Но как промышленное решение не пойдет.
Ну да, особенно если учесть, что данных может быть очень много, например 100мб, а генерится html не так уж и быстро, получается что нужно писать разбивалку на куски из исходных данных, плюс такие опции как "отключить в отчете колонку такую-то" приводят к перегенерации всего отчета для промышленного использования не пойдет конечно.
Я сейчас думал над тем как приладить
http://www.qt-apps.org/content/show.php/TableView+Printer?content=76616
эту поделку умельцев - пришлось отказаться, слишком медленно по скорости при больших объемах данных, так что делать нечего. Придется генерить, причем, видимо, ручками html.
Записан
Admin
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1988
Re: Отчеты
«
Ответ #19 :
Октябрь 24, 2008, 15:38 »
100 мб текста - это очень много!
диссертация доктора наук 20 мб - 300 страниц в верде!
слишком у вас задача специфичная)) у меня вот 1 страничка)
Записан
naico
Гость
Re: Отчеты
«
Ответ #20 :
Октябрь 24, 2008, 15:48 »
Ну задача связана с просмотром событий, происходящих в сети, соответственно если администратор - идиот, то он может захотеть скачать и распечатать базу данных. В таком случае, конечно, быстродействия ему не обещает, но нужно хотя бы, чтобы ничего не упало:)
Записан
Tonal
Гость
Re: Отчеты
«
Ответ #21 :
Октябрь 24, 2008, 17:03 »
Ежели ты эти 100мв будешь сразу в файл писать, то какие проблемы?
Как раз для очень больших массивов данных какие-нибудь стандартные отчётеры всё равно подходят хреново - они всё в памяти пытаются разместить в каких-нибудь вариантах, да ещё выполнять скрипты над этим.
Так что эжели данных потенциально много, а особых изысков не требуется, то ручная генерация html, а то и ps всяко рулит!
Записан
Admin
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1988
Re: Отчеты
«
Ответ #22 :
Октябрь 25, 2008, 08:22 »
Попробуйте открыть 100 мег в firefox или же в IE - тормозить они будут, ибо html нужно рендрить.
Тут надо какойто другой принцип типа просматривать одновременно можно 5 страниц, если печатать то генерить html для 5 страниц ( в цикле).
Записан
Tonal
Гость
Re: Отчеты
«
Ответ #23 :
Октябрь 25, 2008, 08:32 »
Чем и зачем кто-то будет потом открывать этот файл уже не проблема программы.
Тот же ps можно прямо на принтер и выкинуть, да и html, думаю тоже через соответствующие фильтры.
А вот если заказчик затребует полный предпросмотр этоё дури, то придётся немного подумать.
Но опять же, предпросмотр можно сделать не сгенерённого мегафайла, а исходной информации. На основе того же TableView-а.
Записан
panAlexey
Гипер активный житель
Offline
Сообщений: 864
Акцио ЗАРПЛАТА!!!!! :(
Re: Отчеты
«
Ответ #24 :
Октябрь 25, 2008, 09:15 »
Цитата: Tonal от Октябрь 25, 2008, 08:32
А вот если заказчик затребует полный предпросмотр этоё дури, то придётся немного подумать.
хе-хе... ну пусть купит монитор размером с Красную площадь...
Записан
Win Xp SP-2, Qt4.3.4/MinGW.
http://trdm.1gb.ru/
Admin
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1988
Re: Отчеты
«
Ответ #25 :
Октябрь 25, 2008, 10:40 »
Часто на форумах бывают топики:
Q: Хочу вывести на форму 1M записей. Как?
A: Зачем?
Записан
Rcus
Гость
Re: Отчеты
«
Ответ #26 :
Октябрь 25, 2008, 11:27 »
Мне кажется что в html нужно генерить отчеты только для людей.
Если вам нужно выгрузить в отчет много данных (бывает такое), то подумайте, может быть их будут обрабатывать не люди, а машины.
Если так, то мне кажется лучше сделать выдачу в csv или даже fixed column формате, парсить их гораздо проще (все это мне напомнило как один оператор связи присылал детализацию телефонных соединений в html на 10к записей размером в 5мб, IE даже не пытался такое открыть, сразу зависал)
Записан
naico
Гость
Re: Отчеты
«
Ответ #27 :
Октябрь 26, 2008, 09:47 »
Короче сейчас я сделал следующим образом - отображение данных "для людей" идет через QTableView + QTextView, часть информации выводится в таблицу, с ней работает сортировка, а основной массив никому не нужной информации идет в виде текста. Ну и эти две формочки связаны - текст отвечает выделенной строчке в таблице. Без текстовой формочки было слишком некрасиво - слишком много колонок.
Подгружаю текст в таблицу частями, что не дает ей упасть - единственный минус, что надо будет продумать как не дублировать все данные в оперативке, а например, хранить их в xml и при необходимости загружать, пока не до конца разобрался с этим.
А на печать генерю html
Записан
Страниц:
1
[
2
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...