Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: Вопросы новичка  (Read 151805 times)

ldir

  • Jr. Member
  • **
  • Posts: 72
    • View Profile
Re: Вопросы новичка
« Reply #285 on: April 21, 2019, 11:24:40 pm »
Arin Alex, здравствуйте!
Подскажите пожалуйста, есть ImageItem на DataBand и таблица, в одном из полей которой содержатся имена файлов с изображениями. Файлы живут в папке. Можно ли как-то отобразить их в ImageItem?  Datasource и field указал, в resourcePath задал путь к папке с файлами - картинки не выводятся. Или изображения должны обязательно храниться в базе?

dim0n-333

  • Newbie
  • *
  • Posts: 6
    • View Profile
Re: Вопросы новичка
« Reply #286 on: April 22, 2019, 11:01:53 am »
dim0n-333, Параметр nobind был добавлен в новую версию, которая находится на github в ветке develop
Arin Alex, при использовании LimeReport с ветки develop появляется огромное число ошибок (скрин во вложении).

Попробовал взять с ветки master, компилируется нормально.

P.S. Не дождался ответа, снова вернулся к модулю отчетов, нашёл в ошибках нехватку файла Qml или типа того.
Дописал в .pro файл:
QT += qml

А также добавил в заголовках форм, где использую LimeReport
#include <QtQml>


Скомпилировалось, запустилось.
Напомню, в программе прописано:
m_report.dataManager()->setReportVariable("filterProduct", "Product=1");

Снова в поле sql пишу для проверки:
select * from Sales where $V{filterProduct, true};

Появляется ошибка "Отсутствует запрос Невозможно получить строку"

Для проверки пишу туда же:
select * from Sales where Product=1;
Получаю таблицу.
« Last Edit: April 26, 2019, 02:15:55 pm by dim0n-333 »

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Вопросы новичка
« Reply #287 on: April 27, 2019, 11:20:32 pm »
dim0n-333,Приветствую!
Прошу прошения за долгое молчание, был в таких местах где доступ к интернет отсутствовал как факт :)
Quote
select * from Sales where $V{filterProduct, true};
нужно заменить на:
Code: [Select]

select * from Sales where $V{filterProduct, nobind};

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Вопросы новичка
« Reply #288 on: April 27, 2019, 11:23:46 pm »
ldir, Приветствую!
resourcePath, на данный момент, должен указывать на путь к файлу, а не к директории.
Но я думаю, что это дело можно немного поправить :)   

dim0n-333

  • Newbie
  • *
  • Posts: 6
    • View Profile
Re: Вопросы новичка
« Reply #289 on: April 29, 2019, 06:01:32 am »
dim0n-333,Приветствую!
Прошу прошения за долгое молчание, был в таких местах где доступ к интернет отсутствовал как факт :)
Quote
select * from Sales where $V{filterProduct, true};
нужно заменить на:
Code: [Select]

select * from Sales where $V{filterProduct, nobind};
Удивительное совпадение, только что написал nobind, все заработало, и тут вижу ваше сообщение.
Так как в версии с ветки master nobind не приносил результата, решил, что это булевский параметр,
а после замены на версию с ветки develop почему-то не протестировал вариант с nobind.

В любом случае, спасибо за ответы, если будут ещё вопросы, напишу)

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Вопросы новичка
« Reply #290 on: April 29, 2019, 11:08:14 am »
ldir, Приветствую!
Я изменил обработку свойства resourcePath в ImageItem терперь в нем можно использовать переменные и поля источников данных.

Vermilion

  • Newbie
  • *
  • Posts: 34
    • View Profile
Re: Вопросы новичка
« Reply #291 on: April 29, 2019, 02:33:52 pm »
Vermilion, Процесс не простой, но возможный :)
Для этого нужно взять крайний комит в develop ветке (Специально сделал изменения под это дело).
Далее в поле где выводится Фамилия пишем нечто вроде этого:
Code: [Select]
$S{
if (CustomerID !=$D{detail.CustomerID}) {
$D{detail.CustomerID};
CustomerID  = $D{detail.CustomerID}
} else {
"";
}
}
А в стартовом скрипте
Code: [Select]
var CustomerID = "";
Reportpage1.afterRender.connect(AfterPageRender);
function AfterPageRender(){
CustomerID = "";
}

Приветствую, Arin Alex!

Скажите, а Ваши доработки не попали еще в master ветку? я взял сегодняшнюю 1.4.128 ветку, доработал отчет, как Вы рекомендовали, все нормально, первая страница формируется так как задумано, но на второй странице повторение подавленного значения появляется только на второй строке данных, хотя должна появиться на первой строке 2-й страницы... по логике работы скрипта. Куда копать?

Ветка develop криво интегрируется в приложение, не хотелось бы с ней линковаться..
« Last Edit: April 29, 2019, 02:35:39 pm by Vermilion »

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Вопросы новичка
« Reply #292 on: April 29, 2019, 06:30:00 pm »
Vermilion, Приветствую!
Некоторые доработки в master в принципе не попадают :) Потому как следующаяя версия будет та, которая находится в девелопе.
Quote
Ветка develop криво интегрируется в приложение, не хотелось бы с ней линковаться..
Можно поподробнее ?
 

Vermilion

  • Newbie
  • *
  • Posts: 34
    • View Profile
Re: Вопросы новичка
« Reply #293 on: April 29, 2019, 09:25:08 pm »
Vermilion, Приветствую!
Некоторые доработки в master в принципе не попадают :) Потому как следующаяя версия будет та, которая находится в девелопе.
Quote
Ветка develop криво интегрируется в приложение, не хотелось бы с ней линковаться..
Можно поподробнее ?


У меня собрана статическая версия Qt5.7.1 с поддержкой PSQL, ODBC и SQLite. В сборку включен минимум библиотек. Qml не используется и прочие "вкусности" я тоже не включаю в сборку фреймфорка. Я Вашу библиотеку включаю как часть своего приложения (через limereport.pri). Т.е. не собираю lib и потом не прилинковываю ее к проекту.

Для примера я в папке с проектом designer делаю designer.pro следующего содержания:

#-----
CONFIG += no_formdesigner no_embedded_designer

QT += core gui

TARGET = LRDesigner
TEMPLATE = app

HEADERS +=  $$PWD/designersettingmanager.h

SOURCES +=  $$PWD/main.cpp \
            $$PWD/designersettingmanager.cpp

RESOURCES += $$PWD/../3rdparty/dark_style_sheet/qdarkstyle/style.qrc

include($$PWD/../limereport.pri)

MOC_DIR         = moc
OBJECTS_DIR     = obj
UI_DIR          = ui
UI_HEADERS_DIR  = ui
UI_SOURCES_DIR  = ui
RCC_DIR         = rcc

#-----

при выполнении qmake получаю ошибки с поиском файлов:
Project MESSAGE: TOP_BUILD_DIR:
Project MESSAGE: Debug
Project MESSAGE: uitools
Project MESSAGE: qjsengine
Project MESSAGE: TOP_BUILD_DIR:
Project MESSAGE: Debug
Project MESSAGE: uitools
Project MESSAGE: qjsengine
WARNING: Failure to find: ..\3rdparty\zint-2.6.1\backend_qt4\qzint.cpp
WARNING: Failure to find: ..\3rdparty\zint-2.6.1\backend\maxipng.h
WARNING: Failure to find: ..\3rdparty\zint-2.6.1\backend_qt4\qzint.h
Project MESSAGE: TOP_BUILD_DIR:
Project MESSAGE: Release
Project MESSAGE: uitools
Project MESSAGE: qjsengine
WARNING: Failure to find: ..\3rdparty\zint-2.6.1\backend_qt4\qzint.cpp
WARNING: Failure to find: ..\3rdparty\zint-2.6.1\backend\maxipng.h
WARNING: Failure to find: ..\3rdparty\zint-2.6.1\backend_qt4\qzint.h

странно, но qzint.pri я не трогал.. почему qmake не видит эти файлы.. такое впечатление, что переменная $$ZINT_PATH в какой то момент искажается..

С исходниками из master такого не наблюдается.. скорее всего недостаточно настроек я указываю в проекте, где копать не могу понять..

dim0n-333

  • Newbie
  • *
  • Posts: 6
    • View Profile
Re: Вопросы новичка
« Reply #294 on: April 30, 2019, 05:49:15 am »
Vermilion, я конечно могу ошибаться, но в версии библиотеки на develop ветке используется Qml.

Например, когда я взял либу с ветки develop (изначально использовал с ветки master), пришлось дописать в .pro файл
QT += qml

P.S. Кое-что нагуглил, мб поможет:

Quote
Предположительно, QtCreator не находит файлы заголовков, перечисленные в файле .pri. Если ваш .pri файл находится в другой директории, отличной от вашего .pro файла, Qt ищет файлы, перечисленные в файле .pri, в том же каталоге, что и файл .pri(а не. pro file), и любой относительный путь будет разрешен из этого каталога.

Когда файл не может быть найден, QtCreator молча игнорирует его и просто не добавляет его в папку в представлении проектов.
« Last Edit: April 30, 2019, 06:02:09 am by dim0n-333 »

Vermilion

  • Newbie
  • *
  • Posts: 34
    • View Profile
Re: Вопросы новичка
« Reply #295 on: April 30, 2019, 07:46:41 am »
Vermilion, я конечно могу ошибаться, но в версии библиотеки на develop ветке используется Qml.

Например, когда я взял либу с ветки develop (изначально использовал с ветки master), пришлось дописать в .pro файл
QT += qml

P.S. Кое-что нагуглил, мб поможет:

Quote
Предположительно, QtCreator не находит файлы заголовков, перечисленные в файле .pri. Если ваш .pri файл находится в другой директории, отличной от вашего .pro файла, Qt ищет файлы, перечисленные в файле .pri, в том же каталоге, что и файл .pri(а не. pro file), и любой относительный путь будет разрешен из этого каталога.

Когда файл не может быть найден, QtCreator молча игнорирует его и просто не добавляет его в папку в представлении проектов.

Добрый день, Alex!
Я QtCreator пользуюсь только, когда что то надо отлаживать под Linux, а так его никогда не использую.. Мне привычнее все делать в MS Visual Studio, я делаю проект для VC (qmake -t vcapp) и далее уже пишу код и отлаживаюсь в студии, или вообще в Far-manager пишу код и потом компилирую проект nmake в командной строке... Я думаю в данном случае это не принципиально. Я добавил qml в проект, но легче не стало.

выполнение qmake все равно приводит к описанному ранее предупреждению об отсутствии файлов. (WARNING: Failure to find: ..\3rdparty\zint-2.6.1\backend_qt4\qzint.cpp)
Повторюсь, qmake я вызываю из командной строки в консольном окне, в котором определены переменные окружения Visual Studio и QT.
Мне надо сначала добиться безошибочной работы qmake, а дальше уже все заработает без проблем  :)

Я попробовал сейчас убрать из сборки zint (закомментировал в limereport.pri строку "CONFIG += zint"), qmake отработал без предупреждений, проект собрался, но при запуске приложения гуй дизайнера не появляется, процесс болтается в памяти..
« Last Edit: April 30, 2019, 09:05:34 am by Vermilion »

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Вопросы новичка
« Reply #296 on: April 30, 2019, 11:17:55 am »
Vermilion, Приветствую!
Quote
Добрый день, Alex!
Предыдущее сообщение было от dim0n-333 :)
По сути вопроса:
А вы после перехода на develop, перед сборкой проекта, очищали его ?
Крайне рекомендую грохнуть директории где происходит сборка и собрать по новой.
Использования qml можно избежать если использовать qtscriptengine вместо qjsengine
qml добавлен в силу того что qtscript теперь deprecated

Вы также можете собрать limereport как статическую либу и линковать к себе в проект CONFIG+= static_build
PS: Надеюсь ваш проект опенсорс в противном случае статическая линковка нарушает лицензионное соглашение ;)
« Last Edit: April 30, 2019, 11:29:20 am by Arin Alex »

Vermilion

  • Newbie
  • *
  • Posts: 34
    • View Profile
Re: Вопросы новичка
« Reply #297 on: April 30, 2019, 11:45:56 am »
Vermilion, Приветствую!
Quote
Добрый день, Alex!
Предыдущее сообщение было от dim0n-333 :)
По сути вопроса:
А вы после перехода на develop, перед сборкой проекта, очищали его ?
Крайне рекомендую грохнуть директории где происходит сборка и собрать по новой.
Использования qml можно избежать если использовать qtscriptengine вместо qjsengine
qml добавлен в силу того что qtscript теперь deprecated

Вы также можете собрать limereport как статическую либу и линковать к себе в проект CONFIG+= static_build
PS: Надеюсь ваш проект опенсорс в противном случае статическая линковка нарушает лицензионное соглашение ;)

Еще раз добрый день, Alex!

Прошу прощения у dim0n-333, с утра резкость не успел еще навести...

Да перед сборкой тупо все удаляю и делаю все с чистого листа.
По поводу статической сборки в курсе, стараемся не нарушать :-)

Ладно попробую другим путем пойти.. Спасибо за советы.

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Вопросы новичка
« Reply #298 on: April 30, 2019, 12:01:48 pm »
Vermilion, Я проверю линковку через pri если, что найду поправлю :)
Просто обычно используют линковку библиотеки, потому давно не проверял линковку через код.

Vermilion

  • Newbie
  • *
  • Posts: 34
    • View Profile
Re: Вопросы новичка
« Reply #299 on: April 30, 2019, 12:06:51 pm »
Vermilion, Я проверю линковку через pri если, что найду поправлю :)
Просто обычно используют линковку библиотеки, потому давно не проверял линковку через код.

Спасибо Alex! Иногда нужно иметь монолитное приложение, которое за собой ничего не тянет, а только самую малость библиотек.. Так что, если у Вас будет такая возможность и время - гляньте.