Trong bài viết Mô hình lập trình 3 lớp - 3 Tiers (Phần 2), các bạn đã xây dựng được các lớp căn bản phục vụ cho bảng benhnhan. Trong phần 3, các bạn sẽ xây dựng form giao diện và hoàn thiện mã nguồn cho các chức năng chính.
8. Giao diện trang quản lý thông tin bệnh nhân:
9. Lớp frmBN.cs
Xem chi tiết
8. Giao diện trang quản lý thông tin bệnh nhân:
Hình 1. Thiết kế giao diện form quản lý bệnh nhân
9. Lớp frmBN.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using BusinessLogicLayer;
using Entities;
namespace PresentationLayer
{
public partial class frmBN : Form
{
public frmBN()
{
InitializeComponent();
}
public static int ktShow = 0;
private BacSyBLL
bllBS;
private BenhNhanBLL
bllBN;
private BindingSource
bsBN;
private BLL bll;
private List<BenhNhanEntity> lst;
private void
frmBN_Load(object sender, EventArgs e)
{
try
{
bllBN = new BenhNhanBLL();
bllBS = new BacSyBLL();
bll = new BLL();
bll.BuildTree(bllBS, trwBacSy);
KhoaText(false);
}
catch (Exception
ex)
{
MessageBox.Show(ex.Message);
}
}
private void
basyTreeView_AfterSelect(object sender, TreeViewEventArgs e)
{
try
{
if (trwBacSy.SelectedNode.Level == 1)
{
string maBS = e.Node.Tag.ToString();//mã số BS
updateDataGridView(maBS);
lblMaBS.Text = maBS;
}
}
catch (Exception
ex)
{
MessageBox.Show(ex.ToString());
}
}
private void
updateDataGridView(string maBS)
{
lst = bllBN.getBenhNhanOfBacSy(maBS);
bsBN = new BindingSource();
bsBN.DataSource = lst;
dgBenhNhan.DataSource = bsBN;
}
private void
bnDataGridView_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
{
try
{
BenhNhanEntity bn = (BenhNhanEntity)bsBN.Current;
txtCMND.Text = bn.SoCMND;
txtHoTen.Text = bn.TenBN;
txtDiaChi.Text = bn.DiaChiBN;
}
catch (Exception)
{
throw;
}
}
private string
validateInputData() {
if (txtCMND.Text == "")
{
txtCMND.Focus();
return "CMND
không được để trống!";
}
if (txtDiaChi.Text == "")
{
txtDiaChi.Focus();
return "Địa
chỉ không được để trống!";
}
if (txtHoTen.Text == "")
{
txtHoTen.Focus();
return "Họ
tên không được để trống!";
}
return "OK";
}
private void
btnLuu_Click(object sender, EventArgs e) {
try
{
string tmp = validateInputData();
if (tmp == "OK")
{
BenhNhanEntity bs = new BenhNhanEntity(txtCMND.Text,
txtHoTen.Text, txtDiaChi.Text, lblMaBS.Text);
bllBN.UpdateBenhNhan(bs);
btnLuu.Enabled = false;
btnThem.Text = "Thêm";
KhoaText(false);
MessageBox.Show("Thêm thành công!", "Chương trình QL Bệnh nhân", MessageBoxButtons.OK, MessageBoxIcon.Information);
updateDataGridView(lblMaBS.Text);
}
else
{
MessageBox.Show(tmp, "Chương trình QL Bệnh nhân", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
catch (Exception
ex)
{
MessageBox.Show(ex.ToString());
}
}
private void
btnXoa_Click(object sender, EventArgs e)
{
if (lblMaBS.Text == "Mã
BS")
MessageBox.Show("Chọn BN trước khi xoá", "Chương trình QL bệnh nhân.", MessageBoxButtons.OK, MessageBoxIcon.Information);
else
if (MessageBox.Show("Bạn có muốn xoá hay không?", "Chương trình quản lý bệnh nhân", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
MessageBoxDefaultButton.Button2) == DialogResult.Yes)
{
if (!bllBN.xoaBenhNhan(txtCMND.Text))
MessageBox.Show("Không thành
công", "Chương trình QL Bệnh
nhân", MessageBoxButtons.OK, MessageBoxIcon.Information);
updateDataGridView(lblMaBS.Text);
}
}
private void
frmBN_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult ask;
ask = MessageBox.Show("Bạn có muốn thoát khỏi chương trình không?",
"Chương trình QL Bệnh nhân", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1);
if (ask == DialogResult.No)
e.Cancel = true;
}
private void
btnThoat_Click(object sender, EventArgs e)
{
this.Close();
}
private void
KhoaText(bool k)
{
txtDiaChi.Enabled = k;
txtHoTen.Enabled = k;
txtCMND.Enabled = k;
}
private void
XoaText()
{
txtDiaChi.Text = "";
txtHoTen.Text = "";
txtCMND.Text = "";
}
private void
btnThem_Click(object sender, EventArgs e)
{
if (lblMaBS.Text == "Mã
BS")
MessageBox.Show("Chọn BS trước khi nhấn thêm BN", "Chương trình QL bệnh nhân.", MessageBoxButtons.OK, MessageBoxIcon.Information);
else
if (btnThem.Text == "Thêm")
{
btnLuu.Enabled = true;
btnThem.Text = "Huỷ";
XoaText();
KhoaText(true);
trwBacSy.Enabled = false;
dgBenhNhan.Enabled = false;
}
else
{
btnLuu.Enabled = false;
btnThem.Text = "Thêm";
KhoaText(false);
trwBacSy.Enabled = true;
dgBenhNhan.Enabled = true;
}
}
private void
frmBN_Activated(object sender, EventArgs e)
{
if (ktShow == 1)
{
bll.BuildTree(bllBS, trwBacSy);
}
}
private void
btnXemTTBSDT_Click(object sender, EventArgs e)
{
MessageBox.Show("Tự
viết thêm cái form nữa, thêm phần xử lý trong BLL","Chương trình QL bệnh nhân.", MessageBoxButtons.OK,MessageBoxIcon.Information);
}
private void
txtCMND_KeyPress(object sender, KeyPressEventArgs e)
{
if ((Keys)e.KeyChar
== Keys.Enter)
txtDiaChi.Focus();
}
}}
Tags: Visual Studio, Windows Form, 3 tiers, Mô hình 3 lớp