📄 frmgraph.cs
字号:
nA = 0; // Initialize axis, non-zero only if using MultiAxesSubsets
nX = pX; // Initialize nX and nY with mouse location
nY = pY;
Pego1.PeFunction.ConvPixelToGraph(ref nA,ref nX,ref nY,ref fX,ref fY, false, false, false);
// We now know data coordinates for mouse location //
// Code to pick closest point index //
fY = Math.Abs(fX - Convert.ToInt32(fX));
if(fY > 0.5)
{
nX = Convert.ToInt32(fX);
}
else
{
nX = Convert.ToInt32(fX) - 1;
}
if(fX < 1 || fX > 731)
{ // 731 points per subset in data file
Pego1.PeAnnotation.Table.Text[12, 0] = " ";
Pego1.PeAnnotation.Table.Text[13, 0] = " ";
Pego1.PeAnnotation.Table.Text[14, 0] = " ";
Pego1.PeAnnotation.Table.Text[15, 0] = " ";
Pego1.PeAnnotation.Table.Text[16, 0] = " ";
Pego1.PeAnnotation.Table.Text[17, 0] = " ";
Pego1.PeFunction.DrawTable(0);
return;
}
nX = Convert.ToInt32(nX - 1.0F);
// Get Data at closest point //
fHigh = Pego1.PeData.Y[0, nX];
fLow = Pego1.PeData.Y[1, nX];
fOpen = Pego1.PeData.Y[2, nX];
fClose = Pego1.PeData.Y[3, nX];
fVolume = Pego1.PeData.Y[7, nX];
szDate = Pego1.PeData.PointLabels[nX];
// Place text in table annotation //
// Get numeric precision //
nX = Convert.ToInt32(Pego1.PeData.Precision);
szFmt = "###.";
for(t = 0; t <= (nX - 1); t++)
{
szFmt = szFmt + "0";
}
// Place text in table annotation //
Pego1.PeAnnotation.Table.Working = 0;
Pego1.PeAnnotation.Table.Text[12, 0] = szDate;
Pego1.PeAnnotation.Table.Text[13, 0] = "H:" + String.Format("{0:" + szFmt + "}",fHigh);
Pego1.PeAnnotation.Table.Text[14, 0] = "L:" + String.Format("{0:" + szFmt + "}",fLow);
Pego1.PeAnnotation.Table.Text[15, 0] = "O:" + String.Format("{0:" + szFmt + "}",fOpen);
Pego1.PeAnnotation.Table.Text[16, 0] = "C:" + String.Format("{0:" + szFmt + "}",fClose);
Pego1.PeAnnotation.Table.Text[17, 0] = "V:" + String.Format("{0:#############}",fVolume);
Pego1.PeFunction.DrawTable(0);
}
}
private void CreateSimpleGraph()
{
int s, p;
Random Rand_Num = new Random(unchecked((int)DateTime.Now.Ticks));
// Prepare images in memory //
Pego1.PeConfigure.PrepareImages = true;
// Pass Data //
Pego1.PeData.Subsets = 4;
Pego1.PeData.Points = 12;
for(s = 0; s <= 3; s++)
{
for(p = 0; p <= 11; p++)
{
Pego1.PeData.Y[s, p] = ((p + 1) * 50) + ((float)(Rand_Num.NextDouble()) * 250) + 2;
}
}
// Set DataShadows to show 3D //
Pego1.PePlot.DataShadows = DataShadows.Shadows;
Pego1.PeUserInterface.Allow.FocalRect = false;
Pego1.PePlot.Method = GraphPlottingMethod.Bar;
Pego1.PeGrid.LineControl = GridLineControl.None;
Pego1.PePlot.Allow.Ribbon = true;
Pego1.PeUserInterface.Allow.Zooming = AllowZooming.HorzAndVert;
Pego1.PeUserInterface.Allow.ZoomStyle = ZoomStyle.Ro2Not;
Pego1.PeString.MainTitle = "Units Sold per Month";
Pego1.PeString.SubTitle = "";
Pego1.PeString.YAxisLabel = "Units Sold";
Pego1.PeString.XAxisLabel = "Month";
// subset labels //
Pego1.PeString.SubsetLabels[0] = "Texas";
Pego1.PeString.SubsetLabels[1] = "Florida";
Pego1.PeString.SubsetLabels[2] = "Washington";
Pego1.PeString.SubsetLabels[3] = "California";
// point labels //
Pego1.PeString.PointLabels[0] = "January";
Pego1.PeString.PointLabels[1] = "February";
Pego1.PeString.PointLabels[2] = "March";
Pego1.PeString.PointLabels[3] = "April";
Pego1.PeString.PointLabels[4] = "May";
Pego1.PeString.PointLabels[5] = "June";
Pego1.PeString.PointLabels[6] = "July";
Pego1.PeString.PointLabels[7] = "August";
Pego1.PeString.PointLabels[8] = "September";
Pego1.PeString.PointLabels[9] = "October";
Pego1.PeString.PointLabels[10] = "November";
Pego1.PeString.PointLabels[11] = "December";
// subset colors //
Pego1.PeColor.SubsetColors[0] = Color.FromArgb(198, 0, 0);
Pego1.PeColor.SubsetColors[1] = Color.FromArgb(0, 198, 198);
Pego1.PeColor.SubsetColors[2] = Color.FromArgb(198, 198, 0);
Pego1.PeColor.SubsetColors[3] = Color.FromArgb(0, 198, 0);
// subset line types //
Pego1.PeLegend.SubsetLineTypes[0] = LineType.MediumSolid;
Pego1.PeLegend.SubsetLineTypes[1] = LineType.MediumSolid;
Pego1.PeLegend.SubsetLineTypes[2] = LineType.MediumSolid;
Pego1.PeLegend.SubsetLineTypes[3] = LineType.MediumSolid;
Pego1.PeLegend.SubsetLineTypes[4] = LineType.MediumSolid;
Pego1.PeLegend.SubsetLineTypes[5] = LineType.MediumSolid;
Pego1.PeLegend.SubsetLineTypes[6] = LineType.MediumSolid;
Pego1.PeLegend.SubsetLineTypes[7] = LineType.MediumSolid;
// subset point types //
Pego1.PeLegend.SubsetPointTypes[0] = PointType.DotSolid;
Pego1.PeLegend.SubsetPointTypes[1] = PointType.UpTriangleSolid;
Pego1.PeLegend.SubsetPointTypes[2] = PointType.SquareSolid;
Pego1.PeLegend.SubsetPointTypes[3] = PointType.DownTriangleSolid;
Pego1.PeLegend.SubsetPointTypes[4] = PointType.Dot;
Pego1.PeLegend.SubsetPointTypes[5] = PointType.UpTriangle;
Pego1.PeLegend.SubsetPointTypes[6] = PointType.Square;
Pego1.PeLegend.SubsetPointTypes[7] = PointType.DownTriangle;
Pego1.PeLegend.SimplePoint = true;
Pego1.PeLegend.SimpleLine = true;
Pego1.PeLegend.Style = LegendStyle.OneLine;
// Allow stacked type graphs //
Pego1.PePlot.Allow.StackedData = true;
// Various other features //
Pego1.PeFont.Fixed = true;
Pego1.PeColor.BitmapGradientMode = true;
Pego1.PeColor.QuickStyle = QuickStyle.MediumLine;
Pego1.PePlot.Option.GradientBars = 8;
Pego1.PePlot.Option.LineShadows = true;
Pego1.PeFont.MainTitle.Bold = true;
Pego1.PeFont.SubTitle.Bold = true;
Pego1.PeFont.Label.Bold = true;
Pego1.PeConfigure.TextShadows = TextShadows.BoldText;
Pego1.PeFont.FontSize = FontSize.Large;
}
public void CreateAllCharts(int nChart)
{
m_nChart = nChart;
if(Pego1 == null)
return;
Timer1.Enabled = false;
Pego1.PeFunction.Reset();
Pego1.PeFunction.Reinitialize();
Pego1.PeConfigure.PrepareImages = true;
Random Rand_Num = new Random(unchecked((int)DateTime.Now.Ticks));
if(m_nChart == 0)
{
int p,k;
string mstr,mstrName;
Pego1.PeConfigure.PrepareImages = true;
// Pass Data //
Pego1.PeData.Subsets = 2;
Pego1.PeData.Points = 12;
for(p = 0; p < 12; p++)
{
if ( p<10 )
{
mstr= System.DateTime.Now.Year.ToString() + "0" + (p+1).ToString();
}
else
{
mstr= System.DateTime.Now.Year.ToString() + (p+1).ToString();
}
DataTable dtFilter=new DataTable();
DataRow myDataRow;
mstrName="Select distinct Count(AcceptNO) as AcceptNO From Accept Where SUBSTRING(AcceptNO, 6, 6) = '" + mstr + "'";
SqlConnection cnnSql = new SqlConnection(strConn);
cnnSql.Open();
dtFilter.Clear();
SqlCommand cmdSql = new SqlCommand(mstrName,cnnSql);
SqlDataAdapter daSql = new SqlDataAdapter(cmdSql);
try
{
daSql.Fill(dtFilter);
}
catch(SqlException expSql)
{
MessageBox.Show(expSql.ToString(), this.Text);
return;
}
cnnSql.Close();
cmdSql.Dispose();
cnnSql.Dispose();
myDataRow=dtFilter.Rows[0];
mstrName=myDataRow["AcceptNO"].ToString();
if (mstrName=="0")
{
Pego1.PeData.Y[0, p] =0;
}
else
{
Pego1.PeData.Y[0, p] =Int32.Parse(mstrName);
}
}
k= System.DateTime.Now.Year - 1;
for(p = 0; p < 12; p++)
{
if ( p<10 )
{
mstr= k.ToString() + "0" + (p+1).ToString();
}
else
{
mstr= k.ToString() + (p+1).ToString();
}
DataTable dtFilter=new DataTable();
DataRow myDataRow;
mstrName="Select Count(AcceptNO) as AcceptNO From Accept Where SUBSTRING(AcceptNO, 6, 6) = '" + mstr + "'";
SqlConnection cnnSql = new SqlConnection(strConn);
cnnSql.Open();
dtFilter.Clear();
SqlCommand cmdSql = new SqlCommand(mstrName,cnnSql);
SqlDataAdapter daSql = new SqlDataAdapter(cmdSql);
try
{
daSql.Fill(dtFilter);
}
catch(SqlException expSql)
{
MessageBox.Show(expSql.ToString(), this.Text);
return;
}
cnnSql.Close();
cmdSql.Dispose();
cnnSql.Dispose();
myDataRow=dtFilter.Rows[0];
mstrName=myDataRow["AcceptNO"].ToString();
if (mstrName=="0")
{
Pego1.PeData.Y[1, p] =0;
}
else
{
Pego1.PeData.Y[1, p] =Int32.Parse(mstrName);
}
}
Pego1.PePlot.DataShadows = DataShadows.Shadows;
Pego1.PeUserInterface.Allow.FocalRect = false;
Pego1.PePlot.Method = GraphPlottingMethod.Bar;
Pego1.PeGrid.LineControl = GridLineControl.None;
Pego1.PePlot.Allow.Ribbon = true;
Pego1.PeUserInterface.Allow.Zooming = AllowZooming.HorzAndVert;
Pego1.PeUserInterface.Allow.ZoomStyle = ZoomStyle.Ro2Not;
Pego1.PeString.MainTitle = "今年/去年同月事故比较";
Pego1.PeString.SubTitle = "";
Pego1.PeString.YAxisLabel = "事故 数量";
Pego1.PeString.XAxisLabel = "月";
// subset labels //
Pego1.PeString.SubsetLabels[0] = System.DateTime.Now.Year.ToString() + "年";
Pego1.PeString.SubsetLabels[1] = (Int32.Parse(System.DateTime.Now.Year.ToString()) -1) + "年" ;
// point labels //
Pego1.PeString.PointLabels[0] = "一月";
Pego1.PeString.PointLabels[1] = "二月";
Pego1.PeString.PointLabels[2] = "三月";
Pego1.PeString.PointLabels[3] = "四月";
Pego1.PeString.PointLabels[4] = "五月";
Pego1.PeString.PointLabels[5] = "六月";
Pego1.PeString.PointLabels[6] = "七月";
Pego1.PeString.PointLabels[7] = "八月";
Pego1.PeString.PointLabels[8] = "九月";
Pego1.PeString.PointLabels[9] = "十月";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -