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



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #90 - 23. Октября 2009 :: 10:15
Печать  
villager писал(а) 22. Октября 2009 :: 17:25:
правильно ли я понимаю, что эта штука будет уметь просматривать и печатать?

Просматривать да - но только свои форматы:
- один самопальный на основе XML,
- текстовые файлы c полями разделенными разделенные \t
- бинарный Qt формат;
Данные программист будет генерировать сам.

Вот пример, как грузится текстовый файл:
Код
Выбрать все
void uoReportCtrl::onLoadTXT()
{
	uoReportDoc* doc =  getDoc();
	if (!doc)
		return;

	QProgressDialog* progresDlg = uoReport::uoReportManager::instance()->progressDlg();
	if (!progresDlg){
		qWarning() << "Error!!!";
		return;
	}


	QString docFilePath;
	if (!m_iteractView->chooseLoadTxtFilePath(docFilePath, this)){
		return;
	}
	QFile file(docFilePath);
	long sz = file.size();
	long sz_add = 0;

	docFilePath = file.fileName();


	progresDlg->setLabelText(QObject::tr("Load %1").arg(docFilePath));
	progresDlg->setRange(0,sz);
	progresDlg->setModal(true);

	bool oldCC = doc->enableCollectChanges(false);
	bool oldDF = doc->enableFormating(false);
	doc->clear();

	if (file.open(QIODevice::ReadOnly | QIODevice::Text)){
		QTextStream qts_in(&file);
		QChar ch = '\t';
		QStringList list;
		QString line, linePart;
		int row = 1;
		while (!qts_in.atEnd()) {
			QString line = qts_in.readLine();
			sz_add += line.length();
			list = line.split(ch);
			for (int y=1; y<=list.size(); y++){
				linePart = list.at(y-1);
				doc->setCellText(row,y,linePart);
				doc->setCellTextAlignment(row,y,uoReport::uoVA_Center, uoReport::uoHA_Left, uoReport::uoCTB_Transfer);
			}

			++row;
			progresDlg->setValue(sz_add);
//			qApp->processEvents(QEventLoop::ExcludeUserInputEvents);
		}
	}
	qDebug() << "lod file: " << docFilePath << " size: " << sz << " size for row: " << sz_add;

	doc->enableFormating(oldDF);
	progresDlg->setLabelText(QObject::tr("Formated %1").arg(docFilePath));

	doc->doFormatDoc();
	progresDlg->hide();
	recalcHeadersRects();
	setStateMode(rmsNone);
	doc->enableCollectChanges(oldCC);
	updateImage();
	setFocus();
}

 

  
Наверх
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #91 - 23. Октября 2009 :: 14:15
Печать  
я из старой своей досовской системы формирую файл в формате ....?
вот если лист EXCEL сохранить ка WEB-страницу - короче html c примочками

просматривается в Excel (при желании Word, любым браузером)

но вот openoffice такой формат понимает плохо, теряется форматирование, рамки

какой формат можно использовать для точного рисования отчетов?

сейчас я держу шаблон в RTF, готовлю данные в текстовый файл, а потом программой reportf.exe собирается из них готовый отчет. очень просто и быстро
Опять таки, под WORD - OK, но openoffice не совсем

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



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #92 - 07. Ноября 2009 :: 08:35
Печать  
villager писал(а) 22. Октября 2009 :: 17:25:
.......а как размещать данные в клетках таблицы

Код
Выбрать все
//uoReport::uoReportDoc* doc;
doc->setCellText(2,3,"НеобычайнодлинноеСлово \n НеобычайнодлинноеСлово ");
doc->setCellTextAlignment(2,3,uoReport::uoVA_Center, uoReport::uoHA_Center, uoReport::uoCTB_Transfer);

 


villager писал(а) 22. Октября 2009 :: 17:25:
...или планируется что-нибудь вроде свободно-плавающих текстбоксов?

это планируется, будет зваться графический примитив. Думаю будет их такой список:
- Рамка;
- линия;
- текст-бокс;
- Картинка;
- еще хочется svg влепить, не знаю справлюсь ли...
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #93 - 19. Ноября 2009 :: 17:45
Печать  
Идет реализация Drag&Drop/Copy&Paste.
Пока реализовал простейшую работу с буфером обмена и подготовил базу под остальное Улыбка



11737
« Последняя редакция: 19. Ноября 2009 :: 20:02 - trdm »  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #94 - 22. Ноября 2009 :: 11:53
Печать  
Реализовал полное копирование/вставку всего документа.
Опция должна значительно облегчить труд разработчиков.

« Последняя редакция: 26. Ноября 2009 :: 20:54 - trdm »  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #95 - 26. Ноября 2009 :: 20:55
Печать  
Вроде доделал копирование и вставку диапазонов.

  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #96 - 27. Ноября 2009 :: 07:12
Печать  
Ну так что, отчетник уже в юзабельном состоянии?
Пример использования апи?
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #97 - 27. Ноября 2009 :: 08:52
Печать  
blindvic писал(а) 27. Ноября 2009 :: 07:12:
Ну так что, отчетник уже в юзабельном состоянии?
Пример использования апи?

Для простеньких отчетов уже в принцыпе можно использовать.
Если доработать объединение ячеек и еще пару фич, будет вполне юзабельным. На принтер выводит, текстовый файл с табовыми разделителями втянуть может. Че еще для счастья надо?
Пример АПИ? Шо це таке?
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #98 - 27. Ноября 2009 :: 12:55
Печать  
trdm писал(а) 27. Ноября 2009 :: 08:52:
Пример АПИ? Шо це таке?

Ну, таблицу в 1С так:
Код
Выбрать все
Таб.ВывестиСекцию("шапка"); 


А здесь? Пример?
Тот же приницп?
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #99 - 27. Ноября 2009 :: 14:20
Печать  
blindvic писал(а) 27. Ноября 2009 :: 12:55:
trdm писал(а) 27. Ноября 2009 :: 08:52:
Пример АПИ? Шо це таке?

Ну, таблицу в 1С так:
Код
Выбрать все
Таб.ВывестиСекцию("шапка"); 


А здесь? Пример?
Тот же приницп?

Да, только тут нюансы есть, 1С - по сути готовый фрайм-верк. А у мну пока заготовка: сам документ + дизайнер.
ПС. Над группой функций "(Вывести|Присоединить)*" еще не работал, но заготовки уже есть:
Проработаны секции (хранение/редактирование):



И оттипизированы ячейки.
Работа над буфером обмена проведена так, что-бы можно было использовать и для функций "(Вывести|Присоединить)*".
А использованное апи можно посмотреть в main.cpp проекта, если нужны подробности, пройтись доксигеном по проекту, многое документировано.
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #100 - 30. Ноября 2009 :: 13:09
Печать  
Начал работу над механизмом формирования отчета в стиле 1С.

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



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #101 - 03. Декабря 2009 :: 15:09
Печать  
Пошла работа над объединением ячеек....
  
Наверх
IP записан
 
bds
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 07. Декабря 2009
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #102 - 07. Декабря 2009 :: 16:47
Печать  
Скачал октябрьскую версию, сразу откомпилировалась на MSVC2005
Еще собирал qt1l (2 версии - 4.0 и 3.0) на Qt4.3, wx1l на wxWidgets 2.9. 1L пришлось много исправлять, т.к. файлы на sourceforge лежат какой-то промежуточной версии.

Ваш отчет почему-то очень медленно работает (а конкретно отрисовка). Я сначала подумал, что из-за сборки под debug, оказалось в release то же самое. Проверял на файле с "Big text". Все остальное весьма достойно
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #103 - 07. Декабря 2009 :: 18:37
Печать  
bds писал(а) 07. Декабря 2009 :: 16:47:
Ваш отчет почему-то очень медленно работает (а конкретно отрисовка).
А ты какие сорцы собирал?
Не эти случаем: http://unnstudioreport.googlecode.com/files/unNStudio-Report-Src-2009-11-30.zip
Перерисовка меня самого не особо удовлетворяет, но я её потихоньку оптимизирую, хоть и опыта у меня в таких разработках маловато.
Проверял на файле с "Big text".
Он действительно тормозит когда очень много колонок (500 или 1000). Че поделаешь Улыбка
  
Наверх
IP записан
 
bds
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 07. Декабря 2009
Re: Тихонько вояю отчетник для unNStudio на Qt..
Ответ #104 - 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 записан
 
Переключение на Главную Страницу Страницы: 1 ... 5 6 [7] 8 9 ... 11
ОтправитьПечать