/// <summary> /// 绘制直角坐标通用网格线 /// </summary> /// <param name="g"></param> /// <param name="gd"></param> /// <param name="xa"></param> /// <param name="ya"></param> private void AddGirdSquare(Graphics g, Grid gd, XAxis xa, YAxis ya) { float fX, fY; Pen aPen = new Pen(gd.GridColor, gd.GridThickness); aPen.DashStyle = gd.GridPattern; //绘制垂直格网: if (gd.IsYGrid == true) { for (fX = xa.XLimMin + xa.XTick; fX < xa.XLimMax; fX += xa.XTick) { fX = DataDeal.FloatAccur(fX); //注:float类型变量的精度损失处理 g.DrawLine(aPen, Point2D(new PointF(fX, ya.YLimMin), xa, ya), Point2D(new PointF(fX, ya.YLimMax), xa, ya)); } } //绘制水平格网: if (gd.IsXGrid == true) { for (fY = ya.YLimMin + ya.YTick; fY < ya.YLimMax; fY += ya.YTick) { fY = DataDeal.FloatAccur(fY); g.DrawLine(aPen, Point2D(new PointF(xa.XLimMin, fY), xa, ya), Point2D(new PointF(xa.XLimMax, fY), xa, ya)); } } aPen.Dispose(); }
protected void Button1_Click(object sender, EventArgs e) { int Rq_Satae = 0; switch (TechLevel.SelectedIndex) { case 0: Rq_Satae = 0; break; case 1: Rq_Satae = 1; break; case 2: Rq_Satae = 2; break; } String sql = String.Format("update TechRequire set Rq_status={0} where Rq_ID={1}", Rq_Satae, QueryString["id"]); DataDeal deal = new DataDeal(); deal.SqlExecute(sql); string temp = deal.GetScalar("select Rq_Status from TechRequire where Rq_ID=" + QueryString["id"]); Literal2.Text = deal.GetScalar("select name from f_code where ID='Rq_status' and f_code.Code like " + temp); Alert("需求等级标签修改成功"); }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { DataDeal deal = new DataDeal(); deal.BindCodeList("ColorType", MarkColor, false); deal.BindCodeList("MarkCategory", CategoryID, false); deal.BindCodeList("Rq_Status", TechLevel, false); if ("tech".Equals(QueryString["entity"])) { txtKeywords.Text = deal.GetScalar("select Rq_Keywords from Rq_words_alg where Rq_ID=" + QueryString["id"]); txtNotes.Text = deal.GetScalar("select Rq_EnpDes from TechRequire where Rq_ID=" + QueryString["id"]); Literal1.Text = deal.GetScalar("select dbo.f_GetMark('" + QueryString["entity"] + "'," + QueryString["id"] + ")"); string temp = deal.GetScalar("select Rq_Status from TechRequire where Rq_ID=" + QueryString["id"]); Literal2.Text = deal.GetScalar("select name from f_code where ID='Rq_status' and f_code.Code like " + temp); } else if ("researcher".Equals(QueryString["entity"])) { DataTable dt = deal.GetTable("select Extract from Researcher where id=" + QueryString["id"]); if (!DataHelper.IsNullOrEmpty(dt)) { txtKeywords.Text = ""; txtNotes.Text = dt.Rows[0]["Extract"].ToString(); } } CategoryID_SelectedIndexChanged(null, null); } }
protected void btnSave_Click(object sender, EventArgs e) { List <String> sqls = new List <string>(); sqls.Add("delete from Mark where Entity='" + QueryString["entity"] + "' and EntityID='" + QueryString["id"] + "' and MarkType=" + CategoryID.SelectedValue); foreach (ListItem li in Marks.Items) { if (li.Selected) { sqls.Add(@"INSERT INTO Mark(Entity ,Marker ,MarkTime ,MarkDes ,MarkColor ,EntityID ,MarkType) VALUES('" + QueryString["entity"] + @"' ,'" + CurrentUser.Id + @"' ,getdate() ,'" + li.Value + @"' ," + MarkColor.SelectedValue + @" ,'" + QueryString["id"] + @"' ," + CategoryID.SelectedValue + ")"); } } DataDeal deal = new DataDeal(); deal.SqlExecute(sqls); Literal1.Text = deal.GetScalar("select dbo.f_GetMark('" + QueryString["entity"] + "'," + QueryString["id"] + ")"); Alert("标签提交成功,你可以继续选择其他体系和分类,继续打标签", MarkColor.ClientID); }
/// <summary> /// 默认tick标记内容 /// </summary> private void defaultRMark() { int count = (int)Math.Floor(360 / AngleStep); if (count < 1 || count > 720) { return; } rMark = new string[count]; float angleTick = 0; for (int i = 0; i < count; i++) { if (AngleDirection == PolarCharts.AngleDirectionEnum.ClockWise) { angleTick = i * AngleStep; } else if (AngleDirection == PolarCharts.AngleDirectionEnum.CounterClockWise) { angleTick = 360 - i * AngleStep; if (i == 0) { angleTick = 0; } } rMark[i] = DataDeal.FloatAccur(angleTick).ToString(); } setRMarkFull(); }
/// <summary> /// 接收信息 /// </summary> /// <param name="o"></param> void Receive(object o) { Socket socketSend = o as Socket; while (true) { try { //客户端连接成功后,服务器应该接收客户端发来的消息 byte[] buffer = new byte[1024 * 1024 * 2]; int r = socketSend.Receive(buffer); if (r == 0) { break; } string str = Encoding.UTF8.GetString(buffer, 0, r); Console.WriteLine("服务器收到了:" + str); DataDeal.DealDataPre(App.vM.DataCenter, socketSend, str); } catch (Exception ex) { //抛出异常信息 Console.WriteLine(ex.Message.ToString()); } } }
/// <summary> /// 初始化样式布局(默认为直角坐标,无图例) /// </summary> /// <param name="g"></param> /// <param name="xa"></param> /// <param name="ya"></param> /// <param name="y2a"></param> /// <param name="gd"></param> /// <param name="lb"></param> /// <param name="tl"></param> internal void AddChartStyle(Graphics g, Title tl, XYLabel lb, Grid gd, XAxis xa, YAxis ya, Y2Axis y2a) { //设置绘图区位置、大小 SetPlotArea(g, tl, lb, gd, xa, ya, y2a); //ChartArea和PlotArea底色绘制(通用) FillColorInChartAreas(g); //直角坐标通用网格线 AddGirdSquare(g, gd, xa, ya); //绘制x,y,y2 轴刻度线和标记 float fX, fY; SolidBrush aBrush = new SolidBrush(xa.XTickStyle.TextColor); for (fX = xa.XLimMin; fX <= xa.XLimMax; fX += xa.XTick) { fX = DataDeal.FloatAccur(fX); PointF yAxisPoint = Point2D(new PointF(fX, ya.YLimMin), xa, ya); g.DrawLine(Pens.Black, yAxisPoint, new PointF(yAxisPoint.X, yAxisPoint.Y - 5f)); StringFormat sFormat = new StringFormat(); sFormat.Alignment = StringAlignment.Far; SizeF sizeXTick = g.MeasureString(fX.ToString(), xa.XTickStyle.TextFont); g.DrawString(fX.ToString(), xa.XTickStyle.TextFont, aBrush, new PointF(yAxisPoint.X + sizeXTick.Width / 2, yAxisPoint.Y + 4f), sFormat); } aBrush = new SolidBrush(ya.YTickStyle.TextColor); SizeF tickFontSize = g.MeasureString("A", ya.YTickStyle.TextFont); for (fY = ya.YLimMin; fY <= ya.YLimMax; fY += ya.YTick) { fY = DataDeal.FloatAccur(fY); PointF xAxisPoint = Point2D(new PointF(xa.XLimMin, fY), xa, ya); g.DrawLine(Pens.Black, xAxisPoint, new PointF(xAxisPoint.X + 5f, xAxisPoint.Y)); StringFormat sFormat = new StringFormat(); sFormat.Alignment = StringAlignment.Far; g.DrawString(fY.ToString(), ya.YTickStyle.TextFont, aBrush, new PointF(xAxisPoint.X - 3f, xAxisPoint.Y - tickFontSize.Height / 2), sFormat); } if (y2a.IsY2Axis) { aBrush = new SolidBrush(y2a.Y2TickStyle.TextColor); tickFontSize = g.MeasureString("A", y2a.Y2TickStyle.TextFont); for (fY = y2a.Y2LimMin; fY <= y2a.Y2LimMax; fY += y2a.Y2Tick) { fY = DataDeal.FloatAccur(fY); PointF x2AxisPoint = Point2DY2(new PointF(xa.XLimMax, fY), xa, y2a); g.DrawLine(Pens.Black, x2AxisPoint, new PointF(x2AxisPoint.X - 5f, x2AxisPoint.Y)); StringFormat sFormat = new StringFormat(); sFormat.Alignment = StringAlignment.Near; g.DrawString(fY.ToString(), y2a.Y2TickStyle.TextFont, aBrush, new PointF(x2AxisPoint.X + 3f, x2AxisPoint.Y - tickFontSize.Height / 2), sFormat); } } aBrush.Dispose(); AddTitle(g, tl); AddLabels(g, tl, lb, y2a); }
private void FormS1_Load(object sender, EventArgs e) { lForm = (MainForm)this.Owner; //把Form2的父窗口指针赋给lForm1 lForm.MyEventCOMVerS1 += new MainForm.MyDelegate(Main_Connet); //监听MainForm窗体事件 S1data = lForm.data; timerRefresh.Enabled = true; lForm.RecodeInfo("上位机版本为:S1上位机"); }
protected void btnSave_Clickc(object sender, EventArgs e) { String sql = String.Format("delete from Mark where Entity='tech' and EntityID={0}", QueryString["id"]); DataDeal deal = new DataDeal(); deal.SqlExecute(sql); Alert("标签清空"); Literal1.Text = deal.GetScalar("select dbo.f_GetMark('" + QueryString["entity"] + "'," + QueryString["id"] + ")"); }
private void FormGaugeP_Load(object sender, EventArgs e) { lForm = (MainForm)this.Owner; //把FormGaugeP的父窗口指针赋给lForm1 lForm.MyEventCOMVerGaugeP += new MainForm.MyDelegate(GP_Connet); //监听MainForm窗体事件 GPdata = lForm.data; timerRefresh.Enabled = true; lForm.RecodeInfo("上位机版本为:负压表上位机"); GPdata.Comaddr = Convert.ToInt32(tbAddr.Text); //记录默认的地址 }
private void ConfLimt_Load(object sender, EventArgs e) { FormS2 lForm1 = (FormS2)this.Owner; //把Form2的父窗口指针赋给lForm1 comboBox1.SelectedIndex = lForm1.SetSignEnLimit; //极限使能信号 comboBox2.SelectedIndex = lForm1.SetSignEnOrigin; //原点使能信号 comboBox3.SelectedIndex = lForm1.SetSignReversalLimit; //反转极限信号 comboBox4.SelectedIndex = lForm1.SetSignReversalOrigin; //反转原点信号 S2datal = lForm1.S2data; }
private void FormYKUCC52_Load(object sender, EventArgs e) { lForm = (MainForm)this.Owner; //把Form2的父窗口指针赋给lForm1 lForm.MyEventCOMVerYTUCC52 += new MainForm.MyDelegate(Main_Connet); //监听MainForm窗体事件 UCdata = lForm.data; tFresh.Enabled = true; lForm.RecodeInfo("上位机版本为:调光器上位机"); ToolTipShow(toolTip1, lbSW1, "测试效果"); int[] temp = new int[4] { 0, 0, 0, 0 }; UCdata.ucPWMstate = temp; UCdata.ucDutyCycle = temp; }
private bool CleanMethod() { try { if (DataDeal != null) { foreach (Delegate odel in DataDeal.GetInvocationList()) { DataDeal -= (RFIDDataEventHandler)odel; } } } catch (Exception ex) { m_strMessage = string.Format("有异常发生:{0}", ex.Message); return(false); } return(true); }
private void AddTicksPolar(Graphics g, RAxis ra) { SolidBrush aBrush = new SolidBrush(ra.RTickStyle.TextColor); StringFormat sFormat = new StringFormat(); float xc = polarArea.X + polarArea.Width / 2; float yc = polarArea.Y + polarArea.Height / 2; int tickCount = Convert.ToInt32(Math.Ceiling((ra.RMax - ra.RMin) / ra.RTick)); float dr = polarArea.Width / 2 / tickCount; // Draw the radius labels:值标记 sFormat.Alignment = StringAlignment.Near; for (int i = 0; i <= tickCount; i++) { float fY = ra.RMin + i * ra.RTick; fY = DataDeal.FloatAccur(fY); g.DrawString(fY.ToString(), ra.RTickStyle.TextFont, aBrush, new PointF(xc, yc - i * dr - 0.2f * dr), sFormat); } // Draw the angle labels:方向标记 sFormat.Alignment = StringAlignment.Center; SizeF tickFontSize = g.MeasureString("A", ra.RTickStyle.TextFont); float angleLabel = 0; int angledir = 1; for (int i = 0; i < (int)360 / ra.AngleStep; i++) { if (ra.AngleDirection == PolarCharts.AngleDirectionEnum.ClockWise) { angledir = 1; } else if (ra.AngleDirection == PolarCharts.AngleDirectionEnum.CounterClockWise) { angledir = -1; } float x = (RNorm(ra.RMax, ra) + polarArea.Width / 10f * 2 / 3) * (float)Math.Cos((ra.StartAngle + i * ra.AngleStep) * angledir * Math.PI / 180) + xc; float y = (RNorm(ra.RMax, ra) + polarArea.Width / 10f * 2 / 3) * (float)Math.Sin((ra.StartAngle + i * ra.AngleStep) * angledir * Math.PI / 180) + yc; g.DrawString(ra.RMarkFull[i].ToString(), ra.RTickStyle.TextFont, aBrush, new PointF(x, y - tickFontSize.Height / 2), sFormat); } }
/// <summary> /// 绘制刻度线和标记(受数据影响) /// </summary> /// <param name="g"></param> /// <param name="lb"></param> /// <param name="xa"></param> /// <param name="ya"></param> /// <param name="y2a"></param> private void AddTicks(Graphics g, XYLabel lb, XAxis xa, YAxis ya, Y2Axis y2a) { float fX, fY; //绘制x轴刻度线和标记: SolidBrush aBrush = new SolidBrush(xa.XTickStyle.TextColor); SizeF sizeXTick; //出现在SetPlotArea和AddTicks中轴循环 //for(float xTick = xa.XLimMin; xTick <= xa.XLimMax; xTick += xa.XTick) //弃用原因1:防止Tick为0时出现死循环 //弃用原因2:float的精度损失程度累加 int count = (int)Math.Round((xa.XLimMax - xa.XLimMin) / xa.XTick) + 1; for (int i = 0; i < count; i++) { fX = xa.XLimMin + i * xa.XTick; fX = DataDeal.FloatAccur(fX); PointF yAxisPoint = Point2D(new PointF(fX, ya.YLimMin), xa, ya); g.DrawLine(Pens.Black, yAxisPoint, new PointF(yAxisPoint.X, yAxisPoint.Y - 5f)); StringFormat sFormat = new StringFormat(); sFormat.Alignment = StringAlignment.Far; sizeXTick = g.MeasureString(xa.XTickMarkFull[i], xa.XTickStyle.TextFont); if (xa.XTickAngle != 0) { g.TranslateTransform(yAxisPoint.X, yAxisPoint.Y); //设置旋转中心为文字中心 g.RotateTransform(xa.XTickAngle); //旋转 //g.TranslateTransform(-yAxisPoint.X, -yAxisPoint.Y); g.DrawString(xa.XTickMarkFull[i], xa.XTickStyle.TextFont, aBrush, new PointF(0, 4f - sizeXTick.Height / 2), sFormat); g.ResetTransform(); } else { g.DrawString(xa.XTickMarkFull[i], xa.XTickStyle.TextFont, aBrush, new PointF(yAxisPoint.X + sizeXTick.Width / 2, yAxisPoint.Y + 4f), sFormat); } } SizeF tickFontSize = g.MeasureString("A", ya.YTickStyle.TextFont); //绘制y轴刻度线和标记: int ycount = (int)Math.Round((ya.YLimMax - ya.YLimMin) / ya.YTick) + 1; for (int i = 0; i < ycount; i++) { fY = ya.YLimMin + i * ya.YTick; fY = DataDeal.FloatAccur(fY); PointF xAxisPoint = Point2D(new PointF(xa.XLimMin, fY), xa, ya); g.DrawLine(Pens.Black, xAxisPoint, new PointF(xAxisPoint.X + 5f, xAxisPoint.Y)); StringFormat sFormat = new StringFormat(); sFormat.Alignment = StringAlignment.Far; g.DrawString(fY.ToString(), ya.YTickStyle.TextFont, aBrush, new PointF(xAxisPoint.X - 3f, xAxisPoint.Y - tickFontSize.Height / 2), sFormat); } //绘制y2轴刻度线和标记: if (y2a.IsY2Axis) { int y2count = (int)Math.Round((y2a.Y2LimMax - y2a.Y2LimMin) / y2a.Y2Tick) + 1; for (int i = 0; i < y2count; i++) { fY = y2a.Y2LimMin + i * y2a.Y2Tick; fY = DataDeal.FloatAccur(fY); PointF x2AxisPoint = Point2DY2(new PointF(xa.XLimMax, fY), xa, y2a); g.DrawLine(Pens.Black, x2AxisPoint, new PointF(x2AxisPoint.X - 5f, x2AxisPoint.Y)); StringFormat sFormat = new StringFormat(); sFormat.Alignment = StringAlignment.Near; g.DrawString(fY.ToString(), y2a.Y2TickStyle.TextFont, aBrush, new PointF(x2AxisPoint.X + 3f, x2AxisPoint.Y - tickFontSize.Height / 2), sFormat); } } aBrush.Dispose(); }
/// <summary> /// 设置默认绘图区位置,大小(无图例影响的默认位置) /// </summary> /// <param name="g"></param> /// <param name="xa"></param> /// <param name="ya"></param> /// <param name="y2a"></param> /// <param name="gd"></param> /// <param name="lb"></param> /// <param name="tl"></param> private void SetPlotArea(Graphics g, Title tl, XYLabel lb, Grid gd, XAxis xa, YAxis ya, Y2Axis y2a) { SizeF titleFontSize = g.MeasureString("A", tl.TitleStyle.TextFont); if (string.IsNullOrWhiteSpace(tl.TitleName) || tl.TitleName.ToUpper() == "NO TITLE") { titleFontSize.Width = 8f; titleFontSize.Height = 8f; } float xSpacing = XOffset / 2.0f; float ySpacing = YOffset / 2.0f; SizeF tickFontSize = g.MeasureString("A", xa.XTickStyle.TextFont); float tickSpacing = 2f; //获取y轴标记宽度 SizeF yTickSize = g.MeasureString(ya.YLimMin.ToString(), ya.YTickStyle.TextFont); int ycount = (int)Math.Round((ya.YLimMax - ya.YLimMin) / ya.YTick) + 1; for (int i = 0; i < ycount; i++) { float yTick = ya.YLimMin + i * ya.YTick; yTick = DataDeal.FloatAccur(yTick); SizeF tempSize = g.MeasureString(yTick.ToString(), ya.YTickStyle.TextFont); if (yTickSize.Width < tempSize.Width) { yTickSize = tempSize; } } SizeF labelFontSize = g.MeasureString("A", lb.XYLabelStyle.TextFont); float leftMargin = XOffset + labelFontSize.Height + xSpacing + yTickSize.Width + tickSpacing; float rightMargin = 2 * XOffset; float topMargin = YOffset + titleFontSize.Height + ySpacing; float bottomMargin = YOffset + labelFontSize.Height + ySpacing + tickFontSize.Height + tickSpacing; //单y轴绘图区大小 int plotX = ChartArea.X + (int)leftMargin; int plotY = ChartArea.Y + (int)topMargin; int plotHeight = ChartArea.Height - (int)topMargin - (int)bottomMargin; int plotWidth = ChartArea.Width - (int)leftMargin - (int)rightMargin; //双y轴:重新定义绘图区宽度 if (y2a.IsY2Axis) { //y2轴标记宽度 SizeF y2TickSize = g.MeasureString(y2a.Y2LimMin.ToString(), y2a.Y2TickStyle.TextFont); int y2count = (int)Math.Round((y2a.Y2LimMax - y2a.Y2LimMin) / y2a.Y2Tick) + 1; for (int i = 0; i < ycount; i++) { float y2Tick = y2a.Y2LimMin + i * y2a.Y2Tick; y2Tick = DataDeal.FloatAccur(y2Tick); SizeF tempSize2 = g.MeasureString(y2Tick.ToString(), y2a.Y2TickStyle.TextFont); if (y2TickSize.Width < tempSize2.Width) { y2TickSize = tempSize2; } } rightMargin = XOffset + labelFontSize.Height + xSpacing + y2TickSize.Width + tickSpacing; plotWidth = ChartArea.Width - (int)leftMargin - (int)rightMargin; } plotArea = new Rectangle(plotX, plotY, plotWidth, plotHeight); }