2010-11-30 6 views
3

レポートサービステーブルまたはマトリックスに部分セルを作成するにはどうすればよいですか?例:私は45の値を持っています。&赤の色で45%のセルしか塗りたくないのですが、他の55%は白のままですか?レポートサービスが部分的に色付きのセル

答えて

3

私が見ることのできる唯一の方法は、表示したいパーセンテージバンドごとにx%の赤で満ちている背景イメージを持つことです。 次に、特定のフィールドの値に応じて背景を正しいイメージで塗りつぶすように式を設定できます。

5%の帯域を得るには、20枚の画像が必要になりますが、それほど大きな解決策ではありません。

もう1つの選択肢は、クエリ文字列に基づいて正しい比率でイメージを生成する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 
+0

これは他の方法で可能ですか? – buda

+0

イメージを作成するにはokですが、レポートサービス(.rdlc)の列を設定してそのイメージをレンダリングする方法は、おそらくsometingがありませんか? – buda

+0

背景イメージのプロパティでは、source:external、value:expressionを選択できます。 – Nat

関連する問題