我正在考虑在SSRS中进行计算表达,但是我已经失去了。
我试图计算字段何时等于特定值,然后返回百分比计算。
这是我迄今为止所尝试过的:
public unsafe Color GetTextColour(Bitmap bitmap)
{
BitmapData bitmapData = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
try
{
const int bytesPerPixel = 3;
const int red = 2;
const int green = 1;
int halfHeight = bitmap.Height / 2;
byte* row = (byte*)_bitmapData.Scan0 + (halfHeight * _bitmapData.Stride);
Color startingColour = Color.FromArgb(row[red], row[green], row[0]);
for (int wi = bytesPerPixel, wc = _bitmapData.Width * bytesPerPixel; wi < wc; wi += bytesPerPixel)
{
Color thisColour = Color.FromArgb(row[wi + red], row[wi + green], row[wi]);
if (thisColour != startingColour)
{
return thisColour;
}
}
return Color.Empty; //Or some other default value
}
finally
{
bitmap.UnlockBits(bitmapData);
}
}
显然这是不正确的,不起作用。表达式需要包含所有3种颜色。
答案 0 :(得分:1)
更新看看是否有效。
按要求更新。我将声明放在最后False
部分,但我不确定这是否是您真正想要的。
再次更新。在最后False
声明中添加了IIF
部分。
更新:删除了SUM
功能。试试看它是否有效。您的IIF
声明没有False
个部分。此外,如果您想要总结,只需SUM
一次。不知道您的数据,我不确定您是否希望%
总结。
=IIF(Fields!location.Value="East" AND Fields!Alert.Value="Red",(FormatPercent(Count(Fields!Sales.Value) / 6532 ,0)),IIF(Fields!Alert.Value="Yellow",FormatPercent(Count(Fields!Sales.Value) / 2541 ,0),IIF(Fields!Alert.Value="Green",FormatPercent(Count(Fields!Sales.Value) / 1025,0),0)))