Вопрос по построению запросов в MobileSmarts

Zala 7 лет назад обновлен 7 лет назад 2

Добрый день! Задача стоит в том, чтобы отобразить только строки расхождения между суммарном планом и суммарном фактом в разрезе номенклатуры.


Для этого сделали функцию, использовали действие Просмотр записей и ввели запрос. Только проблема в том, что отобрать-то нужно не начальные записи стандартным Where, а уже суммированные. Для этого хотелось бы использовать Having (как операция над совокупностью данных), но такого не нашли в вашем конструкторе запросов, а как отредактировать запрос не понятно.


Image 1340


Сейчас запрос: 

select (Product, Packing, ОтображениеВСписке, sum(CurrentQuantity), sum(DeclaredQuantity)) from Document.DeclaredItems 

group by Product, Packing, ОтображениеВСписке


А хотели бы:

select (Product, Packing, ОтображениеВСписке, sum(CurrentQuantity), sum(DeclaredQuantity)) from Document.DeclaredItems 

group by Product, Packing, ОтображениеВСписке 

having sum(CurrentQuantity) != sum(DeclaredQuantity)


Прошу пояснить как этого достичь средствами MobileSmarts или как решить эту задачу другим методом.


Добрый день!

Это можно сделать двумя запросами, первый: СтрокиТоваров = select (Product, Packing, CurrentQuantity, DeclaredQuantity) 

from Document.DeclaredItems 

group by ProductId, PackingId

группировать лучше по полям ProductId, PackingId, а не Product и Packing, по вычислимому полю ОтображениеВСписке лучше не использовать группировку. Использовать выражение sum не нужно, количества и так будут суммироваться.

Дальше можно выбрать строки с отличающимися количествами действием присваивания: СтрокиДляПоказа = СтрокиТоваров.FindByUnderloadedOrOverloaded(true)

Благодарю, все получилось ))

Скажите, а где мануал, в котором можно почитать про FindByUnderloadedOrOverloaded и подобные возможности.


У меня только "Mobile SMARTS 3.0. Работа с компонентой.pdf" и "Mobile-SMARTS-2008-Development-(ru).pdf"


Сервис поддержки клиентов работает на платформе UserEcho