各位好~
有个问题想在求助一下,是关于用aspnet画饼状图的
我准备用OWC画
但是OWC不会用
我已经到了这样的进度,我运行了一下报错说
找到类型“ChartSpaceClass”的公共成员“ChartChartTypeEnum”。 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
Dim owc As OWC.ChartSpace = New OWC.ChartSpace
Dim owcChart As OWC.WCChart = owc.Charts.Add
------------------------------------------------------------------
Dim connection As New ADODB.Connection
Dim command As New ADODB.Command
Dim Rs1 As New ADODB.Recordset
Dim ConStr As String
ConStr = "DRIVER={SQL Server};SERVER=cv0100029d4;UID=snow;PWD=123456;DATABASE=badpart"
connection.ConnectionString = ConStr
connection.Open()
command.ActiveConnection = connection
command.CommandText = "select * from BoardStat"
Rs1 = command.Execute
Rs1.Close()
connection.Close()
connection.ConnectionString = ""
-------------------------------------------------------------------
owc.DataSource = Rs1
owcChart.Type = owc.ChartChartTypeEnum.chChartTypePie
select * from BoardStat 执行后得到的数据是这样的Code Qty
1AF03826AAAA 2
1AF03830AAAA 3
1AF03831ABAA 4
1AF03833AAAA 1
1AF03841AAAA 5
1AF03842AAAA 1
1AF04680AAAA 18
1AF05457AAAA 1 就是想实现以上数据的一个饼状图,各位大哥可以帮我看一下么
有个问题想在求助一下,是关于用aspnet画饼状图的
我准备用OWC画
但是OWC不会用
我已经到了这样的进度,我运行了一下报错说
找到类型“ChartSpaceClass”的公共成员“ChartChartTypeEnum”。 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
Dim owc As OWC.ChartSpace = New OWC.ChartSpace
Dim owcChart As OWC.WCChart = owc.Charts.Add
------------------------------------------------------------------
Dim connection As New ADODB.Connection
Dim command As New ADODB.Command
Dim Rs1 As New ADODB.Recordset
Dim ConStr As String
ConStr = "DRIVER={SQL Server};SERVER=cv0100029d4;UID=snow;PWD=123456;DATABASE=badpart"
connection.ConnectionString = ConStr
connection.Open()
command.ActiveConnection = connection
command.CommandText = "select * from BoardStat"
Rs1 = command.Execute
Rs1.Close()
connection.Close()
connection.ConnectionString = ""
-------------------------------------------------------------------
owc.DataSource = Rs1
owcChart.Type = owc.ChartChartTypeEnum.chChartTypePie
select * from BoardStat 执行后得到的数据是这样的Code Qty
1AF03826AAAA 2
1AF03830AAAA 3
1AF03831ABAA 4
1AF03833AAAA 1
1AF03841AAAA 5
1AF03842AAAA 1
1AF04680AAAA 18
1AF05457AAAA 1 就是想实现以上数据的一个饼状图,各位大哥可以帮我看一下么
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Drawing;
using System.Drawing.Imaging;
namespace aspCharts
{
/// <summary>
/// Chart 的摘要说明。
/// </summary>
public class Chart : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{ Graphics objGraphics;//建立画板对象
Bitmap objBitMap = new Bitmap(600,300);//建立位图对象
objGraphics = Graphics.FromImage(objBitMap);//根据位图对象建立画板对象
objGraphics.Clear(Color.White);//设置画板对象的背景色
int[] arrValues={0,0,0,0,0,0};//数据数组
arrValues[0]=200;
arrValues[1]=70;
arrValues[2]=90;
arrValues[3]=100;
arrValues[4]=140;
arrValues[5]=300;
string[] arrValueNames={"0","0","0","0","0","0"};//月份 arrValueNames[0] = "一月";
arrValueNames[1]="二月";
arrValueNames[2] = "三月";
arrValueNames[3]="四月";
arrValueNames[4]="五月";
arrValueNames[5]="六月"; objGraphics.DrawString("上半年销售情况统计",new Font("宋体",16),Brushes.Black,new PointF(0,0)); //创建图例文字
PointF symbolLeg = new PointF(335,20);
PointF descLeg = new PointF(360,16); //画出图例。利用objGraphics图形对象的三个方法画出图例:
//FillRectangle()方法画出填充矩形,DrawRectangle()方法画出矩形的边框,
//DrawString()方法画出说明文字。这三个图形对象的方法在 .NET 框架类库类库中均已重载,
//可以很方便根据不同的参数来画出图形。 for(int i=0;i<arrValueNames.Length;i++)//画出各个月的标示图形
{
objGraphics.FillRectangle(new SolidBrush(GetColor(i)),symbolLeg.X,symbolLeg.Y,20,10); objGraphics.DrawRectangle(Pens.Black,symbolLeg.X,symbolLeg.Y,20,10); objGraphics.DrawString(arrValueNames[i].ToString(),new Font("宋体",10),Brushes.Black,descLeg); symbolLeg.Y += 15;
descLeg.Y += 15;
} for(int j = 0;j<arrValues.Length;j++)//画矩形图
{
objGraphics.FillRectangle(new SolidBrush(GetColor(j)),(j*35)+15,200-arrValues[j],20,arrValues[j]+5);
objGraphics.DrawRectangle(Pens.Black,(j*35)+15,200-arrValues[j],20,arrValues[j]+5);
} float sglCurrentAngle;
float sglTotalAngle=0; for(int a=0;a<arrValues.Length-1;a++)
{
sglTotalAngle += arrValues[a];//取得数据总量
} for(int b=0;b<arrValues.Length;b++)
{
sglCurrentAngle = arrValues[b]/sglTotalAngle*360;//求出该数据所占总数据的百分比
objGraphics.FillPie(new SolidBrush(GetColor(b)),220,95,100,100,sglTotalAngle,sglCurrentAngle);//画出椭圆
sglTotalAngle+=sglCurrentAngle;
} objBitMap.Save(Response.OutputStream,ImageFormat.Gif);//该位图对象以"GIF"格式输出
} private Color GetColor(int itemIndex)
{
Color objColor = new Color();
switch(itemIndex)
{
case 0:
objColor = Color.Blue;
break;
case 1:
objColor = Color.Yellow;
break;
case 2:
objColor = Color.Red;
break;
case 3:
objColor = Color.Orange;
break;
case 4:
objColor = Color.Purple;
break;
case 5:
objColor = Color.Brown;
break;
case 6:
default:
objColor = Color.Blue;
break;
} return objColor;
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
可是我需要owc的