ImgGraph.cs 输出统计图的自定义控件
ImgGraph.xls 自定义控件帮助文档
ImgGraph.cs
using System;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Collections;
using Microsoft.Office.Interop.Owc11;
namespace Graph1
{
[ToolboxData("<{0}:ImgGraph runat=server Width=100 Height=100></{0}:ImgGraph>")]
public class ImgGraph : WebControl,System.Web.UI.INamingContainer
{
//公共の属性
private string graph_Name=null; //統計図の名称
private string x_Name=null; //X軸の名称
private float x_Min=0; //X軸の最小値
private float x_Max=10; //X軸の最大値
private float x_Unit=1; //X軸の目盛
private string y_Name=null; //Y軸の名称
private float y_Min=0; //Y軸の最小値
private float y_Max=100; //Y軸の最大値
private float y_Unit=10; //Y軸の目盛
private string line1_Name=null; //線1の名称
private string line1_Color="#FFCC00"; //線1の色
private float line1_Goal=float.NaN; //線1の目標値
private bool line1_UpperGoal_Red=true; //線1の赤色の点FlAG、TRUE:目標線の上で赤色、FALSE:目標線の下で赤色
private int line1_PointSize=6; //線1の点のサイズ
private ArrayList line1_Values=new ArrayList(); //線1の値
private string line2_Name=null; //線2の名称
private string line2_Color="#0000FF"; //線2の色
private float line2_Goal=float.NaN; //線2の目標値
private bool line2_UpperGoal_Red=true; //線2の赤色の点FlAG、TRUE:目標線の上で赤色、FALSE:目標線の下で赤色
private int line2_PointSize=6; //線2の点のサイズ
private ArrayList line2_Values=new ArrayList(); //線2の値
//私有の変数
private string newFileName; //創建するファイル名
private string newPath; //創建するファイルのパス
private string folderPath; //フォルダのパス
private string userIP; //クライアントのIP
private string pcName; //クライアントのコンピュータ名
private ulong milliSecond; //1900年1月1日から今までのミリ秒
private string x_str_values; //X軸の値
private int x_count=0; //X軸の座標の個数
private string line1_str_values; //線1の値
private string line2_str_values; //線2の値
//私有の常数
private const string FolderPathName="pictemp"; //フォルダ名
private const ulong PassTime=600; //削除ファイルの時間間隔(秒)
Property#region Property
public string Graph_Name
{
get
{
return graph_Name;
}
set
{
graph_Name = value;
}
}
public string X_Name
{
get
{
return x_Name;
}
set
{
x_Name = value;
}
}
// public ArrayList X_Values
// {
// get
// {
// return x_Values;
// }
//
// set
// {
// x_Values = value;
// }
// }
public float X_Min
{
get
{
return x_Min;
}
set
{
x_Min = value;
}
}
public float X_Max
{
get
{
return x_Max;
}
set
{
x_Max = value;
}
}
public float X_Unit
{
get
{
return x_Unit;
}
set
{
x_Unit = value;
}
}
public string Y_Name
{
get
{
return y_Name;
}
set
{
y_Name = value;
}
}
public float Y_Min
{
get
{
return y_Min;
}
set
{
y_Min = value;
}
}
public float Y_Max
{
get
{
return y_Max;
}
set
{
y_Max = value;
}
}
public float Y_Unit
{
get
{
return y_Unit;
}
set
{
y_Unit = value;
}
}
public string Line1_Name
{
get
{
return line1_Name;
}
set
{
line1_Name = value;
}
}
public string Line1_Color
{
get
{
return line1_Color;
}
set
{
line1_Color = value;
}
}
public float Line1_Goal
{
get
{
return line1_Goal;
}
set
{
line1_Goal = value;
}
}
public bool Line1_UpperGoal_Red
{
get
{
return line1_UpperGoal_Red;
}
set
{
line1_UpperGoal_Red = value;
}
}
public int Line1_PointSize
{
get
{
return line1_PointSize;
}
set
{
line1_PointSize = value;
}
}
public ArrayList Line1_Values
{
get
{
return line1_Values;
}
set
{
line1_Values = value;
}
}
public string Line2_Name
{
get
{
return line2_Name;
}
set
{
line2_Name = value;
}
}
public string Line2_Color
{
get
{
return line2_Color;
}
set
{
line2_Color = value;
}
}
public float Line2_Goal
{
get
{
return line2_Goal;
}
set
{
line2_Goal = value;
}
}
public bool Line2_UpperGoal_Red
{
get
{
return line2_UpperGoal_Red;
}
set
{
line2_UpperGoal_Red = value;
}
}
public int Line2_PointSize
{
get
{
return line2_PointSize;
}
set
{
line2_PointSize = value;
}
}
public ArrayList Line2_Values
{
get
{
return line2_Values;
}
set
{
line2_Values = value;
}
}
#endregion
protected override void CreateChildControls()
{
//TimeSpan対象
TimeSpan timespan=DateTime.Now.Subtract(Convert.ToDateTime("1900-01-01"));
//1900年1月1日から今までのミリ秒
milliSecond=(ulong)timespan.TotalMilliseconds;
//クライアントのIP
userIP=System.Web.HttpContext.Current.Request.UserHostAddress;
//クライアントのコンピュータ名
pcName=System.Net.Dns.Resolve(userIP).HostName;
//創建するファイル名
newFileName=pcName+milliSecond.ToString();
//フォルダのパス
folderPath=HttpContext.Current.Server.MapPath(".")+@"\"+FolderPathName+@"\";
//創建するファイルのパス
newPath=folderPath+newFileName+".gif";
//フォルダを作ります
if(FolderPathName.Trim().Length> 0)
{
try
{
string CreatePath = folderPath.Trim('\\');
if(!Directory.Exists(CreatePath))
{
Directory.CreateDirectory(CreatePath);
}
}
catch
{
throw;
}
}
if(graph_Name!=null)
{
//Image対象
System.Web.UI.WebControls.Image img=new System.Web.UI.WebControls.Image();
//ChartSpace対象
ChartSpace objCSpace = new ChartSpaceClass();
//ChChart対象
ChChart objChart = objCSpace.Charts.Add(0);
//凡例を表示すります
objChart.HasLegend = true;
//見出しを設けます
objChart.HasTitle = true;
//統計図の名称
objChart.Title.Caption = graph_Name;
//統計図の名称は太字表示すります
objChart.Title.Font.Bold = true;
//背景の色
//objChart.PlotArea.Interior.Color = "White";
//X軸を設けます
objChart.Axes[0].HasTitle = true;
//X軸の名称
objChart.Axes[0].Title.Caption = x_Name;
//X軸の名称、下線を添加します
objChart.Axes[0].Title.Font.Underline=UnderlineStyleEnum.owcUnderlineStyleSingle;
//X軸の値を設けます
for(float i=x_Min;i<=x_Max;i+=x_Unit)
{
if(i==x_Min)
{
x_str_values=i.ToString();
x_count++;
}
else
{
x_str_values+="\t"+i.ToString();
x_count++;
}
}
//Y軸を設けます
objChart.Axes[1].HasTitle = true;
//Y軸の名称を設けます
objChart.Axes[1].Title.Caption = y_Name;
//Y軸の名称、下線を添加します
objChart.Axes[1].Title.Font.Underline=UnderlineStyleEnum.owcUnderlineStyleSingle;
//Y軸の最小値を設けます
objChart.Axes[1].Scaling.Maximum = y_Max;
//Y軸の最大値を設けます
objChart.Axes[1].Scaling.Minimum = y_Min;
//Y軸の目盛を設けます
objChart.Axes[1].MajorUnit = y_Unit;
//線1を設けます
if(line1_Name!=null&&line1_Values.Count>0)
{
//線1を添加します
ChSeries line1 = objChart.SeriesCollection.Add(0);
//線1のタイプを設けます
line1.Type = ChartChartTypeEnum.chChartTypeLineMarkers;
//線1の点のタイプを設けます
line1.Marker.Style =ChartMarkerStyleEnum.chMarkerStyleCircle;
//線1の色を設けます
line1.Line.Color=line1_Color;
//点の色を設けます
line1.Interior.Color=line1_Color;
//線1の点のサイズを設けます
line1.Marker.Size =line1_PointSize;
//線1の値
line1_str_values=String.Join("\t",(string[])line1_Values.ToArray(typeof(string)));
//線1の名称を設けます
line1.SetData(ChartDimensionsEnum.chDimSeriesNames,+(int)ChartSpecialDataSourcesEnum.chDataLiteral, line1_Name);
//線1のX軸を設けます
line1.SetData(ChartDimensionsEnum.chDimCategories,+(int)ChartSpecialDataSourcesEnum.chDataLiteral, x_str_values);
//線1の値を設けます
line1.SetData(ChartDimensionsEnum.chDimValues,+(int)ChartSpecialDataSourcesEnum.chDataLiteral, line1_str_values);
//ラベルを表示すります
line1.DataLabelsCollection.Add();
line1.DataLabelsCollection[0].HasValue=true;
if(!float.IsNaN(line1_Goal))
{
//赤色の点は処理します
Point_Red(line1,line1_UpperGoal_Red,line1_Values,line1_Goal);
}
}
//目標値の点線を添加します
if(!float.IsNaN(line1_Goal))
{
ChSeries line1_Dash = objChart.SeriesCollection.Add(1);
Dash_Line(line1_Dash,x_count,line1_Goal,line1_Color);
}
//線の2を設けます
if(line2_Name!=null&&line2_Values.Count>0)
{
//線2を添加します
ChSeries line2 = objChart.SeriesCollection.Add(2);
//線2のタイプを設けます
line2.Type = ChartChartTypeEnum.chChartTypeLineMarkers;
//line2.Type = ChartChartTypeEnum.chChartTypeColumnClustered;
//線2の点のタイプを設けます
line2.Marker.Style =ChartMarkerStyleEnum.chMarkerStyleCircle;
//線2の色を設けます
line2.Line.Color=line2_Color;
//線2の点の色を設けます
line2.Interior.Color=line2_Color;
//線2の点のサイズを設けます
line2.Marker.Size =line2_PointSize;
//線2の値
line2_str_values=String.Join("\t",(string[])line2_Values.ToArray(typeof(string)));
//線2の名称を設けます
line2.SetData(ChartDimensionsEnum.chDimSeriesNames,+(int)ChartSpecialDataSourcesEnum.chDataLiteral, line2_Name);
//線2のX軸を設けます
line2.SetData(ChartDimensionsEnum.chDimCategories,+(int)ChartSpecialDataSourcesEnum.chDataLiteral, x_str_values);
//線2の値を設けます
line2.SetData(ChartDimensionsEnum.chDimValues,+(int)ChartSpecialDataSourcesEnum.chDataLiteral, line2_str_values);
//ラベルを表示すります
line2.DataLabelsCollection.Add();
line2.DataLabelsCollection[0].HasValue=true;
if(!float.IsNaN(line2_Goal))
{
//赤色の点は処理します
Point_Red(line2,line2_UpperGoal_Red,line2_Values,line2_Goal);
}
}
if(!float.IsNaN(line2_Goal))
{
//目標値の点線を添加します
ChSeries line2_Dash = objChart.SeriesCollection.Add(3);
Dash_Line(line2_Dash,x_count,line2_Goal,line2_Color);
}
//新しいファイルを保存します
if(newPath!=null)
{
//ピクチャーを出力します
objCSpace.ExportPicture(newPath, "GIF", (int)this.Width.Value, (int)this.Height.Value);
//webの上で表示のピクチャーURLを設けます
img.ImageUrl = "./"+FolderPathName+"/"+newFileName+".gif";
//webの上で表示のピクチャーWidthを設けます
img.Width=this.Width;
//webの上で表示のピクチャーHeightを設けます
img.Height=this.Height;
this.Controls.Add(img);
}
}
//古いファイルを削除します
DirectoryInfo directory= new DirectoryInfo(folderPath);
foreach(FileInfo oldFile in directory.GetFiles(pcName+"*.gif"))
{
timespan=DateTime.Now.Subtract(oldFile.LastAccessTime);
if(timespan.TotalSeconds>PassTime)
{
oldFile.Delete();
}
}
}
//赤色の点、処理の関数
private void Point_Red(ChSeries line, bool line1_BigGoal_Red, ArrayList line_Values,float line_Goal)
{
for(int i=0;i<line_Values.Count&&i<line.Points.Count;i++)
{
if(line1_BigGoal_Red)
{
if(float.Parse(line_Values[i].ToString())>line_Goal)
{
//目標線の上で、点の色は赤色です
line.Points[i].Interior.Color="#FF0000";
//目標線の上で、ラベルの色は赤色です
line.DataLabelsCollection[0][i].Font.Color="#FF0000";
//目標線の上で、ラベルの下線を添加します
line.DataLabelsCollection[0][i].Font.Underline=UnderlineStyleEnum.owcUnderlineStyleSingle;
}
}
else
{
if(float.Parse(line_Values[i].ToString())<line_Goal)
{
//目標線の下で、点の色は赤色です
line.Points[i].Interior.Color="#FF0000";
//目標線の下で、ラベルの色は赤色です
line.DataLabelsCollection[0][i].Font.Color="#FF0000";
//目標線の下で、ラベルの下線を添加します
line.DataLabelsCollection[0][i].Font.Underline=UnderlineStyleEnum.owcUnderlineStyleSingle;
}
}
}
}
//目標値、点線の関数
private void Dash_Line(ChSeries line,int count,float line_Goal,string line_Color)
{
string line_Name="目標値["+line_Goal+"]";
string line_Values=line_Goal.ToString();
//目標線の値
for(int i=0;i<count-1;i++)
{
line_Values+="\t"+line_Goal.ToString();
}
//目標線のタイプを設けます
line.Type = ChartChartTypeEnum.chChartTypeLine;
//点線を設けます
line.Line.DashStyle = ChartLineDashStyleEnum.chLineSquareDot;
//目標線の色を設けます
line.Line.Color = line_Color;
//目標線の名称を設けます
line.SetData(ChartDimensionsEnum.chDimSeriesNames,+ (int)ChartSpecialDataSourcesEnum.chDataLiteral, line_Name);
//目標線のX軸を設けます
line.SetData(ChartDimensionsEnum.chDimCategories,+(int)ChartSpecialDataSourcesEnum.chDataLiteral, x_str_values);
//目標線の値を設けます
line.SetData(ChartDimensionsEnum.chDimValues,+(int)ChartSpecialDataSourcesEnum.chDataLiteral, line_Values);
}
}
}
using System;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Collections;
using Microsoft.Office.Interop.Owc11;
namespace Graph1
{
[ToolboxData("<{0}:ImgGraph runat=server Width=100 Height=100></{0}:ImgGraph>")]
public class ImgGraph : WebControl,System.Web.UI.INamingContainer
{
//公共の属性
private string graph_Name=null; //統計図の名称
private string x_Name=null; //X軸の名称
private float x_Min=0; //X軸の最小値
private float x_Max=10; //X軸の最大値
private float x_Unit=1; //X軸の目盛
private string y_Name=null; //Y軸の名称
private float y_Min=0; //Y軸の最小値
private float y_Max=100; //Y軸の最大値
private float y_Unit=10; //Y軸の目盛
private string line1_Name=null; //線1の名称
private string line1_Color="#FFCC00"; //線1の色
private float line1_Goal=float.NaN; //線1の目標値
private bool line1_UpperGoal_Red=true; //線1の赤色の点FlAG、TRUE:目標線の上で赤色、FALSE:目標線の下で赤色
private int line1_PointSize=6; //線1の点のサイズ
private ArrayList line1_Values=new ArrayList(); //線1の値
private string line2_Name=null; //線2の名称
private string line2_Color="#0000FF"; //線2の色
private float line2_Goal=float.NaN; //線2の目標値
private bool line2_UpperGoal_Red=true; //線2の赤色の点FlAG、TRUE:目標線の上で赤色、FALSE:目標線の下で赤色
private int line2_PointSize=6; //線2の点のサイズ
private ArrayList line2_Values=new ArrayList(); //線2の値
//私有の変数
private string newFileName; //創建するファイル名
private string newPath; //創建するファイルのパス
private string folderPath; //フォルダのパス
private string userIP; //クライアントのIP
private string pcName; //クライアントのコンピュータ名
private ulong milliSecond; //1900年1月1日から今までのミリ秒
private string x_str_values; //X軸の値
private int x_count=0; //X軸の座標の個数
private string line1_str_values; //線1の値
private string line2_str_values; //線2の値
//私有の常数
private const string FolderPathName="pictemp"; //フォルダ名
private const ulong PassTime=600; //削除ファイルの時間間隔(秒)
Property#region Property
public string Graph_Name
{
get
{
return graph_Name;
}
set
{
graph_Name = value;
}
}
public string X_Name
{
get
{
return x_Name;
}
set
{
x_Name = value;
}
}
// public ArrayList X_Values
// {
// get
// {
// return x_Values;
// }
//
// set
// {
// x_Values = value;
// }
// }
public float X_Min
{
get
{
return x_Min;
}
set
{
x_Min = value;
}
}
public float X_Max
{
get
{
return x_Max;
}
set
{
x_Max = value;
}
}
public float X_Unit
{
get
{
return x_Unit;
}
set
{
x_Unit = value;
}
}
public string Y_Name
{
get
{
return y_Name;
}
set
{
y_Name = value;
}
}
public float Y_Min
{
get
{
return y_Min;
}
set
{
y_Min = value;
}
}
public float Y_Max
{
get
{
return y_Max;
}
set
{
y_Max = value;
}
}
public float Y_Unit
{
get
{
return y_Unit;
}
set
{
y_Unit = value;
}
}
public string Line1_Name
{
get
{
return line1_Name;
}
set
{
line1_Name = value;
}
}
public string Line1_Color
{
get
{
return line1_Color;
}
set
{
line1_Color = value;
}
}
public float Line1_Goal
{
get
{
return line1_Goal;
}
set
{
line1_Goal = value;
}
}
public bool Line1_UpperGoal_Red
{
get
{
return line1_UpperGoal_Red;
}
set
{
line1_UpperGoal_Red = value;
}
}
public int Line1_PointSize
{
get
{
return line1_PointSize;
}
set
{
line1_PointSize = value;
}
}
public ArrayList Line1_Values
{
get
{
return line1_Values;
}
set
{
line1_Values = value;
}
}
public string Line2_Name
{
get
{
return line2_Name;
}
set
{
line2_Name = value;
}
}
public string Line2_Color
{
get
{
return line2_Color;
}
set
{
line2_Color = value;
}
}
public float Line2_Goal
{
get
{
return line2_Goal;
}
set
{
line2_Goal = value;
}
}
public bool Line2_UpperGoal_Red
{
get
{
return line2_UpperGoal_Red;
}
set
{
line2_UpperGoal_Red = value;
}
}
public int Line2_PointSize
{
get
{
return line2_PointSize;
}
set
{
line2_PointSize = value;
}
}
public ArrayList Line2_Values
{
get
{
return line2_Values;
}
set
{
line2_Values = value;
}
}
#endregion
protected override void CreateChildControls()
{
//TimeSpan対象
TimeSpan timespan=DateTime.Now.Subtract(Convert.ToDateTime("1900-01-01"));
//1900年1月1日から今までのミリ秒
milliSecond=(ulong)timespan.TotalMilliseconds;
//クライアントのIP
userIP=System.Web.HttpContext.Current.Request.UserHostAddress;
//クライアントのコンピュータ名
pcName=System.Net.Dns.Resolve(userIP).HostName;
//創建するファイル名
newFileName=pcName+milliSecond.ToString();
//フォルダのパス
folderPath=HttpContext.Current.Server.MapPath(".")+@"\"+FolderPathName+@"\";
//創建するファイルのパス
newPath=folderPath+newFileName+".gif";
//フォルダを作ります
if(FolderPathName.Trim().Length> 0)
{
try
{
string CreatePath = folderPath.Trim('\\');
if(!Directory.Exists(CreatePath))
{
Directory.CreateDirectory(CreatePath);
}
}
catch
{
throw;
}
}
if(graph_Name!=null)
{
//Image対象
System.Web.UI.WebControls.Image img=new System.Web.UI.WebControls.Image();
//ChartSpace対象
ChartSpace objCSpace = new ChartSpaceClass();
//ChChart対象
ChChart objChart = objCSpace.Charts.Add(0);
//凡例を表示すります
objChart.HasLegend = true;
//見出しを設けます
objChart.HasTitle = true;
//統計図の名称
objChart.Title.Caption = graph_Name;
//統計図の名称は太字表示すります
objChart.Title.Font.Bold = true;
//背景の色
//objChart.PlotArea.Interior.Color = "White";
//X軸を設けます
objChart.Axes[0].HasTitle = true;
//X軸の名称
objChart.Axes[0].Title.Caption = x_Name;
//X軸の名称、下線を添加します
objChart.Axes[0].Title.Font.Underline=UnderlineStyleEnum.owcUnderlineStyleSingle;
//X軸の値を設けます
for(float i=x_Min;i<=x_Max;i+=x_Unit)
{
if(i==x_Min)
{
x_str_values=i.ToString();
x_count++;
}
else
{
x_str_values+="\t"+i.ToString();
x_count++;
}
}
//Y軸を設けます
objChart.Axes[1].HasTitle = true;
//Y軸の名称を設けます
objChart.Axes[1].Title.Caption = y_Name;
//Y軸の名称、下線を添加します
objChart.Axes[1].Title.Font.Underline=UnderlineStyleEnum.owcUnderlineStyleSingle;
//Y軸の最小値を設けます
objChart.Axes[1].Scaling.Maximum = y_Max;
//Y軸の最大値を設けます
objChart.Axes[1].Scaling.Minimum = y_Min;
//Y軸の目盛を設けます
objChart.Axes[1].MajorUnit = y_Unit;
//線1を設けます
if(line1_Name!=null&&line1_Values.Count>0)
{
//線1を添加します
ChSeries line1 = objChart.SeriesCollection.Add(0);
//線1のタイプを設けます
line1.Type = ChartChartTypeEnum.chChartTypeLineMarkers;
//線1の点のタイプを設けます
line1.Marker.Style =ChartMarkerStyleEnum.chMarkerStyleCircle;
//線1の色を設けます
line1.Line.Color=line1_Color;
//点の色を設けます
line1.Interior.Color=line1_Color;
//線1の点のサイズを設けます
line1.Marker.Size =line1_PointSize;
//線1の値
line1_str_values=String.Join("\t",(string[])line1_Values.ToArray(typeof(string)));
//線1の名称を設けます
line1.SetData(ChartDimensionsEnum.chDimSeriesNames,+(int)ChartSpecialDataSourcesEnum.chDataLiteral, line1_Name);
//線1のX軸を設けます
line1.SetData(ChartDimensionsEnum.chDimCategories,+(int)ChartSpecialDataSourcesEnum.chDataLiteral, x_str_values);
//線1の値を設けます
line1.SetData(ChartDimensionsEnum.chDimValues,+(int)ChartSpecialDataSourcesEnum.chDataLiteral, line1_str_values);
//ラベルを表示すります
line1.DataLabelsCollection.Add();
line1.DataLabelsCollection[0].HasValue=true;
if(!float.IsNaN(line1_Goal))
{
//赤色の点は処理します
Point_Red(line1,line1_UpperGoal_Red,line1_Values,line1_Goal);
}
}
//目標値の点線を添加します
if(!float.IsNaN(line1_Goal))
{
ChSeries line1_Dash = objChart.SeriesCollection.Add(1);
Dash_Line(line1_Dash,x_count,line1_Goal,line1_Color);
}
//線の2を設けます
if(line2_Name!=null&&line2_Values.Count>0)
{
//線2を添加します
ChSeries line2 = objChart.SeriesCollection.Add(2);
//線2のタイプを設けます
line2.Type = ChartChartTypeEnum.chChartTypeLineMarkers;
//line2.Type = ChartChartTypeEnum.chChartTypeColumnClustered;
//線2の点のタイプを設けます
line2.Marker.Style =ChartMarkerStyleEnum.chMarkerStyleCircle;
//線2の色を設けます
line2.Line.Color=line2_Color;
//線2の点の色を設けます
line2.Interior.Color=line2_Color;
//線2の点のサイズを設けます
line2.Marker.Size =line2_PointSize;
//線2の値
line2_str_values=String.Join("\t",(string[])line2_Values.ToArray(typeof(string)));
//線2の名称を設けます
line2.SetData(ChartDimensionsEnum.chDimSeriesNames,+(int)ChartSpecialDataSourcesEnum.chDataLiteral, line2_Name);
//線2のX軸を設けます
line2.SetData(ChartDimensionsEnum.chDimCategories,+(int)ChartSpecialDataSourcesEnum.chDataLiteral, x_str_values);
//線2の値を設けます
line2.SetData(ChartDimensionsEnum.chDimValues,+(int)ChartSpecialDataSourcesEnum.chDataLiteral, line2_str_values);
//ラベルを表示すります
line2.DataLabelsCollection.Add();
line2.DataLabelsCollection[0].HasValue=true;
if(!float.IsNaN(line2_Goal))
{
//赤色の点は処理します
Point_Red(line2,line2_UpperGoal_Red,line2_Values,line2_Goal);
}
}
if(!float.IsNaN(line2_Goal))
{
//目標値の点線を添加します
ChSeries line2_Dash = objChart.SeriesCollection.Add(3);
Dash_Line(line2_Dash,x_count,line2_Goal,line2_Color);
}
//新しいファイルを保存します
if(newPath!=null)
{
//ピクチャーを出力します
objCSpace.ExportPicture(newPath, "GIF", (int)this.Width.Value, (int)this.Height.Value);
//webの上で表示のピクチャーURLを設けます
img.ImageUrl = "./"+FolderPathName+"/"+newFileName+".gif";
//webの上で表示のピクチャーWidthを設けます
img.Width=this.Width;
//webの上で表示のピクチャーHeightを設けます
img.Height=this.Height;
this.Controls.Add(img);
}
}
//古いファイルを削除します
DirectoryInfo directory= new DirectoryInfo(folderPath);
foreach(FileInfo oldFile in directory.GetFiles(pcName+"*.gif"))
{
timespan=DateTime.Now.Subtract(oldFile.LastAccessTime);
if(timespan.TotalSeconds>PassTime)
{
oldFile.Delete();
}
}
}
//赤色の点、処理の関数
private void Point_Red(ChSeries line, bool line1_BigGoal_Red, ArrayList line_Values,float line_Goal)
{
for(int i=0;i<line_Values.Count&&i<line.Points.Count;i++)
{
if(line1_BigGoal_Red)
{
if(float.Parse(line_Values[i].ToString())>line_Goal)
{
//目標線の上で、点の色は赤色です
line.Points[i].Interior.Color="#FF0000";
//目標線の上で、ラベルの色は赤色です
line.DataLabelsCollection[0][i].Font.Color="#FF0000";
//目標線の上で、ラベルの下線を添加します
line.DataLabelsCollection[0][i].Font.Underline=UnderlineStyleEnum.owcUnderlineStyleSingle;
}
}
else
{
if(float.Parse(line_Values[i].ToString())<line_Goal)
{
//目標線の下で、点の色は赤色です
line.Points[i].Interior.Color="#FF0000";
//目標線の下で、ラベルの色は赤色です
line.DataLabelsCollection[0][i].Font.Color="#FF0000";
//目標線の下で、ラベルの下線を添加します
line.DataLabelsCollection[0][i].Font.Underline=UnderlineStyleEnum.owcUnderlineStyleSingle;
}
}
}
}
//目標値、点線の関数
private void Dash_Line(ChSeries line,int count,float line_Goal,string line_Color)
{
string line_Name="目標値["+line_Goal+"]";
string line_Values=line_Goal.ToString();
//目標線の値
for(int i=0;i<count-1;i++)
{
line_Values+="\t"+line_Goal.ToString();
}
//目標線のタイプを設けます
line.Type = ChartChartTypeEnum.chChartTypeLine;
//点線を設けます
line.Line.DashStyle = ChartLineDashStyleEnum.chLineSquareDot;
//目標線の色を設けます
line.Line.Color = line_Color;
//目標線の名称を設けます
line.SetData(ChartDimensionsEnum.chDimSeriesNames,+ (int)ChartSpecialDataSourcesEnum.chDataLiteral, line_Name);
//目標線のX軸を設けます
line.SetData(ChartDimensionsEnum.chDimCategories,+(int)ChartSpecialDataSourcesEnum.chDataLiteral, x_str_values);
//目標線の値を設けます
line.SetData(ChartDimensionsEnum.chDimValues,+(int)ChartSpecialDataSourcesEnum.chDataLiteral, line_Values);
}
}
}
WebForm1.aspx 示例页面
WebForm1.aspx
<%@ Register TagPrefix="cc1" Namespace="Graph1" Assembly="Graph1" %>
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Graph1.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:RadioButton id="RadioButton_Line1_Under" style="Z-INDEX: 125; LEFT: 736px; POSITION: absolute; TOP: 192px"
runat="server" Text="下" GroupName="RadioButton_Line1_BigGoal_Red" tabIndex="18"></asp:RadioButton>
<asp:TextBox id="TextBox_X_Unit" style="Z-INDEX: 150; LEFT: 736px; POSITION: absolute; TOP: 56px"
runat="server" Width="64px" tabIndex="7">1</asp:TextBox>
<asp:Label id="Label29" style="Z-INDEX: 149; LEFT: 648px; POSITION: absolute; TOP: 56px" runat="server">X軸の目盛</asp:Label>
<asp:TextBox id="TextBox_X_Max" style="Z-INDEX: 148; LEFT: 568px; POSITION: absolute; TOP: 56px"
runat="server" Width="64px" tabIndex="6">8</asp:TextBox>
<asp:Label id="Label28" style="Z-INDEX: 147; LEFT: 464px; POSITION: absolute; TOP: 56px" runat="server">X軸の最大値</asp:Label>
<asp:TextBox id="TextBox_X_Min" style="Z-INDEX: 146; LEFT: 384px; POSITION: absolute; TOP: 56px"
runat="server" Width="64px" tabIndex="5">0</asp:TextBox>
<asp:Label id="Label4" style="Z-INDEX: 145; LEFT: 288px; POSITION: absolute; TOP: 56px" runat="server">X軸の最小値</asp:Label>
<asp:TextBox id="TextBox_Graph_Height" style="Z-INDEX: 142; LEFT: 568px; POSITION: absolute; TOP: 16px"
runat="server" Width="64px" tabIndex="3">350</asp:TextBox>
<asp:Label id="Label27" style="Z-INDEX: 141; LEFT: 464px; POSITION: absolute; TOP: 24px" runat="server">統計図の高さ</asp:Label>
<asp:TextBox id="TextBox_Graph_Width" style="Z-INDEX: 140; LEFT: 384px; POSITION: absolute; TOP: 16px"
runat="server" Width="64px" tabIndex="2">600</asp:TextBox>
<asp:Label id="Label26" style="Z-INDEX: 139; LEFT: 288px; POSITION: absolute; TOP: 24px" runat="server">統計図の幅</asp:Label>
<asp:RadioButton id="RadioButton_Line2_Upper" style="Z-INDEX: 138; LEFT: 688px; POSITION: absolute; TOP: 272px"
runat="server" Text="上" GroupName="RadioButton_Line2_BigGoal_Red" Checked="True" tabIndex="24"
AutoPostBack="True"></asp:RadioButton>
<asp:Label id="Label25" style="Z-INDEX: 137; LEFT: 560px; POSITION: absolute; TOP: 272px" runat="server">線2の赤色の点:</asp:Label>
<asp:TextBox id="TextBox_Line2_Values" style="Z-INDEX: 136; LEFT: 120px; POSITION: absolute; TOP: 272px"
runat="server" Width="414px" tabIndex="23">73,70,69.33,67,65.60,68.67,70.86,72.5,72.55</asp:TextBox>
<asp:Label id="Label24" style="Z-INDEX: 135; LEFT: 48px; POSITION: absolute; TOP: 272px" runat="server">線2の値</asp:Label>
<asp:TextBox id="TextBox_Line2_PointSize" style="Z-INDEX: 134; LEFT: 736px; POSITION: absolute; TOP: 232px"
runat="server" Width="64px" tabIndex="22">6</asp:TextBox>
<asp:Label id="Label23" style="Z-INDEX: 133; LEFT: 608px; POSITION: absolute; TOP: 232px" runat="server">線2の点のサイズ</asp:Label>
<asp:TextBox id="TextBox_Line2_Goal" style="Z-INDEX: 132; LEFT: 528px; POSITION: absolute; TOP: 232px"
runat="server" Width="64px" tabIndex="21">70.55</asp:TextBox>
<asp:Label id="Label22" style="Z-INDEX: 131; LEFT: 432px; POSITION: absolute; TOP: 232px" runat="server">線2の目標値</asp:Label>
<asp:TextBox id="TextBox_Line2_Color" style="Z-INDEX: 130; LEFT: 352px; POSITION: absolute; TOP: 232px"
runat="server" Width="64px" tabIndex="20">#0000FF</asp:TextBox>
<asp:Label id="Label21" style="Z-INDEX: 129; LEFT: 288px; POSITION: absolute; TOP: 232px" runat="server">線2の色</asp:Label>
<asp:TextBox id="TextBox_Line2_Name" style="Z-INDEX: 128; LEFT: 120px; POSITION: absolute; TOP: 232px"
runat="server" tabIndex="19">PQロイヤル率</asp:TextBox>
<asp:Label id="Label20" style="Z-INDEX: 127; LEFT: 32px; POSITION: absolute; TOP: 232px" runat="server">線2の名称</asp:Label>
<asp:RadioButton id="RadioButton_Line2_Under" style="Z-INDEX: 126; LEFT: 736px; POSITION: absolute; TOP: 272px"
runat="server" Text="下" GroupName="RadioButton_Line2_BigGoal_Red" tabIndex="25"></asp:RadioButton>
<asp:Label id="Label18" style="Z-INDEX: 121; LEFT: 48px; POSITION: absolute; TOP: 192px" runat="server">線1の値</asp:Label>
<asp:TextBox id="TextBox_Line1_Goal" style="Z-INDEX: 118; LEFT: 528px; POSITION: absolute; TOP: 152px"
runat="server" Width="64px" tabIndex="14">85.9</asp:TextBox>
<asp:Label id="Label16" style="Z-INDEX: 117; LEFT: 432px; POSITION: absolute; TOP: 152px" runat="server">線1の目標値</asp:Label>
<asp:Label id="Label14" style="Z-INDEX: 113; LEFT: 32px; POSITION: absolute; TOP: 152px" runat="server">線1の名称</asp:Label>
<asp:Label id="Label13" style="Z-INDEX: 123; LEFT: 560px; POSITION: absolute; TOP: 192px" runat="server">線1の赤色の点:</asp:Label>
<asp:TextBox id="TextBox_Line1_Values" style="Z-INDEX: 122; LEFT: 120px; POSITION: absolute; TOP: 192px"
runat="server" Width="414px" tabIndex="16">78.66,82,82.87,82,82.4,84.67,85.71,87,87.25</asp:TextBox>
<asp:TextBox id="TextBox_Line1_PointSize" style="Z-INDEX: 120; LEFT: 736px; POSITION: absolute; TOP: 152px"
runat="server" Width="64px" tabIndex="15">6</asp:TextBox>
<asp:Label id="Label11" style="Z-INDEX: 119; LEFT: 608px; POSITION: absolute; TOP: 152px" runat="server">線1の点のサイズ</asp:Label>
<asp:TextBox id="TextBox_Line1_Color" style="Z-INDEX: 116; LEFT: 352px; POSITION: absolute; TOP: 152px"
runat="server" Width="64px" tabIndex="13">#FFCC00</asp:TextBox>
<asp:Label id="Label9" style="Z-INDEX: 115; LEFT: 288px; POSITION: absolute; TOP: 152px" runat="server">線1の色</asp:Label>
<asp:TextBox id="TextBox_Line1_Name" style="Z-INDEX: 114; LEFT: 120px; POSITION: absolute; TOP: 152px"
runat="server" tabIndex="12">VQロイヤル率</asp:TextBox>
<asp:TextBox id="TextBox_Y_Unit" style="Z-INDEX: 112; LEFT: 736px; POSITION: absolute; TOP: 96px"
runat="server" Width="64px" tabIndex="11">5</asp:TextBox>
<asp:Label id="Label7" style="Z-INDEX: 111; LEFT: 648px; POSITION: absolute; TOP: 96px" runat="server">Y軸の目盛</asp:Label>
<asp:TextBox id="TextBox_Y_Max" style="Z-INDEX: 110; LEFT: 568px; POSITION: absolute; TOP: 96px"
runat="server" Width="64px" tabIndex="10">100</asp:TextBox>
<asp:Label id="Label6" style="Z-INDEX: 109; LEFT: 464px; POSITION: absolute; TOP: 96px" runat="server">Y軸の最大値</asp:Label>
<asp:TextBox id="TextBox_Y_Min" style="Z-INDEX: 108; LEFT: 384px; POSITION: absolute; TOP: 96px"
runat="server" Width="64px" tabIndex="9">50</asp:TextBox>
<asp:Label id="Label5" style="Z-INDEX: 107; LEFT: 288px; POSITION: absolute; TOP: 96px" runat="server">Y軸の最小値</asp:Label>
<asp:TextBox id="TextBox_Y_Name" style="Z-INDEX: 106; LEFT: 120px; POSITION: absolute; TOP: 96px"
runat="server" tabIndex="8">Y:%(件)</asp:TextBox>
<asp:Label id="Label3" style="Z-INDEX: 105; LEFT: 32px; POSITION: absolute; TOP: 96px" runat="server">Y軸の名称</asp:Label>
<asp:TextBox id="TextBox_X_Name" style="Z-INDEX: 104; LEFT: 120px; POSITION: absolute; TOP: 56px"
runat="server" tabIndex="4">X:台数</asp:TextBox>
<asp:Label id="Label2" style="Z-INDEX: 103; LEFT: 32px; POSITION: absolute; TOP: 56px" runat="server">X軸の名称</asp:Label>
<asp:Label id="Label1" style="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 24px" runat="server">統計図の名称</asp:Label>
<asp:TextBox id="TextBox_Graph_Name" style="Z-INDEX: 102; LEFT: 120px; POSITION: absolute; TOP: 16px"
runat="server" tabIndex="1">合格率推移</asp:TextBox>
<asp:RadioButton id="RadioButton_Line1_Upper" style="Z-INDEX: 124; LEFT: 688px; POSITION: absolute; TOP: 192px"
runat="server" Text="上" GroupName="RadioButton_Line1_BigGoal_Red" Checked="True" tabIndex="17"></asp:RadioButton>
<asp:Button id="Button_Ok" style="Z-INDEX: 143; LEFT: 832px; POSITION: absolute; TOP: 224px"
runat="server" Width="72px" Height="64px" Text="OK"></asp:Button>
<cc1:ImgGraph id="ImgGraph1" style="Z-INDEX: 144; LEFT: 56px; POSITION: absolute; TOP: 344px"
runat="server" Width="100" Height="100"></cc1:ImgGraph>
<asp:Button id="Button_Reset" style="Z-INDEX: 151; LEFT: 920px; POSITION: absolute; TOP: 224px"
runat="server" Text="初期化" Width="72px" Height="64px"></asp:Button></form>
</body>
</HTML>
<%@ Register TagPrefix="cc1" Namespace="Graph1" Assembly="Graph1" %>
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Graph1.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:RadioButton id="RadioButton_Line1_Under" style="Z-INDEX: 125; LEFT: 736px; POSITION: absolute; TOP: 192px"
runat="server" Text="下" GroupName="RadioButton_Line1_BigGoal_Red" tabIndex="18"></asp:RadioButton>
<asp:TextBox id="TextBox_X_Unit" style="Z-INDEX: 150; LEFT: 736px; POSITION: absolute; TOP: 56px"
runat="server" Width="64px" tabIndex="7">1</asp:TextBox>
<asp:Label id="Label29" style="Z-INDEX: 149; LEFT: 648px; POSITION: absolute; TOP: 56px" runat="server">X軸の目盛</asp:Label>
<asp:TextBox id="TextBox_X_Max" style="Z-INDEX: 148; LEFT: 568px; POSITION: absolute; TOP: 56px"
runat="server" Width="64px" tabIndex="6">8</asp:TextBox>
<asp:Label id="Label28" style="Z-INDEX: 147; LEFT: 464px; POSITION: absolute; TOP: 56px" runat="server">X軸の最大値</asp:Label>
<asp:TextBox id="TextBox_X_Min" style="Z-INDEX: 146; LEFT: 384px; POSITION: absolute; TOP: 56px"
runat="server" Width="64px" tabIndex="5">0</asp:TextBox>
<asp:Label id="Label4" style="Z-INDEX: 145; LEFT: 288px; POSITION: absolute; TOP: 56px" runat="server">X軸の最小値</asp:Label>
<asp:TextBox id="TextBox_Graph_Height" style="Z-INDEX: 142; LEFT: 568px; POSITION: absolute; TOP: 16px"
runat="server" Width="64px" tabIndex="3">350</asp:TextBox>
<asp:Label id="Label27" style="Z-INDEX: 141; LEFT: 464px; POSITION: absolute; TOP: 24px" runat="server">統計図の高さ</asp:Label>
<asp:TextBox id="TextBox_Graph_Width" style="Z-INDEX: 140; LEFT: 384px; POSITION: absolute; TOP: 16px"
runat="server" Width="64px" tabIndex="2">600</asp:TextBox>
<asp:Label id="Label26" style="Z-INDEX: 139; LEFT: 288px; POSITION: absolute; TOP: 24px" runat="server">統計図の幅</asp:Label>
<asp:RadioButton id="RadioButton_Line2_Upper" style="Z-INDEX: 138; LEFT: 688px; POSITION: absolute; TOP: 272px"
runat="server" Text="上" GroupName="RadioButton_Line2_BigGoal_Red" Checked="True" tabIndex="24"
AutoPostBack="True"></asp:RadioButton>
<asp:Label id="Label25" style="Z-INDEX: 137; LEFT: 560px; POSITION: absolute; TOP: 272px" runat="server">線2の赤色の点:</asp:Label>
<asp:TextBox id="TextBox_Line2_Values" style="Z-INDEX: 136; LEFT: 120px; POSITION: absolute; TOP: 272px"
runat="server" Width="414px" tabIndex="23">73,70,69.33,67,65.60,68.67,70.86,72.5,72.55</asp:TextBox>
<asp:Label id="Label24" style="Z-INDEX: 135; LEFT: 48px; POSITION: absolute; TOP: 272px" runat="server">線2の値</asp:Label>
<asp:TextBox id="TextBox_Line2_PointSize" style="Z-INDEX: 134; LEFT: 736px; POSITION: absolute; TOP: 232px"
runat="server" Width="64px" tabIndex="22">6</asp:TextBox>
<asp:Label id="Label23" style="Z-INDEX: 133; LEFT: 608px; POSITION: absolute; TOP: 232px" runat="server">線2の点のサイズ</asp:Label>
<asp:TextBox id="TextBox_Line2_Goal" style="Z-INDEX: 132; LEFT: 528px; POSITION: absolute; TOP: 232px"
runat="server" Width="64px" tabIndex="21">70.55</asp:TextBox>
<asp:Label id="Label22" style="Z-INDEX: 131; LEFT: 432px; POSITION: absolute; TOP: 232px" runat="server">線2の目標値</asp:Label>
<asp:TextBox id="TextBox_Line2_Color" style="Z-INDEX: 130; LEFT: 352px; POSITION: absolute; TOP: 232px"
runat="server" Width="64px" tabIndex="20">#0000FF</asp:TextBox>
<asp:Label id="Label21" style="Z-INDEX: 129; LEFT: 288px; POSITION: absolute; TOP: 232px" runat="server">線2の色</asp:Label>
<asp:TextBox id="TextBox_Line2_Name" style="Z-INDEX: 128; LEFT: 120px; POSITION: absolute; TOP: 232px"
runat="server" tabIndex="19">PQロイヤル率</asp:TextBox>
<asp:Label id="Label20" style="Z-INDEX: 127; LEFT: 32px; POSITION: absolute; TOP: 232px" runat="server">線2の名称</asp:Label>
<asp:RadioButton id="RadioButton_Line2_Under" style="Z-INDEX: 126; LEFT: 736px; POSITION: absolute; TOP: 272px"
runat="server" Text="下" GroupName="RadioButton_Line2_BigGoal_Red" tabIndex="25"></asp:RadioButton>
<asp:Label id="Label18" style="Z-INDEX: 121; LEFT: 48px; POSITION: absolute; TOP: 192px" runat="server">線1の値</asp:Label>
<asp:TextBox id="TextBox_Line1_Goal" style="Z-INDEX: 118; LEFT: 528px; POSITION: absolute; TOP: 152px"
runat="server" Width="64px" tabIndex="14">85.9</asp:TextBox>
<asp:Label id="Label16" style="Z-INDEX: 117; LEFT: 432px; POSITION: absolute; TOP: 152px" runat="server">線1の目標値</asp:Label>
<asp:Label id="Label14" style="Z-INDEX: 113; LEFT: 32px; POSITION: absolute; TOP: 152px" runat="server">線1の名称</asp:Label>
<asp:Label id="Label13" style="Z-INDEX: 123; LEFT: 560px; POSITION: absolute; TOP: 192px" runat="server">線1の赤色の点:</asp:Label>
<asp:TextBox id="TextBox_Line1_Values" style="Z-INDEX: 122; LEFT: 120px; POSITION: absolute; TOP: 192px"
runat="server" Width="414px" tabIndex="16">78.66,82,82.87,82,82.4,84.67,85.71,87,87.25</asp:TextBox>
<asp:TextBox id="TextBox_Line1_PointSize" style="Z-INDEX: 120; LEFT: 736px; POSITION: absolute; TOP: 152px"
runat="server" Width="64px" tabIndex="15">6</asp:TextBox>
<asp:Label id="Label11" style="Z-INDEX: 119; LEFT: 608px; POSITION: absolute; TOP: 152px" runat="server">線1の点のサイズ</asp:Label>
<asp:TextBox id="TextBox_Line1_Color" style="Z-INDEX: 116; LEFT: 352px; POSITION: absolute; TOP: 152px"
runat="server" Width="64px" tabIndex="13">#FFCC00</asp:TextBox>
<asp:Label id="Label9" style="Z-INDEX: 115; LEFT: 288px; POSITION: absolute; TOP: 152px" runat="server">線1の色</asp:Label>
<asp:TextBox id="TextBox_Line1_Name" style="Z-INDEX: 114; LEFT: 120px; POSITION: absolute; TOP: 152px"
runat="server" tabIndex="12">VQロイヤル率</asp:TextBox>
<asp:TextBox id="TextBox_Y_Unit" style="Z-INDEX: 112; LEFT: 736px; POSITION: absolute; TOP: 96px"
runat="server" Width="64px" tabIndex="11">5</asp:TextBox>
<asp:Label id="Label7" style="Z-INDEX: 111; LEFT: 648px; POSITION: absolute; TOP: 96px" runat="server">Y軸の目盛</asp:Label>
<asp:TextBox id="TextBox_Y_Max" style="Z-INDEX: 110; LEFT: 568px; POSITION: absolute; TOP: 96px"
runat="server" Width="64px" tabIndex="10">100</asp:TextBox>
<asp:Label id="Label6" style="Z-INDEX: 109; LEFT: 464px; POSITION: absolute; TOP: 96px" runat="server">Y軸の最大値</asp:Label>
<asp:TextBox id="TextBox_Y_Min" style="Z-INDEX: 108; LEFT: 384px; POSITION: absolute; TOP: 96px"
runat="server" Width="64px" tabIndex="9">50</asp:TextBox>
<asp:Label id="Label5" style="Z-INDEX: 107; LEFT: 288px; POSITION: absolute; TOP: 96px" runat="server">Y軸の最小値</asp:Label>
<asp:TextBox id="TextBox_Y_Name" style="Z-INDEX: 106; LEFT: 120px; POSITION: absolute; TOP: 96px"
runat="server" tabIndex="8">Y:%(件)</asp:TextBox>
<asp:Label id="Label3" style="Z-INDEX: 105; LEFT: 32px; POSITION: absolute; TOP: 96px" runat="server">Y軸の名称</asp:Label>
<asp:TextBox id="TextBox_X_Name" style="Z-INDEX: 104; LEFT: 120px; POSITION: absolute; TOP: 56px"
runat="server" tabIndex="4">X:台数</asp:TextBox>
<asp:Label id="Label2" style="Z-INDEX: 103; LEFT: 32px; POSITION: absolute; TOP: 56px" runat="server">X軸の名称</asp:Label>
<asp:Label id="Label1" style="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 24px" runat="server">統計図の名称</asp:Label>
<asp:TextBox id="TextBox_Graph_Name" style="Z-INDEX: 102; LEFT: 120px; POSITION: absolute; TOP: 16px"
runat="server" tabIndex="1">合格率推移</asp:TextBox>
<asp:RadioButton id="RadioButton_Line1_Upper" style="Z-INDEX: 124; LEFT: 688px; POSITION: absolute; TOP: 192px"
runat="server" Text="上" GroupName="RadioButton_Line1_BigGoal_Red" Checked="True" tabIndex="17"></asp:RadioButton>
<asp:Button id="Button_Ok" style="Z-INDEX: 143; LEFT: 832px; POSITION: absolute; TOP: 224px"
runat="server" Width="72px" Height="64px" Text="OK"></asp:Button>
<cc1:ImgGraph id="ImgGraph1" style="Z-INDEX: 144; LEFT: 56px; POSITION: absolute; TOP: 344px"
runat="server" Width="100" Height="100"></cc1:ImgGraph>
<asp:Button id="Button_Reset" style="Z-INDEX: 151; LEFT: 920px; POSITION: absolute; TOP: 224px"
runat="server" Text="初期化" Width="72px" Height="64px"></asp:Button></form>
</body>
</HTML>
WebForm1.aspx.cs 示例页面后台
WebForm1.aspx.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Graph1
{
/**//// <summary>
/// WebForm1 の概要の説明です。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.TextBox TextBox_Graph_Name;
protected System.Web.UI.WebControls.TextBox TextBox_X_Name;
protected System.Web.UI.WebControls.Label Label3;
protected System.Web.UI.WebControls.TextBox TextBox_Y_Name;
protected System.Web.UI.WebControls.Label Label5;
protected System.Web.UI.WebControls.TextBox TextBox_Y_Min;
protected System.Web.UI.WebControls.Label Label6;
protected System.Web.UI.WebControls.TextBox TextBox_Y_Max;
protected System.Web.UI.WebControls.Label Label7;
protected System.Web.UI.WebControls.TextBox TextBox_Y_Unit;
protected System.Web.UI.WebControls.Label Label8;
protected System.Web.UI.WebControls.TextBox TextBox_Line1_Name;
protected System.Web.UI.WebControls.Label Label9;
protected System.Web.UI.WebControls.Label Label10;
protected System.Web.UI.WebControls.Label Label11;
protected System.Web.UI.WebControls.TextBox TextBox_Line1_PointSize;
protected System.Web.UI.WebControls.Label Label12;
protected System.Web.UI.WebControls.Label Label13;
protected System.Web.UI.WebControls.RadioButton RadioButton_Line1_Under;
protected System.Web.UI.WebControls.RadioButton RadioButton_Line1_Upper;
protected System.Web.UI.WebControls.Label Label14;
protected System.Web.UI.WebControls.Label Label15;
protected System.Web.UI.WebControls.Label Label16;
protected System.Web.UI.WebControls.Label Label17;
protected System.Web.UI.WebControls.Label Label18;
protected System.Web.UI.WebControls.Label Label19;
protected System.Web.UI.WebControls.TextBox TextBox_Line1_Color;
protected System.Web.UI.WebControls.Label Label20;
protected System.Web.UI.WebControls.TextBox TextBox_Line2_Name;
protected System.Web.UI.WebControls.Label Label21;
protected System.Web.UI.WebControls.Label Label22;
protected System.Web.UI.WebControls.Label Label23;
protected System.Web.UI.WebControls.Label Label24;
protected System.Web.UI.WebControls.Label Label25;
protected System.Web.UI.WebControls.TextBox TextBox_Line1_Values;
protected System.Web.UI.WebControls.RadioButton RadioButton_Line2_Under;
protected System.Web.UI.WebControls.TextBox TextBox_Line2_Color;
protected System.Web.UI.WebControls.TextBox TextBox_Line2_Goal;
protected System.Web.UI.WebControls.TextBox TextBox_Line2_PointSize;
protected System.Web.UI.WebControls.TextBox TextBox_Line2_Values;
protected System.Web.UI.WebControls.RadioButton RadioButton_Line2_Upper;
protected System.Web.UI.WebControls.TextBox TextBox_Line1_Goal;
protected System.Web.UI.WebControls.Label Label26;
protected System.Web.UI.WebControls.TextBox TextBox_Graph_Width;
protected System.Web.UI.WebControls.Label Label27;
protected System.Web.UI.WebControls.TextBox TextBox_Graph_Height;
protected Graph1.ImgGraph ImgGraph1;
protected System.Web.UI.WebControls.Label Label4;
protected System.Web.UI.WebControls.TextBox TextBox_X_Min;
protected System.Web.UI.WebControls.Label Label28;
protected System.Web.UI.WebControls.TextBox TextBox_X_Max;
protected System.Web.UI.WebControls.Label Label29;
protected System.Web.UI.WebControls.TextBox TextBox_X_Unit;
protected System.Web.UI.WebControls.Button Button_Reset;
protected System.Web.UI.WebControls.Button Button_Ok;
private void Page_Load(object sender, System.EventArgs e)
{
// ページを初期化するユーザー コードをここに挿入します。
}
Web フォーム デザイナで生成されたコード#region Web フォーム デザイナで生成されたコード
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: この呼び出しは、ASP.NET Web フォーム デザイナで必要です。
//
InitializeComponent();
base.OnInit(e);
}
/**//// <summary>
/// デザイナ サポートに必要なメソッドです。このメソッドの内容を
/// コード エディタで変更しないでください。
/// </summary>
private void InitializeComponent()
{
this.Button_Ok.Click += new System.EventHandler(this.Button_Ok_Click);
this.Button_Reset.Click += new System.EventHandler(this.Button_Reset_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Button_Ok_Click(object sender, System.EventArgs e)
{
//統計図の名称
ImgGraph1.Graph_Name=TextBox_Graph_Name.Text;
//統計図の幅
ImgGraph1.Width=Unit.Parse(TextBox_Graph_Width.Text);
//統計図の高さ
ImgGraph1.Height=Unit.Parse(TextBox_Graph_Height.Text);
//Y軸の名称
ImgGraph1.X_Name=TextBox_X_Name.Text;
//X軸の最小値
ImgGraph1.X_Min=float.Parse(TextBox_X_Min.Text);
//X軸の最大値
ImgGraph1.X_Max=float.Parse(TextBox_X_Max.Text);
//X軸の目盛
ImgGraph1.X_Unit=float.Parse(TextBox_X_Unit.Text);
//Y軸の名称
ImgGraph1.Y_Name=TextBox_Y_Name.Text;
//Y軸の最小値
ImgGraph1.Y_Min=float.Parse(TextBox_Y_Min.Text);
//Y軸の最大値
ImgGraph1.Y_Max=float.Parse(TextBox_Y_Max.Text);
//Y軸の目盛
ImgGraph1.Y_Unit=float.Parse(TextBox_Y_Unit.Text);
//線1の名称
ImgGraph1.Line1_Name=TextBox_Line1_Name.Text;
//線1の色
ImgGraph1.Line1_Color=TextBox_Line1_Color.Text;
//線1の目標値
if(TextBox_Line1_Goal.Text.Trim().Length>0)
{
ImgGraph1.Line1_Goal=float.Parse(TextBox_Line1_Goal.Text);
}
//線1の点のサイズ
ImgGraph1.Line1_PointSize=int.Parse(TextBox_Line1_PointSize.Text);
//線1の値
if(TextBox_Line1_Values.Text.Trim().Length>0)
{
ImgGraph1.Line1_Values=ArrayList.Adapter(TextBox_Line1_Values.Text.Split(','));
}
//線1の赤色の点FlAG、TRUE:目標線の上で赤色、FALSE:目標線の下で赤色
ImgGraph1.Line1_UpperGoal_Red=RadioButton_Line1_Upper.Checked;
//線2の名称
ImgGraph1.Line2_Name=TextBox_Line2_Name.Text;
//線2の色
ImgGraph1.Line2_Color=TextBox_Line2_Color.Text;
//線2の目標値
if(TextBox_Line2_Goal.Text.Trim().Length>0)
{
ImgGraph1.Line2_Goal=float.Parse(TextBox_Line2_Goal.Text);
}
//線2の点のサイズ
ImgGraph1.Line2_PointSize=int.Parse(TextBox_Line2_PointSize.Text);
//線2の値
if(TextBox_Line2_Values.Text.Trim().Length>0)
{
ImgGraph1.Line2_Values=ArrayList.Adapter(TextBox_Line2_Values.Text.Split(','));
}
//線2の赤色の点FlAG、TRUE:目標線の上で赤色、FALSE:目標線の下で赤色
ImgGraph1.Line2_UpperGoal_Red=RadioButton_Line2_Upper.Checked;
}
private void Button_Reset_Click(object sender, System.EventArgs e)
{
Response.Redirect("WebForm1.aspx");
}
}
}
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Graph1
{
/**//// <summary>
/// WebForm1 の概要の説明です。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.TextBox TextBox_Graph_Name;
protected System.Web.UI.WebControls.TextBox TextBox_X_Name;
protected System.Web.UI.WebControls.Label Label3;
protected System.Web.UI.WebControls.TextBox TextBox_Y_Name;
protected System.Web.UI.WebControls.Label Label5;
protected System.Web.UI.WebControls.TextBox TextBox_Y_Min;
protected System.Web.UI.WebControls.Label Label6;
protected System.Web.UI.WebControls.TextBox TextBox_Y_Max;
protected System.Web.UI.WebControls.Label Label7;
protected System.Web.UI.WebControls.TextBox TextBox_Y_Unit;
protected System.Web.UI.WebControls.Label Label8;
protected System.Web.UI.WebControls.TextBox TextBox_Line1_Name;
protected System.Web.UI.WebControls.Label Label9;
protected System.Web.UI.WebControls.Label Label10;
protected System.Web.UI.WebControls.Label Label11;
protected System.Web.UI.WebControls.TextBox TextBox_Line1_PointSize;
protected System.Web.UI.WebControls.Label Label12;
protected System.Web.UI.WebControls.Label Label13;
protected System.Web.UI.WebControls.RadioButton RadioButton_Line1_Under;
protected System.Web.UI.WebControls.RadioButton RadioButton_Line1_Upper;
protected System.Web.UI.WebControls.Label Label14;
protected System.Web.UI.WebControls.Label Label15;
protected System.Web.UI.WebControls.Label Label16;
protected System.Web.UI.WebControls.Label Label17;
protected System.Web.UI.WebControls.Label Label18;
protected System.Web.UI.WebControls.Label Label19;
protected System.Web.UI.WebControls.TextBox TextBox_Line1_Color;
protected System.Web.UI.WebControls.Label Label20;
protected System.Web.UI.WebControls.TextBox TextBox_Line2_Name;
protected System.Web.UI.WebControls.Label Label21;
protected System.Web.UI.WebControls.Label Label22;
protected System.Web.UI.WebControls.Label Label23;
protected System.Web.UI.WebControls.Label Label24;
protected System.Web.UI.WebControls.Label Label25;
protected System.Web.UI.WebControls.TextBox TextBox_Line1_Values;
protected System.Web.UI.WebControls.RadioButton RadioButton_Line2_Under;
protected System.Web.UI.WebControls.TextBox TextBox_Line2_Color;
protected System.Web.UI.WebControls.TextBox TextBox_Line2_Goal;
protected System.Web.UI.WebControls.TextBox TextBox_Line2_PointSize;
protected System.Web.UI.WebControls.TextBox TextBox_Line2_Values;
protected System.Web.UI.WebControls.RadioButton RadioButton_Line2_Upper;
protected System.Web.UI.WebControls.TextBox TextBox_Line1_Goal;
protected System.Web.UI.WebControls.Label Label26;
protected System.Web.UI.WebControls.TextBox TextBox_Graph_Width;
protected System.Web.UI.WebControls.Label Label27;
protected System.Web.UI.WebControls.TextBox TextBox_Graph_Height;
protected Graph1.ImgGraph ImgGraph1;
protected System.Web.UI.WebControls.Label Label4;
protected System.Web.UI.WebControls.TextBox TextBox_X_Min;
protected System.Web.UI.WebControls.Label Label28;
protected System.Web.UI.WebControls.TextBox TextBox_X_Max;
protected System.Web.UI.WebControls.Label Label29;
protected System.Web.UI.WebControls.TextBox TextBox_X_Unit;
protected System.Web.UI.WebControls.Button Button_Reset;
protected System.Web.UI.WebControls.Button Button_Ok;
private void Page_Load(object sender, System.EventArgs e)
{
// ページを初期化するユーザー コードをここに挿入します。
}
Web フォーム デザイナで生成されたコード#region Web フォーム デザイナで生成されたコード
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: この呼び出しは、ASP.NET Web フォーム デザイナで必要です。
//
InitializeComponent();
base.OnInit(e);
}
/**//// <summary>
/// デザイナ サポートに必要なメソッドです。このメソッドの内容を
/// コード エディタで変更しないでください。
/// </summary>
private void InitializeComponent()
{
this.Button_Ok.Click += new System.EventHandler(this.Button_Ok_Click);
this.Button_Reset.Click += new System.EventHandler(this.Button_Reset_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Button_Ok_Click(object sender, System.EventArgs e)
{
//統計図の名称
ImgGraph1.Graph_Name=TextBox_Graph_Name.Text;
//統計図の幅
ImgGraph1.Width=Unit.Parse(TextBox_Graph_Width.Text);
//統計図の高さ
ImgGraph1.Height=Unit.Parse(TextBox_Graph_Height.Text);
//Y軸の名称
ImgGraph1.X_Name=TextBox_X_Name.Text;
//X軸の最小値
ImgGraph1.X_Min=float.Parse(TextBox_X_Min.Text);
//X軸の最大値
ImgGraph1.X_Max=float.Parse(TextBox_X_Max.Text);
//X軸の目盛
ImgGraph1.X_Unit=float.Parse(TextBox_X_Unit.Text);
//Y軸の名称
ImgGraph1.Y_Name=TextBox_Y_Name.Text;
//Y軸の最小値
ImgGraph1.Y_Min=float.Parse(TextBox_Y_Min.Text);
//Y軸の最大値
ImgGraph1.Y_Max=float.Parse(TextBox_Y_Max.Text);
//Y軸の目盛
ImgGraph1.Y_Unit=float.Parse(TextBox_Y_Unit.Text);
//線1の名称
ImgGraph1.Line1_Name=TextBox_Line1_Name.Text;
//線1の色
ImgGraph1.Line1_Color=TextBox_Line1_Color.Text;
//線1の目標値
if(TextBox_Line1_Goal.Text.Trim().Length>0)
{
ImgGraph1.Line1_Goal=float.Parse(TextBox_Line1_Goal.Text);
}
//線1の点のサイズ
ImgGraph1.Line1_PointSize=int.Parse(TextBox_Line1_PointSize.Text);
//線1の値
if(TextBox_Line1_Values.Text.Trim().Length>0)
{
ImgGraph1.Line1_Values=ArrayList.Adapter(TextBox_Line1_Values.Text.Split(','));
}
//線1の赤色の点FlAG、TRUE:目標線の上で赤色、FALSE:目標線の下で赤色
ImgGraph1.Line1_UpperGoal_Red=RadioButton_Line1_Upper.Checked;
//線2の名称
ImgGraph1.Line2_Name=TextBox_Line2_Name.Text;
//線2の色
ImgGraph1.Line2_Color=TextBox_Line2_Color.Text;
//線2の目標値
if(TextBox_Line2_Goal.Text.Trim().Length>0)
{
ImgGraph1.Line2_Goal=float.Parse(TextBox_Line2_Goal.Text);
}
//線2の点のサイズ
ImgGraph1.Line2_PointSize=int.Parse(TextBox_Line2_PointSize.Text);
//線2の値
if(TextBox_Line2_Values.Text.Trim().Length>0)
{
ImgGraph1.Line2_Values=ArrayList.Adapter(TextBox_Line2_Values.Text.Split(','));
}
//線2の赤色の点FlAG、TRUE:目標線の上で赤色、FALSE:目標線の下で赤色
ImgGraph1.Line2_UpperGoal_Red=RadioButton_Line2_Upper.Checked;
}
private void Button_Reset_Click(object sender, System.EventArgs e)
{
Response.Redirect("WebForm1.aspx");
}
}
}
ImgGraph.xls 自定义控件帮助文档
ImgGraph.xls
ImgGraph クラス
Web ページ上にイメージを表示します。データによって、統計図をかきます。
カスタムパブリック プロパティ:
属性名 タイプ 既定値 説明
Graph_Name string null 統計図の名称を取得または設定します。
X_Name string null X軸の名称を取得または設定します。
X_Min float 0 X軸の最小値を取得または設定します。
X_Max float 10 X軸の最大値を取得または設定します。
X_Unit float 1 X軸の目盛を取得または設定します。
Y_Name string null Y軸の名称を取得または設定します。
Y_Min float 0 Y軸の最小値を取得または設定します。
Y_Max float 100 Y軸の最大値を取得または設定します。
Y_Unit float 10 Y軸の目盛を取得または設定します。
Line1_Name string null 線1の名称を取得または設定します。
Line1_Color string #FFCC00 線1の色を取得または設定します。
Line1_Goal float float.NaN 線1の目標値を取得または設定します。
Line1_UpperGoal_Red bool true 線1の赤色の点FlAGを取得または設定します。TRUE:目標線の上で赤色、FALSE:目標線の下で赤色
Line1_PointSize int 6 線1の点のサイズを取得または設定します。
Line1_Values ArrayList なし 線1の値の配列を取得または設定します。配列要素はstringタイプです。
Line2_Name string null 線2の名称を取得または設定します。
Line2_Color string #0000FF 線2の色を取得または設定します。
Line2_Goal float float.NaN 線2の目標値を取得または設定します。
Line2_UpperGoal_Red bool true 線2の赤色の点FlAGを取得または設定します。TRUE:目標線の上で赤色、FALSE:目標線の下で赤色
Line2_PointSize int 6 線2の点のサイズを取得または設定します。
Line2_Values ArrayList なし 線2の値の配列を取得または設定します。配列要素はstringタイプです。
継承メンバ:
.NET Framework クラス ライブラリ
System.Web.UI.WebControls.Image Image メンバ を参照してください。
注意事項:
①webルート・ディレクトリの下で、pictempフォルダは読み書きの権限があります。
②もしこのようなエラーが発生するならば:
System.Runtime.InteropServices.COMException: CLSID '{0002E55D-0000-0000-C000-000000000046}' の COM オブジェクトは有効でないか、登録されていません。
ファイルOWC11をダウンロードして下さい、そしてインストールします。
ダウンロードURL: http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=7287252c-402e-4f72-97a5-e0fd290d4b76
ImgGraph クラス
Web ページ上にイメージを表示します。データによって、統計図をかきます。
カスタムパブリック プロパティ:
属性名 タイプ 既定値 説明
Graph_Name string null 統計図の名称を取得または設定します。
X_Name string null X軸の名称を取得または設定します。
X_Min float 0 X軸の最小値を取得または設定します。
X_Max float 10 X軸の最大値を取得または設定します。
X_Unit float 1 X軸の目盛を取得または設定します。
Y_Name string null Y軸の名称を取得または設定します。
Y_Min float 0 Y軸の最小値を取得または設定します。
Y_Max float 100 Y軸の最大値を取得または設定します。
Y_Unit float 10 Y軸の目盛を取得または設定します。
Line1_Name string null 線1の名称を取得または設定します。
Line1_Color string #FFCC00 線1の色を取得または設定します。
Line1_Goal float float.NaN 線1の目標値を取得または設定します。
Line1_UpperGoal_Red bool true 線1の赤色の点FlAGを取得または設定します。TRUE:目標線の上で赤色、FALSE:目標線の下で赤色
Line1_PointSize int 6 線1の点のサイズを取得または設定します。
Line1_Values ArrayList なし 線1の値の配列を取得または設定します。配列要素はstringタイプです。
Line2_Name string null 線2の名称を取得または設定します。
Line2_Color string #0000FF 線2の色を取得または設定します。
Line2_Goal float float.NaN 線2の目標値を取得または設定します。
Line2_UpperGoal_Red bool true 線2の赤色の点FlAGを取得または設定します。TRUE:目標線の上で赤色、FALSE:目標線の下で赤色
Line2_PointSize int 6 線2の点のサイズを取得または設定します。
Line2_Values ArrayList なし 線2の値の配列を取得または設定します。配列要素はstringタイプです。
継承メンバ:
.NET Framework クラス ライブラリ
System.Web.UI.WebControls.Image Image メンバ を参照してください。
注意事項:
①webルート・ディレクトリの下で、pictempフォルダは読み書きの権限があります。
②もしこのようなエラーが発生するならば:
System.Runtime.InteropServices.COMException: CLSID '{0002E55D-0000-0000-C000-000000000046}' の COM オブジェクトは有効でないか、登録されていません。
ファイルOWC11をダウンロードして下さい、そしてインストールします。
ダウンロードURL: http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=7287252c-402e-4f72-97a5-e0fd290d4b76