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

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

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

Да и ладно, что решение будет не гибким. В данном случае, у меня вообще нет идей, как сделать гибкое решение Грустный. ХТМЛ еще и страницу резать не умеет Грустный.
По идее можно через QTextDocument тоже сделать 2 колонки, а в нужном месте ставить конец страницы. Но не получатся Грустный
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

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


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

Да и ладно, что решение будет не гибким. В данном случае, у меня вообще нет идей, как сделать гибкое решение Грустный. ХТМЛ еще и страницу резать не умеет Грустный.
эх, помогли бы довести до ума вот эту штучку, у тебя бы все было.
Да и у меня )))
да и тот алгоритм мой подошел бы. как раз для фишек такого типа...
« Последнее редактирование: Ноябрь 15, 2011, 22:56 от panAlexey » Записан

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

сейчас посмотрю ваше творение Улыбающийся
А в чем его надо доводить до ума?
хмм, я демо уже до ошибки довел Грустный, упала и умерла
Покрутил, повертел и появилось несколько вопросов (в порядке важности):
1. Нумерация страниц, если есть. то как добавить?
2. Можно ли сделать неразрывные группы?
3. Данные для этих отчетов надо самому сформировать в виде xml определенного формата?
4. Границы колонок как-то странно выделяются, нельзя ли выделить 2 колонки одной общей границей?
« Последнее редактирование: Ноябрь 16, 2011, 07:42 от PavelVX » Записан
PavelVX
Гость
« Ответ #18 : Ноябрь 16, 2011, 07:48 »

Termit, а вы не пробовали допиливать данный отчет в направлении нормального заголовка отчет и подвала отчете? То, что там сейчас есть называется колонтитулами. А нужен нормальный заголовок. Я покрутил устройство данного отчета, похоже что там, все размеры под колонтитулы/контент вычисляются заранее один раз. Иначе может сбиться нумерация страниц. Поэтому изменить размер заголовка первой страницы проблематично Грустный. Можете что-нибудь посоветовать? Еще одной проблемой данного отчета является перенос. То-есть, если у вас в конце страницы будет текст размером в две строки, то он может часть текста оставить на одной странице, а вторую часть текста перенести на другую страницу Грустный. А это очень плохо.
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

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


Просмотр профиля
« Ответ #19 : Ноябрь 16, 2011, 09:54 »

сейчас посмотрю ваше творение Улыбающийся
А в чем его надо доводить до ума?
хмм, я демо уже до ошибки довел Грустный, упала и умерла
баги, падения, скорость, фьючи.

Покрутил, повертел и появилось несколько вопросов (в порядке важности):
1. Нумерация страниц, если есть. то как добавить?
пака не заморачивался, но разумеется можно будет.

2. Можно ли сделать неразрывные группы?
а что это?

3. Данные для этих отчетов надо самому сформировать в виде xml определенного формата?
не. можно работать с uoReport::uoReportDoc* апи
http://code.google.com/p/unnstudioreport/source/browse/trunk/Report/uoReportDoc.h
в
http://code.google.com/p/unnstudioreport/source/browse/trunk/main.cpp
есть образцы кода. Просто обращаешся к ячейке и все.

4. Границы колонок как-то странно выделяются, нельзя ли выделить 2 колонки одной общей границей?
а скрин можно?
Записан

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

Я новичек, но сейчас вникая в дебри печати понимаю, что заголовок, колонтитулы, подвал и есть самые проблематичные места в формировании отчетов.
1. С нумерацией страниц будет тоже куча граблей. Надо учесть что на первой странице может быть/не быть заголовок + колонтитул.
2. Неразрывные группы. Есть товарный документ: накладная, у нее есть(сверху вниз): реквизиты, список товаров/услуг, итоговые данные. Дак вот, группа "итоговые данные" должна быть всегда на одной странице! Не может быть начало на одной, конец на другой. Если не влазит на конец страницы за товаром, нужно начать новую страницу.
4. см приложенный скрин сделанный на коленке в экселе. Это мелочь. но приятно Улыбающийся.
Записан
Termit
Самовар
**
Offline Offline

Сообщений: 144



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

Termit, а вы не пробовали допиливать данный отчет в направлении нормального заголовка отчет и подвала отчете? То, что там сейчас есть называется колонтитулами. А нужен нормальный заголовок.
Заголовок отчёта пишите в тегах <h1>,<h2> и т.д. но не в колонтитуле, а в теле документа. Замечательно переносит со страницы на страницу... Допиливать вроде бы и нечего. Если я правильно понял вопрос Подмигивающий

Что касается разбить на 2 колонки. Где можно посмотреть как выглядит этот отчёт "Торг 12"?
Записан

Человеческая глупость дает представление о бесконечности
(с) Иоанна Хмелевская
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

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


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

Я новичек, но сейчас вникая в дебри печати понимаю, что заголовок, колонтитулы, подвал и есть самые проблематичные места в формировании отчетов.
1. С нумерацией страниц будет тоже куча граблей. Надо учесть что на первой странице может быть/не быть заголовок + колонтитул.
это решабельно. тем более когда напрямую управляешь процессом печати вплоть до комманд принтеру.

2. Неразрывные группы. Есть товарный документ: накладная, у нее есть(сверху вниз): реквизиты, список товаров/услуг, итоговые данные. Дак вот, группа "итоговые данные" должна быть всегда на одной странице! Не может быть начало на одной, конец на другой. Если не влазит на конец страницы за товаром, нужно начать новую страницу.
я тебе уже говорил, что ТОРГ-12 особый случай и там просто посчитать надо при выводе.
строки константной высоты и вперед.
Записан

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

Termit:
Про две колонки - это я прайс для начала решил сделать Улыбающийся. Просто товар идет в первой колонке, продолжает во второй, потом следующая страница.
Про заголовок: идея понятна, только тогда нужно ввести флаг: не печатать колонтитул на первой странице Улыбающийся Иначе как-то странно это выглядит:
-начало страницы 1
-(верхний колонтитул) наименование колонок
-заголовок документа
-содержимое документа
-(нижний колонтитул) дата + номер страницы из страниц
-конец страницы 1
panAlexey: а про строку большой константной высоты я не подумал, наверное это и будет выглядеть как надо! Улыбающийся
Записан
Termit
Самовар
**
Offline Offline

Сообщений: 144



Просмотр профиля WWW
« Ответ #24 : Ноябрь 17, 2011, 12:41 »

Termit:
Про две колонки - это я прайс для начала решил сделать Улыбающийся. Просто товар идет в первой колонке, продолжает во второй, потом следующая страница.
Про заголовок: идея понятна, только тогда нужно ввести флаг: не печатать колонтитул на первой странице Улыбающийся Иначе как-то странно это выглядит:
-начало страницы 1
-(верхний колонтитул) наименование колонок
-заголовок документа
-содержимое документа
-(нижний колонтитул) дата + номер страницы из страниц
-конец страницы 1
panAlexey: а про строку большой константной высоты я не подумал, наверное это и будет выглядеть как надо! Улыбающийся


Не нужно в колонтитул тулить наименования колонок!
Правильно делать так:
Нужно сформировать html следующим образом


Код
HTML
<table width=100% cellspacing=0 cellpadding=0>
<thead>
 <tr>
  <th>Col 1</th>
  <th>Col 2</th>
 </tr>
</thead>
<tbody>
 <tr>
  <td>Row 1-1</td>
  <td>Row 1-2</td>
 </tr>
 <tr>
  <td>Row 2-1</td>
  <td>Row 2-2</td>
 </tr>
</tbody>
</table>
 
Все что находится в тегах th будет автоматом повторятся на всех страницах где будет эта таблица.


Записан

Человеческая глупость дает представление о бесконечности
(с) Иоанна Хмелевская
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

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


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

panAlexey: а про строку большой константной высоты я не подумал, наверное это и будет выглядеть как надо! Улыбающийся
У меня такое есть: строке устанавливается атрибут фиксированного размера когда пользователь меняет её высоту руками.
"Стряхнуть" этот атрибут можно установив из контекстного меню "Автоширину".
Записан

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

Чих-пых! Век живи, век учись, все равно дураком помрешь Грустный.
За <thead>, <tbody> и как сделать без верхнего колонтитула огромное спасибо!!!
С колонками не совсем так: представьте открытую книгу. Вы в начале читаете левую страницу, потом правую. То же самое и с прайсом, в начале читаем левую колонку полностью на странице, потом правую.
Записан
Termit
Самовар
**
Offline Offline

Сообщений: 144



Просмотр профиля WWW
« Ответ #27 : Ноябрь 17, 2011, 13:46 »

С колонками не совсем так: представьте открытую книгу. Вы в начале читаете левую страницу, потом правую. То же самое и с прайсом, в начале читаем левую колонку полностью на странице, потом правую.
Представляю :-)

Вариант как я говорил выше - не гибкий.

Считаем кол-во строк которое помещается на страницу. И ручками разбираем все строки которые нужно вывести.

Для примера скажем так:
На страницу влазит 10 строк. У нас есть массив строк для вывода из 51 элемента. Выводить будем так

Из примера html выше
Row 1-1 => Элемент массива строк 1
Row 1-2 => Элемент массива строк 10+1
Row 2-1 => Элемент массива строк 2
Row 2-2 => Элемент массива строк 10+2
и т.д. до конца страницы

Дальше добавляем разделитель страниц.
И вставляем новую таблицу

Row 1-1 => Элемент массива строк 21
Row 1-2 => Элемент массива строк 31+1
Row 2-1 => Элемент массива строк 22
Row 2-2 => Элемент массива строк 31+2
и т.д. до конца страницы

Дальше добавляем разделитель страниц.
И вставляем новую таблицу
А вот тут нужно будет посчитать как правильно разместить строки
Row 1-1 => Элемент массива строк 41
Row 1-2 => Элемент массива строк 46
Row 2-1 => Элемент массива строк 42
Row 2-2 => Элемент массива строк 47
Row 3-1 => Элемент массива строк 43
Row 3-2 => Элемент массива строк 48
Row 4-1 => Элемент массива строк 44
Row 4-2 => Элемент массива строк 49
Row 5-1 => Элемент массива строк 45
Row 5-2 => Элемент массива строк 50
Row 6-1 => Элемент массива строк 51
Row 6-2 => &nbsp;

Про <thead> и <tbody> - в этом случае не пригодятся т.к. на каждой странице будет своя таблица.
Записан

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

Что-то подобное я и пытался сделать, посчитал количество строк, которое влазит на страницу, если текст переносится, то считаем строку за две.
Только сегодня нашел,  что можно средствами html создать разрыв страницы.
За идею "новая страница - новая таблица" - спасибо! Сам бы наверное не скоро до этого дошел. Кстати, проще и правильнее считать количество элементов в высоту, а в верстке делать таблицу в таблице: table(page) tr td table2(content) /td  td table2(content) /td /tr /table(page) разделитель_страницы.
PS А никто не подскажет, как посчитать высоту полученной ячейки? Сейчас реализовал дубово: высота = длина_строки_в_символах/константа(количество символов без переноса), но это дает погрешность.
« Последнее редактирование: Ноябрь 18, 2011, 07:56 от PavelVX » Записан
Termit
Самовар
**
Offline Offline

Сообщений: 144



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

Только сегодня нашел,  что можно средствами html создать разрыв страницы.
Каким образом?
Записан

Человеческая глупость дает представление о бесконечности
(с) Иоанна Хмелевская
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


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