如何在报表服务表或矩阵中创建部分着色的单元格?例如:我的价值是45&我想用红色填充45%的细胞,其他55%留白色?
答案 0 :(得分:3)
我能看到工作的唯一方法是为要显示的每个百分比带创建一个x%为红色的背景图像。 然后,您可以设置表达式,使用正确的图像填充背景,具体取决于特定字段的值。
不是最好的解决方案,因为你需要20张图像才能获得5%的频段。
另一种选择是编写一个webservice / asp.net页面,它将根据查询字符串以正确的比例生成图像。然后,您可以将背景图像设置为aspx页面。 This article是如何通过asp.net
动态创建图像的示例测试了以下代码,它可以很好地生成单元格图表。
protected void Page_Load(object sender, EventArgs e)
{
int percent = 0;
int height = 20;
if (Request.QueryString.AllKeys.Contains("percent"))
{
int.TryParse(Request.QueryString["percent"], out percent);
}
if (Request.QueryString.AllKeys.Contains("height"))
{
int.TryParse(Request.QueryString["height"], out height);
}
Bitmap respBitmap = new Bitmap(100, height, PixelFormat.Format32bppRgb);
Graphics graphics = Graphics.FromImage(respBitmap);
Brush brsh = new SolidBrush(Color.White);
graphics.FillRectangle(brsh, new Rectangle(0, 0, respBitmap.Width, respBitmap.Height));
brsh = new SolidBrush(Color.Red);
graphics.FillRectangle(brsh, new Rectangle(0, 0, respBitmap.Width * percent / 100, respBitmap.Height));
Response.ContentType = "image/jpeg";
Response.Charset = "";
respBitmap.Save(Response.OutputStream, ImageFormat.Jpeg);
}
转到所需的文本框,将BackGroundImage源更改为外部,将值更改为表达式。 使用像
这样的表达式= "http://mysite/chartimage.aspx?percentage=" & Fields!MyField.Value