Russian Qt Forum

Qt => Печать => Тема начата: sergun1604 от Ноябрь 25, 2010, 16:21



Название: ncreport для начинающих
Отправлено: sergun1604 от Ноябрь 25, 2010, 16:21
Отцы кто справился с ncreport помогите пожалуйста новичкам.
(А таковых море.)
Как его завести?
Есть Kubuntu 10.04
Есть QT4
Есть база SQLite
Есть NCReport дизайнер
ПОЧТИ НЕТ ЗНАНИЯ АНГЛИЙСКОГО ЯЗЫКА
Вопрос?
1 Как создать отчет и внедрить его в qt проект
2 Где взять инфу по планированию отчета, желательно на русском.

И вообще если не трудно поделитесь опытом кто как начинал осваивать эту прекрасную вещицу


Название: Re: ncreport для начинающих
Отправлено: sergun1604 от Ноябрь 26, 2010, 10:07
Такое чувство что никто с ним не знаком, или не хочет помочь...


Название: Re: ncreport для начинающих
Отправлено: sergun1604 от Ноябрь 26, 2010, 16:50
Вроде по дизайну разобрался методом тыка.
Тогда может кто подскажет почему по sql запросу выскакивает при тесте
Cannot open DataSource
Error: No Such Table ***


Название: Re: ncreport для начинающих
Отправлено: sergun1604 от Ноябрь 30, 2010, 12:25
Народ ну поддержите нашу русь,
уже три дня пытаю, все вроде правильно делаю но выскакивает эта ошибка

report error
cannot open datasource "имя соединения"
Error: no such table: имя таблицы Unable to execute statement

Замучился! соединения в менеджере с базой сделал, в дизайнере, все коннектится
В соурс прописал это соединение, но все вылетает эта байда

Пожалуйста спецы опустите свой взор на эту тему.


Название: Re: ncreport для начинающих
Отправлено: asvil от Ноябрь 30, 2010, 15:36
Итак вы перевели сообщение об ошибке. "Нет такой таблицы". Это значит в запросе указана несуществующая таблица. Соединение с БД у Вас по всей видимости устанавливается успешно.


Название: Re: ncreport для начинающих
Отправлено: sergun1604 от Ноябрь 30, 2010, 16:02
Наконец то!
Михаил респект!!!
Пожалуйста не теряйтесь если у вас есть опыт.
Обьясняю с самого начала. Я Разработал приложение в QT  там есть соединение с базой данной SQLITE
все работает.
Потом скачал NCReport, там есть папка bin в папке bin NCReportDesigner запускаю
File - New
Report - DataSources
ADD - SQLQuery - Create
имя оставляю по умолчанию
ConnectionID пишу my
запрос
SELECT id, name
FROM vrem (как в приложении, он робит)
больше ничего не трогаю, жму Ок
Далее report - DataBase Connections manager
ADD - называю my
Прописываю драйвер хост имя и т. п. Connect успешно
Жму ок
Ничего в отчет асолютно не вставляю ни полей ни данных пробую запустить и появляется ошибка описанная выше
я плачу уже три дня!!!


Название: Re: ncreport для начинающих
Отправлено: asvil от Ноябрь 30, 2010, 16:24
Для sqlite соединение всегда успешно.


Название: Re: ncreport для начинающих
Отправлено: sergun1604 от Ноябрь 30, 2010, 16:52
ясно.
Что тогда делать как проверить или понять где он ищет эту базу.
Она у меня в папке /home/user/project/
а где ncreport ищет и как мне его ткнуть туда где надо?

У меня кстати в проекте qt база заводится без проблем
а если запускаешь бинарник он базу не видит но молчит, хотя прописано

if(!db.open())                                          //открываем базу
        {
            qDebug()<<"Невозможно открыть базу данных:"<<db.lastError();
        }

может надо что то в системе подправить
говорят в Винде dll ки помогают


Название: Re: ncreport для начинающих
Отправлено: asvil от Ноябрь 30, 2010, 17:23
Эх, ну что же Вы не хотите документы почитать, чтобы самим во всем разобраться?


Название: Re: ncreport для начинающих
Отправлено: sergun1604 от Декабрь 01, 2010, 09:50
Я бы рад, да где они документы? Весь гугл молчит или я неправильно спрашиваю?!


Название: Re: ncreport для начинающих
Отправлено: sergun1604 от Декабрь 02, 2010, 10:08
Все молчат. Знают, но молчат.  :)
Просто так нравится система этого ncreporta, как рисует, как отчеты делает.
Может там где есть такую строку сделать
Код:
db.setDatabaseName(QCoreApplication::applicationDirPath()+"/my");

Михаил может просто скажете где копать.


Название: Re: ncreport для начинающих
Отправлено: sergun1604 от Декабрь 02, 2010, 10:15
Все всем спасибо за монолог!
Решил надо просто было в менеджере баз данных прописать путь к базе данных.
Опять же если думать о будущем, то на компах у всех пути разные...


Название: Re: ncreport для начинающих
Отправлено: crossly от Декабрь 02, 2010, 16:26
дык а какие документы вам нужны... в ncreport есть дока по использованию есть примеры.... мне в свое время их вполне хватило....


Название: Re: ncreport для начинающих
Отправлено: sergun1604 от Декабрь 03, 2010, 13:53
Може и есть что смог понять с комиксов (мануал на инглише).
Почти нет знания английского. Я писал.
Кстати crossly это благодаря тебе я смог понять что нужно ты тогда человечку одному написал как лучше соединятся с базой, я применил этот принцип здесь, в ncreport.
Меня мучает теперь вопрос как мне прописать путь к проге на других компах, ведь все пути разные...


Название: Re: ncreport для начинающих
Отправлено: RVZ от Декабрь 03, 2010, 14:25
NCReport захватывает управление проектом  ;D то есть вывалившееся окно отчета не дает работать с приложением пока отчет открыт как лечить может кто знает? код вызова как тут http://www.prog.org.ru/topic_15100_0.html
Заранее всем спасибо


Название: Re: ncreport для начинающих
Отправлено: crossly от Декабрь 03, 2010, 14:31
Цитировать
Меня мучает теперь вопрос как мне прописать путь к проге на других компах, ведь все пути разные...
путь не обязательно прописывать если БД лежит рядом с экзешником... это во первых... во вторых не обязательно прописывать соединение в самом отчете... ncreport будет использовать соединение созданное в вашей программе, в которой вы соответственно можете использовать QCoreApplication::applicationDirPath()


Название: Re: ncreport для начинающих
Отправлено: crossly от Декабрь 03, 2010, 14:32
NCReport захватывает управление проектом  ;D то есть вывалившееся окно отчета не дает работать с приложением пока отчет открыт как лечить может кто знает? код вызова как тут http://www.prog.org.ru/topic_15100_0.html
Заранее всем спасибо
он ведет себя именно так как вы ему сказали...
Код:
pv->setWindowModality(Qt::ApplicationModal );


Название: Re: ncreport для начинающих
Отправлено: RVZ от Декабрь 03, 2010, 14:38
Цитировать
он ведет себя именно так как вы ему сказали...
Огромное спасибо!!! "//" помогло :)
P.S. Похоже сегодня с работой пора завязывать.


Название: Re: ncreport для начинающих
Отправлено: sergun1604 от Декабрь 09, 2010, 12:09
crossly спасибо Вам огромное.
Теперь другой момент пробую внедрить NCReport в приложение следующим путем
Код:
QT += xml sql gui core
TARGET = stol
INCLUDEPATH = /home/sergey/NCReport/include
TEMPLATE = app
CONFIG += warn_on \
         qt \
         thread \
         release
unix {
LIBS += -lncreport -L/home/sergey/NCReport/lib -L/home/sergey/NCReport/bin
         target.path = /home/sergey/NCReport/bin
}

дальше инклюде и тп в .срр

выдает ошибку
error while loading shared libraries: libncreport.so.2: cannot open shared object file: No such file or directory


Название: Re: ncreport для начинающих
Отправлено: Пантер от Декабрь 09, 2010, 13:15
ls -s /home/sergey/NCReport/lib/libncreport.so.2 /usr/lib


Название: Re: ncreport для начинающих
Отправлено: crossly от Декабрь 09, 2010, 13:44
Код:
выдает ошибку 
error while loading shared libraries: libncreport.so.2: cannot open shared object file: No such file or directory

либо последовать совету Пантера, либо export LD_LIBRARY_PATH=/home/sergey/NCReport/lib


Название: Re: ncreport для начинающих
Отправлено: sergun1604 от Декабрь 09, 2010, 13:47
Пантер сэнкью.
Для тех кто не понял.
Нужно просто скопировать с lib папки все файло в /usr/lib

вот мой код теперь кода все робит
Код:
QT = xml sql gui core
TARGET = stol
INCLUDEPATH = /home/sergey/NCReport/include
TEMPLATE = app
CONFIG += warn_on \
         qt \
         thread \
         release
unix {
LIBS += -lncreport -L/home/sergey/NCReport/lib -L/usr/local/bin
         target.path = /usr/local/bin
}

мое приложение не крос поэтому только unix

.cpp файл

Код:
#include <ncreport.h>
#include <ncreportoutput.h>
#include <ncreportpreviewoutput.h>
#include <ncreportpreviewwindow.h>

...

NCReport *report = new NCReport();
        report->reset(true);
        report->setReportSource( NCReportSource::File );
        report->setReportFile("/home/sergey/stol/input.xml");
        report->runReportToPreview();
            if ( report->hasError()) {
                    QMessageBox::information( 0, "Report error", report->lastErrorMsg());
                    //return false;
            } else {
                NCReportPreviewWindow *pv = new NCReportPreviewWindow();
                NCReportPreviewOutput *output = new NCReportPreviewOutput();
                pv->setOutput((NCReportPreviewOutput*)report->output());
                output->setAutoDelete(false);
                pv->setReport(report);
                pv->setWindowModality(Qt::ApplicationModal );
                pv->setAttribute( Qt::WA_DeleteOnClose );
                pv->show();
            }

также в дизайнере отчетов я указал в DataSources external


Название: Re: ncreport для начинающих
Отправлено: crossly от Декабрь 09, 2010, 13:53
Цитировать
Нужно просто скопировать с lib папки все файло в /usr/lib
я бы не стал таким образом загаживать систему...


Название: Re: ncreport для начинающих
Отправлено: Olga от Январь 17, 2012, 09:49
Здравствуйте. Помогите пожалуйста.
Я сделала все как написано выше но мой отчет не загружается из программы. В ncreport все работает.

Cannot open datasource "base"
Error: Database is not connected or invalid in "base" data source.