Получить максимальное количество в Crystal Reports? - PullRequest
0 голосов
/ 23 мая 2018

Источник данных, передаваемый в отчет, имеет свойство Serial, мне нужно написать поле в этом формате для каждого раздела подробностей: [Serial] из [Top serial] Я написал эту формулу для верхнего серийного номера:

Maximum({VW_Sizes.Serial})

но он получает текущий серийный номер, поэтому вместо: 1 из 2, 2 из 2 он получает 1 из 1, 2 из 2.

Ответы [ 3 ]

0 голосов
/ 23 мая 2018

Проблема, с которой вы сталкиваетесь, заключается в том, что, когда каждая итерация раздела сведений печатается в отчете, он знает только значение Max для SERIAL для строк, уже напечатанных в отчете.

Я предпочитаю использовать поле выражения SQL, чтобы обойти эту проблему.Это позволяет использовать запрос SQL для получения максимального значения SERIAL для сгруппированных данных до того, как все строки будут напечатаны в отчете.

Что-то подобное обычно работает для меня.

(
SELECT MAX("ORD_DETAIL"."ORD_DET_SEQNO") 
FROM ORD_DETAIL 
WHERE "ORD_DETAIL"."ORDERS_ID" = "ORDERS"."ID"
)

В моем примере у меня есть две таблицы, ORDERS и ORD_DETAIL.ORD_DETAIL.ORD_DET_SEQNO содержит порядковые номера строк деталей заказа.Мои данные сгруппированы по ORDERS.ID для итерации по каждому ордеру, и в следующем поле формулы будет напечатан вывод для каждой строки подробностей, который указывает ее последовательность из максимального значения всех порядковых номеров для этого ордера.1014 * В этой формуле %Max - это имя поля выражения SQL в приведенном выше примере.

Если в ваших данных нет точки, где сбрасывается Серийный номер, то ваше поле выражения SQL будет выглядеть следующим образомthis.

(
SELECT MAX(Serial)
FROM VW_Sizes
)

Если вам требуется сброс в определенных точках, просто добавьте предложение WHERE, которое ссылается на table.column, который используется для группировки набора значений SERIAL.

0 голосов
/ 23 мая 2018

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

  • установить имя поля, например (max_Serial)

  • выберите поле для суммирования.

  • после выбора отчета о полевом кристалле предоставляется несколько типов сводки в соответствии с типом данных поля.

  • выберите максимум и сбросьте в соответствии с вашими требованиями, например, после каждой группы.

0 голосов
/ 23 мая 2018

Вы можете объединить эту переменную в Поле формулы внутри вашего подробного раздела с содержанием об этом:

{VW_Sizes.Serial} & " from " & Maximum ({VW_Sizes.Serial})

В противном случае вы можете поместить только сводное поле с максимальным значением за пределамиподробный раздел, например, в Общий итог (нижний колонтитул) .

...