コード例 #1
0
        private void tsbSave_Click(object sender, EventArgs e)
        {
            int rowCount = dgvList.Rows.Count;

            if (rowCount == 0 || (dgvList.AllowUserToAddRows && rowCount == 1))
            {
                MessageBox.Show("无保存内容!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                return;
            }
            DialogResult result = MessageBox.Show("确认保存吗!", "确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

            if (result == DialogResult.Cancel)
            {
                return;
            }
            //遍历行
            for (int r = 0; r < dgvList.Rows.Count; r++)
            {
                if (dgvList.Rows[r].IsNewRow)
                {
                    continue;
                }
                //主键名称
                string keyName = "times";// primaryKey.ColumnName;
                object value   = dgvList.Rows[r].Cells[keyName].Value;
                if (value == null || value == DBNull.Value || value.ToString().Trim().Length == 0)
                {
                    MessageBox.Show("单元内容不能为空!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    dgvList.ClearSelection();
                    dgvList.CurrentCell          = dgvList.Rows[r].Cells[keyName];
                    dgvList.CurrentCell.Selected = true;
                    dgvList.Focus();
                    return;
                }
            }
            BLL.AnalysisBLL bll   = new BLL.AnalysisBLL();
            DataTable       dttab = dgvList.DataSource as DataTable;

            if (dttab != null)
            {
                try
                {
                    bll.SaveData(dttab);
                    MessageBox.Show("保存完成", "完成", MessageBoxButtons.OK, MessageBoxIcon.None);
                    frmMdi.tsslInfo.Text      = "保存成功!";
                    frmMdi.tsslInfo.BackColor = frmMdi.BackColor;
                }
                catch (Exception ex)
                {
                    MessageBox.Show("保存错误," + ex.Message, "失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    frmMdi.tsslInfo.Text      = "保存失败!";
                    frmMdi.tsslInfo.BackColor = Color.Yellow;
                }
            }
            //刷新分析结果
            RefreshByRecord();
            //重新查询
            tsbSearch_Click(null, null);
        }
コード例 #2
0
        private void tsbSearch_Click(object sender, EventArgs e)
        {
            List <Model.Condition> lCondition = new List <Model.Condition>();

            if (txtAnalysisTimes.Text.Trim().Length > 0)
            {
                lCondition.Add(new Model.Condition {
                    paramName = "times", paramValue = txtAnalysisTimes.Text, FieldType = Model.Condition.FieldDbType.String
                });
            }
            if (txtMultiple.Text.Trim().Length > 0)
            {
                lCondition.Add(new Model.Condition {
                    paramName = "multiple", paramValue = txtMultiple.Text, FieldType = Model.Condition.FieldDbType.Number
                });
            }
            if (txtWhatNumber.Text.Trim().Length > 0)
            {
                lCondition.Add(new Model.Condition {
                    paramName = "what_number", paramValue = txtWhatNumber.Text, FieldType = Model.Condition.FieldDbType.Number
                });
            }
            if (txtNumAndMoney.Text.Trim().Length > 0)
            {
                lCondition.Add(new Model.Condition {
                    paramName = "num_money", paramValue = txtNumAndMoney.Text, FieldType = Model.Condition.FieldDbType.String
                });
            }
            if (txtOutlay.Text.Trim().Length > 0)
            {
                lCondition.Add(new Model.Condition {
                    paramName = "outlay", paramValue = txtOutlay.Text, FieldType = Model.Condition.FieldDbType.Number
                });
            }
            if (txtExpectIncome.Text.Trim().Length > 0)
            {
                lCondition.Add(new Model.Condition {
                    paramName = "expect_income", paramValue = txtExpectIncome.Text, FieldType = Model.Condition.FieldDbType.String
                });
            }
            if (txtNum.Text.Trim().Length > 0)
            {
                lCondition.Add(new Model.Condition {
                    paramName = "num", paramValue = txtNum.Text, FieldType = Model.Condition.FieldDbType.String
                });
            }
            if (txtRelityIncome.Text.Trim().Length > 0)
            {
                lCondition.Add(new Model.Condition {
                    paramName = "relity_income", paramValue = txtRelityIncome.Text, FieldType = Model.Condition.FieldDbType.String
                });
            }
            if (txtBalance.Text.Trim().Length > 0)
            {
                lCondition.Add(new Model.Condition {
                    paramName = "balance", paramValue = txtBalance.Text, FieldType = Model.Condition.FieldDbType.String
                });
            }
            if (txtWriter.Text.Trim().Length > 0)
            {
                lCondition.Add(new Model.Condition {
                    paramName = "writer", paramValue = txtWriter.Text, FieldType = Model.Condition.FieldDbType.String
                });
            }
            if (txtWriteDate.Text.Trim().Length > 0)
            {
                lCondition.Add(new Model.Condition {
                    paramName = "write_date", paramValue = txtWriteDate.Text, FieldType = Model.Condition.FieldDbType.String
                });
            }
            if (txtModifyDate.Text.Trim().Length > 0)
            {
                lCondition.Add(new Model.Condition {
                    paramName = "modify_date", paramValue = txtModifyDate.Text, FieldType = Model.Condition.FieldDbType.String
                });
            }
            if (lCondition.Count == 0)
            {
                MessageBox.Show("查询条件为空!", "失败", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                return;
            }
            BLL.AnalysisBLL bll = new BLL.AnalysisBLL();
            try
            {
                //按条件取得数据
                DataTable dttab = bll.GetDataByCondition(lCondition);
                if (dttab == null || dttab.Rows.Count == 0)
                {
                    MessageBox.Show(
                        "没有找到符合条件的数据!",
                        "失败",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error
                        );
                    frmMdi.tsslInfo.Text      = "查询内容为空!";
                    frmMdi.tsslInfo.BackColor = Color.Yellow;
                }
                else
                {
                    //绑定数据
                    dgvList.DataSource        = dttab;
                    frmMdi.tsslInfo.Text      = "查询完成!";
                    frmMdi.tsslInfo.BackColor = frmMdi.BackColor;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(
                    "查询发生错误," + ex.Message,
                    "错误",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error
                    );
                frmMdi.tsslInfo.Text      = "查询失败!";
                frmMdi.tsslInfo.BackColor = Color.Yellow;
            }
        }
コード例 #3
0
        /// <summary>
        /// 刷新分析记录(写入实际号码并计算实际收益和余额)
        /// </summary>
        private void RefreshByRecord()
        {
            //分析结果操作对象
            BLL.AnalysisBLL analysisBll = new BLL.AnalysisBLL();
            //获取所有数据
            List <Model.HkRecordAnalysis> lAnalysis = analysisBll.GetData();

            //记录操作对象
            BLL.RecordBLL recordBll = new BLL.RecordBLL();
            //余额
            double balance = 0;

            if (lAnalysis.Count == 0)
            {
                return;
            }
            try
            {
                for (int i = 0; i < lAnalysis.Count; i++)
                {
                    Model.HkRecordAnalysis analysis = lAnalysis[i];
                    if (analysis.Outlay <= 0)
                    {
                        //余额为当前余额
                        analysis.Balance = balance;
                        continue;
                    }
                    else
                    {
                        //号码金额为空
                        if (analysis.NumMoney.Length == 0)
                        {
                            //实际收益-支出
                            analysis.RelityIncome -= analysis.Outlay;
                            //余额=余额-支出
                            balance = balance - analysis.Outlay;
                            //写入余额
                            analysis.Balance = balance;
                        }
                        else
                        {
                            //操作第几位数字
                            byte whatNumber = analysis.WhatNumber;
                            //当前期次
                            string times = analysis.Times;
                            //按期次获取记录
                            Model.HkRecord record = recordBll.GetDataByTimes(times);
                            //在记录找不到分析的期次
                            if (record.Times == null)
                            {
                                break;
                            }
                            byte number;
                            switch (whatNumber)
                            {
                            case 1:
                                number = record.FirstNum;
                                break;

                            case 2:
                                number = record.SecondNum;
                                break;

                            case 3:
                                number = record.ThirdNum;
                                break;

                            case 4:
                                number = record.FourthNum;
                                break;

                            case 5:
                                number = record.FifthNum;
                                break;

                            case 6:
                                number = record.SixthNum;
                                break;

                            case 7:
                                number = record.SeventhNum;
                                break;

                            default:
                                throw new Exception("期次不正确,必须为1-7之间!");
                            }
                            analysis.RecordNum = number;//记录号码
                            string   numMoney  = analysis.NumMoney.Replace(" ", "").Replace(";", ";").Replace(":", ":");
                            string[] numMoneys = numMoney.Split(new char[] { ';' });
                            //号码与金额是否有记录号码
                            bool isHasNumber = false;
                            foreach (string item in numMoneys)
                            {
                                int index = item.IndexOf(":");
                                if (index > 0)
                                {
                                    string strNum   = item.Substring(0, index);
                                    string strMoney = item.Substring(index + 1);
                                    //分析号码与实际记录一致
                                    if (strNum == number.ToString())
                                    {
                                        double money;
                                        if (double.TryParse(strMoney, out money))
                                        {
                                            double sumMoney = money * analysis.Multiple;
                                            //实际收益
                                            double relityIncome = sumMoney - analysis.Outlay;
                                            analysis.RelityIncome = relityIncome;
                                            isHasNumber           = true;
                                            break;
                                        }
                                    }
                                }
                            }
                            if (isHasNumber == false)
                            {
                                //实际收益为负的支出
                                analysis.RelityIncome = -analysis.Outlay;
                            }
                            //余额=余额+实际收益
                            balance         += analysis.RelityIncome;
                            analysis.Balance = balance;
                        }
                    }
                }
                //更新列表
                analysisBll.Update(lAnalysis);
            }
            catch (Exception ex)
            {
                MessageBox.Show("刷新过程发生错误," + ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                frmMdi.tsslInfo.Text      = "刷新失败!";
                frmMdi.tsslInfo.BackColor = Color.Yellow;
            }
        }