LimeReport Forum
General Category | Основное => Discussion | Обсуждение => Topic started by: Dark2011 on March 06, 2017, 02:59:22 pm
-
Всем привет. Столкнулся с такой вот задачкой - нужно сделать двойную группировку.
Например есть таблица Водителей. Каждый водитель может быть привязан к опреденной категории маршрутов. Один водитель может быть привязан к разным категориям
Имя Водителя | Категория маршрута | Поле 1 | Поле 2 | итд
Вася Петров 30 3 3
Вася Петров 30 17 4
Вася Петров 30 6 1
Вася Петров 30 2 4
Слава Иванов 30 3 2
Слава Иванов 30 1 2
Вася Петров 45 0 0
Серега 45 0 1
Серега 45 2 1
Хочу сделать такую группировку - сначала по категории, внутри этой категории группировка по всем водителям этой категории - по имени, далее след. категории и т.д.
т.е получается
30
Вася Петров
....здесь 4 записи....
Футер
Слава Иванов
....здесь 2 записи....
Футер
45
Вася Петров
....здесь 1 запись....
Футер
Серега
....здесь 2 записи....
Футер
Делаю это с помощью двух GroupBandHeader и все работает кроме последней выборки - почему то дублируется второй GroupBandHeader и затирает мой GroupBandFooter в этой выборке т.е полчуается вот так (последняя строчка):
30
Вася Петров
....здесь 4 записи....
Футер
Слава Иванов
....здесь 2 записи....
Футер
45
Вася Петров
....здесь 1 запись....
Футер
Серега
....здесь 2 записи....
Серега
По описанию баг может быть непонятен - смотри вложения (самую последнюю группировку). Также добавляю шаблон...
Спасибо.
-
Можно еще и тестовые данные в sqlite приложить если не сложно ?
-
Данные берутся из модели, которую я строю по тестовой оракловой базе по курсору...ща нужно сделать табличку sqlite и замапить туда данные из модели....в общем нужно чутка времен
-
Добавил. Табличка в базе называется test_table. Прикладываю заново шаблон и данные.
Кстати сразу вопросик, поскольку с sqlite почти не работал - как правильно хранить DateTime в ней и как выводить ее здесь?
Здесь в таблице я поставил тип Integer а в коде устанавливал вот так:
record.setValue("Last_entry_date" , QVariant(ti->last_date.toTime_t())); //test
В дизайнере LR пытался сделать так
$S{ dateTimeFormat($D{test_table.Last_entry_date}, "dd/MM/yyyy hh:mm:ss").toString(); }
и просто $S{ dateTimeFormat($D{test_table.Last_entry_date}, "dd/MM/yyyy hh:mm:ss") }
но отображается просто пустая строка.
Спасибо!
-
Поправил, пушнул на гитхаб в master(1.4.6).
По поводу даты - для int можно в инициализационном скрипте прописать функцию:
function iToDStr(value,format){
return dateTimeFormat(new Date(1000*value),format);
}
и в поле
$S{iToDStr($D{test_table.Next_entry_date},"dd.MM.yyyy hh:mm");}
-
Да все работает, спасибо!