LimeReport Forum
General Category | Основное => Discussion | Обсуждение => Topic started by: Maks on October 05, 2020, 11:18:04 am
-
Добрый день!
К примеру, есть таблица пользоателей "Users":
- Id
- ФИО
- Должность
И зависимая таблица, которая отражает, что/когда и в каком количестве делал пользователь "WorkUsers":
- Id
- IdUsers
- NameWork
- DateBeg
- DateEnd
- Аmount
Требуется в отчете вывести пользователя и совершенную им работу, аля:
Иванов Ю.А. (Автослесарь)
- Демонтаж переднего бампера(1 шт, 10.10.2019-11.10.2019)
- Ремонт переднего бампера(1 шт, 11.10.2019-13.10.2019)
- Монтаж переднего бампера(1 шт, 13.10.2019-14.10.2019)
Знаю, что можно реализовать подзапрос прямо в редакторе, но никогда этом не пользовался, так как для этого приходится создавать конект с базой данных прямо в редакторе, которое в дальнейшем хранится в текстовом варианте прямо в отчете, что не есть безопасно.
Подскажите, пожалуйста, можно ли как-нибудь передавать конект к базе данных(тип, порт, хост, имяБД, пользователь, пароль) из приложения, чтобы создавать запросы прямо в редакторе Lime Report
или может есть возможность передавать модель, с зависимой моделью в отчет.
Если эти два варианта осуществимы, объясните, пожалуйста, как работает каждый из них.
-
Тут есть несколько решений :)
1. Если есть желание все данные передавать из приложения, то есть пример master - detail источников в demo_r1.
2. Можно передавать параметры соединения через переменные.
3. Limereport умеет использовать дефолтное соединение, установленное приложением, и более того, если в шаблоне отчета используется соединение с именем, совпадающим с уже установленным приложением, то limereport будет использовать его, а не устанавливать собственное. Если поставить галочку "Don't keep credentials in lrxml' имя пользователя и пароль не будут попадать в файл отчета. Можно подкрутить и адрес серевера с портом и название бд, тоже не будут туда попадать (хотя это вроде не сильно секретная информация).
-
Вариант с передачей модели в lime report как-то сложновато организован + у меня работа с базой в другом потоке происходит. Из потока с бд я передаю в основной модель, которую отправляю в lime report.
Так вот, нельзя ли проще организовать передачу зависимых моделей?
К примеру, указывать имя родителя, и по какому ключу эти модели соединяются?
Было бы очень удобно)
-
Так тоже можно, передаете 2 модели и в шаблоне создаете subdetail только не subquery, а filter mode
-
Спасибо, получилось!
Теперь проблема в другом. Отчет строится не так, как мне нужно.
Планируемый вывод.
1. Иванов Петр Сергеевич
- 1 день с 10 до 15
- 2 день с 10 до 17
- 3 день с 9 до 12
Работу закончил за 3 дня, сумма выплаты 5 тыс. рублей
2. Сидоров Иван Васильевич
- 1 день с 10 до 20
- 2 день с 10 до 20
Работу закончил за 2 дня, сумма выплаты 10 тыс. рублей
А получается так:
1. Иванов Петр Сергеевич
- 1 день с 10 до 15
- 2 день с 10 до 17
- 3 день с 9 до 12
2. Сидоров Иван Васильевич
- 1 день с 10 до 20
- 2 день с 10 до 20
Работу закончил за 3 дня, сумма выплаты 5 тыс. рублей
Работу закончил за 2 дня, сумма выплаты 10 тыс. рублей
Схема в отчете:
-DataBand
-SubDetailBand
-DataBand
Возможно ли сделать так, как мне нужно и как?
-
Работу закончил за 3 дня, сумма выплаты 5 тыс. рублей
Поместите в DataFooter к DataBand
-
Спасибо, сделал. Правда с DataFooter к DataBand не получилось. Он так же выводил как и с обычным бандом.
Но получилось вывести с SubDetailFooterBand. Не знаю, правильно ли это, но пока все работает
-
Да, все правильно, именно футер к SubDetail :) Это я в процессе написания ответа мысль потерял :)
-
Понял :) У меня в отчете очень много текста в SubDetailFooterBand и он не влазит на страницу, поэтому и переносится на другую, а между ними пол страницы пустоты. И свойство spplittable не активно. Как с этим быть?
И еще проблема. А если понадобится несколько разных подэлементов в одном отчете?
К примеру:
1. Иванов Петр Сергеевич
- 1 день с 10 до 15
- 2 день с 10 до 17
- 3 день с 9 до 12
Работу закончил за 3 дня, сумма выплаты 5 тыс. рублей
Используемые ресурсы:
- медь 1кг
- сталь 2кг
Общая ценность 500 руб
2. Сидоров Иван Васильевич
- 1 день с 10 до 20
- 2 день с 10 до 20
Работу закончил за 2 дня, сумма выплаты 10 тыс. рублей
Используемые ресурсы:
- латунь 2кг
- олово 2кг
Общая ценность 1500 руб
Таким способом уже не получится сделать. Как можно решить эту проблему?
-
У меня в отчете очень много текста в SubDetailFooterBand и он не влазит на страницу, поэтому и переносится на другую, а между ними пол страницы пустоты. И свойство spplittable не активно. Как с этим быть?
Добавил свойство Splittable к футерам
По второму вопросу - можно добавить второй SubdetailBand к DataBand