Показать сообщение отдельно
Старый 23.05.2020, 13:53   #424  
soad is offline
soad
Участник
 
27 / 16 (1) ++
Регистрация: 24.07.2008
Цитата:
Сообщение от belugin Посмотреть сообщение
Хотелось бы тогда узнать, что именно не получается
Поясню на другом примере, т.к. в нем проблема аналогичная, но структура данных проще и нет лишних, экспериментальных переменных.

Задача: Для необходимого перечня складских ячеек определить дату последней инвентаризации особого типа. Эта дата для ячейки должна определяться по строке складской работы, для которой:
  • Ячейка в строке работы равна искомой ячейке
  • Тип = «Инвентаризация»
  • Имеет максимальную дату в поле «Закрытая работа» строки работы (WHSWorkLine.WorkClosedUTCDateTime)
  • + доп. условия по некоторым полям шапки складской работы.


Сама дата должна браться из поля «Закрытая работа» строки работы (WHSWorkLine.WorkClosedUTCDateTime).

Идея реализации на ER:
Основные источники данных:
  • Таблица WMSLocation, добавлена в корень источников данных
  • Таблица WHSWorkLine, добавлена в корень источников данных

Вычисляемые поля и группировки:
  • Поле $FiltredWMSLocation – отбор нужных ячеек из таблицы WMSLocation, добавлена в корень источников данных. Работает так, как я ожидаю.
  • Поле $FiltredWMSWorkLinePlan – отбор нужных строк работ инвентаризации, по ячейке из $FiltredWMSLocation. Добавлено внутрь $FiltredWMSLocation. Работает так, как я ожидаю.
  • Группировка $LastPlanInventory – группировка строк работы с агрегацией по WHSWorkLine.WorkClosedUTCDateTime, с типом «Максимум», без полей для группировки. Добавлено внутрь $FiltredWMSWorkLinePlan. Работает не так, как я ожидаю – вместо максимальной даты из строк отобранных работ выдает пустую дату (1899-12-31T16:00:00-08:00). В этом основной вопрос, почему здесь получается пустая дата, что я делаю не так?

Узел (WMSWorkLine1:Список записей) был добавлен в модель, чтобы проконтролировать правильность отбора строк работы в $FiltredWMSWorkLinePlan. В XML видно, что работы отбираются корректно. По ячейке BULK-001 в принципе вопроса нет, там отобранные строки еще не в статусе «Закрыто», поэтому даты пустые и в группировке тоже должно быть пусто. Но вот по ячейке FL-004 результат непонятен, видно что отобралось две строки работы, по одной из них дата заполнена и соответственно именно она и должна была определиться группировкой и попасть в тег LastDayInventory в XML, но там почему-то пустая дата

Скрины:
Обзор источников данных:
Нажмите на изображение для увеличения
Название: Обзор источников данных.png
Просмотров: 76
Размер:	75.2 Кб
ID:	12826

Вычисляемые поля и Группировки:
Нажмите на изображение для увеличения
Название: Вычисляемые поля и Группировки.png
Просмотров: 74
Размер:	94.6 Кб
ID:	12827

Детали группировки:
Нажмите на изображение для увеличения
Название: Детали группировки.png
Просмотров: 63
Размер:	79.0 Кб
ID:	12828

Сопоставление модели и источников данных:
Нажмите на изображение для увеличения
Название: Сопоставление модели и источников данных.png
Просмотров: 68
Размер:	212.7 Кб
ID:	12829

Отбор данных в модель по ячейкам FL-004 и BULK-001:
Нажмите на изображение для увеличения
Название: Отбор данных в модель по ячейкам FL-004 и BULK-001.png
Просмотров: 63
Размер:	129.9 Кб
ID:	12830