private static TagBuilder FormTdData(object o, ReportTableColumn reportTableColumn) { var td = new TagBuilder("td"); var val = GetValue(o, reportTableColumn); var text = GetText(val, reportTableColumn); if (reportTableColumn.DataType == DataType.Amount || reportTableColumn.DataType == DataType.Percents || reportTableColumn.DataType == DataType.IntNumber || reportTableColumn.DataType == DataType.Time || reportTableColumn.DataType == DataType.TimeInSeconds) { td.AddCssClass("numberTd"); } if (reportTableColumn.ImageProvider != null) { var imgPath = reportTableColumn.ImageProvider.GetImagePath(val); if (!string.IsNullOrEmpty(imgPath)) { var img = new TagBuilder("img"); img.Attributes.Add("src", imgPath); img.Attributes.Add("width", "16px"); img.Attributes.Add("height", "16px"); td.InnerHtml += img; } } td.InnerHtml += text; return(td); }
private static void SetAdditonalFormat(Cell cell, ReportTableColumn column) { var style = cell.GetStyle(); switch (column.DataType) { case DataType.Overall: case DataType.Amount: case DataType.Time: case DataType.TimeInSeconds: break; case DataType.IntNumber: style.Number = 0; break; case DataType.Percents: style.Number = 10; break; case DataType.Date: style.Number = 14; break; default: throw new ArgumentOutOfRangeException(); } cell.SetStyle(style); }
private static TagBuilder CreateColumn(ReportTableColumn reportTableColumn) { var th = new TagBuilder("th"); //th.AddCssClass("reportTableHeader"); th.InnerHtml += reportTableColumn.Caption; return(th); }
private static object GetText(object val, ReportTableColumn reportTableColumn) { string text = ""; if (val != null) { switch (reportTableColumn.DataType) { case DataType.Overall: text = val.ToString(); break; case DataType.Time: var dt = new TimeSpan((long)val); text = string.Format("{0}:{1}", dt.TotalHours, dt.Minutes); break; case DataType.TimeInSeconds: var seconds = (long)val; TimeSpan ts = TimeSpan.FromSeconds(seconds); text = string.Format("{0:00}:{1:00}:{2:00}", (int)ts.TotalHours, ts.Minutes, ts.Seconds); break; case DataType.Amount: var format = "N2"; if (!string.IsNullOrEmpty(reportTableColumn.Format)) { format = reportTableColumn.Format; } text = ((double)val).ToString(format, CultureInfo.InvariantCulture); break; case DataType.IntNumber: text = ((int)val).ToString(CultureInfo.InvariantCulture); break; case DataType.Count: if (!string.IsNullOrEmpty(reportTableColumn.Format)) { format = reportTableColumn.Format; } text = ((int)val).ToString(CultureInfo.InvariantCulture); break; case DataType.Percents: text = string.Format("{0}%", ((decimal)val * 100).ToString("0.00")); break; case DataType.Date: text = ((DateTime)val).ToShortDateString(); break; default: throw new ArgumentOutOfRangeException(); } } return(text); }
private static object GetValue(object o, ReportTableColumn reportTableColumn) { if (reportTableColumn.FieldValue != null) { return(reportTableColumn.FieldValue(o)); } var p = o.GetType().GetProperty(reportTableColumn.FieldName); return(p.GetValue(o, null)); }
private static object GetExcelValue(object value, ReportTableColumn column) { switch (column.DataType) { case DataType.Time: case DataType.TimeInSeconds: return(GetText(value, column)); case DataType.Overall: case DataType.Amount: case DataType.Percents: case DataType.Date: case DataType.IntNumber: return(value); default: throw new ArgumentOutOfRangeException(); } }
private void bindData() { gvDataTable.Visible = false; AnalyticsDetail.Visible = false; AnalyticsPieChart.Visible = false; if (null == _reports || 0 == _reports.Count) return; DisplayView view = this.View; string urlBreadcrumb = Request.Url.AbsolutePath; lnkBreadcrumbReport.Visible = false; lnkBreadcrumbFor.Visible = false; lnkBreadcrumbAnd.Visible = false; lnkBreadcrumbReport.InnerText = _reportTypeName; urlBreadcrumb += "?report=" + EkFunctions.UrlEncode(_reportType.ToString()); lnkBreadcrumbReport.HRef = urlBreadcrumb + "&for=&and=&also=&view="; if (!String.IsNullOrEmpty(_forValue)) { lnkBreadcrumbReport.Visible = true; AddUpdatePanelTrigger(lnkBreadcrumbReport); htmBreadcrumbSeparatorFor.Visible = true; lblBreadcrumbFor.Visible = true; lblBreadcrumbFor.Text = _forValue; lnkBreadcrumbFor.InnerText = lblBreadcrumbFor.Text; urlBreadcrumb += "&for=" + EkFunctions.UrlEncode(lnkBreadcrumbFor.InnerText); lnkBreadcrumbFor.HRef = urlBreadcrumb + "&and=&also=&view="; } if (!String.IsNullOrEmpty(_andValue)) { lblBreadcrumbFor.Visible = false; lnkBreadcrumbFor.Visible = true; AddUpdatePanelTrigger(lnkBreadcrumbFor); htmBreadcrumbSeparatorAnd.Visible = true; lblBreadcrumbAnd.Visible = true; lblBreadcrumbAnd.Text = _andValue; lnkBreadcrumbAnd.InnerText = lblBreadcrumbAnd.Text; urlBreadcrumb += "&and=" + EkFunctions.UrlEncode(lnkBreadcrumbAnd.InnerText); lnkBreadcrumbAnd.HRef = urlBreadcrumb + "&also=&view="; } if (!String.IsNullOrEmpty(_alsoValue)) { lblBreadcrumbAnd.Visible = false; lnkBreadcrumbAnd.Visible = true; AddUpdatePanelTrigger(lnkBreadcrumbAnd); htmBreadcrumbSeparatorAlso.Visible = true; lblBreadcrumbAlso.Visible = true; lblBreadcrumbAlso.Text = _alsoValue; } if (DisplayView.Detail == view) { AnalyticsDetail.Visible = true; AnalyticsDetail.ProviderSegments = this.ProviderSegments; AnalyticsDetail.StartDate = _startDate; AnalyticsDetail.EndDate = _endDate; switch (_reportDisplayData) { case ReportDisplayData.SiteData: AnalyticsDetail.ShowVisits = true; AnalyticsDetail.ShowPagesPerVisit = true; AnalyticsDetail.ShowTimeOnSite = true; AnalyticsDetail.ShowBounceRate = true; this.htmReportSummary.Visible = false; break; case ReportDisplayData.PageData: AnalyticsDetail.ShowPageviews = true; AnalyticsDetail.ShowUniqueViews = true; AnalyticsDetail.ShowTimeOnPage = true; AnalyticsDetail.ShowBounceRate = true; AnalyticsDetail.ShowPercentExit = true; break; case ReportDisplayData.LandingPageData: AnalyticsDetail.ShowBounceRate = true; this.htmReportSummary.Visible = false; break; case ReportDisplayData.ExitPageData: AnalyticsDetail.ShowPageviews = true; AnalyticsDetail.ShowPercentExit = true; this.htmReportSummary.Visible = false; break; case ReportDisplayData.DynamicData: this.htmReportSummary.Visible = false; break; case ReportDisplayData.SiteMetricData: case ReportDisplayData.SiteContentData: case ReportDisplayData.InstancesData: case ReportDisplayData.MobileData: case ReportDisplayData.ReloadData: case ReportDisplayData.PageVisitorsData: case ReportDisplayData.PageVisitsData: case ReportDisplayData.VisitorsData: case ReportDisplayData.VisitsData: default: if (this.htmReportSummary != null) { this.htmReportSummary.InnerText = "This report does not support the summary type."; this.htmReportSummary.Visible = true; break; } else { throw new ArgumentOutOfRangeException("_reportDisplayData", "Unknown ReportDisplayData: " + _reportDisplayData); } } AnalyticsDetail.UpdateReport(_reports); } else if (_showTable) { gvDataTable.Visible = true; ReportTableColumn[] visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName }; if (DisplayView.Table == view) { switch (_reportDisplayData) { case ReportDisplayData.SiteData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.Visits, ReportTableColumn.PagesPerVisit, ReportTableColumn.AverageTimeSpanOnSite, ReportTableColumn.PercentNewVisits, ReportTableColumn.BounceRate }; break; case ReportDisplayData.PageData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.PageViews, ReportTableColumn.UniqueViews, ReportTableColumn.AverageTimeSpanOnPage, ReportTableColumn.BounceRate, ReportTableColumn.ExitRate }; break; case ReportDisplayData.LandingPageData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.Entrances, ReportTableColumn.Bounces, ReportTableColumn.BounceRate }; break; case ReportDisplayData.ExitPageData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.Exits, ReportTableColumn.PageViews, ReportTableColumn.ExitRate }; break; case ReportDisplayData.SiteMetricData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.Visits, ReportTableColumn.PageViews }; break; case ReportDisplayData.SiteContentData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.PageViews }; break; case ReportDisplayData.InstancesData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.Instances }; break; case ReportDisplayData.MobileData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.MobileViews }; break; case ReportDisplayData.ReloadData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.Reloads }; break; case ReportDisplayData.PageVisitorsData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.PageViews, ReportTableColumn.Visitors }; break; case ReportDisplayData.VisitorsData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.Visitors }; break; case ReportDisplayData.VisitsData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.Visits }; break; case ReportDisplayData.PageVisitsData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.PageViews, ReportTableColumn.Visits }; break; case ReportDisplayData.DynamicData: gvDataTable.Visible = false; break; default: throw new ArgumentOutOfRangeException("_reportDisplayData", "Unknown ReportDisplayData: " + _reportDisplayData); } } else if (DisplayView.Percentage == view) { switch (_reportDisplayData) { case ReportDisplayData.SiteData: case ReportDisplayData.SiteMetricData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.Visits, ReportTableColumn.PercentVisits }; break; case ReportDisplayData.PageData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.PageViews, ReportTableColumn.PercentPageviews }; break; case ReportDisplayData.SiteContentData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.PageViews }; break; case ReportDisplayData.LandingPageData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.Entrances, ReportTableColumn.BounceRate }; break; case ReportDisplayData.ExitPageData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.Exits, ReportTableColumn.ExitRate }; break; case ReportDisplayData.InstancesData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.Instances }; break; case ReportDisplayData.MobileData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.MobileViews }; break; case ReportDisplayData.PageVisitorsData: case ReportDisplayData.VisitorsData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.Visitors }; break; case ReportDisplayData.VisitsData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.Visits }; break; case ReportDisplayData.PageVisitsData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.PageViews, ReportTableColumn.Visits }; break; case ReportDisplayData.SalesCycleData: case ReportDisplayData.NewBuyerSalesCycleData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.Revenue }; break; case ReportDisplayData.ReloadData: visibleColumns = new ReportTableColumn[] { ReportTableColumn.DimensionName, ReportTableColumn.Reloads }; break; case ReportDisplayData.DynamicData: gvDataTable.Visible = false; break; default: throw new ArgumentOutOfRangeException("_reportDisplayData", "Unknown ReportDisplayData: " + _reportDisplayData); } } if (string.IsNullOrEmpty(this.ReportGUID)) { GrdDynamic.Visible = false; for (int iGridCol = 0; iGridCol < gvDataTable.Columns.Count; iGridCol++) { DataControlField column = gvDataTable.Columns[iGridCol]; column.Visible = false; for (int iVisCol = 0; iVisCol < visibleColumns.Length; iVisCol++) { if (visibleColumns[iVisCol] == (ReportTableColumn)iGridCol) { if (iVisCol >= 0) { if (0 == iGridCol) { column.HeaderText = _columnName; } else { column.HeaderText = GetEnumDisplayText(visibleColumns[iVisCol]); } column.Visible = true; } break; } } } if (null == this.ProviderSegments || this.ProviderSegments.Count <= 1) { gvDataTable.DataSource = _reports[0].ReportItems; } else { this.gvDataTable.DataSource = CreateSegmentReportList(); } gvDataTable.DataBind(); } else { GrdDynamic.DataSource = null; GrdDynamic.DataBind(); gvDataTable.Visible = false; if (_reports[0].ReportDataSet.ResponseDataSet != null) { //dynamic table GrdDynamic.Visible = true; DataTable dt = new DataTable(); string tableName = "data"; if (!String.IsNullOrEmpty(_forValue)) { tableName = _forValue; } dt = _reports[0].ReportDataSet.ResponseDataSet.Tables[tableName]; int maxColumns = dt.Columns.Count; if (view != DisplayView.Table) { maxColumns = 4; } if (dt != null) { //Iterate through the columns of the datatable to set the data bound field dynamically. int colCount = 0; GrdDynamic.Columns.Clear(); foreach (DataColumn col in dt.Columns) { if (colCount >= maxColumns) break; //Declare the bound field and allocate memory for the bound field. BoundField bfield = new BoundField(); //Initalize the DataField value. bfield.DataField = col.ColumnName; //Initialize the HeaderText field value. bfield.HeaderText = col.ColumnName; //Add the newly created bound field to the GridView. bfield.HeaderStyle.CssClass = "headerstyle"; GrdDynamic.Columns.Add(bfield); colCount++; } GrdDynamic.AlternatingRowStyle.CssClass = "alternatingrowstyle"; } GrdDynamic.DataSource = dt; int visualIndex = Request.Form[drpVisualization.UniqueID] != null ? EkFunctions.ReadIntegerValue(Request.Form[drpVisualization.UniqueID]) : 0; string onchange = "javascript" + @":setTimeout('__doPostBack(\'\',\'\')', 0)"; if (string.IsNullOrEmpty(drpVisualization.Attributes["onchange"])) drpVisualization.Attributes.Add("onchange", onchange); if (!Page.IsPostBack || drpVisualization.Items.Count == 0) { drpVisualization.Items.Add(new ListItem(GetMessage("lbl data table"), "0")); drpVisualization.Items.Add(new ListItem(GetMessage("lbl bar chart"), "4")); drpVisualization.Items.Add(new ListItem(GetMessage("lbl heat map"), "5")); drpVisualization.Items.Add(new ListItem(GetMessage("lbl pie chart"), "1")); } drpVisualization.SelectedValue = visualIndex.ToString(); dvVisualSelect.Visible = true; this.View = (DisplayView)Enum.Parse(typeof(DisplayView), visualIndex.ToString()); GrdDynamic.DataBind(); } } lblNoRecords.Visible = false; pnlData.Visible = true; } else if (_showPieChart) { AnalyticsPieChart.Visible = true; UpdatePieChart(AnalyticsPieChart, _reports[0]); } }