Giao diện thống kê thông tin nộp học phí

Một phần của tài liệu Quản lí học phí (Trang 40)

3. 1 Các giao diện của chơng trình

3.1.9. Giao diện thống kê thông tin nộp học phí

Hình 9: Xem thông tin về sinh viên

Form này cho phép xem thông tin sinh viên sinh viên nộp học phí theo tng khoa, từng lớp hoặc từng ngày.

STVH:Bùi Thị H ơng - 44B CNTT

3.10. Giao diện thống kê thông tin những sinh viên nộp học phí trong khoảng thời gian nào đó

Hình 10. Thông kê danh sách sinh viên

Khi ban lãnh đạo muốn biết thông tin sinh viên đã nộp học phí trong khoảng thời gian nào đó thì sử dụng form này.

Nhập khoảng thời gian (từ ngày-> đến ngày) cần thống kê, sau đó kích vào nút hiện thị thì tất cả những sinh viên nộp học phí trong khoảng thời gian đó sẽ đợc lọc ra.

3.1.11. Thống kê tổng hợp nộp học phí của lớp đó

Hình 11: Tổng hợp học phí theo lớp

Thống kê tổng hợp học phí theo từng lớp. Chọn khoa đào tạo, hệ đào tạo và lớp học rồi nháy vào nút in danh sách, danh sách của lớp đó sẽ đợc in.

STVH:Bùi Thị H ơng - 44B CNTT

3.1.12. Giao diện thay đổi ngời sử dụng

Hình 12: Thay đổi ngời sử dụng

3.1.13. Giao diện khi muốn thêm ngời sử dụng

3.2. Chơng trình

Code chơng trình xử lý thu học phí (Form frmmain.cs)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace Hoc_phi {

public partial class frmMain: Form {

//Đối tượng của lớp DataService private DataServices myData;

//Đối tượng để đưa dữ liệu từ bảng vào DataSet private SqlDataAdapter myAdapter;

//Đối tượng (chỉ đọc) dữ liệu từ bảng private SqlDataReader myReader;

//Đối tượng chứa nội dung cỏc bảng CSDL private DataSet myDataset;

//Biến chứa xõu truy vấn CSDL public string strSql;

public int Malop; public int Masosv;

//Biến chứa học kỳ của sinh viờn đang nộp private int m_Hocky;

//Biến lấy giỏ trị học phớ của hệ đào tạo private int D_Money;

//Lấy số tiền mà sinh viờn đú phải đúng private int Money;

//Lấy mức giảm (%) private int Mucgiam; public bool Inhoadon;

//Biến dựng để xỏc định xem sinh viờn //vừa nộp là nộp lần 1 hay nhiều hơn 1 private bool Danop;

private int Mucphainop; public int Mahp_Conthieu; private int Dadong_Thieu; private int Conno_Thieu; public int So_tien_vua_nop; /// <summary>

/// </summary>

private void frmMain_Load(object sender, EventArgs e) {

myData = new DataServices(); }

//Hàm để đọc giỏ trị từ CSDL nguồn

private void btnGo_Click(object sender, EventArgs e) {

STVH:Bùi Thị H ơng - 44B CNTT

//======================================================================= //Lấy thụng tin Mó lớp khi biết mó khoa và tờn lớp

strSql = "SELECT tblLop.MaLop" + " FROM tblLop INNER JOIN" +

" tblKhoa ON tblLop.MaKhoa = tblKhoa.MaKhoa" + " WHERE (tblLop.TenLop = N'" + cboLop.Text.Trim() + "') AND (tblLop.MaKhoa = '" +

Convert.ToInt16(cboTenkhoa.SelectedValue.ToString()) + "')"; myReader = this.SetReader(strSql,

Program.LoGin.strConnection);

while (myReader.Read() == true) {

Malop = myReader.GetInt16(0); }

///////////////////////////////////////////////////////////// ////////////

strSql = "SELECT HOCKY FROM TBLLOP WHERE (TENLOP=N'" + cboLop.Text.Trim() + "') AND (MAKHOA='" +

Convert.ToInt16(cboTenkhoa.SelectedValue.ToString()) + "')"; myReader = this.SetReader(strSql,

Program.LoGin.strConnection);

while (myReader.Read() == true) { m_Hocky = myReader.GetInt16(0); } ///////////////////////////////////////////////////////////// //////////// try {

//Lọc dữ liệu trong CSDL sinh viờn sao cho lưới bờn trỏi chứa

//danh sỏch những sinh viờn của lớp được chọn nhưng khụng bao gồm //cỏc sinh viờn đó đúng đầy đủ và cỏc sinh viờn thuộc diện ưu tiờn giảm 100%

//Cũn lưới bờn phải chứa danh sỏch sinh viờn của lớp đú gồm những ng //nộp đủ hoặc nộp cũn thiếu

strSql = "SELECT

TBLSINHVIEN.MASV,TBLSINHVIEN.TENSV,TBLSINHVIEN.NGAYSINH,TBLSINHVIEN.MADT, TBLSINHVIEN.MAHDT" +

" FROM TBLSINHVIEN WHERE" +

" (TBLSINHVIEN.MALOP='" + Malop + "')" + " AND (TBLSINHVIEN.CONTHIEU!=0)";

//Khi thay đổi tờn lớp: Nếu trong DataGrid View đang cú dữ liệu cũ thỡ xúa

//đi trước khi đưa dữ liệu mới vào if (dgvSV.Rows.Count > 1)

myDataset.Tables[3].Clear();

//--- ---

myDataset = myData.SelectSqlData(strSql, Program.LoGin.strConnection, myDataset, "TBLSINHVIEN"); dgvSV.AutoGenerateColumns = false; dgvSV.DataSource = myDataset.Tables[3]; //--- //this.btnGo.Enabled = false; } catch {

} //======================================================================= if (dgvHocphi.Rows.Count > 1) { myDataset.Tables[4].Clear(); this.Load_Display_Table(); } else this.Load_Display_Table(); }

//Load bảng Học phớ để hiển thị lờn lưới (Khụng cho phộp Update) private void Load_Display_Table()

{

strSql = "SELECT * " +

" FROM tblHocPhi INNER JOIN" +

" tblSinhVien ON tblHocPhi.MaSV = tblSinhVien.MaSV" + " WHERE (tblHocPhi.MaSV IN" +

" (SELECT tblSINHVIEN.MASV" + " FROM tblSINHVIEN" +

" WHERE (TBLSINHVIEN.MALOP = '" + Malop + "')))"; myDataset = myData.SelectSqlData(strSql,

Program.LoGin.strConnection, myDataset, "TBLHOCPHI"); dgvHocphi.AutoGenerateColumns = false; dgvHocphi.DataSource = myDataset.Tables[4]; }

//Load bảng học phớ, cho phộp Update private void Load_Select_Update() {

strSql = "SELECT * FROM TBLHOCPHI";

myDataset = myData.SelectUpdateDataSet(strSql, Program.LoGin.strConnection, myDataset, "TBLHOCPHI");

} }

private void dgvSV_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex != myDataset.Tables[3].Rows.Count) { cboTenkhoa.Enabled = false; cboHedaotao.Enabled = false; cboLop.Enabled = false; btnGo.Enabled = false; //int Masv; ///////////////////////////////////////////////////////// ////////////////

//Xỏc định số tiền sinh viờn phải đúng trong trường hợp khụng ưu tiờn strSql = "SELECT HOCPHI FROM TBLHEDT WHERE MAHDT='" + myDataset.Tables[3].Rows[e.RowIndex][4].ToString() + "'";

myReader = this.SetReader(strSql, Program.LoGin.strConnection);

while (myReader.Read() == true) { D_Money = Convert.ToInt32(myReader.GetInt32(0)); } //--- STVH:Bùi Thị H ơng - 44B CNTT 46

//Xỏc định số tiền mà sinh viờn phải đúng đỳng theo mức ưu tiờn strSql = "SELECT GIAM FROM TBLDOITUONG WHERE MADT='" + myDataset.Tables[3].Rows[e.RowIndex][3].ToString() + "'";

myReader = this.SetReader(strSql, Program.LoGin.strConnection);

while (myReader.Read() == true) {

Mucgiam = myReader.GetInt16(0); }

Money = D_Money - D_Money * Mucgiam / 100;

//--- Masosv = Convert.ToInt32(myDataset.Tables[3].Rows[e.RowIndex][0]); //--- DataRow newRow = myDataset.Tables[4].NewRow();

newRow[1] = myDataset.Tables[3].Rows[e.RowIndex][0].ToString(); newRow[2] = myDataset.Tables[3].Rows[e.RowIndex][1].ToString(); newRow[3] = myDataset.Tables[3].Rows[e.RowIndex][3].ToString(); newRow[4] = Convert.ToString(Program.LoGin.Manguoithu); newRow[5] = Program.LoGin.MtNgaythu.Text.Trim(); newRow[6] = m_Hocky; newRow[8] = Money; //--- myDataset.Tables[4].Rows.Add(newRow); dgvSV.Enabled = false; this.btnCancel.Enabled = true; this.btnSave.Enabled = true; //--- //Kiểm tra xem sinh viờn được chọn đó nộp lần nào chưa bằng

cỏch //tỡm xem trong bảng Học phớ cú mó sinh viờn trựng với mó sinh viờn

//vừa được chọn trong bảng Sinh viờn hay khụng

strSql = "Select Mahp, Masv FROM TBLHOCPHI";

myReader = this.SetReader(strSql, Program.LoGin.strConnection); while (myReader.Read() == true)

{ if (Masosv != myReader.GetInt32(1)) { Danop = true; } else { Danop = false; Mahp_Conthieu = myReader.GetInt32(0); Masosv = myReader.GetInt32(1); return; } } } }

private void btnSave_Click(object sender, EventArgs e) {

try {

//Trường hợp sinh viờn nộp lần đầu tiờn của kỳ đú if (Danop == true)

if

(myDataset.Tables[4].Rows[myDataset.Tables[4].Rows.Count - 1] [7].ToString().Trim() == "")

MessageBox.Show("Bạn chưa nhập học phớ", "Thụng bỏo", MessageBoxButtons.OK, MessageBoxIcon.Warning);

else if

(Convert.ToInt32(myDataset.Tables[4].Rows[myDataset.Tables[4].Rows.Count - 1][7].ToString()) > Money)

MessageBox.Show("Số tiền bạn vừa nhập vượt quỏ mức quy định", "Cảnh bỏo", MessageBoxButtons.OK, MessageBoxIcon.Warning);

else { dgvHocphi.Rows[dgvHocphi.Rows.Count - 2].Cells[7].Value = Convert.ToInt32(dgvHocphi.Rows[dgvHocphi.Rows.Count - 2].Cells[5].Value); dgvHocphi.Rows[dgvHocphi.Rows.Count - 2].Cells[6].Value = (Money - Convert.ToInt32(dgvHocphi.Rows[dgvHocphi.Rows.Count - 2].Cells[5].Value)); //--- strSql = "Update tblSinhvien set danop='" +

Convert.ToInt32(dgvHocphi.Rows[dgvHocphi.Rows.Count - 2].Cells[5].Value) + "'," +

" Conthieu='" + (Money -

Convert.ToInt32(dgvHocphi.Rows[dgvHocphi.Rows.Count - 2].Cells[5].Value)) + "'" +

" where Masv='" + Masosv + "'"; myDataset = myData.SelectUpdateDataSet(strSql,

Program.LoGin.strConnection, myDataset, "tblSinhvien"); myData.UpdateDataSet(myDataset, "tblSinhvien"); this.Load_Select_Update(); myData.UpdateDataSet(myDataset, "TBLHOCPHI"); myDataset.Tables[4].Clear(); this.Load_Display_Table(); //--- this.btnCancel.Enabled = false; this.btnSave.Enabled = false; this.btnPrint.Enabled = true; dgvSV.Enabled = true; btnGo.PerformClick(); } }

//Trường hợp sinh viờn nộp lần thứ 2 trở đi, chương trỡnh sẽ tự động tỡm đến mó số của sinh viờn này trong lần nộp trước đú và cập nhật số tiền mới này vào số tiền đó nộp trước đú.Ở đõy sinh viờn cú thể nộp được nhiều lần

else if (Danop == false) {

if

(myDataset.Tables[4].Rows[myDataset.Tables[4].Rows.Count - 1] [7].ToString().Trim() == "")

MessageBox.Show("Bạn chưa nhập học phớ", "Thụng bỏo", MessageBoxButtons.OK, MessageBoxIcon.Warning);

else {

strSql = "Select danop,conthieu from tblSinhvien where masv='" + Masosv + "'";

myReader = this.SetReader(strSql, Program.LoGin.strConnection);

while (myReader.Read() == true)

STVH:Bùi Thị H ơng - 44B CNTT

{ Dadong_Thieu = myReader.GetInt32(0); Conno_Thieu = myReader.GetInt32(1); } if (Convert.ToInt32(myDataset.Tables[4].Rows[myDataset.Tables[4].Rows.Count - 1][7].ToString()) > Conno_Thieu)

MessageBox.Show("Số tiền bạn vừa nhập vượt quỏ mức quy định", "Cảnh bỏo", MessageBoxButtons.OK,

MessageBoxIcon.Warning); else { dgvHocphi.Rows[dgvHocphi.Rows.Count - 2].Cells[7].Value = Convert.ToInt32(dgvHocphi.Rows[dgvHocphi.Rows.Count - 2].Cells[5].Value);

strSql = "Update tblHocphi set Dadong='" + (Dadong_Thieu + Convert.ToInt32(dgvHocphi.Rows[dgvHocphi.Rows.Count - 2].Cells[5].Value)) + "'," + " Conno='" + (Money - Dadong_Thieu -

Convert.ToInt32(dgvHocphi.Rows[dgvHocphi.Rows.Count - 2].Cells[5].Value)) + "'," + " VuaNop='" + Convert.ToInt32(dgvHocphi.Rows[dgvHocphi.Rows.Count - 2].Cells[7].Value.ToString()) + "'," + " NgayThu='" + Convert.ToDateTime(dgvHocphi.Rows[dgvHocphi.Rows.Count - 2].Cells[3].Value) + "'" +

" where Mahp='" + Mahp_Conthieu + "'"; myDataset =

myData.SelectUpdateDataSet(strSql, Program.LoGin.strConnection, myDataset, "tblSinhvien");

myData.UpdateDataSet(myDataset, "tblHocphi"); //---

strSql = "Update tblSinhvien set Danop='" + (Dadong_Thieu + Convert.ToInt32(dgvHocphi.Rows[dgvHocphi.Rows.Count - 2].Cells[5].Value)) + "'," +

" Conthieu='" + (Money - Dadong_Thieu - Convert.ToInt32(dgvHocphi.Rows[dgvHocphi.Rows.Count - 2].Cells[5].Value)) + "'" +

" where Masv='" + Masosv + "'";

//--- myDataset = myData.SelectUpdateDataSet(strSql,

Program.LoGin.strConnection, myDataset, "tblSinhvien"); myData.UpdateDataSet(myDataset, "tblSinhvien"); //--- --- myDataset.Tables[4].Rows[myDataset.Tables[4].Rows.Count - 1].Delete(); this.Load_Select_Update(); //Cập nhật vào CSDL myData.UpdateDataSet(myDataset, "TBLHOCPHI"); myDataset.Tables[4].Clear(); this.Load_Display_Table(); //--- dgvSV.Enabled = true; this.btnCancel.Enabled = false; this.btnSave.Enabled = false; this.btnPrint.Enabled = true; btnGo.PerformClick(); } } }

cboTenkhoa.Enabled = true; cboHedaotao.Enabled = true; ; cboLop.Enabled = true;

btnGo.Enabled = true; }

catch (SqlException ex) {

MessageBox.Show(ex.Message); }

}

private void btnDelete_Click(object sender, EventArgs e) {

try

{

DialogResult dialogResult;

dialogResult = MessageBox.Show("Bạn cú chắc chắn xúa bản ghi này khụng?", "Thụng bỏo", MessageBoxButtons.YesNo,

MessageBoxIcon.Question);

if (dialogResult == DialogResult.Yes) {

//Khi xúa 1 sinh viờn trong bảng học phớ cú nghĩa ta xem sinh viờn đú chưa nộp học phớ do đú trong bảng tblSinhviờn ta phải cập nhật lại thụng tin về việc nộp học phớ của sinh viờn đú

Masosv =

Convert.ToInt32(myDataset.Tables[4].Rows[dgvHocphi.CurrentRow.Index] [1].ToString());

strSql = "Select phainop from tblsinhvien where masv='" + Masosv + "'";

myReader = this.SetReader(strSql, Program.LoGin.strConnection);

while (myReader.Read() == true) {

Mucphainop = myReader.GetInt32(0); }

strSql = "Update tblSinhvien set danop=0," + " Conthieu='" + Mucphainop + "' " + " where Masv='" + Masosv + "'"; myDataset = myData.SelectSqlData(strSql, Program.LoGin.strConnection, myDataset, "tblSinhvien");

myData.UpdateDataSet(myDataset, "tblSinhvien");

//--- ---

//Tiến hành xúa bỏ sinh viờn được chọn this.Load_Select_Update();

//Xúa bản ghi được chọn myDataset.Tables[4].Rows[dgvHocphi.CurrentRow.Index].Delete(); //Cập nhật vào CSDL myData.UpdateDataSet(myDataset, "TBLHOCPHI"); myDataset.Tables[4].Clear(); this.Load_Display_Table(); //--- --- btnGo.PerformClick(); } } catch { } STVH:Bùi Thị H ơng - 44B CNTT 50

}

Kết luận

Xây dựng phần mềm ứng dụng là những nhu cầu xuất phát từ thực tế phát triển của hệ thống kinh tế- xã hội. Tin học hoá các hoạt đông quản lý, giúp các nhà quản lý có tầm nhìn bao quát, cập nhật nhanh chóng các thông tin cần nắm bắt, nâng cao hiệu quả công tác.

1. Nhìn một cách tổng thể khoá luận của mình tôi nhận thấy khoá luận đã đạt đợc những kết quả sau:

* Nghiên cứu ngôn ngữ (công cụ) lập trình mới C#.

* Phân tích và thiết kế hệ thống quản lý học phí mà chính xác ở trờng Đại học Vinh.

* Cài đặt chơng trình quản lý học phí bằng ngôn ngữ C#

* Chơng trình đơn giản, dễ sử dụng và đáp ứng các yêu cầu về quản lý thu học phí.

2. Những hạn chế của chơng trình

* Trong điều kiện hạn hẹp về thời gian nên chơng trình còn tồn tại một số thiếu sót.

* Vì trong thời gian phân tích thiết kế tôi chỉ khảo sát phòng thu học phí ở trờng Đại Học Vinh, vì thế các chức năng chỉ đúng với quản lý học phí

Một phần của tài liệu Quản lí học phí (Trang 40)

Tải bản đầy đủ (DOC)

(52 trang)
w