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

Author Topic: Ошибка при двойной группировке с помощью GroupBandHeader  (Read 4327 times)

Dark2011

  • Newbie
  • *
  • Posts: 27
    • View Profile
Всем привет. Столкнулся с такой вот задачкой - нужно сделать двойную группировку.

Например есть таблица Водителей. Каждый водитель может быть привязан к опреденной категории маршрутов. Один водитель может быть привязан к разным категориям


Имя Водителя  |  Категория маршрута | Поле 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 записи....
 Серега

По описанию баг может быть непонятен  - смотри вложения (самую последнюю группировку). Также добавляю шаблон...

Спасибо.
 
« Last Edit: March 06, 2017, 03:05:35 pm by Dark2011 »

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Можно еще и тестовые данные в sqlite приложить если не сложно ?

Dark2011

  • Newbie
  • *
  • Posts: 27
    • View Profile
Данные берутся из модели, которую я строю по тестовой оракловой базе по курсору...ща нужно сделать табличку sqlite и замапить туда данные из модели....в общем нужно чутка времен

Dark2011

  • Newbie
  • *
  • Posts: 27
    • View Profile
Добавил. Табличка в базе называется 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") }
но отображается просто пустая строка.

Спасибо!

« Last Edit: March 07, 2017, 11:45:04 am by Dark2011 »

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Поправил, пушнул на гитхаб в master(1.4.6).
По поводу даты - для int можно в инициализационном скрипте прописать функцию:
Code: [Select]
function iToDStr(value,format){
  return dateTimeFormat(new Date(1000*value),format);
}
и в поле
Code: [Select]

$S{iToDStr($D{test_table.Next_entry_date},"dd.MM.yyyy hh:mm");}

Dark2011

  • Newbie
  • *
  • Posts: 27
    • View Profile
Да все работает, спасибо!