Пример #1
0
        private void tsbDel_Click(object sender, EventArgs e)
        {
            if (OrderGV.SelectedItems != null && OrderGV.SelectedItems.Count > 0)
            {
                if (System.Windows.Forms.DialogResult.No == System.Windows.Forms.MessageBox.Show("确定删除?"
                                                                                                 , "注意", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question))
                {
                    return;
                }
                var Datas = new EncodeCollection <CheckOrder>();
                for (int i = 0; i < OrderGV.SelectedItems.Count; i++)
                {
                    var order = OrderGV.SelectedItems[i];

                    //order.OrderState = MMDefInOrderStateEnum.Discard;
                    //var Helper = new QueryHelper<RetainedSampleOrderItem>();
                    //Helper.Add();
                    order.State = DataState.Deleted;
                    Datas.Add(order);
                    OrderGV.Datas.Remove(order);
                }
                Datas.SaveDatas();
                OrderGV.Refresh(OrderGV.Datas);
            }
        }
Пример #2
0
        /// <summary>
        /// 没实际批次
        /// </summary>
        /// <param name="lotID"></param>
        /// <param name="sourceOrderID">源工单ID</param>
        /// <param name="sourceType"></param>
        /// <param name="dtSampleDate"></param>
        /// <param name="creator"></param>
        /// <param name="samplecount"></param>
        /// <param name="plancheckitemstring"></param>
        /// <param name="firscheck"></param>
        /// <param name="checkType"></param>
        /// <returns></returns>
        static public ReturnValue AutoCreateCheckOrder(int defpk, int hutid, string lotid, string sourceOrderID, SampleTypeEnum sampleType, DateTime dtSampleDate, string creator, int samplecount = 1, string plancheckitemstring = "", bool firscheck = true, CheckTypeEnum checkType = CheckTypeEnum.Normal)
        {
            if (!string.IsNullOrWhiteSpace(sourceOrderID))
            {
                EncodeCollection <CheckOrder> ec = Encode.EncodeData.GetDatas <CheckOrder>("sourceorderid = '" + sourceOrderID + "'", string.Empty, 1);
                if (ec.Count > 0)
                {
                    return(new ReturnValue(true, 1, "检验单已创建"));
                }
            }
            //find lot
            // EncodeCollection<MMReiptOrder> ecMR = Encode.EncodeData.GetDatas<MMReiptOrder>(string.Format("sitlotid='{0}'", lotID), string.Empty, -1);
            // MMLot lot = SSIT.Bread.UI.MM.MMCommon.GetLotbyID(lotID);
            //if (lot != null)
            //if(ecMR.Count > 0 )
            //{
            //MMReiptOrder mr = ecMR[0];
            //先创建SampleItem
            CheckOrder si = new CheckOrder {
                LotID = lotid, HutPK = hutid, DefPK = defpk
            };

            //si.HutID = lot.HutID;
            si.SampleID      = CheckOrder.GetNewCheckID(dtSampleDate);
            si.CheckQuantity = samplecount;
            si.PlanCheckDate = si.SampleDate = dtSampleDate.ToString(EncodeConst.DateFormat);
            //si.CreateType = createType;
            si.CheckOrderState     = CheckOrderStateEnum.Submit;
            si.SourceOrderID       = sourceOrderID;
            si.SampleType          = sampleType;
            si.Creator             = creator;
            si.CreateTime          = dtSampleDate.ToString(EncodeConst.DateTimeFormat);
            si.PlanCheckItemString = plancheckitemstring;
            //si.FirstCheck = firscheck;
            //if(User.CurrentUser != null)
            //{
            //    si.ActualInspector = User.CurrentUser.ParamName;
            //}
            if (string.IsNullOrWhiteSpace(si.PlanCheckItemString))
            {
                DefinitionCheckItemCombine combine = DefinitionCheckItemCombine.GetItemby(si.DefPK);
                if (combine != null)
                {
                    List <int> list = CheckItem.Instance.GetIdList(combine.GetCheckItems());
                    si.PlanCheckItemString = SSITEncode.Common.STRING.IntListToString(list);
                }
            }
            si.State = DataState.New;
            //EncodeCollection<SampleItemOrder> ec = new EncodeCollection<SampleItemOrder>(si);
            ReturnValue rv = Encode.EncodeData.SaveDatas <CheckOrder>(new EncodeCollection <CheckOrder>(si));

            if (rv.Success)
            {
                rv.ValueString = si.SampleID;
                //SSIT.SystemManager.DataInterface.MessageContent.CreateNewMessage(BreadInterface.SampleTypeEnum.QMOrder, si.SampleID, creator);
            }
            return(rv);

            // return new ReturnValue(false, -444, "找不到对应批次");
        }
Пример #3
0
        private void btImport_Click(object sender, EventArgs e)
        {
            SelectMMDefForm form = new SelectMMDefForm();
            EncodeCollection <SupAndMMRelation> ec = new EncodeCollection <SupAndMMRelation>();

            if (form.ShowDialog() == DialogResult.OK)
            {
                var definitions = form.SelectedItems;
                if (definitions != null)
                {
                    foreach (var def     in definitions)
                    {
                        if (SupAndMMRelation.Instance.Datas.FirstOrDefault(p => p.Enable && p.DefPK == def.DefPK && p.SupPK == grid.SupPK) == null)
                        {
                            SupAndMMRelation supAndMMRelation = new SupAndMMRelation
                            {
                                DefID     = def.DefID,
                                SupPK     = grid.SupPK,
                                ParamName = def.DefName,
                                State     = DataState.New
                            };
                            grid.Encodes.Add(supAndMMRelation);
                            grid.InsertRow(grid.RowsCount - 1, supAndMMRelation);
                            // ec.Add(supAndMMRelation);
                        }
                    }
                }

                // grid.InsertRow(,ec);
            }
            //List<MMDefinition> mmdefList = form.SelectedItems;
        }
Пример #4
0
 private void tsbDel_Click(object sender, EventArgs e)
 {
     if (GV.ParentItemSelected && GV.SelectedItems != null && GV.SelectedItems.Count > 0)
     {
         if (System.Windows.Forms.DialogResult.No == System.Windows.Forms.MessageBox.Show(string.Format("是否确定删除所选的[{0}]个样品?", GV.SelectedItems.Count)
                                                                                          , "注意", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question))
         {
             return;
         }
         var Datas = new EncodeCollection <MMInOrder>();
         for (int i = 0; i < GV.SelectedItems.Count; i++)
         {
             var order = GV.SelectedItems[i];
             var items = SampleOrder.Instance.Datas.FirstOrDefault(p => p.SourceOrderID == order.CheckLot);
             if (items != null)
             {
                 MessageBox.Show("该工单下已产生样品工单,无法删除");
                 continue;
             }
             //order.OrderState = MMDefInOrderStateEnum.Discard;
             //var Helper = new QueryHelper<RetainedSampleOrderItem>();
             //Helper.Add();
             order.State = DataState.Deleted;
             Datas.Add(order);
             GV.MasterDatas.Remove(order);
         }
         Datas.SaveDatas();
         GV.Refresh(GV.MasterDatas, GV.ChildDatas);
     }
 }
Пример #5
0
        public void LoadDatas(EncodeCollection <CheckData> datas)
        {
            for (int i = 0; i < Fields.Count; i++)
            {
                int rowindex = i + FixedRows;
                for (int sampleindex = 1; sampleindex <= SampleCount; sampleindex++)
                {
                    CheckData sd = CheckData.FindData(datas, Order.CheckOrderID, Fields[i].ID, sampleindex);

                    if (sd == null)
                    {
                        sd          = CheckData.CreateItem(Order.CheckOrderID, Fields[i].ID, sampleindex);
                        sd.SampleID = Order.SampleID;
                    }
                    else
                    {
                        if (sampleindex == 1)
                        {
                            if (!CheckData.UseNewstStandard)
                            {
                                this[rowindex, 4].Value = sd.StandardStr;
                            }
                        }
                        this[rowindex, HeaderCount + sampleindex - 1].Value = sd.DataValue;
                    }
                    sd.ValueType = Fields[i].ValueType;
                    var cell = this[rowindex, HeaderCount + sampleindex - 1];
                    SetCellColor(cell, sd);
                    cell.Tag = sd;
                }
            }
        }
Пример #6
0
        private void ExecuteThread()
        {
            try
            {
                Wait.SetLable("正在进行数据查询,请稍候...");

                var           mminorder = GetDatas();
                List <string> idList    = new List <string>();
                foreach (var data in mminorder)
                {
                    idList.Add(data.OrderID);
                }
                SampleOrder.Instance.Datas = null;
                EncodeCollection <SampleOrder> sampleorder =
                    new EncodeCollection <SampleOrder>(SampleOrder.Instance.Datas.Where(p => idList.Contains(p.SourceOrderID)));

                Wait.SetLable("正在填充表格,请稍候...");
                GV.FillGridByThread(mminorder, sampleorder);
            }
            catch (Exception ex)
            {
                Wait.Message = ex.Message;
                if (Wait.JobState == WaitState.正在操作)
                {
                    Wait.Close();
                }
            }
        }
Пример #7
0
        public CheckDataInputForm(CheckOrder order)
        {
            //test
            //order.CheckOrderState = CheckOrderStateEnum.Submit;
            _sampleOrder = order;

            InitializeComponent();

            _Grid = new SSITGridView <CheckOrder>()
            {
                Dock                     = DockStyle.Fill,
                MultiSelect              = true,
                AllowDeleteRow           = false,
                AllowAddNewRow           = false,
                AllowEditRow             = false,
                AllowToolBar             = true,
                AllowBottomToolBar       = false,
                AllowBottomToolBarFilter = false,
                AllowDragToGroup         = false,
                AllowPaging              = false,
                GridFilterMode           = FilterMode.CustomFilter
            };
            _Grid.ToolBar.Visible = false;
            twSampleOrder.Controls.Add(_Grid);
            EncodeCollection <CheckOrder> ec = new EncodeCollection <CheckOrder>();

            ec.Add(order);
            _Grid.FillGrid(ec);
            //_sampleOrderGrid.SetGrid(ec);
            tsbSampleCount.Text = order.CheckQuantity.ToString();
            tsbNote.Text        = order.Note;
            LoadImage(order.SampleID);
            LoadInfo();
        }
Пример #8
0
 public void QueryResult(EncodeCollection <CheckOrder> collection)
 {
     if (collection == null)
     {
         return;
     }
     _gc = collection;
     SetReportView();
 }
Пример #9
0
        static public CheckOrder GetItembySourceOrderID(string sorceorderid)
        {
            EncodeCollection <CheckOrder> ec = Encode.EncodeData.GetDatas <CheckOrder>("sourceorderid = '" + sorceorderid + "'", string.Empty, 1);

            if (ec.Count > 0)
            {
                return(ec[0]);
            }
            return(null);
        }
Пример #10
0
        public static CheckData FindData(EncodeCollection <CheckData> ec, string checkorderid, int checkitemid, int sampleindex)
        {
            List <CheckData> ret = new List <CheckData>(ec.Where(item => item.CheckOrderID == checkorderid && item.CheckItemID == checkitemid && item.SampleIndex == sampleindex));

            if (ret.Count > 0)
            {
                return(ret[0]);
            }
            return(null);
        }
Пример #11
0
        void checkQueryControl1_QueryReturnData(EncodeCollection <IEncode> datas)
        {
            EncodeCollection <CheckOrder> ec = new EncodeCollection <CheckOrder>();

            foreach (CheckOrder item in datas)
            {
                ec.Add(item);
            }

            OrderGV.FillGrid(ec);
        }
Пример #12
0
        public static CheckData FindLastData(string sampleid, int checkitemid)
        {
            string clause = string.Format("sampleid='{0}' and checkitemid = {1} ", sampleid, checkitemid);
            EncodeCollection <CheckData> ec = Encode.EncodeData.GetDatas <CheckData>(clause, "sampleindex desc", -1);

            if (ec.Count == 0)
            {
                return(null);
            }
            return(ec[0]);
        }
Пример #13
0
 protected ReturnValue UpdateItem(CheckData item, string StandardStr)
 {
     item.UpdateTime = DateTime.Now.ToString(EncodeConst.DateTimeFormat);
     item.SetPass(StandardStr);
     item.State = DataState.New;
     if (IsRealTimeUpdate)
     {
         EncodeCollection <CheckData> ec = new EncodeCollection <CheckData>(item);
         return(Encode.EncodeData.SaveDatas <CheckData>(ec));
     }
     return(new ReturnValue(true));
 }
Пример #14
0
        //public QualifyJudgeEnum SetQualifyJudge()
        //{
        //    EncodeCollection<CheckData> ec =  CheckData.LoadDatasbySampleID(SampleID);
        //    foreach (CheckData data in ec)
        //    {

        //    }
        //}
        #region 静态属性、方法
        static public string GetNewCheckID(DateTime dt)
        {
            string IdInit = "C" + dt.ToString("yyyyMMdd");
            EncodeCollection <CheckOrder> ec = Encode.EncodeData.GetDatas <CheckOrder>("sampleid Like '" + IdInit + "%'", "sampleid desc", 1);

            if (ec.Count > 0)
            {
                string strnum = ec[0].SampleID.Substring(IdInit.Length);
                int    num;
                if (int.TryParse(strnum, out num))
                {
                    return(IdInit + (num + 1).ToString("000"));
                }
            }
            return(IdInit + "001");
        }
Пример #15
0
        public static EncodeCollection <CheckData> LoadDatasbySampleID(string sampleid)
        {
            if (string.IsNullOrWhiteSpace(sampleid))
            {
                return(new EncodeCollection <CheckData>());
            }
            var order = CheckOrder.GetItembyID(sampleid);

            if (order == null)
            {
                return(new EncodeCollection <CheckData>());
            }
            string clause = string.Format("sampleid='{0}'", sampleid);
            EncodeCollection <CheckData> ec = Encode.EncodeData.GetDatas <CheckData>(clause, string.Empty, -1);

            foreach (var item in ec)
            {
                item.Order = order;
            }
            return(ec);
        }
Пример #16
0
        public CheckDataCopyForm(EncodeCollection <CheckOrder> ec)
        {
            //test
            //order.SampleOrderState = SampleOrderStateEnum.Submit;
            _sampleOrder = ec[0];

            InitializeComponent();
            _sampleOrderGrid = new ObjectGrid <CheckOrder> {
                Dock = DockStyle.Fill
            };
            _sampleOrderGrid.Fields = FieldSelectSettings <CheckOrder> .Instance.Fields.ToDescriptionList();

            _sampleOrderGrid.Init();
            panel1.Controls.Add(_sampleOrderGrid);

            _sampleOrderGrid.SetGrid(ec);
            _sampleOrderGrid.SelectedChanged += OnSampleSelectedChanged;
            //tsbSampleCount.Text = _sampleOrder.SampleQuantity.ToString();
            //tsbNote.Text = _sampleOrder.Note;
            _sampleOrderGrid.SelectedRow = 0;
            LoadInfo();
        }
Пример #17
0
        //EncodeCollection<CheckData> LoadData()
        //{
        //    string clause = string.Format("sampleid='{0}'",_sampleOrder.SampleID);
        //    EncodeCollection<CheckData> ec =  Encode.EncodeData.GetDatas<CheckData>(clause, string.Empty, -1);
        //    return ec;
        //}
        List <InputField> CheckItemsToInputFields(EncodeCollection <CheckItem> ec)
        {
            List <InputField> list = new List <InputField>();

            foreach (CheckItem item in ec)
            {
                InputField field = new InputField
                {
                    FieldName   = item.ToString(),
                    ID          = item.ParamID,
                    ValueType   = item.ValueTypeID,
                    CheckType   = item.GetCheckType(),
                    QualifyRate = 100f,
                    ReadOnly    = IsReadOnly,
                    Precision   = item.Precision
                };
                if (_sampleOrder != null)
                {
                    CheckStandard.MMTypeID = (int)MMTypEnum.QM;
                    CheckStandard cs = CheckStandard.Instance.GetCurrentStandard(_sampleOrder.DefPK, item.ParamID);
                    if (cs != null)
                    {
                        if (!string.IsNullOrWhiteSpace(cs.EntStandardStr))
                        {
                            field.StandardStr = cs.EntStandardStr;
                        }
                        else if (!string.IsNullOrWhiteSpace(cs.NatStandardStr))
                        {
                            field.StandardStr = cs.NatStandardStr;
                        }
                        field.QualifyRate = cs.QualifyRate;
                    }
                }
                list.Add(field);
            }
            return(list);
        }
Пример #18
0
        public override void Init()                             //初始化Grid
        {
            base.Init();
            //	物料编号	物料名称	是否免检

            InsertColumn(iDefID, "物料编号", ColumnStyle.ReadOnly); //Grid的展示列——第一列的列头名称
            InsertColumn(iDefName, "物料名称", ColumnStyle.ReadOnly);

            InsertColumn(iExemption, "检查类型", new string[] { "免检", "常规检", "调整检" });

            _encodes = SupAndMMRelation.Instance.Datas;
            EncodeCollection <SupAndMMRelation> supmmre = new EncodeCollection <SupAndMMRelation>();

            foreach (var item in SupAndMMRelation.Instance.GetEnableCollection())
            {
                if (item.SupPK == SupPK)
                {
                    supmmre.Add(item);
                }
            }

            LoadGrid(supmmre);
            //this.NewRow();
        }
Пример #19
0
        private void InitGrid()
        {
            GV = new SSITRelationGridView <MMInOrder, SampleOrder>();

            GV.Dock                           = DockStyle.Fill;
            GV.AutoExpandGroups               = true;
            GV.MultiSelect                    = true;
            GV.AllowDeleteRow                 = false;
            GV.AllowAddNewRow                 = false;
            GV.AllowEditRow                   = false;
            GV.AllowBottomToolBar             = true;
            GV.AllowBottomToolBarFilter       = false;
            GV.AllowDragToGroup               = true;
            GV.AllowPaging                    = false;
            GV.AllowScrollbarsInHierarchy     = false;
            GV.RomoveChildTableRelationFields = true;
            GV.AddDefaultSort("OperationDate", ListSortDirection.Descending);



            //过滤:
            GV.GridFilterMode = FilterMode.CustomFilter;
            //GV.SelectionChanged += GV_SelectionChanged;
            //GV.GridClick += GV_GridClick;
            // GV.StyleChanged += GV_StyleChanged;
            GV.MasterStyleChanged += GV_StyleChanged;
            GV.CellFormatting     += GV_CellFormatting;
            GV.InitColumns();
            GV.AddRelation("Relation1", "CheckLot", "SourceOrderID");
            //GV.HiddenColumns(false, "OrderID");    //将关系Guid列隐藏
            EncodeCollection <MMInOrder>   mminorder   = GetDatas();
            EncodeCollection <SampleOrder> sampleorder = new EncodeCollection <SampleOrder>(SampleOrder.Instance.Datas);

            GV.FillGrid(mminorder, sampleorder);
            GridPanel.Controls.Add(GV);
        }
Пример #20
0
        private ReturnValue Save()
        {
            ReturnValue rv = new ReturnValue(false);

            RefreshDatas <CheckOrder>(OrderItem);
            string plancheckitemstring = "";
            var    spectorlist         = ucOperator1.SelectedUsers;
            var    inspectoridlist     = spectorlist.Select(p => p.ParamName).ToList();
            int    userflag            = 0;

            //保存计划检测项目
            if (SelectedCheckItems != null && SelectedCheckItems.Count > 0)
            {
                var list = SelectedCheckItems.Select(p => p.ParamID).ToList();
                plancheckitemstring = list.ListIntToString();
            }
            if (rcbMutiOrder.Checked)
            {
                Dictionary <int, List <CheckItem> > dic = new Dictionary <int, List <CheckItem> >();
                foreach (var item in SelectedCheckItems)
                {
                    if (!dic.ContainsKey(item.CheckCategoryID))
                    {
                        dic.Add(item.CheckCategoryID, new List <CheckItem>());
                    }
                    dic[item.CheckCategoryID].Add(item);
                }
                EncodeCollection <CheckOrder> ecOrder = new EncodeCollection <CheckOrder>();
                foreach (var items in dic.Values)
                {
                    var order = (CheckOrder)OrderItem.Clone();
                    order.IDENTITY = null;
                    if (spectorlist.Count != 0)
                    {
                        var userorder = userflag % spectorlist.Count();
                        order.PlanInspector = spectorlist[userflag].ParamName;
                        userflag++;
                    }
                    var list = items.Select(p => p.ParamID).ToList();
                    plancheckitemstring       = list.ListIntToString();
                    order.PlanCheckItemString = plancheckitemstring;
                    if (order.State == DataState.New)
                    {
                        order.PlanCheckItemString = plancheckitemstring;
                        order.CreateTime          = DateTime.Now.ToString(EncodeConst.DateTimeFormat);
                        order.Creator             = User.CurrentUser?.ParamName;
                        order.CheckOrderID        = EncodeHelper.GetOrderID <CheckOrder>("CheckOrderID", "C");
                        if (ckbAuto.Checked)
                        {
                            order.SampleID = EncodeHelper.GetOrderID <CheckOrder>("SampleID", "S");
                        }
                    }

                    order.CheckOrderState = CheckOrderStateEnum.Submit;
                    rv = EncodeBase.Encode.EncodeData.SaveDatas <CheckOrder>(new EncodeCollection <CheckOrder>(order));
                    if (!rv.Success)
                    {
                        ReturnValue.ShowMessage("样品创建失败:" + rv.Message);
                        return(rv);
                    }
                }
                return(rv);
            }


            //OrderItem.SampleType = (SampleTypeEnum)SampleType.SelectedValue;
            if (OrderItem.State == DataState.New)
            {
                OrderItem.PlanInspector       = inspectoridlist.ListToString();
                OrderItem.PlanCheckItemString = plancheckitemstring;
                OrderItem.CreateTime          = DateTime.Now.ToString(EncodeConst.DateTimeFormat);
                OrderItem.Creator             = User.CurrentUser?.ParamName;
                OrderItem.CheckOrderID        = EncodeHelper.GetOrderID <CheckOrder>("CheckOrderID", "C");
                if (ckbAuto.Checked)
                {
                    OrderItem.SampleID = EncodeHelper.GetOrderID <CheckOrder>("SampleID", "S");
                }
            }
            else if (OrderItem.PlanCheckItemString != plancheckitemstring)
            {
                OrderItem.PlanInspector       = inspectoridlist.ListToString();
                OrderItem.PlanCheckItemString = plancheckitemstring;
                OrderItem.State = DataState.Changed;
            }
            OrderItem.CheckOrderState = CheckOrderStateEnum.Submit;
            rv = EncodeBase.Encode.EncodeData.SaveDatas <CheckOrder>(new EncodeCollection <CheckOrder>(OrderItem));
            if (!rv.Success)
            {
                ReturnValue.ShowMessage("样品创建失败:" + rv.Message);
                return(rv);
            }
            return(rv);
            //修改
        }
Пример #21
0
        public void LoadInfo()
        {
            rpvCheckCategory.Pages.Clear();
            Dictionary <string, EncodeCollection <CheckItem> > dic = new Dictionary <string, EncodeCollection <CheckItem> >();
            EncodeCollection <CheckItem> ecCheckItems = null;

            if (_sampleOrder.GetPlanCheckItemCount <= 0)
            {
                //Definition def = SSIT.Bread.UI.MM.MMCommon.GetDefinitionbyID(_sampleOrder.DefinitionID);
                //MMCheckItemCombine combine = MMCheckItemCombine.Instance.GetItembyKey(_sampleOrder.DefinitionID);
                DefinitionCheckItemCombine combine = DefinitionCheckItemCombine.GetItemby(_sampleOrder.DefPK);
                if (combine != null)
                {
                    ecCheckItems = combine.GetCheckItems();
                }
            }
            else
            {
                EncodeCollection <CheckItem> ec = new EncodeCollection <CheckItem>();
                foreach (short id in _sampleOrder.PlanCheckItems)
                {
                    CheckItem checkitem = CheckItem.Instance.Itemof(id);
                    if (checkitem != null)
                    {
                        ec.Add(checkitem);
                    }
                }
                ecCheckItems = ec;
            }
            if (ecCheckItems != null)
            {
                foreach (CheckItem item in ecCheckItems)
                {
                    string CheckCategoryName = item.GetCheckCategory();
                    if (!string.IsNullOrEmpty(CheckCategoryName))
                    {
                        if (!dic.ContainsKey(CheckCategoryName))
                        {
                            dic.Add(CheckCategoryName, new EncodeCollection <CheckItem>());
                        }
                        dic[CheckCategoryName].Add(item);
                    }
                }
            }
            EncodeCollection <CheckData> datas = CheckData.LoadDatasbySampleID(_sampleOrder.SampleID);
            int maxIndex = 0;

            if (datas.Count > 0)
            {
                foreach (var item in datas)
                {
                    maxIndex = Math.Max(item.SampleIndex, maxIndex);
                }
            }
            if (maxIndex >= _sampleOrder.CheckQuantity)
            {
                _sampleOrder.CheckQuantity = maxIndex;
            }
            SetOrderState();
            foreach (string key in dic.Keys)
            {
                Telerik.WinControls.UI.RadPageViewPage page = new Telerik.WinControls.UI.RadPageViewPage(key);
                InputGridBase grid = new InputGridBase {
                    Dock = DockStyle.Fill
                };
                page.Controls.Add(grid);
                if (_sampleOrder != null)
                {
                    grid.SampleCount = _sampleOrder.CheckQuantity;
                }
                page.Tag = grid;
                rpvCheckCategory.Pages.Add(page);
                grid.Order  = _sampleOrder;
                grid.Fields = CheckItemsToInputFields(dic[key]);
                grid.Init();
                grid.LoadDatas(datas);
                //grid.Columns.AutoSize(true);
            }

            if (datas.Count > 0)
            {
                DataStat();
            }
        }
Пример #22
0
        private EncodeCollection <MMInOrder> GetDatas()
        {
            var Helper = new QueryHelper <MMInOrder>();

            Helper.Add("SynTime", this.dateTimeRange1);

            if (!rtbBatch.Text.IsNullOrWhiteSpace())
            {
                var LotIDs = rtbBatch.Text.ToLikeString();
                Helper.Add("BatchID", LotIDs);
            }
            if (!rtbOrderID.Text.IsNullOrWhiteSpace())
            {
                var orderIDs = rtbOrderID.Text.ToLikeString();
                Helper.Add("OrderID", orderIDs);
            }
            if (!rtbPurOrderID.Text.IsNullOrWhiteSpace())
            {
                var purIDs = rtbPurOrderID.Text.ToLikeString();
                Helper.Add("PurchaseOrderPK", purIDs);
            }
            var ec = Helper.GetDatas();
            EncodeCollection <MMInOrder> sec = new EncodeCollection <MMInOrder>();
            EncodeCollection <MMInOrder> tec = new EncodeCollection <MMInOrder>();

            if (!rtbMMDef.Text.IsNullOrWhiteSpace())
            {
                var mmHelper = new QueryHelper <MMDefinition>();
                var MMnames  = rtbMMDef.Text.ToLikeString();
                mmHelper.Add("paramname", MMnames);
                string     mmclause = mmHelper.GetSQLCondition();
                var        mmec     = mmHelper.GetDatas();
                List <int> DefIDs   = new List <int>();


                foreach (var data in mmec)
                {
                    DefIDs.Add(data.ParamID);
                }

                foreach (var item in ec)
                {
                    if (DefIDs.Contains(item.DefPK))
                    {
                        sec.Add(item);
                    }
                }
                if (sec.Count == 0)
                {
                    var mmidHelper = new QueryHelper <MMDefinition>();
                    var MMids      = rtbMMDef.Text.ToLikeString();
                    mmidHelper.Add("DefID", MMids);
                    string mmidclause = mmHelper.GetSQLCondition();
                    mmec = mmidHelper.GetDatas();
                    DefIDs.Clear();
                    foreach (var data in mmec)
                    {
                        DefIDs.Add(data.ParamID);
                    }

                    foreach (var item in ec)
                    {
                        if (DefIDs.Contains(item.DefPK))
                        {
                            sec.Add(item);
                        }
                    }
                }
            }
            else
            {
                sec = ec;
            }
            if (!rtbSupplier.Text.IsNullOrWhiteSpace())
            {
                var supHelper = new QueryHelper <Supplier>();
                var supnames  = rtbSupplier.Text.ToLikeString();
                supHelper.Add("paramname", supnames);
                string     supclause = supHelper.GetSQLCondition();
                var        supec     = supHelper.GetDatas();
                List <int> SupIDs    = new List <int>();
                foreach (var data in supec)
                {
                    SupIDs.Add(data.ParamID);
                }

                foreach (var item in sec)
                {
                    if (SupIDs.Contains(item.SupPK))
                    {
                        tec.Add(item);
                    }
                }
                return(tec);
            }
            return(sec);
        }
Пример #23
0
        static public ReturnValue DataStat_old(string sampleid)
        {
            //A B C D 对应0,1,2,3
            var ec = CheckData.LoadDatasbySampleID(sampleid);

            if (ec.Count == 0)
            {
                return(new ReturnValue(true, (int)QualifyJudgeEnum.UnFinish, "未完成"));
            }

            List <int> checkitems = new List <int>();
            var        order      = ec[0].Order;

            if (order != null && order.GetPlanCheckItemCount > 0)
            {
                checkitems = order.PlanCheckItems;
            }
            EncodeCollection <CheckData> ecFalse = new EncodeCollection <CheckData>();

            foreach (CheckData item in ec)
            {
                item.SetPass();
                if (item.IsFalse)
                {
                    ecFalse.Add(item);
                }
                if (checkitems.Contains(item.CheckItemID))
                {
                    checkitems.Remove(item.CheckItemID);
                }
            }
            if (ecFalse.Count == 0)
            {
                if (checkitems.Count > 0)
                {
                    return(new ReturnValue(true, (int)QualifyJudgeEnum.UnFinish, "合格,但有项目未完成"));
                }
                else
                {
                    return(new ReturnValue(true, (int)QualifyJudgeEnum.Pass, "合格"));
                }
            }
            Dictionary <CheckItemTypeEnum, EncodeCollection <CheckData> > dic = new Dictionary <CheckItemTypeEnum, EncodeCollection <CheckData> >();

            foreach (var item in ecFalse)
            {
                var checkitem = CheckItem.Instance.GetItembyKey(item.CheckItemID.ToString());
                if (checkitem != null)
                {
                    if (!dic.ContainsKey(checkitem.CheckTypeID))
                    {
                        dic.Add(checkitem.CheckTypeID, new EncodeCollection <CheckData>());
                    }
                    dic[checkitem.CheckTypeID].Add(item);
                }
            }
            ReturnValue rv = null;

            if (dic.ContainsKey(CheckItemTypeEnum.A))
            {
                rv = new ReturnValue(false, (int)QualifyJudgeEnum.False, "有1个以上A类不合格");
            }
            else if (dic.ContainsKey(CheckItemTypeEnum.B) && dic[CheckItemTypeEnum.B].Count >= 2)
            {
                rv = new ReturnValue(false, (int)QualifyJudgeEnum.False, "有2个以上B类不合格");
            }
            else if (dic.ContainsKey(CheckItemTypeEnum.D))
            {
                rv = new ReturnValue(false, (int)QualifyJudgeEnum.False, "出现D类不合格");
            }
            else if (dic.ContainsKey(CheckItemTypeEnum.C))
            {
                rv = new ReturnValue(true, (int)QualifyJudgeEnum.UnJudge, "有C类不合格");
            }
            else if (dic.ContainsKey(CheckItemTypeEnum.B))
            {
                rv = new ReturnValue(true, (int)QualifyJudgeEnum.Pass, "有1个B类不合格");
            }
            if (rv != null)
            {
                if (checkitems.Count > 0)
                {
                    return(new ReturnValue(true, (int)QualifyJudgeEnum.UnFinish, "有项目未完成,且" + rv.Message));
                }
                return(rv);
            }
            return(new ReturnValue(true));
        }
Пример #24
0
        override protected void SetReportView()
        {
            if (this.InvokeRequired)
            {
                this.BeginInvoke(new SetReportViewHandler(SetReportView));
                return;
            }
            ReportView.GetLock();
            ReportView.ActiveWorksheet.Cells.Clear();
            ReportView.ReleaseLock();

            SampleStatReportSettings srs = SampleStatReportSettings.Instance;

            if (_gc == null)
            {
                return;
            }
            //清空
            if (_gc.Count == 0)
            {
                return;
            }
            //按样品排序
            EncodeCollection <CheckOrder> gc = _gc.Copy();
            Dictionary <string, System.Reflection.PropertyInfo> dicFieldPI = new Dictionary <string, System.Reflection.PropertyInfo>();
            //DataFieldAttribute fBrand = new DataFieldAttribute { ColumnName = "brand", Description = "牌号" };
            //head
            List <string> listHead = new List <string>();

            foreach (DataFieldAttribute field in srs.HeadFields)
            {
                if (!dicFieldPI.ContainsKey(field.Description))
                {
                    dicFieldPI.Add(field.Description, FieldManager.FieldToProperty(typeof(CheckOrder), field.Description));
                    listHead.Add(field.Description);
                }
            }

            //关键字分类
            Dictionary <string, BrandStat> diccon2 = new Dictionary <string, BrandStat>();
            Dictionary <string, BrandStat> diccon  = new Dictionary <string, BrandStat>();
            StringBuilder sbHead = new StringBuilder();
            List <string> lsHead = new List <string>();

            foreach (CheckOrder cggroup in gc)
            {
                if (sbHead.Length > 0)
                {
                    sbHead.Remove(0, sbHead.Length);
                }
                foreach (DataFieldAttribute field in srs.HeadFields)
                {
                    object value = null;
                    if (dicFieldPI[field.Description] != null)
                    {
                        value = dicFieldPI[field.Description].GetValue(cggroup, null);
                    }
                    string valuestr = "";
                    if (value != null)
                    {
                        valuestr = value.ToString().Trim();
                    }
                    sbHead.Append(valuestr + " ");
                }
                if (!diccon2.ContainsKey(sbHead.ToString()))
                {
                    diccon2.Add(sbHead.ToString(), new BrandStat());
                    diccon2[sbHead.ToString()].Groups.Add(cggroup);
                    lsHead.Add(sbHead.ToString());
                }
                else
                {
                    diccon2[sbHead.ToString()].Groups.Add(cggroup);
                }
            }
            lsHead.Sort();
            for (int i = 0; i < lsHead.Count; i++)
            {
                diccon.Add(lsHead[i], diccon2[lsHead[i]]);
            }

            if (diccon.Count == 0)
            {
                return;
            }
            foreach (BrandStat bs in diccon.Values)
            {
                bs.Init();
            }

            ReportView.GetLock();
            ReportView.ActiveWorksheet.Cells.Clear();
            ReportView.ActiveWorksheet.Name = "质检工单统计表";
            SpreadsheetGear.IRange irange = ReportView.ActiveWorksheet.Cells;
            irange.HorizontalAlignment = SpreadsheetGear.HAlign.Left;
            irange.VerticalAlignment   = SpreadsheetGear.VAlign.Center;
            irange[0, 0].Value         = "质检工单统计表";
            irange[0, 0, 0, listHead.Count + srs.StatFields.Count].MergeCells          = true;
            irange[0, 0, 0, listHead.Count + srs.StatFields.Count].HorizontalAlignment = SpreadsheetGear.HAlign.Center;
            for (int i = 0; i < listHead.Count; i++)
            {
                irange[1, i].Value = listHead[i];//string.Join(" ", listHead.ToArray());
            }
            //irange[1, listHead.Count].Value = "项目";
            irange[0, 0].Font.Bold = false;
            irange[0, 0].Font.Size = 18;

            SpreadsheetGear.IBorders border = irange[0, 0, 0, srs.StatFields.Count + listHead.Count].Borders;
            border[SpreadsheetGear.BordersIndex.EdgeBottom].Weight = SpreadsheetGear.BorderWeight.Thin;
            border = irange[1, 0, 1, srs.StatFields.Count + listHead.Count].Borders;
            border[SpreadsheetGear.BordersIndex.EdgeBottom].Weight           = SpreadsheetGear.BorderWeight.Thin;
            irange[1, 0, 1, srs.StatFields.Count + listHead.Count].Font.Bold = false;
            irange[1, 0, 1, srs.StatFields.Count + listHead.Count].Font.Size = 14;

            int HeadCount = listHead.Count - 1;

            if (HeadCount < 0)
            {
                HeadCount = 0;
            }
            for (int l = 0; l < srs.StatFields.Count; l++)
            {
                irange[1, HeadCount + l + 1].Value     = srs.StatFields[l].Description;
                irange[1, HeadCount + l + 1].Font.Bold = false;
            }
            ReportView.ReleaseLock();

            int newrow = 2;
            // List<BrandStat> listBS = new List<BrandStat>(diccon.Values);
            List <string> listBS = new List <string>(diccon.Keys);

            listBS.Sort();

            foreach (string key in listBS)
            {
                BrandStat bs = diccon[key];
                if (bAbort)
                {
                    break;
                }

                if (bs.Stats.Count == 0)
                {
                    continue;
                }

                Application.DoEvents();

                ReportView.GetLock();
                for (int l = 0; l < listHead.Count; l++)
                {
                    FieldValue fv = FieldManager.GetFieldValue(bs.Groups[0], listHead[l]);
                    if (fv != null)
                    {
                        irange[newrow, l].Value     = fv.GetSafeValue();
                        irange[newrow, l].Font.Bold = true;
                    }
                }
                // irange[newrow, 0].Value = key;// bs.GetBrand();
                border = irange[newrow, 0, newrow, srs.StatFields.Count + HeadCount].Borders;
                border[SpreadsheetGear.BordersIndex.EdgeTop].Weight = SpreadsheetGear.BorderWeight.Thin;



                for (int l = 0; l < bs.Stats.Count; l++)
                {
                    int row = 0;

                    for (int j = 0; j < srs.StatFields.Count; j++)
                    {
                        object data = bs.Stats[l].GetFieldValue(srs.StatFields[j]);
                        irange[newrow + row, j + HeadCount + 1].NumberFormat = SetNumberFormat(data.ToString());
                        irange[newrow + row, j + HeadCount + 1].Value        = data;// bs.Stats[l].GetFieldValue(srs.StatFields[j]);
                    }
                }
                newrow += 1;
                ReportView.ReleaseLock();
            }
            ReportView.GetLock();
            ReportView.ActiveWorksheetWindowInfo.SplitRows   = 2;
            ReportView.ActiveWorksheetWindowInfo.FreezePanes = true;
            ReportView.ActiveWorksheet.Cells.Columns.AutoFit();
            ReportView.ReleaseLock();
        }
Пример #25
0
        private void rbtQuery_Click(object sender, EventArgs e)
        {
            EncodeCollection <CheckData> ec = Encode.EncodeData.GetDatas <CheckData>();

            _grid.SetGrid(ec);
        }
Пример #26
0
        static public bool CheckSampleIDExist(string sampleid)
        {
            EncodeCollection <CheckOrder> ec = Encode.EncodeData.GetDatas <CheckOrder>("sampleid = '" + sampleid + "'", string.Empty, 1);

            return(ec.Count > 0);
        }
Пример #27
0
 public void SetData(EncodeCollection <CheckOrder> datas)
 {
     report.QueryResult(datas);
 }
Пример #28
0
        override protected void SetReportView()
        {
            if (this.InvokeRequired)
            {
                this.BeginInvoke(new SetReportViewHandler(SetReportView));
                return;
            }
            ReportView.GetLock();
            try
            {
                ReportView.ActiveWorksheet.Cells.Clear();
            }
            finally
            {
                ReportView.ReleaseLock();
            }
            SampleStatReportSettings srs = SampleStatReportSettings.Instance;

            if (_gc == null)
            {
                return;
            }
            //清空
            if (_gc.Count == 0)
            {
                return;
            }
            //按样品排序
            EncodeCollection <CheckOrder> gc = _gc.Copy();
            Dictionary <string, System.Reflection.PropertyInfo> dicFieldPI = new Dictionary <string, System.Reflection.PropertyInfo>();
            //DataFieldAttribute fBrand = new DataFieldAttribute { ColumnName = "brand", Description = "牌号" };
            //head
            List <string> listHead = new List <string>();

            foreach (DataFieldAttribute field in srs.HeadFields)
            {
                if (!dicFieldPI.ContainsKey(field.Description))
                {
                    dicFieldPI.Add(field.Description, FieldManager.FieldToProperty(typeof(CheckOrder), field.Description));
                    listHead.Add(field.Description);
                }
            }

            //关键字分类
            Dictionary <string, BrandStat> diccon2 = new Dictionary <string, BrandStat>();
            Dictionary <string, BrandStat> diccon  = new Dictionary <string, BrandStat>();
            StringBuilder sbHead = new StringBuilder();
            List <string> lsHead = new List <string>();

            foreach (CheckOrder cggroup in gc)
            {
                if (sbHead.Length > 0)
                {
                    sbHead.Remove(0, sbHead.Length);
                }
                foreach (DataFieldAttribute field in srs.HeadFields)
                {
                    object value = null;
                    if (dicFieldPI[field.Description] != null)
                    {
                        value = dicFieldPI[field.Description].GetValue(cggroup, null);
                    }
                    string valuestr = "";
                    if (value != null)
                    {
                        valuestr = value.ToString().Trim();
                    }
                    sbHead.Append(valuestr + " ");
                }
                if (!diccon2.ContainsKey(sbHead.ToString()))
                {
                    diccon2.Add(sbHead.ToString(), new BrandStat());
                    diccon2[sbHead.ToString()].Groups.Add(cggroup);
                    lsHead.Add(sbHead.ToString());
                }
                else
                {
                    diccon2[sbHead.ToString()].Groups.Add(cggroup);
                }
            }
            lsHead.Sort();
            for (int i = 0; i < lsHead.Count; i++)
            {
                diccon.Add(lsHead[i], diccon2[lsHead[i]]);
            }

            if (diccon.Count == 0)
            {
                return;
            }
            foreach (BrandStat bs in diccon.Values)
            {
                bs.Init();
            }
            //decisions
            List <int> listDecision = new List <int>();

            foreach (DataFieldAttribute field in srs.DecisionsFields)
            {
                //if (!listDecision.Contains(field.))
                //{
                //    listDecision.Add(field.ColumnName);
                //}
            }
            int colCount  = listHead.Count + srs.StatFields.Count + listDecision.Count;
            int HeadCount = listHead.Count - 1;
            int tmpCol    = HeadCount + srs.StatFields.Count + 1;

            ReportView.GetLock();

            ReportView.ActiveWorksheet.Cells.Clear();
            ReportView.ActiveWorksheet.Name = "质检工单统计表";
            SpreadsheetGear.IRange   irange = ReportView.ActiveWorksheet.Cells;
            SpreadsheetGear.IBorders border = null;
            try
            {
                irange.HorizontalAlignment = SpreadsheetGear.HAlign.Left;
                irange.VerticalAlignment   = SpreadsheetGear.VAlign.Center;

                irange[0, 0].Value = "中粮长城葡萄酒(烟台)有限公司";
                irange[1, 0].Value = "质量检验数据统计分析表";

                irange[2, 0].Value = string.Format("统计期间:{0} 至 {1}", gc[0].PlanCheckDate, gc[gc.Count - 1].PlanCheckDate);
                for (int i = 0; i < 2; i++)
                {
                    irange[i, 0, i, colCount].MergeCells          = true;
                    irange[i, 0, i, colCount].HorizontalAlignment = SpreadsheetGear.HAlign.Center;
                    irange[i, 0].Font.Bold = false;
                    irange[i, 0].Font.Size = 20;
                }
                for (int i = 0; i < listHead.Count; i++)
                {
                    irange[3, i].Value            = listHead[i];//string.Join(" ", listHead.ToArray());
                    irange[3, i, 4, i].MergeCells = true;
                }

                border = irange[2, 0, 2, colCount].Borders;
                border[SpreadsheetGear.BordersIndex.EdgeBottom].Weight = SpreadsheetGear.BorderWeight.Thin;
                border = irange[3, 0, 3, colCount].Borders;
                border[SpreadsheetGear.BordersIndex.EdgeBottom].Weight = SpreadsheetGear.BorderWeight.Thin;
                irange[3, 0, 3, colCount].Font.Bold = false;
                irange[3, 0, 3, colCount].Font.Size = 14;

                if (HeadCount < 0)
                {
                    HeadCount = 0;
                }
                for (int l = 0; l < srs.StatFields.Count; l++)
                {
                    irange[3, HeadCount + l + 1].Value     = srs.StatFields[l].Description;
                    irange[3, HeadCount + l + 1].Font.Bold = false;
                    irange[3, HeadCount + l + 1, 4, HeadCount + l + 1].MergeCells = true;
                }
                //decisions

                if (listDecision.Count > 0)
                {
                    irange[3, tmpCol].Value = "使用决策情况统计";
                    irange[3, tmpCol, 3, colCount].HorizontalAlignment           = SpreadsheetGear.HAlign.Center;
                    irange[3, tmpCol, 3, tmpCol + listDecision.Count].MergeCells = true;
                    irange[4, tmpCol].Value = "合格率%";
                    for (int i = 1; i <= listDecision.Count; i++)
                    {
                        irange[4, tmpCol + i].Value = listDecision[i - 1];
                    }
                }
            }
            catch (Exception err)
            {
                ReturnValue.ShowMessage(err.Message);
                return;
            }
            finally
            {
                ReportView.ReleaseLock();
            }
            int newrow = 5;
            // List<BrandStat> listBS = new List<BrandStat>(diccon.Values);
            List <string> listBS = new List <string>(diccon.Keys);

            listBS.Sort();

            foreach (string key in listBS)
            {
                BrandStat bs = diccon[key];
                if (bAbort)
                {
                    break;
                }

                if (bs.Stats.Count == 0)
                {
                    continue;
                }

                Application.DoEvents();

                ReportView.GetLock();
                try
                {
                    for (int l = 0; l < listHead.Count; l++)
                    {
                        FieldValue fv = FieldManager.GetFieldValue(bs.Groups[0], listHead[l]);
                        if (fv != null)
                        {
                            irange[newrow, l].Value     = fv.GetSafeValue();
                            irange[newrow, l].Font.Bold = true;
                        }
                    }
                    // irange[newrow, 0].Value = key;// bs.GetBrand();
                    border = irange[newrow, 0, newrow, colCount].Borders;
                    border[SpreadsheetGear.BordersIndex.EdgeTop].Weight = SpreadsheetGear.BorderWeight.Thin;


                    for (int l = 0; l < bs.Stats.Count; l++)
                    {
                        for (int j = 0; j < srs.StatFields.Count; j++)
                        {
                            object data = bs.Stats[l].GetFieldValue(srs.StatFields[j]);
                            if (data != null)
                            {
                                irange[newrow, j + HeadCount + 1].NumberFormat = SetNumberFormat(data.ToString());
                                irange[newrow, j + HeadCount + 1].Value        = data;// bs.Stats[l].GetFieldValue(srs.StatFields[j]);
                            }
                        }
                        irange[newrow, tmpCol].Value = bs.Stats[l].UseGoodRate;
                        for (int i = 1; i <= listDecision.Count; i++)
                        {
                            irange[newrow, tmpCol + i].Value = bs.Stats[l].UsageDecisionStat(listDecision[i - 1]);
                        }
                    }

                    newrow += 1;
                }
                catch (Exception err)
                {
                    ReturnValue.ShowMessage(err.Message);
                    break;
                }
                finally
                {
                    ReportView.ReleaseLock();
                }
            }

            ReportView.GetLock();
            try
            {
                irange[4, 0, newrow, colCount].HorizontalAlignment = SpreadsheetGear.HAlign.Right;
                ReportView.ActiveWorksheetWindowInfo.SplitRows     = 5;
                ReportView.ActiveWorksheetWindowInfo.FreezePanes   = true;
                irange[3, 0, 5, colCount].Columns.AutoFit();
                ReportView.ActiveWorksheet.Cells.Rows.AutoFit();
            }
            finally
            {
                ReportView.ReleaseLock();
            }
        }