水晶报表

解决方案 »

  1.   

    水晶报表不完全免费的吧
    如果功能要求不是很强,微软自带的报表也可以。
      

  2.   

    使用绘图柱形分析商品销售数据示例
    //图形控件设置
    <form id="form1" runat="server">
        <div>
            <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
        
        </div>
        </form>
    //绘图分析商品销售数据
     protected void Page_Load(object sender, EventArgs e)
        {
            //创建一个字符串数组,保存各季度名称
            string[] monNum = new string[4];
            //创建一个字符串数组,保存各季度营业额
            string[] monCount = new string[4];
            //创建生成随机数对象
            Random rd = new Random();
            //使用for循环赋值
            for (int i = 0; i < 4; i++)
            {
                monNum[i] = Convert.ToString(i + 1);
                monCount[i] = (rd.Next(200)).ToString();
            }//CodeGo.net/
            //创建一个字符串变量,保存各季度名称
            string strXdata = string.Empty;
            foreach (string strData in monNum)
            {
                strXdata += strData + "季度\t";
            }
            //创建一个字符串变量,保存各季度营业额
            string strYdata = string.Empty;
            foreach (string strValue in monCount)
            {
                strYdata += strValue + "\t";
            }
            //创建图表工作区
            ChartSpace laySpace = new ChartSpaceClass();
            //在图表工作区中添加一个图表
            ChChart InsertChart = laySpace.Charts.Add(0);
            //设置图表类型为3d柱形图
            InsertChart.Type = ChartChartTypeEnum.chChartTypeColumnClustered3D;
            //设置图表是否具有图例
            InsertChart.HasLegend = true;
            //设置图表是否具有标题
            InsertChart.HasTitle = true;
            InsertChart.Title.Caption = "全年季度销售额";
            //设置x坐标是否具有标题
            InsertChart.Axes[0].HasTitle = true;
            //设置x坐标标题内容
            InsertChart.Axes[0].Title.Caption = "X: 月份";
            //设置y坐标是否具有标题
            InsertChart.Axes[1].HasTitle = true;
            //设置最小的数轴值
            InsertChart.Axes[1].Scaling.SplitMinimum = 50;
            //设置y坐标标题内容
            InsertChart.Axes[1].Title.Caption = "Y: 数量";
           //指定新图表的位置
            InsertChart.SeriesCollection.Add(0);
            //设置分类的值
            InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, strXdata);
            //设置图表的值
            InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues, +(int)ChartSpecialDataSourcesEnum.chDataLiteral,strYdata) ;
            //设置图表颜色
            InsertChart.SeriesCollection[0].Interior.Color = "#99E6FC";
            //显示图表中所有标志
            ChDataLabels dls = InsertChart.SeriesCollection[0].DataLabelsCollection.Add();
            //设置标志的大小
            dls.Font.Size = 10;
            //设置标志边框颜色
            dls.Border.Color = "red";
            //设置标志为粗体
            dls.Font.Bold = true;
            //字符串变量用来保存生成图片的路径
            string strAbsolutePath = Server.MapPath(".") + "\\sq.gif";
            //将图表保存为图片文件
            laySpace.ExportPicture(strAbsolutePath, "GIF", 600, 350);
            //创建图像标记
            string strImageTag = "<IMG src=\"sq.gif\"/>";
            //将图像显示在页面中
            this.PlaceHolder1.Controls.Add(new LiteralControl(strImageTag));
        }