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

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

Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: Торг 12, кто делал под Qt и каким способом  (Прочитано 28575 раз)
o_m
Гость
« Ответ #30 : Ноябрь 18, 2011, 20:07 »

не пробовал но вроде так:
...The following table lists the CSS properties supported by Qt's rich text engine: ...
page-break-before [ auto | always ] Make it possible to enforce a page break before the paragraph/table
page-break-after [ auto | always ]Make it possible to enforce a page break after the paragraph/table...
(из справки по скриптрепорту...)
Записан
Termit
Самовар
**
Offline Offline

Сообщений: 144



Просмотр профиля WWW
« Ответ #31 : Ноябрь 18, 2011, 20:14 »

...The following table lists the CSS properties supported by Qt's rich text engine: ...
Ну да, видел, но это CSS не HTML.
Записан

Человеческая глупость дает представление о бесконечности
(с) Иоанна Хмелевская
PavelVX
Гость
« Ответ #32 : Ноябрь 21, 2011, 04:55 »

Да, неправильно написал, средствами CSS, а не HTML!
Код:
<table style=\"width: 100%; padding: 0; border: none; border-collapse: collapse;\">\n 
<tr><td style=\"background-color: #B0B0B0; height: 1; padding: 0;\" nowrap></td></tr>\n
</table>\n
<br style=\"page-break-after: always\">\n
Кстати, не знаю баг это или фича, но если просто разрывать таблицу постранично, то хватает только последней строчки. Если разрывать страницы потаблично сделанные, то нужно использовать всю конструкцию. Посколько с HTML&CSS малознаком, то может это особенность связки.
Записан
PavelVX
Гость
« Ответ #33 : Ноябрь 22, 2011, 11:49 »

Какой-то бред получается Грустный
Дописал функцию вычисления высоты:
Код:
int dialogCreatePrices::numRowInPrintText(int iWidth, QString iText)
{
    QTextDocument doc;
    doc.setPlainText(iText);
    doc.setPageSize(QSizeF(iWidth,-1));
    int res = ((int)((doc.size().height()-21)/13)) + 1;
    return res;
}
Подобрал на тестах с данными(типа "10 11 12 13") ширину. На тестах получатся все замечательно. Но стоит подсунуть реальные данные, все съезжает из-за переносов!
Что-то я уже себе весь мозг вынес, но так и не придумал, как это побороть.
Подскажите такую вещь: как мне в QTextDocument дописывать данные в html виде?
Уже подумываю о том, что бы самому создавать и отформатировать страницы и добавлять их в готовый документ.
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

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


Просмотр профиля
« Ответ #34 : Ноябрь 22, 2011, 12:20 »

Какой-то бред получается Грустный
Дописал функцию вычисления высоты:
Код:
int dialogCreatePrices::numRowInPrintText(int iWidth, QString iText)
{
    QTextDocument doc;
    doc.setPlainText(iText);
    doc.setPageSize(QSizeF(iWidth,-1));
    int res = ((int)((doc.size().height()-21)/13)) + 1;
    return res;
}
Подобрал на тестах с данными(типа "10 11 12 13") ширину. На тестах получатся все замечательно. Но стоит подсунуть реальные данные, все съезжает из-за переносов!
Что-то я уже себе весь мозг вынес, но так и не придумал, как это побороть.
Подскажите такую вещь: как мне в QTextDocument дописывать данные в html виде?
Уже подумываю о том, что бы самому создавать и отформатировать страницы и добавлять их в готовый документ.
все-таки надо дописывать и стабилизировать uoReport.
ПС. Остальные сишники с подобными задачками видно редко сталкиваются.
ПС2. PavelVX, может попробуешь его сам прикрутить?
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
PavelVX
Гость
« Ответ #35 : Ноябрь 22, 2011, 13:00 »

Все заработало! Если долго сидеть над одной задачей, то глаз замыливается и перестаешь видеть очевидное. Все функции правильно работали, опечатка в одном месте Улыбающийся.
panAlexey, не поверишь, я новичек в С++! Qt выбрал только из-за бесплатности.
Чуть позже могу попробовать твою форму, мне она больше нравится, чем полностью ручное создание отчетов. Просто сейчас надо допилить прайс и отчитаться о проделанном.
Но впереди еще отчетные документы, так что не горюй, опробуем твой репорт Улыбающийся
PS Кстати, ты бы к нему пока что счетчики страниц бы прикрутил.
PPS Походу отчетность и прочие печатные формы никто не делает или делают что-нить типа экселя.
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

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


Просмотр профиля
« Ответ #36 : Ноябрь 22, 2011, 13:21 »

Все заработало! Если долго сидеть над одной задачей, то глаз замыливается и перестаешь видеть очевидное. Все функции правильно работали, опечатка в одном месте Улыбающийся.
panAlexey, не поверишь, я новичек в С++! Qt выбрал только из-за бесплатности.
Чуть позже могу попробовать твою форму, мне она больше нравится, чем полностью ручное создание отчетов. Просто сейчас надо допилить прайс и отчитаться о проделанном.
Но впереди еще отчетные документы, так что не горюй, опробуем твой репорт Улыбающийся
PS Кстати, ты бы к нему пока что счетчики страниц бы прикрутил.
PPS Походу отчетность и прочие печатные формы никто не делает или делают что-нить типа экселя.
У меня там основные глюки начинаются когда начинаю работать с масштабом при выводе на печать и разбиении на страницы с использованием масштаба.
ну т.е. говоришь: поместить по ширине в лист, заходишь в просмотр и "бум".
А счетчик страниц, там по сути есть: я же перед отсылкой на печать фактически калькулирую количество страниц и создаю массив неких структур индекс которых + 1 и является по сути номером страницы.
т.е. для решения задачи надо просто сделать только вот что:
в методе прорисовки текста ячейки поискать нечто вроде "@pagenom" и заменить на индекс страницы + 1.
так что это дело плевое. Основной гемор в стабилизации.
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

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


Просмотр профиля
« Ответ #37 : Ноябрь 30, 2011, 14:29 »

http://code.google.com/p/unnstudioreport/
30.11.2011
Реализован механизм использования шаблонов и вывода секций шаблона в целевой документ.
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
sergun1604
Гость
« Ответ #38 : Май 24, 2012, 13:35 »

не могу понять каким образом отчет уходит на печать uoreport и где формируется xml?
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

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


Просмотр профиля
« Ответ #39 : Май 24, 2012, 17:37 »

не могу понять каким образом отчет уходит на печать uoreport и где формируется xml?
Для отправки на печать его надо отправить на печать.
bool uoReportDoc::printDoc(const bool updPrintSourse, QWidget* qwidg)

Использую xml в 2-х эпостясях как шаблон для вывода отчета и как файл для хранения самого отчета.
xml-шаблон формируется пользователем в дизайнере в самом репорте мышкой. Собственно для этого и создавался такой софт - быстро набросать шаблон и вывести его.
Собственно это и есть основное назначение софтины: дизайнить, редактировать, печатать.
А если нужен уже сам отчет, то надо через АПИ поработать с обектом uoReport::uoReportDoc;
« Последнее редактирование: Май 24, 2012, 17:41 от panAlexey » Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Страниц: 1 2 [3]   Вверх
  Печать  
 
Перейти в:  


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