轉(zhuǎn)帖|其它|編輯:郝浩|2010-10-14 15:16:15.000|閱讀 2771 次
概述:前段時間作一個顯示流程的頁面,畫圖以前是用OWC的,OWC中沒有甘特圖.朋友介紹我用TeeChart.這個東西,用過覺得效果蠻好的,今天就把一些有用的代碼拿出來與大家一起分享。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
前段時間作一個顯示流程的頁面,畫圖以前是用OWC的,OWC中沒有甘特圖.朋友介紹我用TeeChart.這個東西,用過覺得效果蠻好的,今天就把一些有用的代碼拿出來與大家一起分享。
下載安裝完TeeChart后,然后在工程"引用"里面添加TeeChart引用,在aspx頁面設(shè)計的工具箱中添加TeeChart控件,拖放到頁面中生成:
LineValue是一個textbox隱藏的,用來存連接線的信息.
畫甘特圖
private void BindChart()
{
Steema.TeeChart.Styles.Gantt s = (Steema.TeeChart.Styles.Gantt)WebChart1.Chart.Series[0];
s.Clear();
string tempEntpid=ddlEntp.SelectedValue;
SqlDataAdapter da = new SqlDataAdapter("SP_ShowFlowRel",conn);
da.SelectCommand.CommandType=CommandType.StoredProcedure;
da.SelectCommand.Parameters.Add("@DptID",tempEntpid);
//Response.Write("@@@@@@@@@@@@@@@@@@@@@"+dtFlow.Rows.Count+"
");
dtFlow.Clear();
da.Fill(dtFlow);
double DateIndex=0;
string linevalue="";
string flag="";
string flagView="";
int Index=0;
int FlagIndex=int.Parse(dtFlow.Rows[dtFlow.Rows.Count-1]["SelID"].ToString());
SerIndex= new int[dtFlow.Rows.Count];
for (int i=0;i
{
if(flag!=dtFlow.Rows[i]["SelID"].ToString())
{
flag=dtFlow.Rows[i]["SelID"].ToString();
string ShowText=dtFlow.Rows[i]["TcName"].ToString();
double Distance=double.Parse(dtFlow.Rows[i]["LimitDate"].ToString());
double ViewOrder=double.Parse(dtFlow.Rows[i]["ViewOrder"].ToString());
s.ColorEach=false;
if(flagView!=dtFlow.Rows[i]["ViewOrder"].ToString())
{
flagView=dtFlow.Rows[i]["ViewOrder"].ToString();
DateIndex=DateIndex+Distance+Distance/3.0;
//s.Add(DateIndex,DateIndex+Distance,int.Parse(flag),ShowText);
s.Add(DateIndex,DateIndex+Distance,FlagIndex,ShowText);
SerIndex[Index]=int.Parse(dtFlow.Rows[i]["FlowID"].ToString());
}
else
{
//s.Add(DateIndex,DateIndex+Distance,int.Parse(flag),ShowText);
s.Add(DateIndex,DateIndex+Distance,FlagIndex,ShowText);
SerIndex[Index]=int.Parse(dtFlow.Rows[i]["FlowID"].ToString());
}
FlagIndex--;
Index++;
}
if(dtFlow.Rows[i]["NextFlow"].ToString()!="")
{
linevalue+=dtFlow.Rows[i]["SelID"].ToString()+"@"+dtFlow.Rows[i]["NextFlow"].ToString()+",";
}
}
linevalue=linevalue.Substring(0,linevalue.Length-1);
LineValue.Text=linevalue;
}
//添加事件
this.WebChart1.AfterDraw += new Steema.TeeChart.PaintChartEventHandler(this.WebChart1_AfterDraw);
//畫連接線
private void Btn_cancel_Click(object sender, System.EventArgs e)
{
// BindChart();
}
private void WebChart1_AfterDraw(object sender, Steema.TeeChart.Drawing.Graphics3D g)
{
string str=LineValue.Text.Trim();
string [] Line= str.Split(',');
try
{
for(int i=0;i
{
string tempStr=Line[i];
int Start=int.Parse(tempStr.Substring(0,tempStr.IndexOf("@")));
int End=int.Parse(tempStr.Remove(0,tempStr.IndexOf("@")+1));
Steema.TeeChart.Chart c = WebChart1.Chart;
Steema.TeeChart.Styles.Gantt s = (Steema.TeeChart.Styles.Gantt)c.Series[0];
//int ValueIndex = 0;
int X1 = s.CalcXPos(Start);
int X2 = s.CalcXPosValue(s.EndValues.Value[Start]);
int Y = s.CalcYPos(Start);
int XNext = s.CalcXPos(End);
int HalfWay = X2+((XNext-X2)/2);
nbsp;int YNext = s.CalcYPos(End);
c.Graphics3D.Line(X2,Y,HalfWay,Y);
c.Graphics3D.LineTo(HalfWay,YNext);
c.Graphics3D.LineTo(XNext,YNext);
}
}
catch
{}
}
慧都2010促銷季開幕,TeeChart for .NET 8折促銷!詳情咨詢:400-700-1020或023-66090381活動詳情://fc6vip.cn/zh-CN/Products_cn/TeeChart_chinese.html
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:網(wǎng)絡(luò)轉(zhuǎn)載