袁氏报表用代码画一个饼图

先要建一个ReportService.aspx 代码如下:
XDesigner.Report.ReportHtmlBuilder hb  =   this .Session[ " htmlbuilder " as  XDesigner.Report.ReportHtmlBuilder;
        
if  (hb  ==   null )
            
return ;

        
if  ( this .Request.QueryString[ " imageindex " !=   null )
        
{
            System.Drawing.Imaging.ImageFormat f 
= System.Drawing.Imaging.ImageFormat.Png;

            
string imagType = this.Request.QueryString["imagetype"];
            
if (imagType == "jpg")
                f 
= ImageFormat.Jpeg;

            hb.SaveReportImage(
                Convert.ToInt32(
this.Request.QueryString["imageindex"]),
                
this.Response.OutputStream,
                f);
            
return;
        }


        
if  ( this .Request.QueryString[ " out " ==   " doc " )
        
{
            
// Output MS Word 2000 document
            hb.SaveWordDocument(this.Response.OutputStream);
            
this.Response.ContentType = "application/msword";
            
//this.Response.AppendHeader("Content-Disposition","attachment;filename=" + System.Web.HttpUtility.UrlEncode( hb.Title ) + ".doc");
        }

        
else   if  ( this .Request.QueryString[ " out " ==   " xls " )
        
{
            
// Output MS Excel2000 document
            hb.SaveExcelDocument(this.Response.OutputStream);
            
this.Response.ContentType = "application/vnd.ms-excel";
            
//this.Response.AppendHeader("Content-Disposition","attachment;filename=" + System.Web.HttpUtility.UrlEncode( hb.Title ) + ".xls");
        }

        
else   if  ( this .Request.QueryString[ " out " ==   " pdf " )
        
{
            hb.SavePDFDocument(
this.Response.OutputStream);
            
this.Response.ContentType = "application/pdf";
        }

        
else
            hb.Save(
this .Response.Output);

再建一个页面画大饼咯:
// 先增一个报表
        DesignReportDocument doc  =   new  DesignReportDocument();
        doc.Title 
=   " 动态报表 " ;

        
// Lable
        DesignReportLabel lbl  =  doc.CreateLabelElement();
        lbl.Text 
=   " 动态报表演示 " ;
        lbl.TextColor 
=  System.Drawing.Color.Yellow;
        lbl.Font 
=   new  Font( " 宋体 " 20 , System.Drawing.FontStyle.Bold  |  System.Drawing.FontStyle.Italic);
        lbl.Align 
=  StringAlignment.Center;
        lbl.PrintDockStyle 
=  PrintDockStyle.Top;
        lbl.Height 
=   120 ;
        lbl.Border.BackColor 
=  Color.SkyBlue;
        doc.Add(lbl);

        
// 一个大饼
        DesignReportPie pie  =  doc.CreatePieElement();
        pie.Bounds 
=   new  Rectangle( 169 775 1363 954 );
        pie.Thickness 
=   60 ;
        pie.BorderWidth 
=   1 ;
        pie.LeftBorder 
=   false ;
        pie.TopBorder 
=   false ;
        pie.RightBorder 
=   false ;
        pie.BottomBorder 
=   false ;
        doc.Add(pie);

        
// 增加列
         for  ( int  i  =   1 ; i  <   5 ; i ++ )
        
{
            DesignReportPieItem pieItem 
= doc.CreatePieItemElement();
            pieItem.ID 
= "pieItem" + i;
            pieItem.Value 
= i.ToString();
            pieItem.Text 
= i.ToString() + "_" + i.ToString();
            pieItem.FillColor 
= System.Drawing.Color.FromArgb((i * 1000% 255, (i * 100% 255, (i * 10% 255);
            
//pieItem.BackColor = System.Drawing.Color.FromArgb(255, 255, (i * 100) % 255);
            pie.AppendChild(pieItem);
        }


        DesignReportLabelList reportpietext1 
=  doc.CreateLabelListElement();
        doc.AppendChild(reportpietext1);
        reportpietext1.ID 
=   " reportpietext1 " ;
        reportpietext1.Bounds 
=   new  System.Drawing.Rectangle( 215 24 1175 731 );
        reportpietext1.BorderWidth 
=   1 ;
        reportpietext1.ItemSpacing 
=   30 ;
        reportpietext1.ItemHeight 
=   50 ;
        reportpietext1.Font 
=   new  System.Drawing.Font( " 宋体 " , 9F, System.Drawing.FontStyle.Bold);
        reportpietext1.BarSize 
=   60 ;

        XDesigner.Report.ReportBuilder rb 
=   new  ReportBuilder();
        rb.LoadReport(doc);

        XDesigner.Report.ReportHtmlBuilder hb 
=  rb.CreateHtmlBuilder();
        hb.ImgSrcFormatString 
=   " reportservice.aspx?imageindex={0} " ;
        hb.Refresh();
        hb.ContentEncoding 
=   this .Response.ContentEncoding;

        
this .Session[ " htmlbuilder " =  hb;
        hb.Save(
this .Response.Output);


你可能感兴趣的:(代码)