2015-09-04 4 views
0

У меня есть отчет, в котором иногда бывает несколько записей подробностей в группе. В таком случае я хочу только отображать последнее в последовательности. У меня есть порядковый номер, связанный с каждой записью, поэтому мне нужно подавить все строки подробностей в группе, отличной от той, которая имеет максимальный порядковый номер.Отображение только последней последовательности в Crystal Reports

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

+0

вы пытались использовать массивы – Siva

ответ

0

Из того, что я понимаю, у вас есть данные, организованные этим:

Data1  Data2 SeQuencenumber 
1   a  1 
2   b  1 
2   c  2 
2   d  3 

И от того, что я понимаю ваш хотите, чтобы ваш выход выглядеть (группа по Data1):

Data1  Data2 SeQuencenumber 
1   a  1 
2   d  3 

Для этого вам необходимо написать формулу в подробном разделе, в котором сравнивается ваш текущий порядковый номер детали и количество всех для этой группы (Data1). Щелкните правую кнопку мыши раздел подробно и написать формулу здесь enter image description here

формула выглядит следующим образом:

if {SequenceNumber} = count ({SequenceNumber},{Data1}) then true 
else false 

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

0

попробовать так:

Shared Stringvar array concatenate; 

concatenate:=concatenate+CStr(Sequencenumber); 

теперь подавляют состояния деталей:

Shared Stringvar array concatenate; 
if Maximum(concatenate)=Sequencenumber 
Then false 
else true 
0

я попробовал решение, похожее на одну из KuKeC, но с функцией максимум вместо кол-во. Но, просмотрев решение KuKeC, я наконец увидел, что я уже подавлял группу деталей, когда дата в деталях не соответствовала дате параметра, но максимальная функция давала максимум всех данных, отображаемых или нет.

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

if {PSLRegister.PSLRPPStartDate} = {?PP_Start_Date} then 
    {PSLRegister.PSLRSeqNo} 
else 
    0 

Затем я использовал эту формулу поле в уравнении для подавления записи подробно

Maximum({@SeqIfDateMatch}, {TrnsltEmployee.TSEmployeeID}) <> {PSLRegister.PSLRSeqNo} 

Спасибо всем

Смежные вопросы