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

Recent Posts

Pages: [1] 2 3 ... 10
1
Discussion | Обсуждение / Re: Вопросы новичка
« Last post by Vermilion on Today at 02:13:06 pm »
Arin Alex, здравствуйте!


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 = "";
}

Спасибо, Alex! Буду пробовать  ;D


Попробовал я сделать по Вашим рекомендациям, все работает, но есть один момент.. На 1 странице CustomerID на первой строке отображается, далее в следующих строках ничего не печатается.. Но вторая страница повторяет вывод CustomerID не на первой строке таблицы, а на второй..
Такая картина наблюдается на всех последующих страницах. Только 1 страница нормально формируется.

Куда копать?
2
Discussion | Обсуждение / Re: Вопросы новичка
« Last post by dim0n-333 on April 22, 2019, 11:01:53 am »
dim0n-333, Параметр nobind был добавлен в новую версию, которая находится на github в ветке develop
Arin Alex, при использовании LimeReport с ветки develop начинают появляться ошибки (скрин во вложении).

Попробовал взять с ветки master, компилируется нормально.
3
Discussion | Обсуждение / Re: Вопросы новичка
« Last post by ldir on April 21, 2019, 11:24:40 pm »
Arin Alex, здравствуйте!
Подскажите пожалуйста, есть ImageItem на DataBand и таблица, в одном из полей которой содержатся имена файлов с изображениями. Файлы живут в папке. Можно ли как-то отобразить их в ImageItem?  Datasource и field указал, в resourcePath задал путь к папке с файлами - картинки не выводятся. Или изображения должны обязательно храниться в базе?
4
Discussion | Обсуждение / Re: Вопросы новичка
« Last post by Arin Alex on April 19, 2019, 09:36:21 pm »
dim0n-333, Параметр nobind был добавлен в новую версию, которая находится на github в ветке develop
5
Discussion | Обсуждение / Re: Вопросы новичка
« Last post by dim0n-333 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;
Вижу таблицы с заполненными строками, т.е. все нормально.
6
Discussion | Обсуждение / Re: Вопросы новичка
« Last post by Arin Alex on April 19, 2019, 12:37:05 pm »
dim0n-333,
Quote
Но почему-то в результате такого запроса я получаю таблицу без строк.
Это происходит из-за того, что параметры в обычном режиме передаются через bind.
Если есть желание просто кусок sql вставить через переменную, то нужно использовать $V{VarName, nobind} 
7
Discussion | Обсуждение / Re: Вопросы новичка
« Last post by dim0n-333 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.
8
Discussion | Обсуждение / Re: Вопросы новичка
« Last post by Arin Alex on April 18, 2019, 04:20:44 pm »
dim0n-333,
Quote
При создании datasource в окне sql использовать внешние переменные не получается (хотел вставить после where).
Вот тут не понял. Вы можете использовать переменные отчета в запросе точно так же, как и данные из других источников данных.
Вы можете, например, написать: where CustomerID like $V{CustomerID}, а в переменой будет зачение %ALFKI% 
9
Discussion | Обсуждение / Re: Вопросы новичка
« Last post by Vermilion on April 18, 2019, 10:31:13 am »
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 = "";
}

Спасибо, Alex! Буду пробовать  ;D
10
Discussion | Обсуждение / Re: Вопросы новичка
« Last post by dim0n-333 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] 2 3 ... 10