• 体检套餐项目解析


    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

  • 相关阅读:
    连接服务器时通时不通的问题
    二进制包搭建k8s集群
    2、带着问题学习JVM_对象存活_垃圾回收的内容_理论_收集算法
    四、redis事务_真正实现分布式Lua_分布式锁
    四、Spring 框架中接入单机Redis的两种方式
    3、通过zkCli⼯具命令和zk 的java API两种方式创建⼀个主从模式示列
    1、带着问题学习JVM_Java为什么属于编译型+解释型的高级语言_Class类文件结构理解
    2、zookeeper安装、常用命令、API说明及简单示列(创建ZK会话及对节点进行操作、创建分布式锁、创建全局唯一ID)
    1、zk的产生、优劣、基础知识
    十三、Spring容器的原理及源码分析
  • 原文地址:https://www.cnblogs.com/qingzhi/p/4802909.html
Copyright © 2020-2023  润新知