/// <summary>
        /// 创建控件
        /// </summary>
        private void CreateContorls()
        {
            List <AppraisalCoefficients> appraisalCoefficients = AppraisalCoefficients.ListAll();

            // 动态控件
            foreach (var ac in appraisalCoefficients)
            {
                //添加pane1
                Panel panel = new Panel();
                // 自定义添加Label
                Label label = new Label
                {
                    Text     = ac.AppraisalType,
                    Width    = 60,
                    Location = new Point(0, 4)
                };
                // 添加文本框
                TextBox textBox = new TextBox
                {
                    Location = new Point(63, 0), //坐标
                    Width    = 120,
                    Height   = 26,
                    //设置一个name加id
                    Name = "txtAppraisalType_" + ac.Id
                };
                panel.Controls.Add(label);
                panel.Controls.Add(textBox);
                flp.Controls.Add(panel);
            }
        }
        private void SetCol()
        {
            List <AppraisalCoefficients> appraisalCoefficients = AppraisalCoefficients.ListAll();

            List <DataGridViewTextBoxColumn> dataGridViewTextBoxColumns = new List <DataGridViewTextBoxColumn>();

            foreach (var appraisalCoefficient in appraisalCoefficients)
            {
                dataGridViewTextBoxColumns.Add(new DataGridViewTextBoxColumn
                {
                    HeaderText       = appraisalCoefficient.AppraisalType,
                    Name             = "AppraisalType" + appraisalCoefficient.Id.ToString(),
                    DataPropertyName = "AppraisalType" + appraisalCoefficient.Id.ToString(),
                    ReadOnly         = true,
                    Width            = 88
                });
                dataGridViewTextBoxColumns.Add(new DataGridViewTextBoxColumn
                {
                    HeaderText       = "系数",
                    Name             = "AppRaisalCoefficient" + appraisalCoefficient.Id.ToString(),
                    DataPropertyName = "AppRaisalCoefficient" + appraisalCoefficient.Id.ToString(),
                    ReadOnly         = true,
                    Visible          = false,
                    Width            = 88
                });
                dataGridViewTextBoxColumns.Add(new DataGridViewTextBoxColumn
                {
                    HeaderText       = "计算方式",
                    Name             = "CalculationMethod" + appraisalCoefficient.Id.ToString(),
                    DataPropertyName = "CalculationMethod" + appraisalCoefficient.Id.ToString(),
                    ReadOnly         = true,
                    Visible          = false,
                    Width            = 88
                });
            }
            dgvUserAppraisal.Columns.AddRange(dataGridViewTextBoxColumns.ToArray());
            dgvUserAppraisal.Columns.Add(new DataGridViewTextBoxColumn
            {
                HeaderText       = "考核年度",
                Name             = "AssessmentYear",
                DataPropertyName = "AssessmentYear",
                ReadOnly         = true,
                Width            = 166
            });
            dgvUserAppraisal.Columns.Add(new DataGridViewTextBoxColumn
            {
                HeaderText       = "实发年终奖",
                Name             = "YearBonus",
                DataPropertyName = "YearBonus",
                ReadOnly         = true,
                Width            = 166
            });
        }
        private void bindDgvUserappraisal()
        {
            DataTable dtUser = UserAppraisalBases.GetDtJoinAppraisal();
            // 获取系数表集合
            List <AppraisalCoefficients> appraisalCoefficients = AppraisalCoefficients.ListAll();

            // 填充
            foreach (var item in appraisalCoefficients)
            {
                //添加系数名
                dtUser.Columns.Add(new DataColumn
                {
                    ColumnName = "AppraisalType" + item.Id
                });
                // 添加系数值
                dtUser.Columns.Add(new DataColumn
                {
                    ColumnName = "AppRaisalCoefficient" + item.Id
                });
                // 添加计算方式
                dtUser.Columns.Add(new DataColumn
                {
                    ColumnName = "CalculationMethod" + item.Id
                });
            }

            // 考核年度
            dtUser.Columns.Add(new DataColumn
            {
                ColumnName = "AssessmentYear"
            });
            // 添加实发年终奖
            dtUser.Columns.Add(new DataColumn
            {
                ColumnName = "YearBonus"
            });
            // dtUser 填充数据
            List <UserAppraisalCoefficients> userAppraisalCoefficients = UserAppraisalCoefficients.ListAll();

            for (int i = 0; i < dtUser.Rows.Count; i++)
            {
                var uacFilter = userAppraisalCoefficients.FindAll
                                    (m => m.UserId == (int)dtUser.Rows[i]["Id"] && m.AssessmentYear == cbxYear.Text);
                // 系数计算的数组,存放每个考核类型的总系数
                double[] yearbonusArray = new double[uacFilter.Count];
                for (int j = 0; j < uacFilter.Count; j++)
                {
                    // 获取AppraisalType对应的dtUser的ColumnName的值
                    // 获取考核次数
                    string appraisalTypeKey        = "AppraisalType" + uacFilter[j].CoefficientId;
                    int    appraisalTypeCountValue = uacFilter[j].Count;
                    // 获取考核系数
                    string appraisalCoefficientKey   = "AppRaisalCoefficient" + uacFilter[j].CoefficientId;
                    int    appraisalCoefficientValue = Convert.ToInt32(uacFilter[j].AppraisalCoefficient);
                    //获取计算方式
                    string calculationMethodKey   = "CalculationMethod" + uacFilter[j].CoefficientId;
                    int    calculationMethodValue = Convert.ToInt32(uacFilter[j].CalculationMethod);

                    //绑定 dtUser值
                    dtUser.Rows[i][appraisalTypeKey]        = appraisalTypeCountValue;
                    dtUser.Rows[i][appraisalCoefficientKey] = appraisalCoefficientValue;
                    dtUser.Rows[i][calculationMethodKey]    = calculationMethodValue;
                    yearbonusArray[j] = appraisalCoefficientValue * appraisalTypeCountValue * calculationMethodValue;
                }
                dtUser.Rows[i]["AssessmentYear"] = cbxYear.Text;
                // 结算实发年终奖
                double yearbonusAll = 0;
                for (int j = 0; j < yearbonusArray.Length; j++)
                {
                    yearbonusAll += yearbonusArray[j];
                }
                // 计算实发年终奖
                double yearBonus = (1 + yearbonusAll) * Convert.ToDouble(dtUser.Rows[i]["AppraisalBase"]);
                // 加入年终奖扣成负数则为0
                dtUser.Rows[i]["YearBonus"] = yearBonus < 0 ? 0 : yearBonus;
            }
            dgvUserAppraisal.AutoGenerateColumns = false;
            dgvUserAppraisal.DataSource          = dtUser;
        }