Переключение на Главную Страницу Страницы: 1 ... 6 7 [8] 9 10 11 ОтправитьПечать
Очень популярная тема (более 25 ответов) Тихонько вояю отчетник для unNStudio на Qt.. (число прочтений - 114835 )
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #105 - 08. Декабря 2009 :: 19:34
Печать  
bds писал(а) 08. Декабря 2009 :: 16:28:
Сорцы другие 2009-10-16_21-56. Так называемый "биг текст" это я так понял, текст, который выходит за пределы колонок. А самих ячеек в документе немного, может, штук 10-20 занято текстом

Да, "биг текст" это когда не только за пределы колонок выходят, но и за пределы страниц вправо. Это я для тестирования рубки страниц склепал.
В тех сорцах я еще оптимизацию рисования не проводил. Там при рисовании строки полностью вектор ячеек перебирается, а то вдруг длинная строка попадется. В новых чуток подкрутил.
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #106 - 11. Декабря 2009 :: 12:18
Печать  
bds писал(а) 08. Декабря 2009 :: 16:28:
trdm писал(а) 07. Декабря 2009 :: 18:37:
А ты какие сорцы собирал?
Не эти случаем: Src-2009-11-30.zip
Перерисовка меня самого не особо удовлетворяет, но я её потихоньку оптимизирую, хоть и опыта у меня в таких разработках маловато.
Проверял на файле с "Big text".
Он действительно тормозит когда очень много колонок (500 или 1000). Че поделаешь Улыбка

Сорцы другие 2009-10-16_21-56. Так называемый "биг текст" это я так понял, текст, который выходит за пределы колонок. А самих ячеек в документе немного, может, штук 10-20 занято текстом

посмотри пожалуйста последние исходники. может стоит еще подкручивать?
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #107 - 12. Декабря 2009 :: 13:01
Печать  
Первые эксперименты с объединением ячеек.
Встречайте Улыбка
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #108 - 15. Декабря 2009 :: 20:48
Печать  
Похоже идея использования QMap под хранение строк и ячеек в строках была брокен Печаль
Прийдется наверное переписать все под вектор с индексированным доступом. ибо отрисовка на маломощных компах фиговая...
или я не умею пользоваться профилятором О_о...
пс. если я правильно понял проблему, то часто и беспонту вызывается и работает поиск итема, правильно? О_о
  

optimize.PNG ( 32 KB | Загрузки )
optimize.PNG
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #109 - 23. Декабря 2009 :: 10:18
Печать  
Выкинул QMap<>, заменил на QVector<> несколько полегчало.
Разбрасываю перерисовку на процедуры: отдельно рисуются данные, отдельно хейдеры, отдельно курсор текущей ячейки.
Стало получше, но работы еще валом. Тяжело пИсать шустрые контролы Печаль
  
Наверх
IP записан
 
Yhrik
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 16
Зарегистрирован: 28. Января 2009
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #110 - 28. Декабря 2009 :: 09:59
Печать  

QMap<Key, T>      Предоставляет словарь (ассоциативное множество), который хранит соответствия ключей типа Key и значений типа T. QMap хранит данные, упорядоченные по ключу; если порядок не имеет значения, то класс QHash работает быстрее.
QHash<Key, T>      Имеет почти такой же API, как и QMap, но предоставляет значительно более быстрый поиск. QHash хранит свои данные в произвольном порядке.

Если КВектор быстрей.....
Если объединение ячеек есть, значит любой отчет можно отобразить.
Круть.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #111 - 28. Декабря 2009 :: 11:03
Печать  
Yhrik писал(а) 28. Декабря 2009 :: 09:59:
Если объединение ячеек есть, значит любой отчет можно отобразить.

не любой. Для "любого" пока не хватает графических примитивов и рич-текста в ячейках.
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #112 - 28. Декабря 2009 :: 20:51
Печать  
trdm писал(а) 28. Декабря 2009 :: 11:03:
... и рич-текста в ячейках.

Язык
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #113 - 28. Декабря 2009 :: 21:21
Печать  
blindvic писал(а) 28. Декабря 2009 :: 20:51:
trdm писал(а) 28. Декабря 2009 :: 11:03:
... и рич-текста в ячейках.

Язык

Да, но прийдется процессор писАть Печаль
  
Наверх
IP записан
 
Yhrik
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 16
Зарегистрирован: 28. Января 2009
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #114 - 29. Декабря 2009 :: 16:33
Печать  
RichText и в  1с7.7 отсутствует.
Для многих отчетов можно и без него.
Вместо графических примитивов достаточно вставки картинки, или подложки. Хотя может быть сложно.
Если прилагаемый файл можно отобразить (пусть без картинки), то можно считать -- всё ОК.
  

DeclNDS1151002_xls.zip ( 37 KB | Загрузки )
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #115 - 29. Декабря 2009 :: 17:12
Печать  
Yhrik писал(а) 29. Декабря 2009 :: 16:33:
RichText и в  1с7.7 отсутствует.
Для многих отчетов можно и без него.

Лучше с ним.

Yhrik писал(а) 29. Декабря 2009 :: 16:33:
Вместо графических примитивов достаточно вставки картинки, или подложки.

заблуждение. Я буду руководствоваться своими выводами и наблюдениями. Вы там с Ананасом разберитесь, прежде чем мне советы давать.
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #116 - 30. Декабря 2009 :: 13:20
Печать  
trdm писал(а) 28. Декабря 2009 :: 21:21:
blindvic писал(а) 28. Декабря 2009 :: 20:51:
trdm писал(а) 28. Декабря 2009 :: 11:03:
... и рич-текста в ячейках.

Язык

Да, но прийдется процессор писАть Печаль

для начала можно редактировать через тэги - как здесь на формуе. хоть как-нибудь.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #117 - 28. Января 2010 :: 14:23
Печать  
Выпустил новую версию отчетника.
uoReport-src-2010-01-28_16-59_unstable.zip
Есть наработки с объединениями. Есть и оптимизация:
  

report52UseWinAPI.PNG ( 51 KB | Загрузки )
report52UseWinAPI.PNG
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #118 - 28. Января 2010 :: 16:25
Печать  
Yhrik писал(а) 29. Декабря 2009 :: 16:33:
Если прилагаемый файл можно отобразить (пусть без картинки), то можно считать -- всё ОК.

Я попробую.
Пс. Блин, замельчил столбцы, теперь х.з. на каком стою....
Прийдется сделать как в Excel указатель адреса Улыбка)))))
Блин Улыбка)))))
Сделал панель адраса/поиска, уже полегче Улыбка
« Последняя редакция: 29. Января 2010 :: 09:52 - trdm »  

report53.png ( 12 KB | Загрузки )
report53.png
Наверх
IP записан
 
Yhrik
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 16
Зарегистрирован: 28. Января 2009
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #119 - 29. Января 2010 :: 15:34
Печать  
trdm писал(а) 28. Января 2010 :: 16:25:
Я попробую.

Тебе, наверно, не помешает конвертер страниц Excel в 1С.
Я когда-то писал для 8.x.
На деле не в 1С, а в текст программы вида:
Код
Выбрать все
Процедура Run1()
SetSizeCR(122, 111);
SetWidth(1, 11, 4.5);
SetWidth(12, 12, 6);
SetWidth(13, 14, 4.5);
SetHeight(4, 4, 6);
SetHeight(5, 12, 15);
SetHeight(13, 13, 12.75);
SetHeight(14, 15, 12);
SetVerticalAlignmentTop(Area1);      //)
Area1 = SetGroup(1, 108, 1, 4);
SetText(Area1,"");
SetFont(Area1,"Arial",8, 0, False, False, False, False);
SetVerticalAlignmentBottom(Area1);      //)
Area1 = SetGroup(2, 1, 1, 107);
SetText(Area1,"Утверждена постановлением Госкомстата");
SetFont(Area1,"Times New Roman",7, 0, False, False, False, False);
SetHorizontalAlignmentRight(Area1);      //)
SetVerticalAlignmentTop(Area1);      //)
SetLeft( Area1,1); // обрамить линией толщиной 1 слева
SetRight( Area1,1); // обрамить линией толщиной 1 справа
SetTop( Area1,1); // обрамить линией толщиной 1 сверху
SetBottom( Area1,1); // обрамить линией толщиной 1 снизу
КонецПроцедуры // Run1()
 



Работает  в Екселях с 97-го по 2003 (на 2007 не проверял).
Если обёртку для этих функций написать, можно и на С++.

Прогресс очевиден, это радует. Костяк отчетника ты сделал, риспект.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 6 7 [8] 9 10 11
ОтправитьПечать