Пример #1
0
        /// <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();
        }
Пример #2
0
        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("需求等级标签修改成功");
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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);
        }
Пример #5
0
        /// <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();
        }
Пример #6
0
        /// <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());
                }
            }
        }
Пример #7
0
        /// <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);
        }
Пример #8
0
        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上位机");
        }
Пример #9
0
        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"] + ")");
        }
Пример #10
0
        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);     //记录默认的地址
        }
Пример #11
0
        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;
        }
Пример #12
0
        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;
        }
Пример #13
0
        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);
        }
Пример #14
0
        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);
            }
        }
Пример #15
0
        /// <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();
        }
Пример #16
0
        /// <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);
        }