1

보고서를 테이블로 가져 왔습니다. 각 열에 임의의 배경색을 설정하고 싶습니다. 난에 채우기 식을 설정 첫 번째 셀에서SSRS : 셀에서 배경색 가져 오기

Public Function GetColor() 

    Dim intHighNumber AS Decimal = 255 
    Dim intLowNumber AS Decimal = 100 

    Dim NewColor AS String 
    Dim Red AS Decimal = Int((intHighNumber - intLowNumber + 1) * Rnd + intLowNumber) 
    Dim Green AS Decimal = Int((intHighNumber - intLowNumber + 1) * Rnd + intLowNumber) 
    Dim Blue AS Decimal = Int((intHighNumber - intLowNumber + 1) * Rnd + intLowNumber) 


    NewColor = "#" & Hex(Red) & Hex(Green) & Hex(Blue) 

    Return NewColor 
End Function 

:이를 위해

i는 사용자 정의 스크립트를 만들어 여기가 완벽하게 작동 할 때까지 = code.GetColor() ,하지만 지금은 같은 색상을 원하는 나머지 열은 ... 그래서 "= Fields! myField.BackgroundColor"라는 표현식을 사용했지만 작동하지 않습니다 ...

이 문제를 해결하는 방법을 모른다 ...

도움을 주셔서 감사합니다 .-)

+0

이-않은 시험입니다

=code.GetColor(code.GetColumnNumber(Parameters!SSID,Fields!SSID.Value)) 

감사 : 내가 쓴 셀에서

Public Function GetColumnNumber(ByVal parameter as Parameter,ByVal SSID As String) as String For i as integer = 0 to parameter.Count-1 If CStr(parameter.Value(i)) = SSID THEN Return i END IF Next End Function 

: 내 열 동적했기 때문에 나는 숫자를 얻기 위해 다른 함수를 작성했다 ...하지만 일반적으로 보고서 엔진은 왼쪽에서 오른쪽으로 위에서 아래로 쓰므로 사용자 정의 코드 함수 위에 LastColorUsed 공용 변수를 저장할 수 있습니다. 사용자 지정 코드에서 마지막 사용 된 변수를 반환하는 LastColorUsed()라는 함수를 만듭니다. 그렇게하면 표현식을 무작위로 쓰거나 마지막으로 사용한 색을 쓸 수 있습니다. –

답변

0

당신이해야 할 일은 열의 색상 설정을 기억하여 머리말이나 꼬리말 등에 다시 사용할 수 있도록하는 것입니다. 처음으로 새로운 색상을 표시하고 동일한 색상을 반환하는 배열로이 작업을 수행 할 수 있습니다 해당 색이 이전에 할당 된 경우 해당 색인의 색입니다. 당신은 단순히 당신이 셀이 갖고 싶어 컬러 인덱스 번호를 통과하는 GetColor 함수를 호출, 당신의 세포에서 그런

Dim Colors(0 to 9) As String 

Function GetColor(Color As Integer) As String 
    Dim intHighNumber AS Decimal = 255 
    Dim intLowNumber AS Decimal = 100 
    Dim ThisColor AS String 

    if (Colors(Color) <> "") Then 
    ThisColor = Colors(Color) 
    else 
    Dim Red AS Decimal = Int((intHighNumber - intLowNumber + 1) * Rnd + intLowNumber) 
    Dim Green AS Decimal = Int((intHighNumber - intLowNumber + 1) * Rnd + intLowNumber) 
    Dim Blue AS Decimal = Int((intHighNumber - intLowNumber + 1) * Rnd + intLowNumber) 
    ThisColor = "#" & Hex(Red) & Hex(Green) & Hex(Blue) 
    Colors(Color) = ThisColor 
    End If 

    Return ThisColor 
End Function 

: 여기

사용자 정의 코드입니다. 예를 들어, 첫 번째 열 헤더, 세부 사항, 및 바닥 글 셀 ' BackgroundColor 속성 식의 모든 것 :
=Code.GetColor(0) 

그런 다음 당신은 그냥 각 열에 대해 다른 색 인덱스를 사용합니다.

모든 색상을 저장할 수있는 충분한 공간이 있는지 확인하십시오. 동적 배열을 대신 사용하려면 새 색상을 추가 할 때마다 배열을 수 있습니다.

0
Private string _LastColorUser="" 

Public Function LastColorUsed() 
    Return _LastColorUsed 
End Function 

Public Function GetColor() 

    Dim intHighNumber AS Decimal = 255 
    Dim intLowNumber AS Decimal = 100 

    Dim NewColor AS String 
    Dim Red AS Decimal = Int((intHighNumber - intLowNumber + 1) * Rnd + intLowNumber) 
    Dim Green AS Decimal = Int((intHighNumber - intLowNumber + 1) * Rnd + intLowNumber) 
    Dim Blue AS Decimal = Int((intHighNumber - intLowNumber + 1) * Rnd + intLowNumber) 


    NewColor = "#" & Hex(Red) & Hex(Green) & Hex(Blue) 

    _LastColorUser=NewColor; 

    Return NewColor 
End Function 
+0

답변 해 주셔서 감사합니다.하지만 작동하지 않습니다. 몇 가지 셀에 대해 다른 색상을 사용합니다. 전체 칼럼에서는 동일하지 않습니다. – A3eXy

0

@Chris 감사합니다. 이것이 내가 필요한 것입니다. 다시 :