2016-09-22 3 views
0

Мне нужно отобразить сплошную линию в 2015 году в моей группе строк. В свойствах я ввел свое выражение =IIF(Fields!YearNum.Value=2015,"Solid",Nothing) Но поскольку некоторые месяцы не имеют значений, линия прерывается. enter image description hereКак отображать сплошную линию в группе, когда нет значения?

Как можно решить эту проблему?

Вот T-SQL для этого табликсе

SELECT  CAST(B.YearNum as varchar(10))+ ' Submitted' as Type, 
       1 as OrderNum, 
       ISNULL(COUNT(ControlNo),0) Count, 
       b.YearNum, b.MonthNum, b.MonthName 
    FROM  tblCalendar b 
        LEFT JOIN ClearanceReportMetrics a ON b.MonthNum = MONTH(a.EffectiveDate) AND b.YearNum=YEAR(a.EffectiveDate) 
        AND CompanyLine = 'Argonaut Insurance Company' AND Underwriter <> 'Batcheller, Jerry' 
    WHERE  YEAR(EffectiveDate) IN (2016, 2015) 
    GROUP BY b.YearNum, b.MonthNum,b.MonthName 

UNION ALL 

    SELECT  CAST(b.YearNum as varchar(10)) +' Quoted' as Type, 
       2 as OrderNum, 
       ISNULL(SUM(CASE WHEN QuotedPremium IS NOT NULL THEN 1 ELSE 0 END),0) as Count,   
       b.YearNum, b.MonthNum,b.MonthName 
    FROM  tblCalendar b 
        LEFT JOIN ClearanceReportMetrics a ON b.MonthNum = MONTH(a.EffectiveDate) AND b.YearNum=YEAR(a.EffectiveDate) 
        AND CompanyLine = 'Argonaut Insurance Company' AND Underwriter <> 'Batcheller, Jerry' 
    WHERE   YEAR(EffectiveDate) IN (2016, 2015) --AND CompanyLine = 'Plaza Insurance Company' AND Underwriter <> 'Batcheller, Jerry' 
    GROUP BY b.YearNum, b.MonthNum,b.MonthName 

UNION ALL 

     SELECT CAST(b.YearNum as varchar(10)) +' Bound' as Type, 
       3 as OrderNum, 
       ISNULL(sum(case when TransactionType = 'Policy' then 1 ELSE 0 END),0) as Binds, 
       b.YearNum, 
       b.MonthNum,    
       b.MonthName    
       FROM tblCalendar b 
     LEFT JOIN ProductionReportMetrics a ON b.MonthNum = MONTH(a.EffectiveDate) and b.YearNum = YEAR(a.EffectiveDate) --Coming from Production Report, NOT from Clearance!!!!!!!!!!! 
       AND CompanyLine = 'Argonaut Insurance Company' AND Underwriter <> 'Batcheller, Jerry' 
     WHERE b.YearNum IN (2016, 2015) 
     GROUP BY b.YearNum,b.MonthNum,b.MonthName 

UNION ALL 

    SELECT  CAST(b.YearNum as varchar(10)) +' Declined' as Type, 
       4 as OrderNum, 
       ISNULL(SUM(CASE WHEN Status = 'Declined' THEN 1 ELSE 0 END),0) as Count, 
       b.YearNum, b.MonthNum,b.MonthName 
    FROM  tblCalendar b 
        LEFT JOIN ClearanceReportMetrics a ON b.MonthNum = MONTH(a.EffectiveDate) AND b.YearNum=YEAR(a.EffectiveDate) 
        AND CompanyLine = 'Argonaut Insurance Company' AND Underwriter <> 'Batcheller, Jerry' 
    WHERE  YEAR(EffectiveDate) IN (2016, 2015) 
    GROUP BY b.YearNum, b.MonthNum,b.MonthName 

также попытался изменить NULL значения 0. Но все же дает мне тот же результат enter image description here

+0

Я никогда не находил простой способ сделать это, что хорошо работает. Вы можете использовать IIf для преобразования 0 в пробел и все остальное в число-в-текст, но тогда вы теряете возможность добавлять вещи иногда, когда это Excel. Если это стандартный шаблон, вы можете просто сделать определение, основанное на четной строке. Вы также можете добавить прямоугольник в верхней части окна с сплошной линией внизу, которая видна только в том случае, если год равен 2015 году. – DaveX

+0

Есть ли вероятность, что я могу просто сделать цветовой паттерн? Как 2 строки 2016, представленные и представленные в 2015 году, будут одного цвета и т. Д.? – Oleg

+0

Почему бы не изменить эти значения null на 0? – scsimon

ответ

0

Вы можете обрабатывать пропущенные значения, как это:

=IIF(Fields!YearNum.Value=2015 Or IsNothing(Fields!YearNum.Value) = 1,"Solid",Nothing) 
+0

Спасибо, но это дает мне то же самое – Oleg

0

обходной я нашел: В свойствах BotderStyle Для Top Я написал выражение:

=IIF(Fields!Type.Value="2016 Quoted","Solid", 
IIF(Fields!Type.Value="2016 Bound","Solid", 
IIF(Fields!Type.Value="2016 Declined","Solid", 
Nothing))) 

И для Bottom выражение:

=IIF(Fields!Type.Value="2015 Submitted","Solid", 
IIF(Fields!Type.Value="2015 Quoted","Solid", 
IIF(Fields!Type.Value="2015 Bound","Solid", 
Nothing))) 

Поэтому в основном те строки, отменяя друг друга, и заполняя пробелы.

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