Я разрабатываю систему инвентаризации и разработал следующую функцию для преобразования между коробками и кусками.
Public Function convertQTY(ByVal units_case As Integer, ByVal quantity As QTY) As QTY
While quantity.pieces < 0 And quantity.cartons > 0
If quantity.pieces < 0 And quantity.cartons > 0 Then
quantity.pieces = units_case + quantity.pieces
quantity.cartons -= 1
End If
End While
If quantity.pieces >= units_case Then
quantity.cartons = quantity.cartons + (quantity.pieces \ units_case)
quantity.pieces = quantity.pieces Mod units_case
End If
Return quantity
End Function
Например, если количество штук / штук в коробке составляет 144, то приведенный выше код преобразует куски в коробки, если число превышает 144, а если штук меньше 0, то вышеуказанный код вычитает 1 из коробки и добавляет единицы для каждой коробки в количество штук. Таким образом, количество штук в коробке никогда не превышает общее количество штук, и никогда не показывается, что они меньше 0.
Я хочу такой же эффект в сводном поле в моем отчете о кристаллах Для отображения суммы картонных коробок и кусочков в конце каждой группы. Как мне этого добиться?