コード例 #1
0
    private void BindItem()
    {
        View_DifferenceAnalyse filter = new View_DifferenceAnalyse {
            ItemID = ReportItems[CurrentItemIndex].ItemID
        };
        DataTable dt = Service.QueryAnalyseReport(filter, null, null).Tables[0];

        BindDataControl(fvItem, dt);
        if (dt.Rows.Count > 0 && ((dt.Rows[0]["AvailableDiff"] == DBNull.Value || (decimal)dt.Rows[0]["AvailableDiff"] == 0) && (dt.Rows[0]["QIDiff"] == DBNull.Value || (decimal)dt.Rows[0]["QIDiff"] == 0) && (dt.Rows[0]["BlockDiff"] == DBNull.Value || (decimal)dt.Rows[0]["BlockDiff"] == 0)))
        {
            _nodifference = true;
        }
        ReportColumnsList = new List <string>();
        for (int i = 0; i < dt.Columns.Count; i++)
        {
            ReportColumnsList.Add(dt.Columns[i].ColumnName);
        }
        int startIndex = ReportColumnsList.IndexOf("AvailableItem");
        int endIndex   = ReportColumnsList.IndexOf("QIItem");
        int dunsCount  = endIndex - startIndex - 1;

        #region add dynamic columns
        if (dunsCount > 0)
        {
            for (int i = startIndex + 1; i < endIndex; i++)
            {
                //available
                BoundField fieldAvailable_Sys = new BoundField();
                fieldAvailable_Sys.DataField = ReportColumnsList[i] + "_Sys";

                BoundField fieldAvailable_Value = new BoundField();
                fieldAvailable_Value.DataField = ReportColumnsList[i];

                //BoundField fieldAvailable_DiffSum = new BoundField();
                //fieldAvailable_DiffSum.DataField = ReportColumnsList[i] + "_DiffSum";
                //fieldAvailable_DiffSum.DataFormatString = "c";
                BoundField fieldAvailable_Diff = new BoundField();
                fieldAvailable_Diff.DataField = ReportColumnsList[i] + "_Diff";

                BoundField fieldAvailable_Adjust = new BoundField();
                fieldAvailable_Adjust.DataField = ReportColumnsList[i] + "_Adjust";

                gvItem.Columns.Insert(gvItem.Columns.Count - 4, fieldAvailable_Sys);
                gvItem.Columns.Insert(gvItem.Columns.Count - 4, fieldAvailable_Value);
                gvItem.Columns.Insert(gvItem.Columns.Count - 4, fieldAvailable_Diff);
                //gvItem.Columns.Insert(gvItem.Columns.Count - 4, fieldAvailable_DiffSum);
                gvItem.Columns.Insert(gvItem.Columns.Count - 4, fieldAvailable_Adjust);

                //qi
                BoundField fieldQI_Sys = new BoundField();
                fieldQI_Sys.DataField = ReportColumnsList[i] + "_Sys";

                BoundField fieldQI_Value = new BoundField();
                fieldQI_Value.DataField = ReportColumnsList[i + dunsCount + 1];

                //BoundField fieldQI_DiffSum = new BoundField();
                //fieldQI_DiffSum.DataField = ReportColumnsList[i + dunsCount + 1] + "_DiffSum";
                //fieldQI_DiffSum.DataFormatString = "C";

                BoundField fieldQI_Diff = new BoundField();
                fieldQI_Diff.DataField = ReportColumnsList[i + dunsCount + 1] + "_Diff";

                BoundField fieldQI_Adjust = new BoundField();
                fieldQI_Adjust.DataField = ReportColumnsList[i + dunsCount + 1] + "_Adjust";

                gvItem.Columns.Insert(gvItem.Columns.Count - 4, fieldQI_Sys);
                gvItem.Columns.Insert(gvItem.Columns.Count - 4, fieldQI_Value);
                gvItem.Columns.Insert(gvItem.Columns.Count - 4, fieldQI_Diff);
                //gvItem.Columns.Insert(gvItem.Columns.Count - 4, fieldQI_DiffSum);
                gvItem.Columns.Insert(gvItem.Columns.Count - 4, fieldQI_Adjust);


                //block
                BoundField fieldBlk_Sys = new BoundField();
                fieldBlk_Sys.DataField = ReportColumnsList[i + 2 * dunsCount + 2] + "_Sys";

                BoundField fieldBlk_Value = new BoundField();
                fieldBlk_Value.DataField = ReportColumnsList[i + 2 * dunsCount + 2];

                //BoundField fieldBlk_DiffSum = new BoundField();
                //fieldBlk_DiffSum.DataField = ReportColumnsList[i + 2 * dunsCount + 2] + "_DiffSum";
                //fieldBlk_DiffSum.DataFormatString = "C";

                BoundField fieldBlk_Diff = new BoundField();
                fieldBlk_Diff.DataField = ReportColumnsList[i + 2 * dunsCount + 2] + "_Diff";

                BoundField fieldBlk_Adjust = new BoundField();
                fieldBlk_Adjust.DataField = ReportColumnsList[i + 2 * dunsCount + 2] + "_Adjust";

                gvItem.Columns.Insert(gvItem.Columns.Count - 4, fieldBlk_Sys);
                gvItem.Columns.Insert(gvItem.Columns.Count - 4, fieldBlk_Value);
                gvItem.Columns.Insert(gvItem.Columns.Count - 4, fieldBlk_Diff);
                //gvItem.Columns.Insert(gvItem.Columns.Count - 4, fieldBlk_DiffSum);
                gvItem.Columns.Insert(gvItem.Columns.Count - 4, fieldBlk_Adjust);
            }
        }
        #endregion

        BindDataControl(gvItem, dt);
    }
コード例 #2
0
 public DataSet QueryAnalyseReport(View_DifferenceAnalyse filter, DateTime?timeStart, DateTime?timeEnd)
 {
     return(Channel.QueryAnalyseReport(filter, timeStart, timeEnd));
 }
コード例 #3
0
    public void Query()
    {
        if (viewNewAnalyse.Visible && rblOption.Items[0].Selected)//View == "viewNewAnalyse"
        {
            if (string.IsNullOrEmpty(txtNoticeNo.Text.Trim()))
            {
                return;
            }
            View_StocktakeDetails filter = BuildNewAnalyseCondition();
            int itemCount;
            int pageCount;
            List <View_StocktakeDetails> detailsList = Service.QueryFullFilledNotiDetailsByPage(filter, pagerNew.PageSize, pagerNew.CurrentPage, out pageCount, out itemCount);
            pagerNew.TotalRecord = itemCount;
            BindDataControl(gvNew, detailsList);
        }
        else
        {
            View_DifferenceAnalyse filter = new View_DifferenceAnalyse();
            DateTime?timeStart            = null;
            DateTime?timeEnd = null;
            if (viewAnalyse.Visible)//(View == "Analyse")
            {
                if (!string.IsNullOrEmpty(txtRptNoticeNo.Text.Trim()))
                {
                    filter.NotificationCode = txtRptNoticeNo.Text.Trim();
                }
                if (!string.IsNullOrEmpty(txtRptFU.Text.Trim()))
                {
                    filter.FollowUp = txtRptFU.Text.Trim();
                }
                if (!string.IsNullOrEmpty(txtRptPartCName.Text.Trim()))
                {
                    filter.PartChineseName = txtRptPartCName.Text.Trim();
                }
                if (!string.IsNullOrEmpty(txtRptPartNo.Text.Trim()))
                {
                    filter.PartCode = txtRptPartNo.Text.Trim();
                }
                if (!string.IsNullOrEmpty(txtRptSpecs.Text.Trim()))
                {
                    filter.Specs = txtRptSpecs.Text.Trim();
                }
                if (!string.IsNullOrEmpty(txtRptTimeFrom.Text.Trim()))
                {
                    timeStart = Convert.ToDateTime(txtRptTimeFrom.Text.Trim());
                }
                if (!string.IsNullOrEmpty(txtRptTimeTo.Text.Trim()))
                {
                    timeEnd = Convert.ToDateTime(txtRptTimeTo.Text.Trim());
                }
                if (!string.IsNullOrEmpty(ddlRptStatus.SelectedValue))
                {
                    filter.Status = int.Parse(ddlRptStatus.SelectedValue);
                }
                if (!string.IsNullOrEmpty(ddlRptPlant.SelectedValue))
                {
                    filter.PartPlantCode = ddlRptPlant.SelectedItem.Text;
                }
                if (!string.IsNullOrEmpty(ddlRptWorkshop.SelectedValue))
                {
                    filter.Workshops = ddlRptWorkshop.SelectedItem.Text;
                }
                if (!string.IsNullOrEmpty(ddlRptSegment.SelectedValue))
                {
                    filter.Segments = ddlRptSegment.SelectedItem.Text;
                }
            }
            else
            {
                if (viewNewAnalyse.Visible)
                {
                    if (!string.IsNullOrEmpty(txtNoticeNo.Text))
                    {
                        filter.NotificationCode = txtNoticeNo.Text;
                    }
                    else
                    {
                        return;
                    }
                    if (!string.IsNullOrEmpty(txtPartCName.Text))
                    {
                        filter.PartChineseName = txtPartCName.Text;
                    }
                    if (!string.IsNullOrEmpty(txtPartNo.Text))
                    {
                        filter.PartCode = txtPartNo.Text;
                    }
                    if (!string.IsNullOrEmpty(txtSpecs.Text))
                    {
                        filter.Specs = txtSpecs.Text;
                    }
                    if (!string.IsNullOrEmpty(txtFollowUp.Text))
                    {
                        filter.FollowUp = txtFollowUp.Text;
                    }
                    if (!string.IsNullOrEmpty(txtAnalyzer.Text))
                    {
                        filter.AnalysedByUser = txtAnalyzer.Text;
                    }
                    if (!string.IsNullOrEmpty(ddlStatus.SelectedValue))
                    {
                        filter.Status = int.Parse(ddlStatus.SelectedValue);
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(txtMgrNoticeNo.Text))
                    {
                        filter.NotificationCode = txtMgrNoticeNo.Text;
                    }
                    if (!string.IsNullOrEmpty(txtMgrPartCName.Text))
                    {
                        filter.PartChineseName = txtMgrPartCName.Text;
                    }
                    if (!string.IsNullOrEmpty(txtMgrPartNo.Text))
                    {
                        filter.PartCode = txtMgrPartNo.Text;
                    }
                    if (!string.IsNullOrEmpty(txtMgrSpecs.Text))
                    {
                        filter.Specs = txtMgrSpecs.Text;
                    }
                    if (!string.IsNullOrEmpty(txtMgrFollowUp.Text))
                    {
                        filter.FollowUp = txtMgrFollowUp.Text;
                    }
                    if (!string.IsNullOrEmpty(txtMgrAnalyzer.Text))
                    {
                        filter.AnalysedByUser = txtMgrAnalyzer.Text;
                    }
                    if (!string.IsNullOrEmpty(ddlMgrStatus.SelectedValue))
                    {
                        filter.Status = int.Parse(ddlMgrStatus.SelectedValue);
                    }
                    if (ddlDiff.SelectedIndex > 0)
                    {
                        int amount;
                        if (!string.IsNullOrEmpty(txtDiffAmount.Text.Trim()))
                        {
                            amount            = int.Parse(ddlDiff.SelectedItem.Value + txtDiffAmount.Text.Trim(), NumberStyles.AllowLeadingSign);
                            filter.DiffAmount = amount;
                            if (amount >= 0)
                            {
                                filter.DiffFilter = ddiDiffAmountOp.SelectedItem.Text + amount;
                            }
                            else
                            {
                                filter.DiffFilter = ddiDiffAmountOp.SelectedValue + amount;
                            }
                        }

                        decimal sum;
                        if (!string.IsNullOrEmpty(txtDiffSum.Text.Trim()))
                        {
                            sum = decimal.Parse(ddlDiff.SelectedItem.Value + txtDiffSum.Text.Trim(), NumberStyles.AllowLeadingSign);
                            filter.DiffSumFilter = sum + "";
                            if (sum >= 0)
                            {
                                filter.DiffSumFilter = ddiDiffSumOp.SelectedItem.Text + sum;
                            }
                            else
                            {
                                filter.DiffFilter = ddiDiffSumOp.SelectedValue + sum;
                            }
                        }

                        filter.ProfitLossFilter = (ddlDiff.SelectedValue == "+") ? ">0" : "<0";

                        if (!string.IsNullOrEmpty(txtDiffTimes.Text.Trim()))
                        {
                            int times = int.Parse(txtDiffTimes.Text.Trim());
                            filter.TimesFilter = ddlDiffTimesOp.SelectedValue + times;
                        }
                    }
                }
            }

            DataTable dt = Service.QueryAnalyseReport(filter, timeStart, timeEnd).Tables[0];
            FilteredDetails = new List <int>();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow row = dt.Rows[i];
                FilteredDetails.Add(int.Parse(row["DetailsID"].ToString()));
            }

            ReportColumnsList = new List <string>();
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                ReportColumnsList.Add(dt.Columns[i].ColumnName);
            }
            int startIndex = ReportColumnsList.IndexOf("AvailableItem");
            int endIndex   = ReportColumnsList.IndexOf("QIItem");
            int dunsCount  = endIndex - startIndex - 1;

            #region add dynamic columns
            if (dunsCount > 0)
            {
                for (int i = startIndex + 1; i < endIndex; i++)
                {
                    //available
                    BoundField fieldAvailable_Sys = new BoundField();
                    fieldAvailable_Sys.DataField        = ReportColumnsList[i] + "_Sys";
                    fieldAvailable_Sys.DataFormatString = "{0:#.####}";

                    BoundField fieldAvailable_Value = new BoundField();
                    fieldAvailable_Value.DataField        = ReportColumnsList[i];
                    fieldAvailable_Value.DataFormatString = "{0:#.####}";

                    BoundField fieldAvailable_DiffSum = new BoundField();
                    fieldAvailable_DiffSum.DataField        = ReportColumnsList[i] + "_DiffSum";
                    fieldAvailable_DiffSum.DataFormatString = "{0:c}";

                    BoundField fieldAvailable_Diff = new BoundField();
                    fieldAvailable_Diff.DataField        = ReportColumnsList[i] + "_Diff";
                    fieldAvailable_Diff.DataFormatString = "{0:#.####}";

                    gvAnalysis.Columns.Insert(gvAnalysis.Columns.Count - 6, fieldAvailable_Sys);
                    gvAnalysis.Columns.Insert(gvAnalysis.Columns.Count - 6, fieldAvailable_Value);
                    gvAnalysis.Columns.Insert(gvAnalysis.Columns.Count - 6, fieldAvailable_Diff);
                    gvAnalysis.Columns.Insert(gvAnalysis.Columns.Count - 6, fieldAvailable_DiffSum);
                    //gvAnalysis.Columns.Insert(gvAnalysis.Columns.Count - 4, fieldAvailable_Adjust);

                    //qi
                    BoundField fieldQI_Sys = new BoundField();
                    fieldQI_Sys.DataField        = ReportColumnsList[i + dunsCount + 1] + "_Sys";
                    fieldQI_Sys.DataFormatString = "{0:#.####}";

                    BoundField fieldQI_Value = new BoundField();
                    fieldQI_Value.DataField        = ReportColumnsList[i + dunsCount + 1];
                    fieldQI_Value.DataFormatString = "{0:#.####}";

                    BoundField fieldQI_DiffSum = new BoundField();
                    fieldQI_DiffSum.DataField        = ReportColumnsList[i + dunsCount + 1] + "_DiffSum";
                    fieldQI_DiffSum.DataFormatString = "{0:c}";

                    BoundField fieldQI_Diff = new BoundField();
                    fieldQI_Diff.DataField        = ReportColumnsList[i + dunsCount + 1] + "_Diff";
                    fieldQI_Diff.DataFormatString = "{0:#.####}";

                    //BoundField fieldQI_Adjust = new BoundField();
                    //fieldQI_Adjust.DataField = ReportColumnsList[i + dunsCount + 1] + "_Adjust";

                    gvAnalysis.Columns.Insert(gvAnalysis.Columns.Count - 6, fieldQI_Sys);
                    gvAnalysis.Columns.Insert(gvAnalysis.Columns.Count - 6, fieldQI_Value);
                    gvAnalysis.Columns.Insert(gvAnalysis.Columns.Count - 6, fieldQI_Diff);
                    gvAnalysis.Columns.Insert(gvAnalysis.Columns.Count - 6, fieldQI_DiffSum);
                    //gvAnalysis.Columns.Insert(gvAnalysis.Columns.Count - 4, fieldQI_Adjust);


                    //block
                    BoundField fieldBlk_Sys = new BoundField();
                    fieldBlk_Sys.DataField        = ReportColumnsList[i + 2 * dunsCount + 2] + "_Sys";
                    fieldBlk_Sys.DataFormatString = "{0:#.####}";

                    BoundField fieldBlk_Value = new BoundField();
                    fieldBlk_Value.DataField        = ReportColumnsList[i + 2 * dunsCount + 2];
                    fieldBlk_Value.DataFormatString = "{0:#.####}";

                    BoundField fieldBlk_DiffSum = new BoundField();
                    fieldBlk_DiffSum.DataField        = ReportColumnsList[i + 2 * dunsCount + 2] + "_DiffSum";
                    fieldBlk_DiffSum.DataFormatString = "{0:c}";

                    BoundField fieldBlk_Diff = new BoundField();
                    fieldBlk_Diff.DataField        = ReportColumnsList[i + 2 * dunsCount + 2] + "_Diff";
                    fieldBlk_Diff.DataFormatString = "{0:#.####}";
                    //BoundField fieldBlk_Adjust = new BoundField();
                    //fieldBlk_Adjust.DataField = ReportColumnsList[i + 2 * dunsCount + 2] + "_Adjust";

                    gvAnalysis.Columns.Insert(gvAnalysis.Columns.Count - 6, fieldBlk_Sys);
                    gvAnalysis.Columns.Insert(gvAnalysis.Columns.Count - 6, fieldBlk_Value);
                    gvAnalysis.Columns.Insert(gvAnalysis.Columns.Count - 6, fieldBlk_Diff);
                    gvAnalysis.Columns.Insert(gvAnalysis.Columns.Count - 6, fieldBlk_DiffSum);
                    //gvAnalysis.Columns.Insert(gvAnalysis.Columns.Count - 4, fieldBlk_Adjust);
                }
            }
            #endregion

            PagedDataSource ds = new PagedDataSource();
            ds.AllowPaging          = true;
            ds.DataSource           = dt.DefaultView;
            ds.PageSize             = pagerReport.PageSize;
            ds.CurrentPageIndex     = pagerReport.CurrentPage - 1;
            pagerReport.TotalRecord = dt.DefaultView.Count;
            BindDataControl(gvAnalysis, ds);//dt);
        }
    }