Я пытаюсь составить список из открытых производственных заказов и какие детали отсутствуют для этих производственных заказов.
В заголовке группы 1 у меня есть номер производственного заказа.
В заголовке группы 2 у меня есть позиции для этого производственного заказа. Я могу получить данные из ERP, сколько предметов необходимо для этого производственного заказа и сколько у нас в настоящее время на складе.
Моя идея состоит в том, что я буду подавлять заголовок группы 2 формулой
If {ProductinOder.NeededItems}=0 //If there is no need for item in that order
then true else
if sum({StockQty1.qty},{item1.itemcode})>={{ProductinOder.NeededItems}} then True else false
Это исключит все детали, которые нам не нужны, или если у нас будет достаточно запасных частей для этого производственного заказа.
Проблема заключается в том, что если в обоих производственных заказах 1 и 2 используется деталь A 1шт, то в отчете подавляются их оба, поскольку для обоих производственных заказов требуется только 1 деталь, а на складе есть 1 деталь.
По этой причине я создал подотчет, который суммирует все использование для детали во всем производственном заказе и связал этот подотчет с деталью в заголовке группы 2.
In subreport I have a formula {@need}
Shared NumberVar need := sum({MRPCalc1.Qty}) // Need is shared variable and sum{} sums all the parts in use
В обычном отчете я использую
WhilePrintingRecords;
Shared NumberVar need;
need
и изменить формулу подавления
If {ProductinOder.NeededItems}=0
then true else
if sum({ProductinOder.NeededItems},{item.itemcode})>={@need} then true else false
Но я не могу заставить его подавить нужные части.