Как подсчитать поля, которые существуют только при печати? - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть клиенты, которые могут существовать в трех возможных типах группы продаж, даже если они могут быть сгруппированы в несколько групп продаж. Какой тип группы продаж имеет хитрую логику. Существует три группы продаж: A, B, C. Пока клиент находится в одной из групп продаж A, они считаются A, если клиент не входит в группу продаж A, он может быть в группе B, если у них есть оба B и C, но могут рассматриваться только в C, если они имеют только C.

Так что, если бы у меня было несколько клиентов

Джо
Группа продаж 101 (A) Группа продаж 102 (A) Группа продаж 506 (С)

Джо считается A

Том Группа продаж 307 (B) Группа продаж 101 (A)

Том считается A

Rick
Группа продаж 333 (B) Группа продаж 506 (С)

Рик считается B

Mary
Группа продаж 506 (С)

Мэри считается C

Как мне запустить формулу, которая выясняет, к какой группе они принадлежат, а затем создать кросс-таблицу или мою собственную таблицу, используя поля Поля итогов? (Я должен также упомянуть, что группе продаж даны иерархии, но даже если A для иерархии ниже, чем B или C для целей данного отчета, он все еще считается A)

Другие вещи, о которых следует знать:

- существует только одна группа продаж типа C, и она будет назначаться только один раз для клиента

- есть только 4 группы продаж типа А

- существует несколько групп продаж типа 4, но ни одному клиенту не будет назначено более 2 или 3 групп продаж типа B.

Я сгруппировал данные по клиенту, а затем суммировал приведенную ниже формулу (сброс для каждого клиента) в нижнем колонтитуле группы. Моя логика заключалась в том, что, поскольку C можно использовать только один раз, он получит 0, так как группа B будет только 2 или 3 раза, то получит 1, а группа A получит 10. Поэтому 0 будет производить C, что-нибудь между 1 и 9 будут производить B, а все 10 и выше будут производить A.

Подробнее

if {cust_billing.sales_group} in ["101", "102", "103", "104"] then 10
else if {cust_billing.sales_group} = "506" then 0
else 1

В нижнем колонтитуле группы

if {#RTotal0} = 0 then "C"
else if {#RTotal0} > 0 and {#RTotal0} < 10 then "B" 
else if {#RTotal0} > 9 then  "A"

Я не могу вытащить второе поле в кросс-таблицу или сосчитать его, используя другое поле промежуточного итога. Исходя из того, что я понял, поле создается во время печати и поэтому не может быть подсчитано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...