2016-09-22 3 views
1

다른 필드의 값을 가장 큰 값에서 가장 작은 값으로 설정하여 배경색 (그라디언트)을 설정하려고합니다. 다음 표에열 값에 기초한 채우기 채우기

참조 :

상기 표에서와 같이

Gradient example

(시간이 아닌 열) SYSNAME 열의 배경색 설정해야 밝은 녹색에 어두운 녹색을 따라 시작하여 Hours 열의 값입니다.

어떻게 SSRS에서이를 달성 할 수 있습니까?

답변

1

특히이 값을 설정하는 방법은 값 필드가 세부 행에있는 경우에 특히 유용합니다.

Gradient Example

채움 색상 속성은 컬러의 각각의 RGB 값의 각각에 대응하는 두 자리를 갖는 형식 #AABBCC에서, 16 ​​진수 색상 문자열을 취할 수
여기 일례이다. 표현식은 해당 문자열을 생성하도록 설정할 수 있습니다. 채우기 식은 필드를 이름으로 참조하므로 해당 범위 내의 모든 TextBox에 사용할 수 있습니다.

어떤 일이 벌어지고 있는지 이해하기 쉽도록 간단한 표현식이 포함되어 있습니다. 두 번째 표현식은 0 대신 최소값에서 조정하고 예제의 특정 색상을 사용합니다.

간단한 버전 : 최대 값 0에서 선형 컬러 그라디언트를 제공

="#" + Format(255 - CInt(200 * Fields!Target.Value/Max(Fields!Target.Value, "DataSet1")), "X2") + "FF" + Format(255 - CInt(200 * Fields!Target.Value/Max(Fields!Target.Value, "DataSet1")), "X2") 

. 최대 값은 55 빨간색, 255 녹색 및 55 파란색, 0 값은 흰색 (255/255/255)이됩니다. 고정 FF은 255 녹색임을 유의하십시오.

최소값 버전 : 표현이 좀 지저분 대신 최소 값을 사용하지만, 여전히 설정하기 쉬운 그라데이션을하기 위해

.

="#" + Format(255 - CInt(155 * (Fields!Target.Value - Min(Fields!Target.Value, "DataSet1"))/(Max(Fields!Target.Value, "DataSet1") - Min(Fields!Target.Value, "DataSet1"))), "X2") + Format(255 - CInt(55 * (Fields!Target.Value - Min(Fields!Target.Value, "DataSet1"))/(Max(Fields!Target.Value, "DataSet1") - Min(Fields!Target.Value, "DataSet1"))), "X2") + Format(255 - CInt(135 * (Fields!Target.Value - Min(Fields!Target.Value, "DataSet1"))/(Max(Fields!Target.Value, "DataSet1") - Min(Fields!Target.Value, "DataSet1"))), "X2") 

변수 버전 :

변경을 쉽게 할 색상 값을 원하는 경우에, 당신은 RGB 값과 그들이 최대 값을 조정해야하는 양을 지정 보고서 변수를 설정할 수 있습니다 . 이 경우 표현은 다음과 같습니다

Color Variables

주 :이 값 필드 자체 인 경우

="#" + Format(CInt(Variables!MaxR.Value - Variables!AdjR.Value * (Fields!Target.Value - Min(Fields!Target.Value, "DataSet1"))/(Max(Fields!Target.Value, "DataSet1") - Min(Fields!Target.Value, "DataSet1"))), "X2") + Format(CInt(Variables!MaxG.Value - Variables!AdjG.Value * (Fields!Target.Value - Min(Fields!Target.Value, "DataSet1"))/(Max(Fields!Target.Value, "DataSet1") - Min(Fields!Target.Value, "DataSet1"))), "X2") + Format(CInt(Variables!MaxB.Value - Variables!AdjB.Value * (Fields!Target.Value - Min(Fields!Target.Value, "DataSet1"))/(Max(Fields!Target.Value, "DataSet1") - Min(Fields!Target.Value, "DataSet1"))), "X2") 

이 두 번째 표현의 그라데이션을 생성하는 데 사용되는 보고서 변수가 될 것입니다 총체적으로, 또 다른 약간의 조정이 필요하다. 값에 중첩 집계를 사용해야하지만 SSRS에서는 중첩 집계가있는 데이터 집합 범위를 사용할 수 없습니다. 따라서 상수 값으로 그룹화하는 상위 그룹을 추가 한 다음 데이터 세트 참조로 대체 할 수 있습니다.

+0

실제로 시간 (값 열) 대신 SysName 열의 색을 지정하고 싶습니다. 따라서 귀하의 경우에는 위치 열이어야합니다. –

+0

재고 이미지 예제에서 명확하지 않은 경우 사과하겠습니다. 실제로 행의 셀 채우기 색 속성 중 일부 또는 전체에서 해당 표현을 사용할 수 있습니다. – bitnine

+0

고마워요. 하지만 색상을 어떻게 바꿔야합니까? 현재 녹색으로 표시됩니다. –