2010-11-30 4 views
3

Wie kann ich teilweise farbige Zelle in Reporting Services Tabelle oder Matrix erstellen? Zum Beispiel: Ich habe einen Wert von 45 & Ich möchte nur 45% der Zelle mit roter Farbe füllen, und andere 55% bleiben weiß?Reporting Services teilweise farbige Zelle

Antwort

3

Die einzige Möglichkeit, die ich sehen kann, ist ein Hintergrundbild, das x% voller rot für jedes Prozentband ist, das Sie zeigen möchten. Dann können Sie einen Ausdruck festlegen, um den Hintergrund mit dem richtigen Bild abhängig vom Wert eines bestimmten Feldes zu füllen.

Nicht ganz die beste Lösung, da Sie 20 Bilder benötigen, nur um 5% Bänder zu bekommen.

Die andere Option besteht darin, eine Webservice/asp.net-Seite zu schreiben, die ein Bild in den richtigen Proportionen basierend auf einem Querystring generiert. Dann können Sie das Hintergrundbild auf die aspx-Seite einstellen. This article ist ein Beispiel dafür, wie man ein Bild im laufenden Betrieb durch asp.net

Getestet den folgenden Code und es funktioniert ganz schön, um ein in Zelldiagramm zu produzieren.

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); 

    } 

Gehen Sie wollen, in das Textfeld die Backgroundquelle auf einen Ausdruck zu externen und den Wert ändern. Verwenden Sie einen Ausdruck so etwas wie

= "http://mysite/chartimage.aspx?percentage=" & Fields!MyField.Value 
+0

Ist dies auf andere Weise möglich? – buda

+0

Es ist in Ordnung, Bild zu erstellen, aber wie Spalte in Reporting Services (. Rdlc) zum Rendern des Bildes festlegen, verpasse ich wahrscheinlich etwas? – buda

+0

Mit der Eigenschaft background image können Sie quelle: external, value: expression auswählen – Nat