THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ

Một phần của tài liệu Khóa Luận: “PHẦN MỀM QUẢN LÝ ĐỀ TÀI CÁC CẤP PHÒNG KHOA HỌC QUAN HỆ QUỐC TẾ TRƯỜNG ĐẠI HỌC TÂY NGUYÊN (Trang 33 - 65)

2.2.5.1. Giao diện đăng nhập

PHÒNG KHOA HỌC & QUAN HỆ QUỐC TẾ

ĐĂNG NHẬP

Hệ thống Danh mục Đề tài Thành viên Hội đồng Thống kê

DESIGN BY 07 Admin ****** Tài khoản Mật khẩu Đăng nhập Thoát

TRƯỜNG ĐẠI HỌC TÂY NGUYÊN PHÒNG KHOA HỌC & QUAN HỆ QUỐC TẾ

Hình 2.12: Thiết kế giao diện đăng nhập Danh sách biến cố:

BC ĐK kích hoạt Xử lý Ghi chú

1 Click nút ĐĂNG NHẬP

Lấy dữ liệu từ bảng User, so sánh với giá trị ở textbox xem có hợp lệ hay không. Nếu hợp lệ thì cho phép đăng nhập và ngược lại.

2 Click nút THOÁT

Thoát khỏi quyền đăng nhập hiện tại.

2.2.5.2. Giao diện quản lý danh sách đơn vị

QUẢN LÝ ĐƠN VỊ

Mã đơn vị Tên đơn vị

DESIGN BY 07 Thêm Sửa Xóa Thoát Mã đơn vị Tên đơn vị Lưu

Hình 2.13: Thiết kế giao diện quản lý đơn vị Danh sách biến cố:

BC ĐK kích hoạt Xử lý Ghi chú

1 Form load Hiện DS Đơn vị lên Datagridview. 2 Click nút THÊM Lấy dữ liệu ở Textbox thêm vào CSDL. 3 Click nút Xóa Xóa bản ghi được chỉ trong danh sách. 4 Click nút SỬA Lấy thông tin bản ghi đang được chỉ

trong danh sách hiện thị lên Textbox, nút THÊM và XÓA bị khóa lại.

5 Click nút LƯU Lấy thông tin trên Textbox, lưu thay đổi vào CSDL. Nút THÊM & XÓA được

31

2.2.5.3. Giao diện quản lý danh sách cán bộ

DANH SÁCH CÁN BỘ

Mã cán bộ CMND Họ tên Ngày sinh

DESIGN BY 07 Thêm Sửa Xóa Lưu Mã cán bộ CMND Họ tên Học vị Ngày sinh Chức vụ Đơn vị

Hình 2.14: Thiết kế giao diện quản lý danh sách cán bộ Danh sách biến cố:

BC ĐK kích hoạt Xử lý Ghi chú

1 Form load Hiện DS cán bộ lên Datagridview, gán DS Đơn vị vào Combo Box.

2 Click nút THÊM Lấy dữ liệu ở Textbox thêm vào CSDL. 3 Click nút Xóa Xóa bản ghi được chỉ trong danh sách. 4 Click nút SỬA Lấy thông tin bản ghi đang được chỉ

trong danh sách hiện thị lên Textbox, nút THÊM và XÓA bị khóa lại.

5 Click nút LƯU Lấy thông tin trên Textbox, lưu thay đổi vào CSDL. Nút THÊM & XÓA được mở

2.2.5.4. Giao diện thêm mới đề tài

QUẢN LÝ ĐỀ TÀI

ID Tên đề tài Cấp đề tài

DESIGN BY 07 Thêm Sửa Xóa Thoát Năm Tên đề tài Cấp đề tài Lưu Lĩnh vực ID

Hình 2.15: Thiết kế giao diện thêm mới đề tài Danh sách biến cố:

BC ĐK kích hoạt Xử lý Ghi chú

1 Form load Hiện DS đề tài lên Datagridview, gán DS Lĩnh vực khoa học, Cấp đề tài vào

Combo Box.

2 Click nút THÊM Lấy dữ liệu ở Textbox thêm vào CSDL. 3 Click nút Xóa Xóa bản ghi được chỉ trong danh sách. 4 Click nút SỬA Lấy thông tin bản ghi đang được chỉ

33

2.2.5.5. Giao diện quản lý thành viên nghiên cứu:

QUẢN LÝ THÀNH VIÊN NGHIÊN CỨU

Mã thành viên CMND Họ tên Ngày sinh Vị trí N/C Đơn vị Học vị

DESIGN BY 07

ID đề tài

Thêm Xóa Sửa Lưu

Ngày sinh

Mã thành viên Vị trí N/C

CMND Đơn vị

Họ tên Học vị

Địa chỉ Chức vụ

Hình 2.16: Thiết kế giao diện quản lý thành viên nghiên cứu Danh sách biến cố:

BC ĐK kích hoạt Xử lý Ghi chú

1 Form load Hiện DS thành viên lên Datagridview, gán DS Đơn vị, Vị trí nghiên cứu vào Combo Box.

2 Click nút THÊM Lấy dữ liệu ở Textbox thêm vào CSDL. 3 Click nút Xóa Xóa bản ghi được chỉ trong danh sách. 4 Click nút SỬA Lấy thông tin bản ghi đang được chỉ

trong danh sách hiện thị lên Textbox, nút THÊM và XÓA bị khóa lại.

5 Click nút LƯU Lấy thông tin trên Textbox, lưu thay đổi vào CSDL. Nút THÊM & XÓA được mở

2.2.5.6. Giao diện cập nhật thuyết minh

CẬP NHẬT THUYẾT MINH

DESIGN BY 07

Lưu lại Thoát Đề tài Mục tiêu Dự kiến kết quả Ngày kết thúc Ngày bắt đầu DV chủ trì Kinh phí toàn bộ

Hình 2.17: Thiết kế giao diện cập nhật thuyết minh Danh sách biến cố:

BC ĐK kích hoạt Xử lý Ghi chú

1 Click nút LƯU LẠI

Lấy dữ liệu ở Textbox lưu vào CSDL. 2 Click nút

THOÁT

Thoát khỏi Form

35

2.2.5.7. Giao diện quản lý cấp kinh phí cho đề tài

CẤP KINH PHÍ CHO ĐỀ TÀI

Ngày cấp Số tiền DESIGN BY 07 Thêm Xóa Thoát Ngày cấp Số tiền ID đề tài

Hình 2.18: Thiết kế giao diện quản lý cấp kinh phí Danh sách biến cố:

BC ĐK kích hoạt Xử lý Ghi chú

1 Form load Hiện DS cấp kinh phí lên Datagridview. 2 Click nút THÊM Lấy dữ liệu ở Textbox thêm vào CSDL. 3 Click nút Xóa Xóa bản ghi được chỉ trong danh sách.

2.2.5.8. Giao diện quản lý tiến độ của đề tài

QUẢN LÝ TIẾN ĐỘ ĐỀ TÀI

Hạn báo cáo Nội dung Kinh phí Ngày hoàn thành

DESIGN BY 07

ID đề tài

Thêm Xóa Sửa Lưu

Hạn báo cáo

Nội dung Kinh phí

Đánh dấu hoàn thành

Hình 2.19: Thiết kê giao diện quản lý tiến độ Danh sách biến cố:

BC ĐK kích hoạt Xử lý Ghi chú

1 Form load Hiện DS tiến độ của đề tài lên Datagridview.

2 Click nút THÊM Lấy dữ liệu ở Textbox thêm vào CSDL. 3 Click nút Xóa Xóa bản ghi được chỉ trong danh sách. 4 Click nút SỬA Lấy thông tin bản ghi đang được chỉ

37

2.2.5.9. Giao diện quản lý hội đồng khoa học

THÀNH VIÊN HỘI ĐỒNG Cán bộ Chức vụ trong HĐ DESIGN BY 07 Xét duyệt Xét duyệt Thêm Lưu HĐ Xóa Hội đồng số: Cán bộ Chức vụ trong HĐ

Kiểu hội đồng ID đề tài

Ngày Địa điểm

DANH SÁCH CHI TIẾT HỘI ĐỒNG

Hình 2.20: Thiết kế giao diện quản lý hội đồng khoa học Danh sách biến cố:

BC ĐK kích hoạt Xử lý Ghi chú

1 Form load Hiện DS thành viên hội đồng lên Datagridview. Gán danh sách Cán bộ, Chức vụ hội đồng lên

Combobox.

Nếu hội đồng chưa được tạo trong CSDL thì để trống.

2 Click nút LƯU HĐ

Lấy dữ liệu (thời gian, địa điểm) của hội đồng lưu vào CSDL.

Nếu HĐ chưa tạo thì tạo mới, nếu đã có thì cập nhật lại.

3 Click nút THÊM Lấy dữ liệu về thành viên hội đồng ở Combobox thêm vào CSDL. 4 Click nút Xóa Xóa bản ghi được chỉ trong danh

sách.

2.2.5.10. Giao diện thống kê đề tài

THỐNG KÊ ĐỀ TÀI

Tên đề tài Chủ nhiệm Mục tiêu Bắt đầu Kết thúc Tổng kinh phí Đã cấp

DESIGN BY 07

Thống kê Năm

Cấp đề tài

Đơn vị

Hình 2.21: Thiết kế giao diện thống kê đề tài Danh sách biến cố của Form:

BC ĐK kích hoạt Xử lý Ghi chú

1 Form load Gán danh sách Cấp đề tài, Đơn vị lên Combobox.

2 Click nút THỐNG KÊ

Tìm trong CSDL các đề tài thỏa mãn điều kiện thống kê. Showmessage kết quả cho người sử dụng và hiện kết quả lên Gridview.

39 2.2.5.11. Giao diện tìm kiếm đề tài

TÌM KIẾM ĐỀ TÀI

Tên đề tài Chủ nhiệm Mục tiêu Bắt đầu Kết thúc Tổng kinh phí Đã cấp

DESIGN BY 07

Tên đề tài Tự nhiên

Tìm kiếm Tìm theo

Cấp đề tài

Lĩnh vực

Từ khóa

Hình 2.22: Thiết kế giao diện tìm kiếm đề tài Danh sách biến cố của Form:

BC ĐK kích hoạt Xử lý Ghi chú

1 Form load Dán danh sách Kiểu tìm kiếm, Linhc vực khoa học, Cấp đề tài lên Combobox. 2 Click nút TÌM

KIẾM

Tìm trong CSDL các đề tài thỏa mãn điều kiện tìm kiếm. Showmessage kết quả cho người sử dụng và hiện kết quả lên Gridview.

CHƯƠNG 3: XÂY DỰNG PHẦN MỀM

2.3.1. GIAO DIỆN PHẦN MỀM

2.3.1.1. Menu và giao diện đăng nhập:

Hình 3.1: Menu và giao diện đăng nhập

41

2.3.1.3. Form quản lý đề tài

Hình 3.3: Form quản lý đề tài

2.3.1.4. Form cập nhật nội dung thuyết minh

2.3.1.5. Form quản lý thành viên nghiên cứu

Hình 3.5: Form quản lý thành viên nghiên cứu

43

2.3.1.7. Form quản lý tiến độ của đề tài

Hình 3.7: Form quản lý tiến độ của đề tài

2.3.1.8. Form quản lý hội đồng khoa học

2.3.1.9. Form thống kê đề tài

Hình 3.9: Form thống kê đề tài

45

2.3.1.11. Form in phiếu đăng ký đề tài

Hình 3.11: Form in phiếu đăng ký đề tài

2.3.1.12. Report – phiếu đăng ký đề tài

2.3.1.13. Report – Báo cáo triển khai thực hiện đề tài

Hình 3.13: Report báo cáo triển khai thực hiện đề tài

47

2.3.1.15. Report – Đơn xin nghiệm thu đề tài

2.3.1.16. Report – Quyết định xét duyệt

49

2.3.1.17. Report – Danh mục nhiệm vụ nghiên cứu khoa học của đơn vị trong năm

Hình 3.17: Report danh mục nghiên cứu khoa học

2.3.1.18. Form sao lưu dữ liệu

2.3.2. CHUYỂN GIAO VÀ VẬN HÀNH HỆ THỐNG 2.3.1.1. Code chức năng đăng nhập

Code:

private void buttonItem8_Click(object sender, EventArgs e) {

dangnhap = bll.DangNhap(txtName.Text, txtPass.Text); if (dangnhap == 1)

{

MessageBox.Show("Đăng nhập thành công."); tabControl1.Enabled = true;

ribbonBar1.Enabled = true; ribbonBar2.Enabled = true; btDN.Enabled = false; btDX.Enabled = true;

txtName.Enabled = txtPass.Enabled = false; txtName.Text = "";

}

else MessageBox.Show("Đăng nhập sai."); txtPass.Text = "";

}

private void btDX_Click(object sender, EventArgs e) { dangnhap = 0; tabControl1.Enabled = false; ribbonBar1.Enabled = false; ribbonBar2.Enabled = false; btDN.Enabled = true; btDX.Enabled = false; txtName.Text = txtPass.Text = "";

txtName.Enabled = txtPass.Enabled = true; MessageBox.Show("Đã đăng xuất.");

}

private void btDoiMK_Click(object sender, EventArgs e) {

51

2.3.1.2. Code chức năng quản lý danh sách cán bộ

Code:

public List<CanBo> DanhSachDK(string _MaDV) {

List<CanBo> list = new List<CanBo>();

list = (from x in _db.CanBos where x.MaDV == _MaDV select x).ToList();

return list; }

public bool Add(string _MaCB, string _CMND, string _HoTen,

DateTime _NgaySinh, string _HocVi, string _ChucVu, string _MaDV) {

CanBo _dto = new CanBo(); try { if (_MaCB.Length != 8) { Error = "MÃ CÁN BỘ GỒM 8 KÝ TỰ"; return false; } _dto.MaCB = _MaCB; _dto.CMND = _CMND; _dto.HoTen = _HoTen; _dto.NgaySinh = _NgaySinh; _dto.HocVi = _HocVi; _dto.ChucVu = _ChucVu; _dto.MaDV = _MaDV; _db.CanBos.InsertOnSubmit(_dto); _db.SubmitChanges(); } catch (Exception) {

Error = "THÊM DỮ LIỆU THẤT BẠI"; return false;

}

return true; }

public bool Del(string _MaCB) {

var _dto = (from x in _db.CanBos where x.MaCB == _MaCB select x).ToList(); _db.CanBos.DeleteAllOnSubmit(_dto); _db.SubmitChanges();

return true; }

2.3.1.3. Code chắc năng quản lý đề tài

Code:

public bool XacNhanHoanThanhDT(string _IDDeTai, int _kq) {

if (HoanThanhTienDo(_IDDeTai) == false) {

System.Windows.Forms.MessageBox.Show("CHƯA HOÀN THÀNH TOÀN

BỘ TIẾN ĐỘ");

return false; }

try

{

var _dto = (from x in _db.DeTais

where x.IDDeTai == long.Parse(_IDDeTai) select x).Single(); _dto.DaHoanThanh = _kq; _db.SubmitChanges(); } catch (Exception) { Error = "CẬP NHẬT THẤT BẠI"; return false; } return true; }

public DeTai TimDeTai(string _IDDeTai) {

var rs = (from x in _db.DeTais

where (x.IDDeTai == long.Parse(_IDDeTai)) select x).Single();

return rs; }

public bool Add(string _TenDeTai, int _LoaiDeTai, string _Nam,

string _MaLV) {

DeTai _dto = new DeTai(); try

{

53

2.3.1.4. Code chức năng quản lý thành viên nghiên cứu

Code:

public List<ThanhVien> DanhSachSVNC(string _ID) {

List<ThanhVien> list = new List<ThanhVien>(); long k = 0;

long.TryParse(_ID, out k); list = (from x in _db.ThanhViens

where ((x.IDDeTai == k)&&(x.LoaiThanhVien!=3)) select x).ToList();

return list; }

public ThanhVien TimChuNhiem(string _IDDeTai) {

var tv = (from x in _db.ThanhViens

where ((x.IDDeTai == long.Parse(_IDDeTai)) && (x.LoaiThanhVien == 1))

select x).Single(); return tv;

}

public ThanhVien TimGiaoVien(string _IDDeTai) {

var tv = (from x in _db.ThanhViens

where ((x.IDDeTai == long.Parse(_IDDeTai)) && (x.LoaiThanhVien == 3))

select x).Single(); return tv;

}

public bool kiemtraCN(string _IDDeTai) {

var _dto = (from x in _db.ThanhViens where (x.IDDeTai ==

long.Parse(_IDDeTai))&&(x.LoaiThanhVien == 1) select x).ToList(); if (_dto.Count == 0)

return true; else return false; }

public bool kiemtradangCN(string _CMND) {

var _dto = (from x in _db.ThanhViens

where ((x.DeTai.DaHoanThanh == 1)&&(x.CMND == _CMND)&&(x.LoaiThanhVien == 1))

select x).ToList(); if (_dto.Count == 0)

return true; else return false; }

2.3.1.5. Code chức năng quản lý tiến độ

Code:

public void Fill() {

try

{

var list = bll.DanhSachDK(lbID.Text); dataGridViewX1.Rows.Clear();

for (int i = 0; i < list.Count; i++) { dataGridViewX1.Rows.Add(list[i].ID.ToString(), list[i].HanBaoCao == null ? "" : list[i].HanBaoCao.Value.ToShortDateString(), list[i].NoiDung == null ? "" : list[i].NoiDung.ToString(), list[i].SoTien == null? "" : list[i].SoTien.Value.ToString(),

list[i].NgayHoanThanh == null? "Chưa hoàn thành" : list[i].NgayHoanThanh.Value.ToShortDateString());

if (list[i].NgayHoanThanh != null)

dataGridViewX1.Rows[i].DefaultCellStyle.ForeColor = Color.DarkBlue; if ((list[i].NgayHoanThanh == null) &&

(list[i].HanBaoCao < DateTime.Today.Date))

dataGridViewX1.Rows[i].DefaultCellStyle.ForeColor = Color.Red; } dataGridViewX1.Sort(dataGridViewX1.Columns[1], ListSortDirection.Ascending); } catch (Exception) { } }

private void btCom_Click(object sender, EventArgs e) { if (dataGridViewX1.RowCount > 0) { int len = 1; len = dataGridViewX1.CurrentRow.Cells[2].Value.ToString().Length; if (len > 30) len = 30;

DialogResult X = MessageBox.Show("Bạn muốn đánh dấu tiến

độ \"" + dataGridViewX1.CurrentRow.Cells[2].Value.ToString().Substring(0,

55

2.3.1.6. Code chức năng quản lý hội đồng

Code:

public HoiDong TimHD(string _Loai, string _ID) {

var rs = (from x in _db.HoiDongs

where ((x.LoaiHoiDong == _Loai) && (x.IDDeTai == long.Parse(_ID)))

select x).Single(); return rs;

}

public bool UpdateHD(string _Loai, string _ID, DateTime _Ngay, string _DiaDiem, string _GhiChu)

{

List<HoiDong> list = new List<HoiDong>(); list = (from x in _db.HoiDongs

where ((x.LoaiHoiDong == _Loai) && (x.IDDeTai == long.Parse(_ID)))

select x).ToList(); if (list.Count == 0)

{

HoiDong _dto = new HoiDong(); try { _dto.LoaiHoiDong = _Loai; _dto.IDDeTai = long.Parse(_ID); _dto.Ngay = _Ngay; _dto.DiaDiem = _DiaDiem; _dto.GhiChu = _GhiChu; _db.HoiDongs.InsertOnSubmit(_dto); _db.SubmitChanges(); } catch (Exception) {

Error = "THÊM DỮ LIỆU THẤT BẠI"; return false; } return true; } else{ try { list[0].LoaiHoiDong = _Loai; list[0].IDDeTai = long.Parse(_ID); list[0].Ngay = _Ngay; list[0].DiaDiem = _DiaDiem; list[0].GhiChu = _GhiChu; _db.SubmitChanges(); } catch (Exception) {

Error = "SỬA DỮ LIỆU THẤT BẠI"; return false;

}

return true; }

2.3.1.7. Code SQL

CREATE FUNCTION [dbo].[fc_KinhPhiNam]

(

@IDDeTai bigint, @Nam int

)

RETURNS decimal(18,0)

AS BEGIN

DECLARE @KQ decimal(18,0)

select @KQ=isnull(SUM(SoTien),0) from DeTai A inner join

KinhPhi B on A.IDDeTai = B.IDDeTai

where A.IDDeTai = @IDDeTai and Nam = @Nam RETURN @KQ

END

CREATE FUNCTION [dbo].[fc_TongKinhPhi]

( @IDDeTai bigint ) RETURNS decimal(18,0) AS BEGIN DECLARE @KQ decimal(18,0)

select @KQ=isnull(SUM(SoTien),0) from DeTai A inner join

KinhPhi B on A.IDDeTai = B.IDDeTai where A.IDDeTai = @IDDeTai

RETURN @KQ END

SELECT A.*, B.Nam, B.MucTieu, B.BatDau, B.KetThuc, B.KinhPhi, B.DaHoanThanh

FROM (SELECT A.IDDeTai, TenDeTai, B.HoTen, B.MaDV, TenDV, dbo.fc_TongKinhPhi(A.IDDeTai) AS DaCap,

dbo.fc_KinhPhiNam(A.IDDeTai, A.Nam) as DaCapNam

FROM DeTai A INNER JOIN ThanhVien B ON

57

KẾT QUẢ VÀ THẢO LUẬN

1. MỘT SỐ KẾT QUẢ ĐẠT ĐƯỢC

Xây dựng phần mềm quản lý đề tài các cấp của phòng KH&QHQT đảm bảo các chức năng:

 Quản lý việc đăng nhập và quản lý người dùng thông qua việc kiểm soát User và Password.

 Bảo mật: Sử dụng mã hóa MD5 để mã hóa một số thành phần quan trọng, cần thiết phải bảo mật như Password.

 Quản lý danh sách cán bộ theo từng đơn vị: Cho phép người dùng cập nhật thông tin về các đơn vị trong trường, thông tin cán bộ của trường và phân chia danh sách cán bộ theo từng đơn vị.

 Quản lý đề tài nghiên cứu khoa học các cấp mỗi năm: Phân cấp đề tài, kiểm tra các đề tài cũ, cập nhật đề tài mới. Quản lý được mục tiêu, dự kiến tiến độ và kinh phí, kết quả dự kiến của đề tài.

 Các cá nhân tham gia nghiên cứu khoa học và Hội đồng khoa học của các đề tài được quản lý chặt chẽ: Người dùng cập nhật thông tin Hội đồng khoa học của đề tài, danh sách cán bộ tham gia và chức danh của họ trong hội đồng. Kiểm tra tính hợp lệ của việc một cá nhân đứng ra chủ nhiệm đề tài khoa học, kiểm tra tính hợp lệ của việc đưa một cán bộ vào Hội đồng khoa học.

 Quản lý tiến độ đã thực hiện của đề tài, thời hạn đưa ra cho từng tiến độ và kết quả của nó, cùng với kinh phí tương ứng cũng như số kinh phí cấp mỗi năm cho đề tài.

 Thống kê: Thống kê đề tài của từng đơn vị theo năm và theo cấp đề tài.

 Tìm kiếm: Tìm kiếm đề tài dựa vào lĩnh vực khoa học, tên đề tài, tên chủ nhiệm đề tài.

 Thiết kế report: Các bản report theo mẫu mà phòng KH&QHQT sử dụng như: Phiếu đăng ký đề tài cho cán bộ hoặc sinh viên; danh sách hội đồng xét duyệt; báo cáo triển khai thực hiện đề tài; biên bản kiểm tra thực hiện

Một phần của tài liệu Khóa Luận: “PHẦN MỀM QUẢN LÝ ĐỀ TÀI CÁC CẤP PHÒNG KHOA HỌC QUAN HỆ QUỐC TẾ TRƯỜNG ĐẠI HỌC TÂY NGUYÊN (Trang 33 - 65)

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

(65 trang)