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); }
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(); } }
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)); } }