예제 #1
0
        //private ArrayList Resources = new ArrayList();

        #region 创建控件
        private void CreateFormControl()
        {
            //获得时段
            ArrayList tpHeaders = GetTPHeaders();

            Resource resource = ApplicationService.Current().LoginInfo.Resource;

            //获得资源
            ArrayList reses = ConfigReader.Read();

            //this.pnlCenter.Visible = false;

            //this.pnlCenter.SuspendLayout();
            //this.SuspendLayout();

            //this.pnlCenter.b
            //创建控件
            for (int i = reses.Count - 1; i >= 0; i--)
            {
                ResourceConfig res = reses[i] as ResourceConfig;

                UCWatchPanelContent content = new UCWatchPanelContent();
                //content.Visible = false;

                //UCWatchPanelContent.re
                content.CreateWatchPanelCenters(tpHeaders);
                content.ResCode = res.ResCode;
                content.SetFPYGoal(res.FPYGoal);

                content.Dock = System.Windows.Forms.DockStyle.Top;


                //反的
                if (i != reses.Count - 1)
                {
                    content.HideBottom();
                }

                if (i != 0)
                {
                    content.HideHeader();
                }

                this.WatchPanelContents.Add(content);
            }

            foreach (UCWatchPanelContent content in this.WatchPanelContents)
            {
                this.pnlCenter.Controls.Add(content);
                //content.Visible = true;
            }

            //this.pnlCenter.Visible = true;
            //this.pnlCenter.ResumeLayout(false);
            //this.ResumeLayout(false);
        }
예제 #2
0
        private void RefreshData()
        {
            //Resource resource = ApplicationService.Current().LoginInfo.Resource;

            if (this.ucHeader.Line == "")
            {
                return;
            }

            object[] items = this.facade.GetItemCodes(this.ucHeader.Line, this.ShiftCode);

            this.ucHeader.ItemCode = "";

            if (items == null || items.Length == 0)
            {
                return;
            }

            foreach (Item item in items)
            {
                this.ucHeader.ItemCode += item.ItemCode + ",";
            }

            if (this.ucHeader.ItemCode == "")
            {
                return;
            }

            this.ucHeader.ItemCode = this.ucHeader.ItemCode.Substring(0, this.ucHeader.ItemCode.Length - 1);

            string ResCodes = "";

            foreach (UCWatchPanelContent content in this.WatchPanelContents)
            {
                ResCodes += content.ResCode + ",";
            }

            if (ResCodes == "")
            {
                return;
            }

            ResCodes = ResCodes.Substring(0, ResCodes.Length - 1);

            DataSet ds = this.facade.GetWatchingData(this.ucHeader.Line, this.ucHeader.ItemCode, this.ShiftCode, ResCodes);

            //			if(ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
            //				return;

            ICalculateStrategy strategy = new CalculateStategy();


            for (int i = this.WatchPanelContents.Count - 1; i >= 0; i--)
            {
                UCWatchPanelContent content = this.WatchPanelContents[i] as UCWatchPanelContent;

                content.ResetUCWatchPanelCenterValue();

                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
                {
                    continue;
                }

                DataRow[] rows = ds.Tables[0].Select(string.Format("RESCODE='{0}'", content.ResCode));

                if (rows == null || rows.Length == 0)
                {
                    continue;
                }

                for (int k = 0; k < rows.Length; k++)
                {
                    UCWatchPanelCenter UCCenter = content.FindUCWatchPanelCenter(rows[k]["TPCODE"].ToString());

                    if (UCCenter == null)
                    {
                        continue;
                    }

                    UCCenter.Input   = decimal.Parse(rows[k]["input"].ToString());
                    UCCenter.Defects = decimal.Parse(rows[k]["defects"].ToString());
                    //UCCenter.CalculateActual();
                }

                content.SetCalculateStrategy(strategy);

                content.CalculateActual();



                //content = content;
                //content.CalculateActual();
            }

            #region 计算TotalActual

            //int g = 0;
            for (int i = this.WatchPanelContents.Count - 1; i >= 0; i--)
            {
                UCWatchPanelContent content = this.WatchPanelContents[i] as UCWatchPanelContent;

                if (i == this.WatchPanelContents.Count - 1)
                {
                    for (int j = 0; j < content.WatchPanelCenters.Count; j++)
                    {
                        UCWatchPanelCenter c = (UCWatchPanelCenter)content.WatchPanelCenters[j];
                        c.TotalActual = c.Actual;                        // * Convert.ToDecimal(Math.Pow(0.01,g));
                    }

                    //g++;
                }
                else
                {
                    for (int j = 0; j < content.WatchPanelCenters.Count; j++)
                    {
                        UCWatchPanelCenter c  = (UCWatchPanelCenter)content.WatchPanelCenters[j];
                        UCWatchPanelCenter c2 = (UCWatchPanelCenter)((UCWatchPanelContent)WatchPanelContents[i + 1]).WatchPanelCenters[j];

                        if (c2.TotalActual != 0)
                        {
                            if (c.Actual != 0)
                            {
                                c.TotalActual = c.Actual * c2.TotalActual;                              // * Convert.ToDecimal(Math.Pow(0.01,g));
                                //g++;
                            }
                            else
                            {
                                c.TotalActual = c2.TotalActual;
                            }
                        }
                        else
                        {
                            c.TotalActual = c.Actual;
                        }
                    }
                }
            }


            if (this.WatchPanelContents.Count == 0)
            {
                return;
            }

            UCWatchPanelContent content1 = this.WatchPanelContents[0] as UCWatchPanelContent;

            for (int i = 0; i < content1.WatchPanelCenters.Count; i++)
            {
                UCWatchPanelCenter c = (UCWatchPanelCenter)content1.WatchPanelCenters[i];

                DataRow[] rows = ds.Tables[0].Select(string.Format("TPCODE='{0}'", c.TPCode));

                int g = 0;
                for (int k = 0; k < rows.Length; k++)
                {
                    if (decimal.Parse(rows[k]["input"].ToString()) == decimal.Parse(rows[k]["defects"].ToString()))
                    {
                        continue;
                    }

                    g++;
                }

                if (g > 0)
                {
                    c.TotalActual = c.TotalActual / Convert.ToDecimal(Math.Pow(100, g - 1));
                }
            }

            #endregion
        }