Exemple #1
0
 private void Clear(object sender, RoutedEventArgs e)
 {
     // System.Diagnostics.Process.Start(Application.ResourceAssembly.Location); // Application.Current.Shutdown();
     //MyChart.Resources.Clear(); // mydata.Clear();
     MySeries.MyData.Clear();
     MyChart.PlotAreaBorder_SizeChanged(this, null);
 }
        private void PersonCmbx_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            List <ModalType> modals = new List <ModalType>();

            foreach (var pis in DataAccessFacade.Instance.GetSceneInUseAccess().GetScene().PersonsInScene)
            {
                if (e.AddedItems.Count == 1 && e.AddedItems[0].Equals(pis.Person))
                {
                    foreach (var smPis in pis.SubModalType_PersonInScenes)
                    {
                        var intervals = DataAccessFacade.Instance.GetIntervalAccess().GetAll(pis.Person,
                                                                                             smPis.SubModalType.ModalTypeId,
                                                                                             smPis.SubModalTypeId);
                        if (!ReferenceEquals(null, intervals) &&
                            intervals.Count > 0 &&
                            !modals.Contains(smPis.SubModalType.ModalType))
                        {
                            modals.Add(smPis.SubModalType.ModalType);
                        }
                    }
                }
            }
            ModalCmbx.SelectedIndex    = -1;
            SubmodalCmbx.SelectedIndex = -1;
            ModalCmbx.ItemsSource      = modals;

            //SeriesCollection = null;

            MyChart.Series = null;
            MyChart.Update();

            //Refresh();
        }
Exemple #3
0
        private void FillGraph(List <Event> events)
        {
            var dayConfig = Mappers.Xy <TimeModel>()
                            .X(dayModel => (double)dayModel.TimeSpan.TotalSeconds)
                            .Y(dayModel => dayModel.Value);

            SeriesCollection = new SeriesCollection(dayConfig);

            var values = new ChartValues <TimeModel>();

            foreach (var event_data in events)
            {
                values.Add(new TimeModel()
                {
                    TimeSpan = event_data.EventTime,
                    Value    = event_data.Value ?? 1
                });
            }
            SeriesCollection.Add(new LineSeries()
            {
                Values = values,
                Fill   = Brushes.Transparent
            });

            MyChart.Series = SeriesCollection;
            MyChart.Update();
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="fs"></param>
        /// <param name="cmd"></param>
        public void Init(byte fs, int freqSpan, MyChart usedChart)
        {
            int i       = 0;
            int freqMHz = this.startFreqMHz;
            int _return = 0;

            usedChart.ClearChart();
            if (this.siteACurrentX100mA[0] > 100)
            {
                usedChart.AddShowCurve("SITEA", Color.Blue);
                _return |= 0x01;
            }
            if (this.siteBCurrentX100mA[0] > 100)
            {
                usedChart.AddShowCurve("SITEB", Color.Yellow);
                _return |= 0x02;
            }
            if (this.siteCCurrentX100mA[0] > 100)
            {
                usedChart.AddShowCurve("SITEC", Color.Green);
                _return |= 0x04;
            }
            if (this.siteDCurrentX100mA[0] > 100)
            {
                usedChart.AddShowCurve("SITED", Color.GreenYellow);
                _return |= 0x08;
            }
            usedChart.SetXAxisScaleMin(freqMHz - freqSpan * 10);
            usedChart.SetXAxisScaleMajorStep(freqSpan * 5);
            //usedChart.SetYAxisScaleMajorStep(freqSpan);
            for (i = 0; i < this.siteACurrentX100mA.Count; i++)
            {
                if (i != 0)
                {
                    freqMHz += freqSpan;
                }
                if ((_return & 0x01) != 0)
                {
                    usedChart.AddXYPoint("SITEA", freqMHz, this.siteACurrentX100mA[i]);
                }
                if ((_return & 0x02) != 0)
                {
                    usedChart.AddXYPoint("SITEB", freqMHz, this.siteBCurrentX100mA[i]);
                }
                if ((_return & 0x04) != 0)
                {
                    usedChart.AddXYPoint("SITEC", freqMHz, this.siteCCurrentX100mA[i]);
                }
                if ((_return & 0x08) != 0)
                {
                    usedChart.AddXYPoint("SITED", freqMHz, this.siteDCurrentX100mA[i]);
                }
            }
            //usedChart.AddShowCurve("SITEA", listA, Color.Blue);
            //usedChart.AddShowCurve("SITEB", listB, Color.Yellow);
            //usedChart.AddShowCurve("SITEC", listC, Color.Green);
            //usedChart.AddShowCurve("SITED", listD, Color.GreenYellow);
        }
Exemple #5
0
 private void Home_ResizeEnd(object sender, EventArgs e)
 {
     try
     {
         MyChart.Refresh();
     }
     catch
     {
     }
 }
        private void FillGraph(List <Interval> intervals)
        {
            SeriesCollection = new SeriesCollection();
            double last = 0;

            foreach (var interval in intervals)
            {
                if (interval.StartTime.TotalSeconds - last > 0)
                {
                    SeriesCollection.Add(new StackedRowSeries
                    {
                        Values = new ChartValues <double> {
                            interval.StartTime.TotalSeconds - last
                        },
                        StackMode  = StackMode.Values,
                        Fill       = Brushes.White,
                        DataLabels = false,
                        LabelPoint = p => p.X.ToString()
                    });
                    Console.WriteLine($"Añadido white de {interval.StartTime.TotalSeconds - last}");
                }
                if (interval.EndTime.TotalSeconds - interval.StartTime.TotalSeconds > 0)
                {
                    SeriesCollection.Add(new StackedRowSeries
                    {
                        Values = new ChartValues <double> {
                            interval.EndTime.TotalSeconds - interval.StartTime.TotalSeconds
                        },
                        StackMode  = StackMode.Values,
                        Fill       = Brushes.Blue,
                        DataLabels = true,
                        LabelPoint = p => p.X.ToString("F0")
                    });
                    Console.WriteLine($"Añadido blue de {interval.EndTime.TotalSeconds - interval.StartTime.TotalSeconds}");
                }
                last = interval.EndTime.TotalSeconds;
            }
            if (DataAccessFacade.Instance.GetSceneInUseAccess().GetScene().Duration.TotalSeconds - last > 0)
            {
                SeriesCollection.Add(new StackedRowSeries
                {
                    Values = new ChartValues <double> {
                        DataAccessFacade.Instance.GetSceneInUseAccess().GetScene().Duration.TotalSeconds - last
                    },
                    StackMode  = StackMode.Values,
                    Fill       = Brushes.White,
                    DataLabels = false,
                    LabelPoint = p => p.X.ToString()
                });
            }

            MyChart.Series = SeriesCollection;
            MyChart.Update();
        }
Exemple #7
0
        void ShowData(int lastToShow, int SizeOfGraph)
        {
            if (lastToShow >= ObsManage.ObservationCount)
            {
                return; //out of range, if statment true, then return false and do nothing
            }
            int countOfObservationToAdd = lastToShow - IndexOfCurrentObservation;

            if (countOfObservationToAdd == 0)
            {
                return; // nothing to do, everything is shown
            }
            if (IndexOfCurrentObservation < lastToShow && MySeries.MyData.Count + countOfObservationToAdd <= SizeOfGraph)
            {
                if (MySeries.MyData.Count + countOfObservationToAdd <= SizeOfGraph)
                {
                    for (int i = 0; i < countOfObservationToAdd; i++)
                    {
                        IndexOfCurrentObservation++;
                        if (IndexOfCurrentObservation == 0)
                        {
                            mydata.Add(MySeries);
                        }
                        Observation obs = ObsManage.GetObservation(IndexOfCurrentObservation);
                        MySeries.MyData.Add(new DataPoint()
                        {
                            Frequency = obs.TimeDiff, Value = obs.price
                        });
                    }
                }
            }
            else
            {
                int iStartToShow = Math.Max(0, lastToShow - SizeOfGraph + 1);
                int iLimToShow   = Math.Min(iStartToShow + SizeOfGraph, ObsManage.GetObservationCount);
                MySeries.MyData.Clear();
                for (int i = iStartToShow; i < iLimToShow; i++)
                {
                    var obs     = ObsManage.GetObservation(i);
                    var dataPnt = new DataPoint()
                    {
                        Frequency = obs.TimeDiff, Value = obs.price
                    };
                    MySeries.MyData.Add(dataPnt);
                }
                IndexOfCurrentObservation = iLimToShow - 1;
            }

            if (mydata.Count == 0)
            {
                mydata.Add(MySeries);
            }
            MyChart.PlotAreaBorder_SizeChanged(this, null);
        }
Exemple #8
0
        public ActionResult Adapter()
        {
            Pattern.GangOfFour.Structural.IChart chart = new MyChart();
            chart.GenerateChart();

            chart = new MyChartAdapter();
            chart.GenerateChart();

            chart = new MyChartAdapter2();
            chart.GenerateChart();

            return(View());
        }
        public ScrollingChart()
        {
            InitializeComponent();

            DataSet = new SeriesCollection
            {
                new LineSeries
                {
                    AreaLimit = 0,
                    Values    = new ChartValues <double>
                    {
                        1, 2, 4, 7, 10, 12, 13, 13, 12, 10, 7, 4, 2, 1, 1, 2, 4, 7, 10, 12, 13, 13, 12, 10, 7, 4, 2, 1, 1, 2, 4, 7, 10, 12, 13, 13, 12, 10, 7, 4, 2, 1, 1, 2, 4, 7, 10, 12, 13, 13, 12, 10, 7, 4, 2, 1, 1, 2, 4, 7, 10, 12, 13, 13, 12, 10, 7, 4, 2, 1, 1, 2, 4, 7, 10, 12, 13, 13, 12, 10, 7, 4, 2, 1,
                    }
                }
            };

            DataContext = this;

            Task.Run(() =>
            {
                Stopwatch sw = new Stopwatch();
                sw.Start();

                while (true)
                {
                    var temp = sw.ElapsedMilliseconds;
                    Thread.Sleep(200);
                    Application.Current.Dispatcher.Invoke(() =>
                    {
                        var val = DataSet[0].Values[0];
                        DataSet[0].Values.RemoveAt(0);
                        DataSet[0].Values.Add(val);
                        MyChart.Update(false, true);
                    });
                    Console.WriteLine(sw.ElapsedMilliseconds - temp);
                }
            });
        }
Exemple #10
0
 private void PlotBtn_Click(object sender, EventArgs e)
 {
     try
     {
         var size = Convert.ToInt16(NumberTextBox.Text);
         dataGridView1.DataSource      = MapData(XData, YData);
         MyChart.Chart_AxeBorderColor  = Color.Black;
         MyChart.Chart_AxeFontSize     = 10;
         MyChart.Chart_AxeForegorund   = Color.Black;
         MyChart.Chart_RectBackground  = Color.FromKnownColor(colors[BackgroundComboBox.SelectedIndex]);
         MyChart.Chart_RectBorderColor = Color.FromKnownColor(colors[BorderColorComboBox.SelectedIndex]);
         MyChart.Chart_AxeX            = this.AxeXTextBoxs.Text;
         MyChart.Chart_AxeY            = this.AxeYTextBox.Text;
         MyChart.Chart_IsBordered      = BorderedCheckBox.Checked;
         MyChart.Chart_Mode            = modes[ModeComboBox.SelectedIndex];
         MyChart.Chart_PointSize       = Convert.ToInt32(PointSizeTextBox.Text);
         MyChart.Draw(XData, YData);
     }
     catch
     {
         MessageBox.Show("size invalid");
     }
 }
Exemple #11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="usedPort"></param>
        /// <param name="usedChart"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public virtual int FreqCurrentDo(COMMPort usedPort, MyChart usedChart, RichTextBox msg = null)
        {
            if (usedPort == null)
            {
                if (msg != null)
                {
                    RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "通信端口初始化失败!\r\n", Color.Red, false);
                }
                return(1);
            }
            int _return = 0;

            byte[] res = null;

            //---将命令写入设备并读取返回的值
            _return = usedPort.ReadFromDevice(ref res, 1000, msg);

            //---通信验证
            if ((_return == 0) && (usedPort.m_COMMPortReadDataFormatPassed == true) && (res[usedPort.m_COMMPortDataReadIndex + 1] == 0))
            {
                if (msg != null)
                {
                    //---清除文本
                    RichTextBoxPlus.Clear(msg);
                    //---消息
                    RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "频率电流扫描结果读取成功!\r\n", Color.Black, false);

                    //---进行一次频率电流扫描消耗的时间
                    RichTextBoxPlus.AppendTextInfoWithDateTime(msg, "消耗的时间:" + ((int)usedPort.m_COMMPortUsedTime.Milliseconds).ToString("D") + "ms\r\n", Color.Black, false);
                }
                this.usedSiteCurrent = new RFASKSiteCurrent();
                byte[] siteCurrent = new byte[res.Length - usedPort.m_COMMPortDataReadIndex - 4];
                Array.Copy(res, (usedPort.m_COMMPortDataReadIndex + 4), siteCurrent, 0, siteCurrent.Length);

                //---获取各个site的电流
                this.usedSiteCurrent.Init(res[usedPort.m_COMMPortDataReadIndex + 3], siteCurrent);
                //---将数据刷新到画图控件
                this.usedSiteCurrent.Init(res[usedPort.m_COMMPortDataReadIndex + 3], 2, usedChart);
                //---打印Log数据
                this.usedSiteCurrent.PrintfLog(msg);
            }
            else
            {
                if (_return != 0)
                {
                    if (msg != null)
                    {
                        RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "通信发生错误!\r\n", Color.Red, false);
                    }
                }
                else if (usedPort.m_COMMPortDataFormatPassed == false)
                {
                    if (msg != null)
                    {
                        RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "读取的数据格式不合法!\r\n", Color.Red, false);
                    }
                }
                else if (res[usedPort.m_COMMPortDataReadIndex + 1] != 0)
                {
                    if (msg != null)
                    {
                        RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "数据返回的结果错误!\r\n", Color.Red, false);
                    }
                }
                else
                {
                    if (msg != null)
                    {
                        RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "通信命令验证错误!\r\n", Color.Red, false);
                    }
                }
            }
            return(_return);
        }
Exemple #12
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="freqPointIndexCMD"></param>
        /// <param name="deviceCurrent"></param>
        /// <param name="usedPort"></param>
        /// <param name="usedChart"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        protected virtual int FreqCurrentDo(int freqPointIndexCMD, FreqCurrentControl deviceCurrent, COMMPort usedPort, MyChart usedChart, RichTextBox msg = null)
        {
            if (usedPort == null)
            {
                if (msg != null)
                {
                    RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "通信端口初始化失败!\r\n", Color.Red, false);
                }
                return(1);
            }
            if (deviceCurrent == null)
            {
                if (msg != null)
                {
                    RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "频率电流控件传递错误!\r\n", Color.Red, false);
                }
                return(2);
            }
            int _return = 0;

            byte[] cmd = new byte[] { (byte)freqPointIndexCMD, (byte)RFASKFreqCurrentPointCMD.CMD_RFASK_CMD1_FREQ_CURRENT_POINT_DO };
            byte[] res = null;

            //---将命令写入设备并读取返回的值
            _return = usedPort.SendCmdAndReadResponse(cmd, ref res, 1000);

            //---通信验证
            if ((_return == 0) && (usedPort.m_COMMPortDataFormatPassed == true) && (res[usedPort.m_COMMPortDataReadIndex + 1] == 0) && (res[usedPort.m_COMMPortDataReadIndex + 2] == cmd[1]))
            {
                if (msg != null)
                {
                    RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "频率电流的第" + (freqPointIndexCMD - 3).ToString() + "个点的频率电流扫描!\r\n", Color.Black, false);

                    //---进行一次频率电流扫描消耗的时间
                    RichTextBoxPlus.AppendTextInfoWithDateTime(msg, "消耗的时间:" + ((int)usedPort.m_COMMPortUsedTime.Milliseconds).ToString("D") + "ms\r\n", Color.Black, false);
                }
                this.usedSiteCurrent = new RFASKSiteCurrent();
                byte[] siteCurrent = new byte[res.Length - usedPort.m_COMMPortDataReadIndex - 4];
                Array.Copy(res, (usedPort.m_COMMPortDataReadIndex + 4), siteCurrent, 0, siteCurrent.Length);

                //---获取各个site的电流
                this.usedSiteCurrent.Init(res[usedPort.m_COMMPortDataReadIndex + 3], siteCurrent);
                this.usedSiteCurrent.Init(res[usedPort.m_COMMPortDataReadIndex + 3], (int)deviceCurrent.m_StepFreq, usedChart);
                //---打印Log数据
                this.usedSiteCurrent.PrintfLog(msg);
            }
            else
            {
                if (_return != 0)
                {
                    if (msg != null)
                    {
                        RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "通信发生错误!\r\n", Color.Red, false);
                    }
                }
                else if (usedPort.m_COMMPortDataFormatPassed == false)
                {
                    if (msg != null)
                    {
                        RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "读取的数据格式不合法!\r\n", Color.Red, false);
                    }
                }
                else if (res[usedPort.m_COMMPortDataReadIndex + 1] != 0)
                {
                    if (msg != null)
                    {
                        RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "数据返回的结果错误!\r\n", Color.Red, false);
                    }
                }
                else
                {
                    if (msg != null)
                    {
                        RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "通信命令验证错误!\r\n", Color.Red, false);
                    }
                }
            }
            return(_return);
        }
Exemple #13
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="index"></param>
        /// <param name="freqPointIndex"></param>
        /// <param name="deviceFreqCurrent"></param>
        /// <param name="usedPort"></param>
        /// <param name="usedChart"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public virtual int FreqCurrentSet(int index, int freqPointIndex, FreqCurrentControl deviceFreqCurrent, COMMPort usedPort, MyChart usedChart, RichTextBox msg = null)
        {
            int _return = 0;
            int cmd     = 0;

            //---第几个扫描任务的解析
            switch (freqPointIndex)
            {
            case 1:
                cmd = CMD_RFASK_CMD1_FREQ_CURRENT_POINT_ONE;
                break;

            case 2:
                cmd = CMD_RFASK_CMD1_FREQ_CURRENT_POINT_TWO;
                break;

            default:
                if (msg != null)
                {
                    RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "频率电流扫描任务命令不合法!\r\n", Color.Red, false);
                }
                return(1);
            }

            //---频率电流扫描执行的操作
            switch (index)
            {
            case 1:

                //---获取频率参数
                _return = this.FreqCurrentGetFreqParm(cmd, deviceFreqCurrent, usedPort, msg);
                break;

            case 2:

                //---配置频率参数
                _return = this.FreqCurrentSetFreqParm(cmd, deviceFreqCurrent, usedPort, msg);
                break;

            case 3:

                //---获取电流参数
                _return = this.FreqCurrentGetCurrentParm(cmd, deviceFreqCurrent, usedPort, msg);
                break;

            case 4:

                //---设置电流参数
                _return = this.FreqCurrentSetCurrentParm(cmd, deviceFreqCurrent, usedPort, msg);
                break;

            case 5:

                //---执行频率电流扫描
                _return = this.FreqCurrentDo(cmd, deviceFreqCurrent, usedPort, usedChart, msg);
                break;

            default:
                if (msg != null)
                {
                    RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "频率电流扫描操作不合法!\r\n", Color.Red, false);
                }
                _return = 1;
                break;
            }
            return(_return);
        }
 private void button1_Click(object sender, EventArgs e)
 {
     _Model.UpdateModel(4.0, 5.0, 6.0, 7.0);
     MyChart.DataBind();
 }
Exemple #15
0
        //解析副窗体
        public static void Parse_SubWindow(UserControl subwindow, SQL_Connect_Builder sql_builder, Grid MainGrid, Running_Data data)
        {
            // 解析所有的Grid
            #region
            string    where_cmd = "ParentWindow='" + subwindow.Name + "'";
            DataTable allgriddt = sql_builder.Select_Table("ALLGrid", where_cmd);
            if (allgriddt != null)
            {
                if (allgriddt.Rows.Count > 0)
                {
                    foreach (DataRow dr in allgriddt.Rows)
                    {
                        Grid grid = new Grid();

                        // 水平对齐
                        if (dr[3].ToString() == "Left")
                        {
                            grid.HorizontalAlignment = HorizontalAlignment.Left;
                        }
                        if (dr[3].ToString() == "Center")
                        {
                            grid.HorizontalAlignment = HorizontalAlignment.Center;
                        }
                        if (dr[3].ToString() == "Right")
                        {
                            grid.HorizontalAlignment = HorizontalAlignment.Right;
                        }
                        if (dr[3].ToString() == "Stretch")
                        {
                            grid.HorizontalAlignment = HorizontalAlignment.Stretch;
                        }

                        // 垂直对齐
                        if (dr[4].ToString() == "Bottom")
                        {
                            grid.VerticalAlignment = VerticalAlignment.Bottom;
                        }
                        if (dr[4].ToString() == "Center")
                        {
                            grid.VerticalAlignment = VerticalAlignment.Center;
                        }
                        if (dr[4].ToString() == "Stretch")
                        {
                            grid.VerticalAlignment = VerticalAlignment.Stretch;
                        }
                        if (dr[4].ToString() == "Top")
                        {
                            grid.VerticalAlignment = VerticalAlignment.Top;
                        }

                        int marginLeft   = int.Parse(dr[5].ToString());
                        int marginRight  = int.Parse(dr[6].ToString());
                        int marginTop    = int.Parse(dr[7].ToString());
                        int marginBottom = int.Parse(dr[8].ToString());

                        grid.Margin     = new Thickness(marginLeft, marginTop, marginRight, marginBottom);
                        grid.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString(dr[9].ToString()));
                        grid.Name       = dr[0].ToString();

                        if (dr[10].ToString() != "")
                        {
                            grid.Width = double.Parse(dr[10].ToString());
                        }
                        if (dr[11].ToString() != "")
                        {
                            grid.Height = double.Parse(dr[11].ToString());
                        }
                        if (dr[2].ToString() == "MainGrid")
                        {
                            // 在主页面下

                            MainGrid.Children.Add(grid);
                        }
                        else
                        {
                            // 不在主页面下
                            string GridName = dr[2].ToString();
                            foreach (UIElement element in MainGrid.Children)
                            {
                                try
                                {
                                    Grid mygrid = (Grid)element;
                                    if (mygrid.Name == dr[2].ToString())
                                    {
                                        mygrid.Children.Add(grid);
                                    }
                                }
                                catch { }
                            }
                        }
                    }
                }
            }
            #endregion

            //  解析所有的MyTreeView
            #region
            where_cmd = "ParentWindow='" + subwindow.Name + "'";
            DataTable allMyTreeView = sql_builder.Select_Table("ALLMyTreeView", where_cmd);
            if (allMyTreeView != null)
            {
                if (allMyTreeView.Rows.Count > 0)
                {
                    foreach (DataRow dr in allMyTreeView.Rows)
                    {
                        DataTable  TreeViewItemsdt = sql_builder.Select_Table(dr[0].ToString());
                        MyTreeView treeview        = new MyTreeView(TreeViewItemsdt);
                        treeview.Name = dr[0].ToString();
                        if (dr[3].ToString() == "Left")
                        {
                            treeview.HorizontalAlignment = HorizontalAlignment.Left;
                        }
                        if (dr[3].ToString() == "Center")
                        {
                            treeview.HorizontalAlignment = HorizontalAlignment.Center;
                        }
                        if (dr[3].ToString() == "Right")
                        {
                            treeview.HorizontalAlignment = HorizontalAlignment.Right;
                        }
                        if (dr[3].ToString() == "Stretch")
                        {
                            treeview.HorizontalAlignment = HorizontalAlignment.Stretch;
                        }

                        // 垂直对齐
                        if (dr[4].ToString() == "Bottom")
                        {
                            treeview.VerticalAlignment = VerticalAlignment.Bottom;
                        }
                        if (dr[4].ToString() == "Center")
                        {
                            treeview.VerticalAlignment = VerticalAlignment.Center;
                        }
                        if (dr[4].ToString() == "Stretch")
                        {
                            treeview.VerticalAlignment = VerticalAlignment.Stretch;
                        }
                        if (dr[4].ToString() == "Top")
                        {
                            treeview.VerticalAlignment = VerticalAlignment.Top;
                        }

                        int marginLeft   = int.Parse(dr[5].ToString());
                        int marginRight  = int.Parse(dr[6].ToString());
                        int marginTop    = int.Parse(dr[7].ToString());
                        int marginBottom = int.Parse(dr[8].ToString());

                        treeview.Margin     = new Thickness(marginLeft, marginTop, marginRight, marginBottom);
                        treeview.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString(dr[9].ToString()));
                        treeview.Name       = dr[0].ToString();

                        if (dr[10].ToString() != "")
                        {
                            treeview.Width = double.Parse(dr[10].ToString());
                        }
                        if (dr[11].ToString() != "")
                        {
                            treeview.Height = double.Parse(dr[11].ToString());
                        }
                        if (dr[2].ToString() == "MainGrid")
                        {
                            // 在主页面下

                            MainGrid.Children.Add(treeview);
                        }
                        else
                        {
                            // 不在主页面下
                            string GridName = dr[2].ToString();
                            foreach (UIElement element in MainGrid.Children)
                            {
                                try
                                {
                                    Grid mygrid = (Grid)element;
                                    if (mygrid.Name == dr[2].ToString())
                                    {
                                        mygrid.Children.Add(treeview);
                                        break;
                                    }
                                }
                                catch { }
                            }
                        }
                    }
                }
            }
            #endregion

            // 解析所有的MyLabel
            #region
            DataTable AllMyLabeldt = sql_builder.Select_Table("AllMyLabel", where_cmd);
            if (AllMyLabeldt != null)
            {
                if (AllMyLabeldt.Rows.Count > 0)
                {
                    foreach (DataRow dr in AllMyLabeldt.Rows)
                    {
                        MyLabel mylabel = new MyLabel(dr, sql_builder, data);
                        if (dr[2].ToString() == "MainGrid")
                        {
                            // 在主页面下

                            MainGrid.Children.Add(mylabel);
                        }
                        else
                        {
                            // 不在主页面下
                            string GridName = dr[2].ToString();
                            foreach (UIElement element in MainGrid.Children)
                            {
                                try
                                {
                                    Grid mygrid = (Grid)element;
                                    if (mygrid.Name == dr[2].ToString())
                                    {
                                        mygrid.Children.Add(mylabel);
                                    }
                                }
                                catch { }
                            }
                        }
                    }
                }
            }
            #endregion

            // 解析所有的MyChart
            #region
            DataTable AllMyChart = sql_builder.Select_Table("ALLMyChart", where_cmd);
            if (AllMyChart != null)
            {
                if (AllMyChart.Rows.Count > 0)
                {
                    foreach (DataRow dr in AllMyChart.Rows)
                    {
                        MyChart mychart = new MyChart(dr, sql_builder);
                        if (dr[2].ToString() == "MainGrid")
                        {
                            // 在主页面下

                            MainGrid.Children.Add(mychart);
                        }
                        else
                        {
                            // 不在主页面下
                            string GridName = dr[2].ToString();
                            foreach (UIElement element in MainGrid.Children)
                            {
                                try
                                {
                                    Grid mygrid = (Grid)element;
                                    if (mygrid.Name == dr[2].ToString())
                                    {
                                        mygrid.Children.Add(mychart);
                                    }
                                }
                                catch { }
                            }
                        }
                    }
                }
            }
            #endregion

            // 解析所有的MyDataGridView
            // 表格分种类
            #region
            DataTable AllDataGridView = sql_builder.Select_Table("AllDataGrid", where_cmd);
            if (AllDataGridView != null)
            {
                if (AllDataGridView.Rows.Count > 0)
                {
                    foreach (DataRow dr in AllDataGridView.Rows)
                    {
                        // 顺序表
                        if (dr[1].ToString() == "OrderTable")
                        {
                            // 读取表格
                            DataTable gongyibiao = sql_builder.Select_Table(dr[0].ToString());
                            if (gongyibiao == null)
                            {
                                return;
                            }

                            MyOrderDataGridView datagridview = new MyOrderDataGridView(gongyibiao, dr);
                            if (dr[3].ToString() == "MainGrid")
                            {
                                // 在主页面下
                                MainGrid.Children.Add(datagridview);
                            }
                            else
                            {
                                // 不在主页面下
                                string GridName = dr[3].ToString();
                                foreach (UIElement element in MainGrid.Children)
                                {
                                    try
                                    {
                                        Grid mygrid = (Grid)element;
                                        if (mygrid.Name == dr[2].ToString())
                                        {
                                            mygrid.Children.Add(datagridview);
                                        }
                                    }
                                    catch { }
                                }
                            }
                        }
                    }
                }
            }
            #endregion
        }
Exemple #16
0
        public ActionResult SalesCompare(string shopname = "", string goodscode = "", string mycode = "", string start = "")
        {
            List <SelectListItem> shop_list  = new List <SelectListItem>();
            List <SelectListItem> goods_list = new List <SelectListItem>();
            List <SelectListItem> hhsgoods   = new List <SelectListItem>();
            IQueryable <string>   shoplist   = db.T_SYCM_Data.Where(a => !a.ShopName.Equals("好护士器械旗舰店")).GroupBy(a => a.ShopName).Select(a => a.Key);

            foreach (var item in shoplist)
            {
                SelectListItem i = new SelectListItem();
                i.Text  = item;
                i.Value = item;
                shop_list.Add(i);
            }
            ;
            IQueryable <string> goodslist = db.T_SYCM_Data.Where(a => !a.ShopName.Equals("好护士器械旗舰店")).GroupBy(a => a.GoodsName).Select(a => a.Key);

            foreach (var item in goodslist)
            {
                SelectListItem i = new SelectListItem();
                i.Text  = item;
                i.Value = item;
                goods_list.Add(i);
            }
            ;

            //好护士的商品下拉框
            IQueryable <string> hhsgoodslist = db.T_SYCM_Data.Where(a => a.ShopName.Equals("好护士器械旗舰店")).GroupBy(a => a.GoodsName).Select(a => a.Key);

            foreach (var item in hhsgoodslist)
            {
                SelectListItem i = new SelectListItem();
                i.Text  = item;
                i.Value = item;
                hhsgoods.Add(i);
            }
            ;
            ViewData["shoplist"]  = shop_list;
            ViewData["goodslist"] = goods_list;
            ViewData["hhsgoods"]  = hhsgoods;
            ViewData["x"]         = "";
            ViewData["y"]         = "";
            ViewData["y1"]        = "";

            if (shopname != "")
            {
                List <DateTimeFootss> DateTimeFootssModel = new List <DateTimeFootss>();
                string end = "";
                if (string.IsNullOrEmpty(start))
                {
                    start = DateTime.Now.ToString("yyyy-MM-dd");
                    end   = DateTime.Now.AddDays(-30).ToString("yyyy-MM-dd");
                }
                else
                {
                    DateTime startdates = DateTime.Parse(start);
                    start = startdates.AddDays(-10).ToString("yyyy-MM-dd");
                    end   = startdates.AddDays(-30).ToString("yyyy-MM-dd");
                }

                DateTime startdate = DateTime.Parse(start);
                DateTime enddate   = DateTime.Parse(end);
                var      s         = 29;
                for (int i = 0; i <= 29; i++)
                {
                    DateTimeFootss MyCharss = new DateTimeFootss();
                    MyCharss.start = startdate.AddDays(-s).Date;
                    string ss = MyCharss.start.ToString().Substring(0, 10) + " 23:59:59";
                    MyCharss.start = DateTime.Parse(ss);
                    MyCharss.end   = enddate.AddDays(-s);
                    DateTimeFootssModel.Add(MyCharss);

                    s--;
                }
                List <MyChart> model = new List <MyChart>();

                for (int i = 0; i < DateTimeFootssModel.Count; i++)
                {
                    string sql = "select SUM(y) as y,SUM(y1) as y1 from (select cast(DayDate as date)  as x,Qty as y from T_SYCM_Data where ShopName='好护士器械旗舰店' and GoodsName='" + mycode + "' " +
                                 ") as a join (select cast(DayDate as date)  as x1,Qty as y1 from T_SYCM_Data where ShopName='冠昌医疗器械旗舰店' and GoodsName='" + goodscode + "' " +
                                 ") as b on cast(a.x as date) between '" + DateTimeFootssModel[i].end + "' and '" + DateTimeFootssModel[i].start + "' and a.x=b.x1 ";
                    MyChart data = db.Database.SqlQuery <MyChart>(sql, "").SingleOrDefault();

                    ViewData["x"]  += "'" + DateTimeFootssModel[i].start.Date.ToString("yyyy-MM-dd") + "',";
                    ViewData["y"]  += data.y + ",";
                    ViewData["y1"] += data.y1 + ",";

                    //if (ViewData["x"].ToString().Length > 0 && ViewData["y"].ToString().Length > 0)
                    //{
                    // ViewData["x"] = ViewData["x"].ToString().Substring(0, ViewData["x"].ToString().Length - 1);
                    // ViewData["y"] = ViewData["y"].ToString().Substring(0, ViewData["y"].ToString().Length - 1);
                    // ViewData["y1"] = ViewData["y1"].ToString().Substring(0, ViewData["y1"].ToString().Length - 1);
                    //}
                }
                return(View());
            }
            else
            {
                return(View());
            }
        }
        private void SetChartValues(List <ChartValue> values)
        {
            DataPointSeries series = null;

            switch (StatisticChartType)
            {
            case MainControls.StatisticChartType.Pie:
            {
                series = new PieSeries();
                MyChart.ClearValue(Chart.PaletteProperty);
                MyChart.Template = FindResource("PieChartTemplate") as ControlTemplate;
                break;
            }

            case MainControls.StatisticChartType.Bar:
            {
                BarSeries barSeries = new BarSeries();
                barSeries.DependentRangeAxis = new LinearAxis()
                {
                    Orientation = AxisOrientation.X, Minimum = 0, ShowGridLines = true
                };

                CategoryAxis categoryAxis = new CategoryAxis()
                {
                    Orientation = AxisOrientation.Y, Margin = new Thickness(0, 0, 10, 0)
                };
                categoryAxis.MajorTickMarkStyle = new System.Windows.Style();

                MyChart.Palette = FindResource("MyPalette") as Collection <ResourceDictionary>;

                MyChart.Template = FindResource("MyChartTemplate") as ControlTemplate;

                barSeries.IndependentAxis = categoryAxis;

                series = barSeries;

                break;
            }

            case MainControls.StatisticChartType.Column:
            {
                ColumnSeries colSeries = new ColumnSeries();
                colSeries.DependentRangeAxis = new LinearAxis()
                {
                    Orientation = AxisOrientation.Y, Minimum = 0, ShowGridLines = true
                };
                MyChart.Palette  = FindResource("MyPalette") as Collection <ResourceDictionary>;
                MyChart.Template = FindResource("MyChartTemplate") as ControlTemplate;
                series           = colSeries;
                break;
            }

            case MainControls.StatisticChartType.Line:
            {
                LineSeries lineSeries = new LineSeries();
                lineSeries.DependentRangeAxis = new LinearAxis()
                {
                    Orientation = AxisOrientation.Y, Minimum = 0, ShowGridLines = true
                };
                MyChart.Palette  = FindResource("MyPalette") as Collection <ResourceDictionary>;
                MyChart.Template = FindResource("MyChartTemplate") as ControlTemplate;
                series           = lineSeries;
                break;
            }
            }

            series.AnimationSequence = AnimationSequence.FirstToLast;

            series.IndependentValueBinding = new Binding("Name");
            series.DependentValueBinding   = new Binding("Count");

            series.ItemsSource = values;

            MyChart.Series.Clear();
            MyChart.Series.Add(series);
        }