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

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - dim0n-333

Pages: [1]
1
Discussion | Обсуждение / Re: Вопросы новичка
« 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 молча игнорирует его и просто не добавляет его в папку в представлении проектов.

2
Discussion | Обсуждение / Re: Вопросы новичка
« 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.

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

3
Discussion | Обсуждение / Re: Вопросы новичка
« 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;
Получаю таблицу.

4
Discussion | Обсуждение / Re: Вопросы новичка
« on: April 19, 2019, 02:19:18 pm »
dim0n-333,
Quote
Но почему-то в результате такого запроса я получаю таблицу без строк.
Это происходит из-за того, что параметры в обычном режиме передаются через bind.
Если есть желание просто кусок sql вставить через переменную, то нужно использовать $V{VarName, nobind} 
Опишу все по порядку:
В программе задаю переменную:
m_report.dataManager()->setReportVariable("filterProduct", "Product=1");

Далее создаю datasource и в поле sql пишу для проверки:
select * from Sales where $V{filterProduct, nobind};
Нажимаю preview.

Появляется сообщение об ошибке "Количество параметров не совпадает".

Для проверки пишу туда же:
select * from Sales where Product=1;
Вижу таблицы с заполненными строками, т.е. все нормально.

5
Discussion | Обсуждение / Re: Вопросы новичка
« on: April 19, 2019, 07:42:37 am »
dim0n-333,
Quote
При создании datasource в окне sql использовать внешние переменные не получается (хотел вставить после where).
Вот тут не понял. Вы можете использовать переменные отчета в запросе точно так же, как и данные из других источников данных.
Вы можете, например, написать: where CustomerID like $V{CustomerID}, а в переменой будет зачение %ALFKI% 

Мне нужно отправить запрос вида:
select * from Sales where Product=$D{Product.Id} and Seller=2 and Date between 'date1' and 'date2';

Причем в зависимости от выбора пользователя запрос может быть и таким:
select * from Sales where Product=$D{Product.Id} and Date between 'date1' and 'date2';
select * from Sales where Product=$D{Product.Id} and Seller=2;
select * from Sales where Product=$D{Product.Id};

Поэтому я планировал сформировать часть после Product=$D{Product.Id} как строку, записать в переменную и передать в LimeReport

А уже в sql запросе для формирования datasource записать
select * from Sales where Product=$D{Product.Id} and $V{filter};

Но почему-то в результате такого запроса я получаю таблицу без строк.

P.S. Если это имеет значение, в качестве базы данных используется SQLite.

6
Discussion | Обсуждение / Re: Вопросы новичка
« on: April 18, 2019, 06:52:29 am »
Здравствуйте, интересует возможность фильтрации в LimeReport.

Вводные: имеется таблица Продукты и Продажи, в продажах есть несколько столбцов (продавец, продукт, время продажи и тп).
Перед запуском отчета пользователь может указать продукт(-ы), продавцов, промежуток времени и тп(aka фильтрация).

В band вывожу название продукта и заголовочную часть таблицы. Далее создаю datasource к таблице Продаж, где включаю subquery mode и в качестве master указываю таблицу Продуктов. Использую этот datasource в SubDetailBand.
Таким образом получаю несколько таблиц, Продукт и Продажи для этого продукта. Но не могу понять как сделать фильтрацию по остальным столбцам (время, продавец и тп).

При создании datasource в окне sql использовать внешние переменные не получается (хотел вставить после where).
Можно заранее отсортировать и передать модель, но т.к. продукт меняется от таблицы к таблице, запрос должен меняться тоже.
Т.е. в SubDetailBand модель не используешь (нельзя провести фильтрацию по продукту созданного из модели datasource).

Заметил, что запрос, используемый для создания datasource хранится в xml шаблоне, можно сделать поиск по этому файлу и перед запуском предпросмотра для запроса, который создает datasource, менять значения условия после where (разумеется, оставляя Product=$D{Sales.Product}), но это выглядит как огромный костыль.
Буду рад любому совету.

Pages: [1]