private string[] getOWCSchema2() { string[] rows = TimingType.ParserAttributeTimingType(this.rblTimingType.SelectedValue); string[] columns = SummaryTarget.ParserAttributeSummaryTarget2(this.rblSummaryTarget.SelectedValue); string[] fields = YieldCatalog.ParserTotalFields(this.V_SummaryTarget, this.rblYieldCatalog.SelectedValue); ArrayList schemaList = new ArrayList(); foreach (string row in rows) { schemaList.Add(row); } foreach (string column in columns) { schemaList.Add(column); } foreach (string field in fields) { schemaList.Add(field); } return((string[])schemaList.ToArray(typeof(string))); }
private void _doQuery() { if (this._checkRequireFields()) { object[] dateSource = this._loadDataSource(); if (dateSource == null || dateSource.Length <= 0) { this.gridWebGrid.Visible = false; this.cmdGridExport.Visible = false; this.lineChart.Visible = false; this.columnChart.Visible = false; return; } NewReportDomainObject[] dateSourceForOWC = this.ToNewReportDomainObject(dateSource); //数据加载到Grid List <string> fixedColumnList = new List <string>(); string[] fixedColumn = TimingType.ParserAttributeTimingType4(this.rblTimingType.SelectedValue); if (fixedColumn != null) { foreach (string row in fixedColumn) { fixedColumnList.Add(row); } } List <string> dim2PropertyList = new List <string>(); string dim2Columns = SummaryTarget.ParserAttributeSummaryTarget3(this.rblSummaryTarget.SelectedValue); if (dim2Columns != null) { dim2PropertyList.Add(dim2Columns); } List <ReportGridDim3Property> dim3PropertyList = new List <ReportGridDim3Property>(); if (this.rblYieldCatalog.SelectedValue.ToUpper() == "yieldcatalog_ppm".ToUpper()) { dim3PropertyList.Add(new ReportGridDim3Property("TotalLocation", "0", "SUM", "SUM", false)); dim3PropertyList.Add(new ReportGridDim3Property("NotYieldLocation", "0", "SUM", "SUM", false)); dim3PropertyList.Add(new ReportGridDim3Property("PPM", "0.00%", "DIV({-1},{-2})", "DIV({-1},{-2})", false)); } else if (this.rblYieldCatalog.SelectedValue.ToUpper() == "yieldcatalog_allgood".ToUpper()) { dim3PropertyList.Add(new ReportGridDim3Property("Quantity", "0", "SUM", "SUM", false)); dim3PropertyList.Add(new ReportGridDim3Property("AllGoodQuantity", "0", "SUM", "SUM", false)); dim3PropertyList.Add(new ReportGridDim3Property("AllGoodYieldPercent", "0.00%", "DIV({-1},{-2})", "DIV({-1},{-2})", false)); } else if (this.rblYieldCatalog.SelectedValue.ToUpper() == "yieldcatalog_notyield".ToUpper()) { if (string.Compare(this.V_SummaryTarget, SummaryTarget.Operation, true) == 0 || string.Compare(this.V_SummaryTarget, SummaryTarget.Resource, true) == 0) { dim3PropertyList.Add(new ReportGridDim3Property("AllTimes", "0", "SUM", "SUM", false)); dim3PropertyList.Add(new ReportGridDim3Property("NGTimes", "0", "SUM", "SUM", false)); dim3PropertyList.Add(new ReportGridDim3Property("NotYieldPercent", "0.00%", "DIV({-1},{-2})", "DIV({-1},{-2})", false)); } else { dim3PropertyList.Add(new ReportGridDim3Property("InputQty", "0", "SUM", "SUM", false)); dim3PropertyList.Add(new ReportGridDim3Property("NGTimes", "0", "SUM", "SUM", false)); dim3PropertyList.Add(new ReportGridDim3Property("NotYieldPercent", "0.00%", "DIV({-1},{-2})", "DIV({-1},{-2})", false)); } } //visible style : pivot or chart if (this.rblVisibleStyle.SelectedValue.ToUpper() == VisibleStyle.Pivot.ToUpper()) { ReportGridHelperNew reportGridHelper = new ReportGridHelperNew(this.DataProvider, this.languageComponent1, this.gridWebGrid, this.DtSource); reportGridHelper.DataSource = dateSourceForOWC; reportGridHelper.Dim1PropertyList = fixedColumnList; reportGridHelper.Dim2PropertyList = dim2PropertyList; reportGridHelper.Dim3PropertyList = dim3PropertyList; reportGridHelper.HasDim3PropertyNameRowColumn = true; reportGridHelper.ShowGrid(); this.gridWebGrid.Visible = true; this.cmdGridExport.Visible = true; this.lineChart.Visible = false; this.columnChart.Visible = false; } if (this.rblVisibleStyle.SelectedValue.ToUpper() == VisibleStyle.Chart.ToUpper()) { string[] fields = YieldCatalog.ParserTotalFields(this.V_SummaryTarget, this.rblYieldCatalog.SelectedValue); string propertyName = this.languageComponent1.GetString(dim3PropertyList[0].Name); List <string> rowPropertyList = new List <string>(); string[] listRows = TimingType.ParserAttributeTimingType4(this.rblTimingType.SelectedValue); if (listRows != null) { foreach (string row in listRows) { rowPropertyList.Add(row); } } List <string> valuePropertyList = new List <string>(); foreach (ReportGridDim3Property property in dim3PropertyList) { if (!property.Hidden) { valuePropertyList.Add(property.Name); } } List <string> dataPropertyList = valuePropertyList; foreach (NewReportDomainObject obj in dateSourceForOWC) { if (fields != null) { foreach (string field in fields) { if (field.ToUpper() == "NotYieldPercent".ToUpper()) { obj.TempValue = obj.NotYieldPercent.ToString(); } else if (field.ToUpper() == "PPM".ToUpper()) { obj.TempValue = obj.PPM.ToString(); } else if (field.ToUpper() == "AllGoodYieldPercent".ToUpper()) { obj.TempValue = obj.AllGoodYieldPercent.ToString(); } } } //时段、班次、天、周、月、年 if (this.rblTimingType.SelectedValue == TimingType.TimePeriod.ToString()) { obj.PeriodCode = obj.PeriodCode.ToString(); } if (this.rblTimingType.SelectedValue == TimingType.Shift.ToString()) { obj.PeriodCode = obj.ShiftCode.ToString(); } if (this.rblTimingType.SelectedValue == TimingType.Day.ToString()) { obj.PeriodCode = obj.ShiftDay.ToString(); } if (this.rblTimingType.SelectedValue == TimingType.Week.ToString()) { obj.PeriodCode = obj.Week.ToString(); } if (this.rblTimingType.SelectedValue == TimingType.Month.ToString()) { obj.PeriodCode = obj.Month.ToString(); } //end } //chart display : histogram or line if (this.rblChartType.SelectedValue.ToUpper() == ChartStyle.Histogram.ToUpper()) { this.columnChart.Visible = true; this.lineChart.Visible = false; columnChart.ChartGroupByString = dim2Columns; //设置首页报表的大小 if (ViewState["Width"] != null) { columnChart.Width = int.Parse(ViewState["Width"].ToString()); } if (ViewState["Height"] != null) { columnChart.Height = int.Parse(ViewState["Height"].ToString()); } //end this.columnChart.ChartTextFormatString = "<DATA_VALUE:#0.##%>"; this.columnChart.YLabelFormatString = "<DATA_VALUE:#0.##%>"; this.columnChart.DataType = true; this.columnChart.DataSource = dateSourceForOWC; this.columnChart.DataBind(); } if (this.rblChartType.SelectedValue.ToUpper() == ChartStyle.Line.ToUpper()) { this.columnChart.Visible = false; this.lineChart.Visible = true; lineChart.ChartGroupByString = dim2Columns; //设置首页报表的大小 if (ViewState["Width"] != null) { lineChart.Width = int.Parse(ViewState["Width"].ToString()); } if (ViewState["Height"] != null) { lineChart.Height = int.Parse(ViewState["Height"].ToString()); } //end this.lineChart.ChartTextFormatString = "<DATA_VALUE:#0.##%>"; this.lineChart.YLabelFormatString = "<DATA_VALUE:#0.##%>"; this.lineChart.DataType = true; this.lineChart.DataSource = dateSourceForOWC; this.lineChart.DataBind(); } this.gridWebGrid.Visible = false; this.cmdGridExport.Visible = false; Response.Write("<script type='text/javascript'>scrollToBottom=true;</script>"); } } }
private void _doQuery() { if (this._checkRequireFields()) { this.OWCPivotTable1.ClearFieldSet(); object[] dateSource = this._loadDataSource(); //统一使用透视表处理数据 this.OWCPivotTable1.SetDataSource( dateSource, this.getOWCSchema2()); //visible style : pivot or chart if (this.rblVisibleStyle.SelectedValue.ToUpper() == VisibleStyle.Pivot.ToUpper()) { //categories string[] rows = TimingType.ParserAttributeTimingType(this.rblTimingType.SelectedValue); if (rows != null) { foreach (string row in rows) { this.OWCPivotTable1.AddRowFieldSet(row, false); } } // this.OWCPivotTable1.AddColumnFieldSet( // SummaryTarget.ParserAttributeSummaryTarget( this.V_SummaryTarget ), // true); string[] columns = SummaryTarget.ParserAttributeSummaryTarget2(this.rblSummaryTarget.SelectedValue, this.rblYieldCatalog.SelectedValue); if (columns != null) { foreach (string column in columns) { this.OWCPivotTable1.AddColumnFieldSet(column, false); } } //values string[] fields = YieldCatalog.ParserTotalFields(this.V_SummaryTarget, this.rblYieldCatalog.SelectedValue); if (fields != null) { foreach (string field in fields) { if (field.ToUpper() == "YieldPercent".ToUpper()) { this.OWCPivotTable1.AddTotalField( this.languageComponent1.GetString(field), field, PivotTotalFunctionType.Average, NumberFormat.Percent); } else if (field.ToUpper() == "PPM".ToUpper()) { this.OWCPivotTable1.AddCalculatedTotalField( "PPM", "PPM", "round( [" + this.languageComponent1.GetString("NotYieldNum") + "]/[" + this.languageComponent1.GetString("TotalLocation") + "]*1000000 , 0 )", PivotTotalFunctionType.Calculated); } else if (field.ToUpper() == "AllGoodYieldPercent".ToUpper()) { this.OWCPivotTable1.AddCalculatedTotalField( this.languageComponent1.GetString(field), this.languageComponent1.GetString(field), "[" + this.languageComponent1.GetString("AllGoodQuantity") + "]/[" + this.languageComponent1.GetString("Quantity") + "]", PivotTotalFunctionType.Calculated, NumberFormat.Percent); } else if (field.ToUpper() == "NotYieldPercent".ToUpper()) { if (string.Compare(this.V_SummaryTarget, SummaryTarget.Operation, true) == 0 || string.Compare(this.V_SummaryTarget, SummaryTarget.Resource, true) == 0) { this.OWCPivotTable1.AddCalculatedTotalField( this.languageComponent1.GetString(field), this.languageComponent1.GetString(field), "[" + this.languageComponent1.GetString("NGTimes") + "]/[" + this.languageComponent1.GetString("AllTimes") + "]", PivotTotalFunctionType.Calculated, NumberFormat.Percent); } else { this.OWCPivotTable1.AddCalculatedTotalField( this.languageComponent1.GetString(field), this.languageComponent1.GetString(field), "[" + this.languageComponent1.GetString("NGTimes") + "]/[" + this.languageComponent1.GetString("InputQty") + "]", PivotTotalFunctionType.Calculated, NumberFormat.Percent); } } else { this.OWCPivotTable1.AddTotalField( this.languageComponent1.GetString(field), field, PivotTotalFunctionType.Sum); } } } this.OWCPivotTable1.Display = true; this.OWCChartSpace1.Display = false; } if (this.rblVisibleStyle.SelectedValue.ToUpper() == VisibleStyle.Chart.ToUpper()) { //categories string[] rows = TimingType.ParserAttributeTimingType2(this.rblTimingType.SelectedValue); if (rows != null) { foreach (string row in rows) { this.OWCPivotTable1.AddRowFieldSet(row, true); } } this.OWCPivotTable1.AddColumnFieldSet( SummaryTarget.ParserAttributeSummaryTarget(this.V_SummaryTarget), true); //values this.OWCPivotTable1.RemoveAllTotalField(); string[] fields = YieldCatalog.ParserTotalFields(this.V_SummaryTarget, this.rblYieldCatalog.SelectedValue); if (fields != null) { foreach (string field in fields) { if (field.ToUpper() == "YieldPercent".ToUpper()) { this.OWCPivotTable1.AddTotalField( this.languageComponent1.GetString(field), field, PivotTotalFunctionType.Average, NumberFormat.Percent); } else if (field.ToUpper() == "PPM".ToUpper()) { this.OWCPivotTable1.AddCalculatedTotalField( "PPM", "PPM", "round( [" + this.languageComponent1.GetString("NotYieldNum") + "]/[" + this.languageComponent1.GetString("TotalLocation") + "]*1000000 , 0 )", PivotTotalFunctionType.Calculated); } else if (field.ToUpper() == "AllGoodYieldPercent".ToUpper()) { this.OWCPivotTable1.AddCalculatedTotalField( this.languageComponent1.GetString(field), this.languageComponent1.GetString(field), "[" + this.languageComponent1.GetString("AllGoodQuantity") + "]/[" + this.languageComponent1.GetString("Quantity") + "]", PivotTotalFunctionType.Calculated, NumberFormat.Percent); } else if (field.ToUpper() == "NotYieldPercent".ToUpper()) { if (string.Compare(this.V_SummaryTarget, SummaryTarget.Operation, true) == 0 || string.Compare(this.V_SummaryTarget, SummaryTarget.Resource, true) == 0) { this.OWCPivotTable1.AddCalculatedTotalField( this.languageComponent1.GetString(field), this.languageComponent1.GetString(field), "[" + this.languageComponent1.GetString("NGTimes") + "]/[" + this.languageComponent1.GetString("AllTimes") + "]", PivotTotalFunctionType.Calculated, NumberFormat.Percent); } else { this.OWCPivotTable1.AddCalculatedTotalField( this.languageComponent1.GetString(field), this.languageComponent1.GetString(field), "[" + this.languageComponent1.GetString("NGTimes") + "]/[" + this.languageComponent1.GetString("InputQty") + "]", PivotTotalFunctionType.Calculated, NumberFormat.Percent); } } else { /* Removed by Icyer 2007/01/17 在后面添加 * this.OWCPivotTable1.AddTotalField( * this.languageComponent1.GetString(field), * field, * PivotTotalFunctionType.Sum); */ } } // Added by Icyer 2007/01/17 将统计栏位提后 foreach (string field in fields) { if (field.ToUpper() == "YieldPercent".ToUpper() || field.ToUpper() == "PPM".ToUpper() || field.ToUpper() == "AllGoodYieldPercent".ToUpper() || field.ToUpper() == "NotYieldPercent".ToUpper()) { } else { this.OWCPivotTable1.AddTotalField( this.languageComponent1.GetString(field), field, PivotTotalFunctionType.Sum); } } // Added end } this.OWCChartSpace1.DataSource = this.OWCPivotTable1.PivotTableName; //chart display : histogram or line if (this.rblChartType.SelectedValue.ToUpper() == ChartStyle.Histogram.ToUpper()) { this.OWCChartSpace1.ChartType = OWCChartType.ColumnClustered; } if (this.rblChartType.SelectedValue.ToUpper() == ChartStyle.Line.ToUpper()) { //this.OWCChartSpace1.ChartType = OWCChartType.Line; this.OWCChartSpace1.ChartType = OWCChartType.LineMarkers; } this.OWCPivotTable1.Display = false; this.OWCChartSpace1.Display = true; } } }