Единственный способ увидеть, что работа - это создать фоновое изображение, заполненное красным на x% для каждой процентной полосы, которую вы хотите показать.
Затем вы можете установить выражение, чтобы заполнить фон правильным изображением в зависимости от значения определенного поля.
Не совсем лучшее решение, поскольку вам понадобится 20 изображений, чтобы получить 5% полос.
Другой вариант - написать страницу webservice / asp.net, которая будет генерировать изображение в правильных пропорциях на основе строки запроса. Затем вы можете установить фоновое изображение на странице aspx.
Эта статья является примером того, как создать изображение на лету через 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