2015-12-01 4 views
0

Я использую Crystal Reports. Я хочу, чтобы сосчитать все клетки, имеющие «Да» и все клетки, имеющие «Нет» для каждой строки, как в следующем изображении:«Count if» в Crystal Reports (по горизонтали)

Example Image

+0

Это межстраничный или стандартный отчет? – haraman

+0

Его стандартный отчет –

+0

Вы хотите горизонтальный o вертикальный счет – Siva

ответ

0

Вам нужно пересчитать с помощью пользовательских формул. Создайте поля формул в разработке отчета, а именно ff_Evaluate, ff_Yes, ff_No и установить их значение в редакторе формул, как это:

  1. ff_Evaluate (проверьте каждую колонку и добавить к да или нет вара)

    WhilePrintingRecords; 
    numberVar YesCount := 0; 
    numberVar NoCount := 0; 
    
    if {table.T0} = "Yes" then 
        YesCount := YesCount + 1 
    else if {table.T0} = "No" then 
        NoCount := NoCount + 1; 
    
    if {table.T1} = "Yes" then 
        YesCount := YesCount + 1 
    else if {table.T1} = "No" then 
        NoCount := NoCount + 1; 
    ... 
    ... 
    if {table.Tn} = "Yes" then 
        YesCount := YesCount + 1 
    else if {table.Tn} = "No" then 
        NoCount := NoCount + 1; 
    
  2. ff_Yes

    WhilePrintingRecords; 
    EvaluateAfter ({@ff_Evaluate}); 
    numberVar YesCount; 
    
  3. ff_No

    WhilePrintingRecords; 
    EvaluateAfter ({@ff_Evaluate}); 
    numberVar NoCount; 
    

Теперь поместите эти поля формул в ваших Подробности раздел и Подавитьff_Evaluate по Right Click на ней, выберите пункт Format Field, а затем на вкладке Common выберите Suppress

0

Если предположить столбцы с именами T0, T1 , T2, T3, T4. При необходимости увеличивайте.

Создать формулу (TOTAL), поместить его в разделе Details (подавить его, если это желательно):

// create an array to contain the fields' values 
Local Stringvar Array values := [{Command.T0},{Command.T1},{Command.T2},{Command.T3},{Command.T4}]; 

// global variables to contain tallies 
Numbervar Y:=0; 
Numbervar N:=0; 

// generate tallies 
Local Numbervar i; 
For i:=1 To Ubound(values) Do (
    select values[i] 
    case 'Y': Y:=Y+1 
    case 'N': N:=N+1 
) 
; 

Создать формулу (Y), поместить его в разделе Детали:

// display Y after tallies have been generated 
EvaluateAfter({@TOTAL}); 
Numbervar Y; 

Создать формулу (N), поместите его в разделе Детали:

// display N after tallies have been generated 
EvaluateAfter({@TOTAL}); 
Numbervar N; 

При необходимости вы можете использовать поле сводки, чтобы суммировать каждое значение.

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