Russian Qt Forum
Сентябрь 21, 2024, 13:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Отчеты  (Прочитано 19885 раз)
naico
Гость
« Ответ #15 : Октябрь 24, 2008, 12:51 »

Привет! Понимаю, что некропост, но мой  вопрос в точности соответствует теме.
Есть такая проблема  - есть наборы различных объектов, нужно отобразить их в форме таблицы, распечатать.
Первое, что мне пришло в голову это руками генерить html, благо, что для этого мало что нужно. Т.е простым циклом по всем объектам пройтись, добавляя соответствующие строчки в таблицы, вот и весь файл. Ну а его уже можно показать на QTextWidget, распечатать, т.е все что мне нужно.
Второе что мне пришло в голову  - это что уже точно есть генератор отчетов. Он, вернее они, и есть,но либо недоделанные, либо за $, которого мне никто не даст. К тому же обязательное условие - ко всему что я пишу  и использую должны быть исходники, а тут с этим загвоздка, поэтому от этого я отказался.

В данный момент я думаю быстренько накатать класс, генерирующий html, и так решить проблему, но несколько смущает кустарность этого решения, ясно, что нормальный редактор я не сделаю. Может сталкивались с таким, есть предложения?
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #16 : Октябрь 24, 2008, 13:19 »

Я у себя в программе так и сделал. Есть файлик в формате html, в нем теги типа:

Код:
<tr>{$WORD}</td>

при подстановке в QTextWidget теги парсятся - пока все довольны. Но как промышленное решение не пойдет.  Злой
Записан
spirit
Гость
« Ответ #17 : Октябрь 24, 2008, 13:35 »

а если XLTS заюзать, sablot классная штука.
Записан
naico
Гость
« Ответ #18 : Октябрь 24, 2008, 15:01 »

Я у себя в программе так и сделал. Есть файлик в формате html, в нем теги типа:

Код:
<tr>{$WORD}</td>

при подстановке в QTextWidget теги парсятся - пока все довольны. Но как промышленное решение не пойдет.  Злой

Ну да, особенно если учесть, что данных может быть очень много, например 100мб, а генерится html не так уж и быстро, получается что нужно писать разбивалку на куски из исходных данных, плюс такие опции как "отключить в отчете колонку такую-то"  приводят к перегенерации всего отчета для промышленного использования не пойдет конечно.
Я сейчас думал над тем как приладить http://www.qt-apps.org/content/show.php/TableView+Printer?content=76616 эту поделку умельцев - пришлось отказаться, слишком медленно по скорости при больших объемах данных, так что делать нечего. Придется генерить, причем, видимо, ручками html.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #19 : Октябрь 24, 2008, 15:38 »

100 мб текста - это очень много!
диссертация доктора наук 20 мб - 300 страниц в верде!

слишком у вас задача специфичная)) у меня вот 1 страничка)
Записан
naico
Гость
« Ответ #20 : Октябрь 24, 2008, 15:48 »

Ну задача связана с просмотром событий, происходящих в сети, соответственно если администратор - идиот, то он может захотеть скачать и распечатать базу данных. В таком случае, конечно, быстродействия ему не обещает, но нужно хотя бы, чтобы ничего не упало:)
Записан
Tonal
Гость
« Ответ #21 : Октябрь 24, 2008, 17:03 »

Ежели ты эти 100мв будешь сразу в файл писать, то какие проблемы?

Как раз для очень больших массивов данных какие-нибудь стандартные отчётеры всё равно подходят хреново - они всё в памяти пытаются разместить в каких-нибудь вариантах, да ещё выполнять скрипты над этим. Улыбающийся

Так что эжели данных потенциально много, а особых изысков не требуется, то ручная генерация  html, а то и ps всяко рулит! Улыбающийся
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #22 : Октябрь 25, 2008, 08:22 »

Попробуйте открыть 100 мег в firefox или же в IE - тормозить они будут, ибо html нужно рендрить.
Тут надо какойто другой принцип типа просматривать одновременно можно 5 страниц, если печатать то генерить html для 5 страниц ( в цикле).
Записан
Tonal
Гость
« Ответ #23 : Октябрь 25, 2008, 08:32 »

Чем и зачем кто-то будет потом открывать этот файл уже не проблема программы.
Тот же ps можно прямо на принтер и выкинуть, да и html, думаю тоже через соответствующие фильтры. Улыбающийся

А вот если заказчик затребует полный предпросмотр этоё дури, то придётся немного подумать.
Но опять же, предпросмотр можно сделать не сгенерённого мегафайла, а исходной информации. На основе того же TableView-а. Улыбающийся
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #24 : Октябрь 25, 2008, 09:15 »

А вот если заказчик затребует полный предпросмотр этоё дури, то придётся немного подумать.
хе-хе... ну пусть купит монитор размером с Красную площадь...
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #25 : Октябрь 25, 2008, 10:40 »

Часто на форумах бывают топики:
Q: Хочу вывести на форму 1M записей. Как?
A: Зачем? Смеющийся
Записан
Rcus
Гость
« Ответ #26 : Октябрь 25, 2008, 11:27 »

Мне кажется что в html нужно генерить отчеты только для людей.
Если вам нужно выгрузить в отчет много данных (бывает такое), то подумайте, может быть их будут обрабатывать не люди, а машины.
Если так, то мне кажется лучше сделать выдачу в csv или даже fixed column формате, парсить их гораздо проще (все это мне напомнило как один оператор связи присылал детализацию телефонных соединений в html на 10к записей размером в 5мб, IE даже не пытался такое открыть, сразу зависал)
Записан
naico
Гость
« Ответ #27 : Октябрь 26, 2008, 09:47 »

Короче сейчас я сделал следующим образом - отображение данных "для людей" идет через QTableView + QTextView, часть информации выводится в таблицу, с ней работает сортировка, а основной массив никому не нужной информации идет в виде текста. Ну и эти две формочки связаны - текст отвечает выделенной строчке в таблице. Без текстовой формочки было слишком некрасиво - слишком много колонок.

Подгружаю текст в таблицу частями, что не дает ей упасть - единственный минус, что надо будет продумать как не дублировать все данные в оперативке, а например, хранить их в xml и при необходимости загружать, пока не до конца разобрался с этим.

А на печать генерю html Улыбающийся
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.