示例#1
0
        private void btnSaveTrims_Click(object sender, EventArgs e)
        {
            Button oBtn             = sender as Button;
            bool   updateSuccessful = true;

            if (formloaded && oBtn != null)
            {
                using (var context = new TTI2Entities())
                {
                    foreach (DataRow DRow in ProductRating.Rows)
                    {
                        TLADM_ProductRating pr = new TLADM_ProductRating();

                        if (!DRow.Field <bool>(10))
                        {
                            pr = context.TLADM_ProductRating.Find(DRow.Field <int>(0));
                        }

                        if (rbBody.Checked)
                        {
                            pr.Pr_BodyorRibbing = 1;
                            pr.Pr_Size_FK       = DRow.Field <int>(11);
                        }
                        else
                        {
                            pr.Pr_BodyorRibbing = 0;
                            pr.Pr_Trim_FK       = DRow.Field <int>(11);
                        }

                        var Cust = (TLADM_CustomerFile)cmbLabels.SelectedItem;
                        if (Cust != null)
                        {
                            pr.Pr_Customer_FK = Cust.Cust_Pk;
                        }

                        var Style = (TLADM_Styles)cmbStyles.SelectedItem;
                        if (Style != null)
                        {
                            pr.Pr_Style_FK = Style.Sty_Id;
                        }

                        pr.Pr_PowerN       = DRow.Field <int>(9);
                        pr.Pr_Discontinued = DRow.Field <bool>(2);
                        pr.Pr_MultiMarker  = DRow.Field <bool>(8);
                        pr.Pr_Ratio        = DRow.Field <decimal>(4);
                        if (!DRow.Field <bool>(8))
                        {
                            pr.Pr_Ratio = 1;
                        }
                        pr.Pr_Marker_Length  = DRow.Field <decimal>(5);
                        pr.Pr_numeric_Rating = DRow.Field <decimal>(6);

                        pr.Pr_Display = DRow.Field <String>(1);
                        if (!String.IsNullOrWhiteSpace(DRow.Field <string>(3)))
                        {
                            pr.Pr_Display += " / " + DRow.Field <string>(3);
                        }

                        if (DRow.Field <bool>(10))
                        {
                            context.TLADM_ProductRating.Add(pr);
                        }
                    }

                    try
                    {
                        context.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                        updateSuccessful = false;
                    }
                    finally
                    {
                        if (updateSuccessful)
                        {
                            ProductRating.Rows.Clear();
                            MessageBox.Show("Records successfully updated");
                        }
                    }
                }
            }
        }
示例#2
0
    ERowCompareResultType CompareRow(DReport detailRoot, DRow drow, int groupIdx, int rowIdx, ref HashSet <DRow> crossJugeRowList)
    {
        if (crossJugeRowList.Contains(drow))
        {
            return(ERowCompareResultType.SUCCEED);
        }

        //每一行做3路对比
        //若这一行有3路
        if (drow.lines.Length == 3)
        {
            //第1路必须要跟第3路是一样的
            if (drow.lines[0].GetText() == drow.lines[2].GetText())
            {
                //可以合并,修改
                return(ERowCompareResultType.SUCCEED);
            }
            else
            {
                //不能合并
                return(ERowCompareResultType.FAILED);
            }
        }
        //若这一行有2路
        else if (drow.lines.Length == 2)
        {
            //这2路如果是1、3路且第1路跟第3路是一样的,则直接合并
            if (drow.lines[0].file == 1 && drow.lines[1].file == 3)
            {
                if (drow.lines[0].GetText() == drow.lines[1].GetText())
                {
                    //可以合并,删除
                    return(ERowCompareResultType.SUCCEED);
                }
                else
                {
                    //不能合并
                    return(ERowCompareResultType.FAILED);
                }
            }
            else if (drow.lines[0].file == 1 && drow.lines[1].file == 2)
            {
                //开始进行交叉判断复杂情况
                bool re = CrossJuge(detailRoot, 1, groupIdx, rowIdx, groupIdx + 1, 0, ref crossJugeRowList);
                if (re)
                {
                    return(ERowCompareResultType.SUCCEED_CROSSJUGE);
                }
                else
                {
                    //1路可能又一些空格或者Tab字符,这种情况先交叉判断,不行就直接新增或修改
                    if (string.IsNullOrEmpty(drow.lines[0].GetText()))
                    {
                        return(ERowCompareResultType.SUCCEED);
                    }
                    //不能合并
                    return(ERowCompareResultType.FAILED_CROSSJUGE);
                }
            }
            else if (drow.lines[0].file == 2 && drow.lines[1].file == 3)
            {
                //开始进行交叉判断复杂情况
                bool re = CrossJuge(detailRoot, 3, groupIdx, rowIdx, groupIdx + 1, 0, ref crossJugeRowList);
                if (re)
                {
                    return(ERowCompareResultType.SUCCEED_CROSSJUGE);
                }
                else
                {
                    //3路可能又一些空格或者Tab字符,这种情况先交叉判断,不行就直接新增或修改
                    if (string.IsNullOrEmpty(drow.lines[1].GetText()))
                    {
                        return(ERowCompareResultType.SUCCEED);
                    }
                    //不能合并
                    return(ERowCompareResultType.FAILED_CROSSJUGE);
                }
            }
        }
        //若这一行有1路
        else if (drow.lines.Length == 1)
        {
            //如果是第2路
            if (drow.lines[0].file == 2)
            {
                //可以合并,新增
                return(ERowCompareResultType.SUCCEED);
            }
            //如果是第1\3路
            else
            {
                //开始进行交叉判断复杂情况
                bool re = CrossJuge(detailRoot, drow.lines[0].file, groupIdx, rowIdx, groupIdx + 1, 0, ref crossJugeRowList);
                if (re)
                {
                    return(ERowCompareResultType.SUCCEED_CROSSJUGE);
                }
                else
                {
                    //1、3路可能又一些空格或者Tab字符,这种情况先交叉判断,不行就直接新增或修改
                    if (string.IsNullOrEmpty(drow.lines[0].GetText()))
                    {
                        return(ERowCompareResultType.SUCCEED);
                    }
                    //不能合并
                    return(ERowCompareResultType.FAILED_CROSSJUGE);
                }
            }
        }

        //怎么可能一行都没有
        return(ERowCompareResultType.FAILED);
    }
        /// <summary>
        /// InitalizeTimeTableContext
        /// </summary>
        private void InitalizeTimeTableContext()
        {
            TimeTableContext = new DContext();

            // Create List Columns
            TimeTableContext.Columns = new ObservableCollection <DColumn>
            {
            };

            // Add Label Column
            DColumn labelColum = new DColumn {
                Width = 20
            };

            TimeTableContext.Columns.Add(labelColum);

            // Add 7x12 column for content
            for (var i = 0; i < 84; i++)
            {
                var contentColumn = new DColumn()
                {
                    Width = 30
                };
                TimeTableContext.Columns.Add(contentColumn);
            }

            TimeTableContext.Rows = new ObservableCollection <DRow>()
            {
            };
            // Add row for Day
            var dayRow = new DRow()
            {
                Height = 20
            };

            TimeTableContext.Rows.Add(dayRow);
            // Add row for index
            var indexRow = new DRow()
            {
                Height = 15
            };

            TimeTableContext.Rows.Add(indexRow);

            // Add 50 content Row
            for (var i = 0; i < 50; i++)
            {
                var contentRow = new DRow()
                {
                    Height = 30
                };
                TimeTableContext.Rows.Add(contentRow);
            }

            // Add Monday
            var mondayCell = new DCell(0, 1, 1, 12);

            mondayCell.BackgroundContent = "Monday";
            mondayCell.UIContent         = new lessonView();

            TimeTableContext.AddCell(mondayCell);
            AddLessonIndex(1, 12);

            // Add Tuesday
            var tuesdayCell = new DCell(0, 13, 1, 12);

            tuesdayCell.BackgroundContent = "Tuesday";
            TimeTableContext.AddCell(tuesdayCell);
            AddLessonIndex(13, 12);
            // Add Wednesday
            var wednesDayCell = new DCell(0, 25, 1, 12);

            wednesDayCell.BackgroundContent = "Wesnesday";
            TimeTableContext.AddCell(wednesDayCell);
            AddLessonIndex(25, 12);


            // Add Thursday
            var thursdayCell = new DCell(0, 37, 1, 12);

            thursdayCell.BackgroundContent = "Thursday";
            TimeTableContext.AddCell(thursdayCell);
            AddLessonIndex(37, 12);

            // Add Friday
            var fridayCell = new DCell(0, 49, 1, 12);

            fridayCell.BackgroundContent = "Friday";
            TimeTableContext.AddCell(fridayCell);
            AddLessonIndex(49, 12);

            // Add Saturday
            var saturdayCell = new DCell(0, 61, 1, 12);

            saturdayCell.BackgroundContent = "Saturday";
            TimeTableContext.AddCell(saturdayCell);
            AddLessonIndex(61, 12);

            // Add Sunday
            var sundayCell = new DCell(0, 73, 1, 12);

            sundayCell.BackgroundContent = "Sunday";
            TimeTableContext.AddCell(sundayCell);
            AddLessonIndex(73, 12);

            //var dumyCell = new DCell(1, 1, 1, 1);

            //TimeTableContext.AddCell(dumyCell);
            // InsertBackgroudForAllTimeItems
            InsertBackgroudForAllTimeItems();
        }
示例#4
0
    /// <summary>
    /// 这个不单单是合并,在合并时还会判断是否可以合并,而是否可以合并的条件又包含需要向上和向下判断是否Compare成功,所以还需要
    /// DReport detailRoot, ref CompareDetailParam param, int groupIdx, int rowIdx, ref HashSet<DRow> crossJugeRowList这一坨参数
    /// </summary>
    /// <param name="resultType"></param>
    /// <param name="drow"></param>
    /// <param name="detailRoot"></param>
    /// <param name="param"></param>
    /// <param name="groupIdx"></param>
    /// <param name="rowIdx"></param>
    /// <param name="crossJugeRowList"></param>
    void MergeRow(ERowCompareResultType resultType, DRow drow, DReport detailRoot, ref CompareDetailParam param, int groupIdx, int rowIdx, ref HashSet <DRow> crossJugeRowList)
    {
        switch (resultType)
        {
        case ERowCompareResultType.FAILED:
        case ERowCompareResultType.FAILED_CROSSJUGE:
        {
            param.CurrentNotDirtyUpRowNum = 0;
            string fileName = detailRoot.metaData.fileDetails[0].location + "\\" + detailRoot.metaData.fileDetails[0].name;
            int    line     = param.GetRealHandleLineNum();
            Dictionary <int, List <int> > lineResult;
            if (!FaildFileResult.TryGetValue(fileName, out lineResult))
            {
                lineResult = new Dictionary <int, List <int> >();
                FaildFileResult.Add(fileName, lineResult);
            }

            List <int> lineData;
            if (!lineResult.TryGetValue(line, out lineData))
            {
                bool isNew = true;
                if (lineResult.Count > 0)
                {
                    if ((lineResult.Last().Value.Last() + 1) == line)
                    {
                        lineResult.Last().Value.Add(line);
                        isNew = false;
                    }
                }
                if (isNew)
                {
                    lineData = new List <int> {
                        line
                    };
                    lineResult.Add(line, lineData);
                }
            }

            break;
        }

        case ERowCompareResultType.SUCCEED:
        {
            if (param.CheckCanMergeByDirtyRow() == false)
            {
                param.CurrentNotDirtyUpRowNum = 0;
                break;
            }
            int  iGroupIdx   = groupIdx;
            int  iRowIdx     = rowIdx;
            bool isDownDirty = false;
            for (int i = 0; i < param.NeedNotDirtyDownRowNum; ++i)
            {
                var nRow = param.GetNextRow(detailRoot, ref iGroupIdx, ref iRowIdx, 1);
                if (nRow != null)
                {
                    var cResult = CompareRow(detailRoot, nRow, iGroupIdx, iRowIdx, ref crossJugeRowList);
                    if (cResult == ERowCompareResultType.FAILED || cResult == ERowCompareResultType.FAILED_CROSSJUGE)
                    {
                        isDownDirty = true;
                        break;
                    }
                }
            }
            if (isDownDirty == true)
            {
                param.CurrentNotDirtyUpRowNum = 0;
                break;
            }

            param.CurrentNotDirtyUpRowNum++;
            if (drow.lines.Length >= 2)
            {
                if (drow.lines[0].file == 1 && drow.lines[1].file == 2)
                {
                    //可以合并,修改
                    ReplaceLine(ref param.LineList1, param.GetRealHandleLineNum(), param.GetRealLineText(drow.lines[1].file, drow.lines[1].number));
                }
                else if (drow.lines[0].file == 1 && drow.lines[1].file == 3)
                {
                    //可以合并,删除
                    RemoveLine(ref param.LineList1, param.GetRealHandleLineNum());
                    param.OffsetLineNum--;
                }
                else if (drow.lines[0].file == 2 && drow.lines[1].file == 3)
                {
                    //可以合并,新增
                    InsertLine(ref param.LineList1, param.GetRealHandleLineNum(), param.GetRealLineText(drow.lines[0].file, drow.lines[0].number));
                    param.OffsetLineNum++;
                }
            }
            else
            {
                if (drow.lines[0].file == 1)
                {
                    //可以合并,删除
                    RemoveLine(ref param.LineList1, param.GetRealHandleLineNum());
                    param.OffsetLineNum--;
                }
                else if (drow.lines[0].file == 2)
                {
                    //可以合并,新增
                    InsertLine(ref param.LineList1, param.GetRealHandleLineNum(), param.GetRealLineText(drow.lines[0].file, drow.lines[0].number));
                    param.OffsetLineNum++;
                }
                else if (drow.lines[0].file == 3)
                {
                    //不用管
                }
            }
            break;
        }

        case ERowCompareResultType.SUCCEED_CROSSJUGE:
        {
            MergeRow(ERowCompareResultType.SUCCEED, drow, detailRoot, ref param, groupIdx, rowIdx, ref crossJugeRowList);
            break;
        }

        default:
        {
            param.CurrentNotDirtyUpRowNum = 0;
            break;
        }
        }
    }
示例#5
0
        private void crystalReportViewer1_Load(object sender, EventArgs e)
        {
            if (_RepNo == 1)
            {
                DataSet ds = new DataSet();
                DataSet1.DataTable1DataTable dataTable1 = new DataSet1.DataTable1DataTable();
                DataSet1.DataTable2DataTable dataTable2 = new DataSet1.DataTable2DataTable();

                ExecRepository      repo       = new ExecRepository();
                ExecQueryParameters QueryParms = new ExecQueryParameters();

                core = new Util();
                //================================================================
                System.Data.DataTable dt = new System.Data.DataTable();
                dt.Columns.Add("Description", typeof(string)); // 0
                //===============================================================================
                dt.Columns.Add("01", typeof(decimal));         // 1
                dt.Columns[1].DefaultValue = 0.0;
                dt.Columns.Add("02", typeof(decimal));         // 2
                dt.Columns[2].DefaultValue = 0.0;
                dt.Columns.Add("03", typeof(decimal));         // 3
                dt.Columns[3].DefaultValue = 0.0;
                dt.Columns.Add("04", typeof(decimal));         // 4
                dt.Columns[4].DefaultValue = 0.0;
                dt.Columns.Add("05", typeof(decimal));         // 5
                dt.Columns[5].DefaultValue = 0.0;
                dt.Columns.Add("06", typeof(decimal));         // 6
                dt.Columns[6].DefaultValue = 0.0;
                dt.Columns.Add("07", typeof(decimal));         // 7
                dt.Columns[7].DefaultValue = 0.0;
                dt.Columns.Add("08", typeof(decimal));         // 8
                dt.Columns[8].DefaultValue = 0.0;
                dt.Columns.Add("09", typeof(decimal));         // 9
                dt.Columns[9].DefaultValue = 0.0;
                dt.Columns.Add("10", typeof(decimal));         // 10
                dt.Columns[10].DefaultValue = 0.0;
                dt.Columns.Add("11", typeof(decimal));         // 11
                dt.Columns[11].DefaultValue = 0.0;
                dt.Columns.Add("12", typeof(decimal));         // 12
                dt.Columns[12].DefaultValue = 0.0;
                dt.Columns.Add("13", typeof(int));             // 13
                dt.Columns[13].DefaultValue = 0;

                using (var context = new TTI2Entities())
                {
                    QueryParms.ToDate   = DateTime.Now;
                    QueryParms.FromDate = QueryParms.ToDate.AddDays(-1 * QueryParms.ToDate.DayOfYear + 1);

                    var YarnProd = repo.ExecYarnProduction(QueryParms).GroupBy(x => x.YarnOP_DatePacked.Value.Month);
                    if (YarnProd.Count() != 0)
                    {
                        DataRow Row = dt.NewRow();
                        Row[0] = "Spinning - Yarn Production";

                        foreach (var Mth in YarnProd)
                        {
                            var MthKey   = Mth.FirstOrDefault().YarnOP_DatePacked.Value.Month.ToString().PadLeft(2, '0');
                            var ColIndex = dt.Columns.IndexOf(MthKey);
                            if (ColIndex != 0)
                            {
                                Row[ColIndex] = Row.Field <decimal>(ColIndex) + Mth.Sum(x => (decimal?)x.YarnOP_NettWeight) ?? 0.0M;
                            }
                        }
                        Row[13] = 1;
                        dt.Rows.Add(Row);
                    }

                    var GreigeProd = repo.ExecGreigeProduction(QueryParms).GroupBy(x => x.GreigeP_PDate.Value.Month);
                    if (GreigeProd.Count() != 0)
                    {
                        DataRow Row = dt.NewRow();
                        Row[0] = "Knitting - Greige Production";

                        foreach (var Mth in GreigeProd)
                        {
                            var MthKey   = Mth.FirstOrDefault().GreigeP_PDate.Value.Month.ToString().PadLeft(2, '0');
                            var ColIndex = dt.Columns.IndexOf(MthKey);
                            if (ColIndex != 0)
                            {
                                Row[ColIndex] = Row.Field <decimal>(ColIndex) + Mth.Sum(x => (decimal?)x.GreigeP_weight) ?? 0.0M;
                            }
                        }
                        Row[13] = 2;
                        dt.Rows.Add(Row);
                    }

                    var DyedNotComplete = repo.ExecDyeNotFinshed(QueryParms).GroupBy(x => x.TLDYET_Date.Month);
                    if (DyedNotComplete.Count() != 0)
                    {
                        DataRow Row = dt.NewRow();
                        Row[0] = "Dyeing - Fabric Dyed";

                        foreach (var Mth in DyedNotComplete)
                        {
                            var MthKey   = Mth.FirstOrDefault().TLDYET_Date.Month.ToString().PadLeft(2, '0');
                            var ColIndex = dt.Columns.IndexOf(MthKey);
                            if (ColIndex != 0)
                            {
                                Row[ColIndex] = Row.Field <decimal>(ColIndex) + Mth.Sum(x => (decimal?)x.TLDYET_BatchWeight) ?? 0.0M;
                            }
                        }
                        Row[13] = 3;
                        dt.Rows.Add(Row);
                    }

                    var DyedIntoQuarantine = repo.ExecDyeIntoQuarantine(QueryParms).GroupBy(x => x.DYEBO_ApprovalDate.Value.Month);
                    if (DyedIntoQuarantine.Count() != 0)
                    {
                        DataRow Row = dt.NewRow();
                        Row[0] = "Dyeing - Fabric Into Quarantine";

                        foreach (var Mth in DyedIntoQuarantine)
                        {
                            var MthKey   = Mth.FirstOrDefault().DYEBO_ApprovalDate.Value.Month.ToString().PadLeft(2, '0');
                            var ColIndex = dt.Columns.IndexOf(MthKey);
                            if (ColIndex != 0)
                            {
                                Row[ColIndex] = Row.Field <decimal>(ColIndex) + Mth.Sum(x => (decimal?)x.DYEBO_Nett) ?? 0.0M;
                            }
                        }
                        Row[13] = 4;
                        dt.Rows.Add(Row);
                    }
                    var CutProd = repo.ExecIntoPanelStore(QueryParms).GroupBy(x => x.TLCUTSHRD_PanelDate.Value.Month);
                    if (CutProd.Count() != 0)
                    {
                        DataRow Row = dt.NewRow();
                        Row[0] = "Cutting - Panels into Store";

                        foreach (var Mth in CutProd)
                        {
                            var MthKey   = Mth.FirstOrDefault().TLCUTSHRD_PanelDate.Value.Month.ToString().PadLeft(2, '0');
                            var ColIndex = dt.Columns.IndexOf(MthKey);
                            if (ColIndex != 0)
                            {
                                Row[ColIndex] = Row.Field <decimal>(ColIndex) + Mth.Sum(x => (decimal?)x.TLCUTSHRD_BoxUnits) ?? 0.0M;
                            }
                        }
                        Row[13] = 5;
                        dt.Rows.Add(Row);
                    }

                    var WorkComplete = repo.ExecWorkCompleted(QueryParms);
                    if (WorkComplete.Count() != 0)
                    {
                        DataRow Row = dt.NewRow();
                        Row[0] = "CMT - Work Completed";

                        var Records = (from LI in context.TLCMT_LineIssue
                                       join WC in context.TLCMT_CompletedWork on LI.TLCMTLI_Pk equals WC.TLCMTWC_LineIssue_FK
                                       where LI.TLCMTLI_WorkCompleted && LI.TLCMTLI_WorkCompletedDate >= QueryParms.FromDate && LI.TLCMTLI_WorkCompletedDate <= QueryParms.ToDate
                                       select new { LI.TLCMTLI_WorkCompletedDate, WC.TLCMTWC_Qty }).GroupBy(x => x.TLCMTLI_WorkCompletedDate.Value.Month);

                        foreach (var Group in Records)
                        {
                            var MthKey   = Group.FirstOrDefault().TLCMTLI_WorkCompletedDate.Value.Month.ToString().PadLeft(2, '0');
                            var ColIndex = dt.Columns.IndexOf(MthKey);
                            if (ColIndex != 0)
                            {
                                Row[ColIndex] = Row.Field <decimal>(ColIndex) + Group.Sum(x => (decimal?)x.TLCMTWC_Qty) ?? 0.0M;
                            }
                        }
                        Row[13] = 6;
                        dt.Rows.Add(Row);

                        foreach (DataRow DRow in dt.Rows)
                        {
                            DataSet1.DataTable1Row nr = dataTable1.NewDataTable1Row();
                            nr.Description = DRow.Field <String>(0);
                            nr.Jan         = DRow.Field <decimal>(1);
                            nr.Feb         = DRow.Field <decimal>(2);
                            nr.Mar         = DRow.Field <decimal>(3);
                            nr.Apr         = DRow.Field <decimal>(4);
                            nr.May         = DRow.Field <decimal>(5);
                            nr.Jun         = DRow.Field <decimal>(6);
                            nr.Jul         = DRow.Field <decimal>(7);
                            nr.Aug         = DRow.Field <decimal>(8);
                            nr.Sep         = DRow.Field <decimal>(9);
                            nr.Oct         = DRow.Field <decimal>(10);
                            nr.Nov         = DRow.Field <decimal>(11);
                            nr.Dec         = DRow.Field <decimal>(12);
                            nr.SortOrder   = DRow.Field <int>(13);
                            nr.Pk          = 1;
                            dataTable1.AddDataTable1Row(nr);
                        }
                        dt.Rows.Clear();
                    }
                }

                DataSet1.DataTable2Row hnr = dataTable2.NewDataTable2Row();
                hnr.Pk       = 1;
                hnr.FromDate = QueryParms.FromDate;
                hnr.ToDate   = QueryParms.ToDate;
                hnr.Title    = "Company Production By Department";
                dataTable2.AddDataTable2Row(hnr);

                if (dataTable1.Rows.Count == 0)
                {
                    DataSet1.DataTable1Row nr = dataTable1.NewDataTable1Row();
                    nr.ErrorLog = "No record found peratining to selection made";
                    dataTable1.AddDataTable1Row(nr);
                }

                ds.Tables.Add(dataTable1);
                ds.Tables.Add(dataTable2);

                Production Prod = new Production();
                Prod.SetDataSource(ds);
                crystalReportViewer1.ReportSource = Prod;
            }

            crystalReportViewer1.Refresh();
        }