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>");
                }
            }
        }
示例#3
0
        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;
                }
            }
        }