zoukankan      html  css  js  c++  java
  • 体检套餐项目解析

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace Text
    {
        public partial class FrmMain : Form
        {
            public FrmMain()
            {
                InitializeComponent();
            }
            HealthCheckItem ShenGao, TiZhong, GanGongN;
    
            //存储所有检查项目
            List<HealthCheckItem> AllItems = new List<HealthCheckItem>();
            //存储与套餐相关的检查项目
            List<HealthCheckItem> items = new List<HealthCheckItem>();
            //保存医院中支持的所有TC,为了绑定左侧的套餐下拉框而编写
            public Dictionary<string, TaoCan> HSet = new Dictionary<string, TaoCan>();
    
            public void testSet()
            {
                ShenGao = new HealthCheckItem(5, "检查身高", "身高");
                TiZhong = new HealthCheckItem(5, "检查体重", "体重");
                GanGongN = new HealthCheckItem(5, "检查肝功能", "肝功能");
                AllItems.Add(ShenGao);
                AllItems.Add(TiZhong);
                AllItems.Add(GanGongN);
            }
            //构建一个默认的套餐,并且扔到所有套餐(TC)集合中
            public void Tc()
            {
                TaoCan tc = new TaoCan();
                tc.Name = "入学体检";
                tc.Items.Add(ShenGao);
                tc.Items.Add(TiZhong);
    
    
                //请选择
                TaoCan tc2 = new TaoCan();
                tc2.Name = "请选择";
    
                HSet.Add(tc2.Name, tc2);
                HSet.Add(tc.Name, tc);
    
            }
    
            //更新套餐检查项目(职责分离)
            private void updateSet(TaoCan set)
            {
                dgvList.DataSource = new BindingList<HealthCheckItem>(set.Items);
            }
    
            //定义一个标记 判定当前Load事件是否执行完毕
            int flag = 0;
            private void FrmMain_Load(object sender, EventArgs e)
            {
                
    
    
                //右侧下拉框
                testSet();
                //左侧
                Tc();
                //所有下拉框中的项目Clear()
                BindingSource source = new BindingSource();
                source.DataSource = HSet.Values;
                cboSets.DisplayMember = "name";
                cboSets.ValueMember = "items";
                cboSets.DataSource = source;
                BindRightDGV();
                Console.WriteLine("");
                flag = 1;
            }
    
            private void BindRightDGV()
            {
    
                cboItems.DataSource = new BindingList<HealthCheckItem>(AllItems);
            }
    
            private void cboSets_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (flag == 1)
                {
                    string SetName = cboSets.Text;
                    if (SetName == "请选择")
                    {
                        HSet[SetName].Items.Clear();
                        updateSet(HSet[SetName]);
                        // dgvList.DataSource = null;
                        lblSetName.Text = "";
                        lblSetPrice.Text = "";
                        return;
                    }
                    //设置套餐名称
    
                    lblSetName.Text = HSet[SetName].Name;
                    HSet[SetName].CalcPrice();
                    //设置套餐总价
                    lblSetPrice.Text = HSet[SetName].Price.ToString();
                    //更新套餐检查项目
                    updateSet(HSet[SetName]);
                    //设置清楚按钮为可用状态
                    btnDelete.Enabled = true;
                }
            }
    
            private void cboItems_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (cboItems.Text != "请选择")
                {
                    btnAdd.Enabled = true;
                }
                else
                {
                    btnAdd.Enabled = false;
                }
            }
    
            private void btnTaoCanAdd_Click(object sender, EventArgs e)
            {
                if (string.IsNullOrEmpty(txtName.Text))
                {
                    MessageBox.Show("请选择套餐名称","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
                    return;
                }
                else
                {
                    TaoCan Hch = new TaoCan();
                    Hch.Name=txtName.Text;
                    HSet.Add(Hch.Name,Hch);
                    BindingSource source = new BindingSource();
                    source.DataSource = HSet.Values;
                    cboSets.DisplayMember = "name";
                    cboSets.ValueMember = "items";
                    cboSets.DataSource = source;
                    MessageBox.Show("成功!");
                    //将新加入的套餐默认选中
                    cboSets.SelectedIndex = HSet.Count-1;
                }
            }
    
            private void btnDelete_Click(object sender, EventArgs e)
            {
                //体检项目的名称
                if (dgvList.SelectedRows.Count>0)
                {
                    string name=dgvList.SelectedRows[0].Cells[0].Value.ToString();
                foreach (HealthCheckItem item in HSet[lblSetName.Text].Items)
                {
                    if (item.Name==name)
                    {
                        HSet[lblSetName.Text].Items.Remove(item);
                        break;
                    }
                }
                updateSet(HSet[lblSetName.Text]);
                //价格
                HSet[lblSetName.Text].CalcPrice();
                lblSetPrice.Text = HSet[lblSetName.Text].Price.ToString();
                }
    
            }
    
        }
    
    }

    1.先创建以下几个类:

    套餐类:TaoCan

    检查项目类:HealthCheckItem

  • 相关阅读:
    jmeter录制rabbitmq消息-性能测试
    plsqll连接Oracle的两种方式
    Badboy录制脚本时,提示脚本错误的解决方法
    Decorator
    PyObject and PyTypeObject
    Python LEGB (Local, Enclosing, Global, Build in) 规则
    Python Namespace
    Method Resolve Order (MRO)
    Source Code Structure
    Bound Method and Unbound Method
  • 原文地址:https://www.cnblogs.com/qingzhi/p/4802909.html
Copyright © 2011-2022 走看看