Esempio n. 1
0
        protected DataTable GenerateExcelData(List <int> channels, List <int> products, DateTime date)
        {
            CanonMainMonitor monitor = new CanonMainMonitor(Cdb.ConnectionString);

            monitor.Date           = date;
            monitor.ChannelIds     = channels;
            monitor.ProductIds     = products;
            monitor.PriceCondition = this.GetPriceCondition();
            DataSet ds = monitor.GetMainMonitorValues();

            if (ds.Tables.Count > 0)
            {
                return(ds.Tables[0]);
            }
            return(null);
        }
Esempio n. 2
0
        protected void Bind()
        {
            if ((!this.IsCallback) && (!this.IsPostBack))
            {
                //Restore filter from cookies
                this.LoadFilterFromCookies();
                this.InitialFilterBind();
                SessionManager.CurrentCategories = this.GetListOfCategories();
            }
            //Get main results
            try
            {
                List <int> channelIds = (SessionManager.CurrentChannels.Count == 0)?this.GetListOfChannels()
                                                                                :SessionManager.CurrentChannels;
                List <int> categoryIds = (SessionManager.CurrentCategories.Count == 0)?this.GetListOfCategories()
                                                                                :SessionManager.CurrentCategories;
                SessionManager.CurrentChannels   = channelIds;
                SessionManager.CurrentCategories = categoryIds;

                CanonMainMonitor monitor = new CanonMainMonitor(Cdb.ConnectionString);
                monitor.Date           = deDate.Date;
                monitor.ChannelIds     = channelIds;
                monitor.PriceCondition = this.GetPriceCondition();
                if (categoryIds != null)
                {
                    monitor.CategoryIds = categoryIds;
                }
                if (!string.IsNullOrEmpty(txtProduct.Text.Trim()))
                {
                    monitor.ProductName = Memos.Framework.Utilities.TruncateString(txtProduct.Text.Trim(), 300);
                }
                mappingRules = monitor.GetMappingRules();
                DataSet ds = monitor.GetMainMonitorValues();
                //get sorting settings before columns clearing
                DevExpress.Data.ColumnSortOrder sortOrder = DevExpress.Data.ColumnSortOrder.None;
                string sortColumn = string.Empty;
                foreach (GridViewColumn gvc in gridMainMonitor.Columns)
                {
                    GridViewDataColumn gvdc = gvc as GridViewDataColumn;
                    if (gvdc != null)
                    {
                        if (gvdc.SortOrder != DevExpress.Data.ColumnSortOrder.None)
                        {
                            sortColumn = gvdc.FieldName;
                            sortOrder  = gvdc.SortOrder;
                        }
                    }
                }
                gridMainMonitor.Columns.Clear();
                GridViewCommandColumn col0 = new GridViewCommandColumn();
                col0.ShowSelectCheckbox          = true;
                col0.VisibleIndex                = 0;
                col0.HeaderTemplate              = new CommandColumnHeaderTemplate(gridMainMonitor, "selCheckbox", "gridMainMonitorSelectionBox");
                col0.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
                col0.HeaderStyle.VerticalAlign   = VerticalAlign.Middle;
                gridMainMonitor.Columns.Add(col0);
                int visIndex = 1;
                foreach (DataColumn dc in ds.Tables[0].Columns)
                {
                    GridViewDataTextColumn col1 = new GridViewDataTextColumn();
                    col1.Caption      = this.LocalizeColumnName(dc.ColumnName);
                    col1.FieldName    = dc.ColumnName;
                    col1.VisibleIndex = visIndex++;
                    if (dc.ColumnName == "ProductId")
                    {
                        col1.Visible = false;
                    }
                    if ((!string.IsNullOrEmpty(sortColumn)) && (col1.FieldName == sortColumn))
                    {
                        col1.SortOrder = sortOrder;
                    }
                    col1.Settings.SortMode = DevExpress.XtraGrid.ColumnSortMode.Custom;
                    gridMainMonitor.Columns.Add(col1);
                }
                gridMainMonitor.SettingsPager.PageSize = int.Parse(cbPageSize.SelectedItem.Value.ToString());
                gridMainMonitor.DataSource             = ds.Tables[0];
                gridMainMonitor.DataBind();
                gridMainMonitor.JSProperties["cpRowsCount"] = gridMainMonitor.VisibleRowCount;
            }
            catch (Exception ex)
            {
                Logger.Log(string.Format("exception {0}", ex.ToString()), LogLevel.Error);
                gridMainMonitor.Columns.Clear();
                gridMainMonitor.DataSource = null;
                gridMainMonitor.DataBind();
            }
        }
Esempio n. 3
0
        public void Bind()
        {
            List <int>         channels = this.Channels;
            List <int>         products = this.Products;
            CanonDataContext   db       = Cdb.Instance;
            List <MainMonitor> list     = CanonMainMonitor.GetValuesForChart(deStartDate.Date,
                                                                             deFinishDate.Date, channels, products);

            foreach (int productId in products)
            {
                Product product = db.Products.Where(p => p.ProductId == productId).FirstOrDefault();
                if (product == null)
                {
                    continue;
                }
                WebChartControl chart = new WebChartControl();
                chart.EnableViewState = false;
                ChartTitle title = new ChartTitle();
                title.Text = string.Format(Utilities.GetResourceString("Common", "ChartHeader"),
                                           product.ProductName, deStartDate.Date.ToString("dd.MM.yyyy"),
                                           deFinishDate.Date.ToString("dd.MM.yyyy"));
                title.Font = new System.Drawing.Font("Tahoma", 10);
                chart.Titles.Add(title);
                chart.FillStyle.FillMode = FillMode.Solid;
                Dictionary <int, Series> series = new Dictionary <int, Series>();
                Series s0 = new Series("Recommended price", ViewType.Line);
                s0.ValueScaleType    = ScaleType.Numerical;
                s0.ArgumentScaleType = ScaleType.DateTime;
                series.Add(0, s0);
                foreach (int channelId in channels)
                {
                    Channel channel = db.Channels.Where(c => c.ChannelId == channelId).FirstOrDefault();
                    if (channel == null)
                    {
                        continue;
                    }
                    Series s = new Series(channel.ChannelName, ViewType.Line);
                    s.ValueScaleType    = ScaleType.Numerical;
                    s.ArgumentScaleType = ScaleType.DateTime;
                    series.Add(channelId, s);
                }
                foreach (MainMonitor mm in list)
                {
                    if (mm.ProductId != productId)
                    {
                        continue;
                    }
                    series[mm.ChannelId].Points.Add(new SeriesPoint(mm.CalcDate, new double[] { (double)mm.ChannelPrice }));
                    series[0].Points.Add(new SeriesPoint(mm.CalcDate, new double[] { (double)mm.RecommendedPrice }));
                }
                foreach (KeyValuePair <int, Series> serie in series)
                {
                    chart.Series.Add(serie.Value);
                }
                //diagram
                DevExpress.XtraCharts.XYDiagram xyDiagram = new XYDiagram();
                xyDiagram.AxisY.Title.Font               = new System.Drawing.Font("Tahoma", 8);
                xyDiagram.AxisY.Title.Text               = "CZK";
                xyDiagram.AxisY.Label.Staggered          = false;
                xyDiagram.AxisY.Title.Visible            = true;
                xyDiagram.AxisY.Range.SideMarginsEnabled = true;
                xyDiagram.AxisY.Interlaced               = true;

                xyDiagram.AxisX.Title.Font               = new System.Drawing.Font("Tahoma", 8);
                xyDiagram.AxisX.Label.Staggered          = true;
                xyDiagram.AxisX.Range.SideMarginsEnabled = true;
                xyDiagram.AxisX.Tickmarks.MinorVisible   = false;
                chart.Diagram = xyDiagram;
                chart.Width   = 700;
                chart.Height  = 500;
                chart.DataBind();
                panelPics.Controls.Add(chart);

                this.FilesToSave.Add(this.SaveChartIntoFile(product.ProductName, chart));
            }
        }