Mục đích của thiết kế ra là rất quan trọng trên thực tế vì những nhận xét đánh giá về hệ thống thông tin của người sử dụng là dựa vào những yếu tố đầu ra này. Họ có thể từ chối sử dụng vì những yêu cầu kém ở đây cho dù HTTT được đánh giá tốt ở những khía cạnh khác. Khuân dạng đầu ra không những đẹp, hợp lý mà còn phải giúp người sử dụng thực hiện tốt hơn, dễ dàng hơn cho công việc của họ. Sau đây là một số nguyên tắc cơ bản cho việc trình bày thông tin ra màn hình:
o Đặt mọi thông tin gắn liền với nhiệm vụ trên cùng một màn hình.
o Người sử dụng không phải nhớ thông tin từ màn hình này sang màn hình khác.
o Chỉ dẫn rõ ràng cách thoát khỏi màn hình. Đặt giữa các tiêu đề và sắp xếp thông tin theo trục trung tâm.
o Nếu đầu ra gồm nhiều trang màn hình thì mỗi trang phải được đánh số thứ tự. Việc này giúp người đang sử dụng biết mình đang ở đâu.
o Viết văn bản theo quy ước chung bằng cách sử dụng chữ in hoa, in thường, chữ gạch chân và ngắt hợp lý.
o Đặt tên đầu cột cho mỗi cột.
128 trang |
Chia sẻ: aloso | Lượt xem: 1800 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Chuyên đề Xây dựng phần mềm quản lý tài sản cố định, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ữ liệu
Kích thước
Giải Thích
1
Ma_Pb
Char
8
Mã phòng ban(khóa chính)
2
Ten_Pb
Nchar
32
Tên phòng ban
3
Dien_Giải
Nvarchar
128
Diễn giải
Hình 3.15 : Bảng danh mục phòng ban
Bảng danh mục phát sinh tài sản
Stt
Tên thuộc tính
Kiểu dữ liệu
Kích thước
Giải Thích
1
Ma_Ps
Char
4
Mã phát sinh (khóa chính)
2
Lydo_Ps
Nchar
64
Lý do phát sinh
3
Kieu_Ps
Nchar
4
Kiểu phát sinh
Hình 3.16: Bảng Danh Mục Phát Sinh Tài Sản
Bảng danh mục tài sản cố định
Stt
Tên thuộc tính
Kiểu dữ liệu
Kích thước
Giải Thích
1
Ma_Ts
Char
8
Mã tài sản (khóa chính)
2
Ten_Ts
Nchar
64
Tên tài sản
3
Ma_Ts_0
Char
8
Mã tài sản mức 0
4
Ma_Nhts
Char
8
Mã nhom tài sản
5
DVT
Nchar
16
Đơn vị tính
6
Cong_Suat
Varchar
32
Công suất
7
So_Luong
Numeric
5,0
Số luợng
8
Nuoc_Sx
Nchar
16
Nước sản xuất
9
Nam_Sx
Numeric
4,0
Năm sản xuất
10
Ma_Ngvon
Char
8
Mã nguồn vốn
11
Ngay_Ps
Smalldatetime
Ngày phát sinh
12
Ma_Ps
Char
8
Mã phát sinh
13
Gt_Ng
Numeric
18,2
Giá trị nguyên giá
14
Gt_Kh
Numeric
18,2
Giá trị khấu hao
15
Gt_Cl
Numeric
18,2
Giá trị còn lại
16
Ng_Kh
Smalldatetime
Ngày khấu hao
17
So_Th_Kh
Numeric
4,0
Số tháng khấu hao
18
He_So_Kh
Numeric
4,2
Hệ số khấu hao
19
Ma_Pb
Char
8
Mã phòng ban
20
Ma_Mucdich
Char
8
Mã mục đích sử dụng
21
Ghi_Chu
Nvarchar
128
Ghi chú
Hình 3.17: Bảng danh mục tài sản cố định
g) Bảng giá trị khấu hao tài sản
Stt
Tên thuộc tính
Kiểu dữ liệu
Kích thước
Giải Thích
1
Ma_Ts
char
8
Mã tài sản (khóa chính)
2
Ma_Ts_0
char
8
Mã tài sản mức 0
3
Nam
numeric
4,0
Năm
4
Thang
numeric
4.0
Tháng
5
Ma_Pb
char
8
Mã phòng ban
6
Gt_Ng
numeric
18,2
Giá trị nguyên giá
7
So_Th_Kh
numeric
4
Số tháng khấu hao
8
He_So_Kh
numeric
4,2
Hệ số khấu hao
9
Gt_Kh_Th
numeric
18,2
Giá trị khấu hao tháng
10
Sua_Kh_Th
numeric
18,2
Sử khấu hao tháng
11
GT_Cl_Th
numeric
18,2
Giá trị còn lại sau tháng
12
Gt_Kh_Nam
numeric
18,2
Giá trị khấu hao năm
13
Sua_Kh_Nam
numeric
18,2
Sửa khấu hao năm
14
Gt_Cl_Nam
numeric
18,2
Giá trị còn lại sau năm
Hình 3.18: Bảng giá trị khấu hao tài sản
Mối quan hệ giữa các bảng dữ liệu
Hình 3.19 : sơ đồ quan hệ giữa các bảng
3.2.2. Thiết kế giải thuật
Trong các bước mô tả và phân tích công việc ở trên giúp hình dung các công việc xử lý khi xây dựng các chức năng của chương trình tuy nhiên để thuận lợi cho việc thiết kế các bước xử lý cũng như viết các module thì nên xây dựng giải thuận xử lý các công việc chính, phức tạp để thuận lợi cho việc thực hiện chương trình. Trong đề tài này em chọn xử lý bằng lưu đồ giải thuật vì lưu đồ mang tính trực quan và dễ dàng kiểm tra giải thuật đúng hay sai? Dưới đây là một số lưu đồ giải thuật chính của chương trình.
Các ký hiệu thường được sử dụng trong thiết kế giải thuật
Ký hiệu xử lý
Ký hiệu điều kiện
Hình 3.20: Các ký hiệu trong thiết kế giải thuật
3.2.2.1. Thuật toán thêm mới dữ liệu
Bắt đầu
Nhập thông tin cần thiết
Dữ liệu hợp lệ ?
Hiển thị lỗi
Sai
Đúng
Cập nhật lại ?
Đúng
Sai
Mã DL vừa nhập chưa tồn tại
Đúng
Sai
Hiển thị lỗi
Ghi lại thông tin vừa nhập
Thêm tiếp ?
Sai
Đúng
Kết thúc
Hình 3.21 :Thuật toán thêm mới dữ liệu
3.2.2.2. Thuật toán sửa dữ liệu
Bắt đầu
Chọn các danh mục cần sửa và nhập các thông tin thay đổi
Dữ liệu hợp lệ?
Ghi lại thông tin đã sửa
Sửa tiếp ?
Kết thúc
Hiển thị lỗi
Sửa lại?
Đúng
Đúng
Đúng
Sai
Sai
Sai
Hình 3.22: Thuật toán sửa dữ liệu
3.2.2.3. Thuật toán tìn kiếm
Bắt đầu
Nhập điều kiện tìm kiếm
Tồn tại?
Hiện thị thông báo không có dữ liệu thỏa mãn
Kết thúc
Sửa lại?
Đúng
Hiện đầy đủ dữ liệu thỏa mãn
Đúng
Sai
Sai
Hình 3.23: Thuật toán tìm kiếm dữ liệu
3.2.2.4. Thuật toán xóa dữ liệu
Bắt đầu
Chọn danh mục cần xóa
Xóa bản ghi trong CSDL
Đồng ý xóa?
Kết thúc
Sai
Hiện thông tin cần xóa
Đúng
Hình 3.24: Thuật toán xóa dữ liệu
3.2.2.5. Thuật toán lên báo cáo
Bắt đầu
Nhập điều kiện báo cáo
In báo cáo
Đồng ý in ?
Kết thúc
Sai
Hiện báo cáo
Đúng
Hình 3.25: Thuật toán in báo cáo
3.2.3. Thiết kế giao diện xử lý
Thiết kế giao diện xử lý là xác định hệ thống thông tin, trình bày thông tin như thế nào cho người sử dụng khi nhập dữ liệu vào hệ thống hoặc đưa kết quả ra.
3.2.3.1 Thiết kế giao diện vào
a) Một số nguyên tắc khi thiết kế giao diện vào
Mục đích của việc thiết kế vào kà thiết kế các thủ tục nhập dữ liệu có hiệu quả và giảm thiểu sai sót. Sau đây là một số nguyên tắc hữu ích cho việc thiết kế màn hình nhập liệu:
Khi nhập dữ liệu từ một tài liệu gốc, khuân dạng màn hình phải giống như tài liệu gốc.
Nên nhóm các trường trên màn hình theo một trật tự có ý nghĩa, theo trật tự tự nhiên, theo tần số sử dụng, theo chức năng hoặc theo tầm quan trọng.
Không nhập các thông tin mà hệ thống có thể tìm được từ cơ sở dữ liệu hoặc tính toán được.
Đặt tên các trường ở trên hoặc ở trước trường nhập.
Đặt các giá trị ngầm định cho phù hợp
Sử dụng phím Tab để chuyển trường nhập
Dựa theo nguyên tắc trên ta tiến hành việc thiết kế màn hình nhập liệu của chương trình.
b) Một số giao diện vào của chương trình
Hình 3.26: Form đăng nhập
Đặc điểm
Miêu tả
Cấu trúc
Là một form nhập liệu gồm có 2 label, 1 combobox,
1 textbox, 2 button, và 1 picturebox
Đối tượng sử dụng
Là thành viên được ủy quyền truy cập vào phần mềm
Tần suất sử dụng
Sử dụng 1 lần khi muốn sử dụng phần mềm QLTSCĐ
Thời điểm sử dụng
Khi bắt đầu sử dụng phần mềm QLTSCĐ này
Các mục dữ liệu
Gồm có tên người và mật khẩu của người truy cập
Cách sử dụng
Nhập tên và mật khẩu vào ô nhập liệu nếu khớp với cơ sở dữ liệu thì được truy cập
Hình 3.27: Form đổi mật khẩu
Đặc điểm
Miêu tả
Cấu trúc
Là một form nhập liệu gồm có 4 label, 4 textbox,
2 button, và 1 picturebox
Tần suất sử dụng
Không định kỳ
Thời điểm sử dụng
sử dụng khi người sử dụng cảm thấy thích hợp
Các mục dữ liệu
Gồm có ô tên đăng ,ô mật khẩu cũ, mật khẩu mới và ô xác nhận lại mật khẩu mới
Cách sử dụng
Trong màn hình chính click chuột vào menu hoặc bạn có thể thao tác mở form với nhiều các khác nhau. Khi form được mở thì tên đăng nhập sẽ tự chuyển sang, ta nhập mật khẩu cũ, sau đó nhập mật khẩu mới và xác nhận, nếu phù hợp với điều kiện thuật toán
Hình 3.28: Form chính của chương trình
Đặc điểm
Miêu tả
Cấu trúc
Là giao diện chính của phần mềm gồm một thanh menu, 1 thanh tool,…
Tần suất sử dụng
Sử dụng nhiều
Thời điểm sử dụng
Mỗi khi muốn thao tác với các danh mục, các công cụ ở trên màn hình này
Các mục dữ liệu
Không có các mục nhập liệu, chỉ là các liên kết đến các giao diện khác
Cách sử dụng
Chỉ con trỏ đến các mục cần thao tác và click chuột, chương trình sẽ dẫn đến các mục cần tìm
Hình 3.29: Form danh mục nhóm tài sản
Đặc điểm
Miêu tả
Cấu trúc
Là màn hình nhập liệu gồm có 1 datagridview để hiện dữ liệu, 3 label, 3 textbox và 5 button
Tần suất sử dụng
Không định kỳ
Thời điểm sử dụng
Khi có nhu cầu như xem, thêm, sửa, xóa dữ liệu liên quan đến danh mục nhóm tài sản
Các mục dữ liệu
Các mục nhập liệu có 3 ô textbox là mã nhóm, tên nhóm, diễn giải, 1 đối tượng hiện thị dữ liệu là datagridview và 5 button để thao tác với dữ liệu
Cách sử dụng
Trong màn hình chính click chuột vào menu hoặc bạn có thể thao tác mở form với nhiều các khác nhau. Khi form được mở ta nhấn các button để sử dụng thao tác mong muốn nếu có nhu cầu nhập liệu thì điền đầy đủ các thông tin cần thiết đặc biệt là ô mã và tên nhóm
Hình 3.30: Form danh mục nhóm nguồn vốn
Đặc điểm
Miêu tả
Cấu trúc
Là màn hình nhập liệu gồm có 1 datagridview để hiện dữ liệu, 3 label, 3 textbox và 5 button
Tần suất sử dụng
Không định kỳ
Thời điểm sử dụng
Khi có nhu cầu như xem, thêm, sửa, xóa dữ liệu liên quan đến danh mục nguồn vốn
Các mục dữ liệu
Các mục nhập liệu có 3 ô textbox là mã nhóm, tên nhóm, diễn giải, 1 đối tượng hiện thị dữ liệu là datagridview và 5 button để thao tác với dữ liệu
Cách sử dụng
Trong màn hình chính click chuột vào menu hoặc bạn có thể thao tác mở form với nhiều các khác nhau. Khi form được mở ta nhấn các button để sử dụng thao tác mong muốn nếu có nhu cầu nhập liệu thì điền đầy đủ các thông tin cần thiết đặc biệt là ô mã và tên nguồn vốn
Hình 3.31: Form danh mục nhóm phòng ban
Đặc điểm
Miêu tả
Cấu trúc
Là màn hình nhập liệu gồm có 1 datagridview để hiện dữ liệu, 3 label, 3 textbox và 5 button
Tần suất sử dụng
Không định kỳ
Thời điểm sử dụng
Khi có nhu cầu như xem, thêm, sửa, xóa dữ liệu liên quan đến danh mục phòng ban
Các mục dữ liệu
Các mục nhập liệu có 3 ô textbox là mã nhóm, tên nhóm, diễn giải, 1 đối tượng hiện thị dữ liệu là datagridview và 5 button để thao tác với dữ liệu
Cách sử dụng
Trong màn hình chính click chuột vào menu hoặc bạn có thể thao tác mở form với nhiều các khác nhau. Khi form được mở ta nhấn các button để sử dụng thao tác mong muốn nếu có nhu cầu nhập liệu thì điền đầy đủ các thông tin cần thiết đặc biệt là ô mã và tên phòng ban
Hình 3.32: Form danh mục mục đích sử dụng
Đặc điểm
Miêu tả
Cấu trúc
Là màn hình nhập liệu gồm có 1 datagridview để hiện dữ liệu, 3 label, 3 textbox và 5 button
Tần suất sử dụng
Không định kỳ
Thời điểm sử dụng
Khi có nhu cầu như xem, thêm, sửa, xóa dữ liệu liên quan đến danh mục mục đích sử dụng
Các mục dữ liệu
Các mục nhập liệu có 3 ô textbox là mã nhóm, tên nhóm, diễn giải, 1 đối tượng hiện thị dữ liệu là datagridview và 5 button để thao tác với dữ liệu
Cách sử dụng
Trong màn hình chính click chuột vào menu hoặc bạn có thể thao tác mở form với nhiều các khác nhau. Khi form được mở ta nhấn các button để sử dụng thao tác mong muốn nếu có nhu cầu nhập liệu thì điền đầy đủ các thông tin cần thiết đặc biệt là ô mã và tên mục đích sử dụng
Hình 3.33: Form danh mục lý do phát sinh
Đặc điểm
Miêu tả
Cấu trúc
Là màn hình nhập liệu gồm có 1 datagridview để hiện dữ liệu, 3 label, 3 textbox và 5 button
Tần suất sử dụng
Không định kỳ
Thời điểm sử dụng
Khi có nhu cầu như xem, thêm, sửa, xóa dữ liệu liên quan đến danh mục lý do phát sinh tài sản
Các mục dữ liệu
Các mục nhập liệu có 3 ô textbox là mã phát sinh, lý do phát sinh, kiểu phát sinh, 1 đối tượng hiện thị dữ liệu là datagridview và 5 button để thao tác với dữ liệu
Cách sử dụng
Trong màn hình chính click chuột vào menu hoặc bạn có thể thao tác mở form với nhiều các khác nhau. Khi form được mở ta nhấn các button để sử dụng thao tác mong muốn nếu có nhu cầu nhập liệu thì điền đầy đủ các thông tin cần thiết
Hình 3.34: Form quan lý hành hóa
Đặc điểm
Miêu tả
Cấu trúc
Là màn hình nhập liệu gồm có 1 datagridview để hiện dữ liệu, 21 label, 13 textbox, 2 daytimepicker ,
6 combobox và 6 button
Tần suất sử dụng
Sử dụng liên tục
Thời điểm sử dụng
Khi có nhu cầu như xem, thêm, sửa, xóa và lập báo cáo dữ liệu liên quan đến tài sản
Các mục dữ liệu
Các mục nhập liệu có 10 ô textbox là mã nhóm, 3 texbox tự động cập nhật dữ liệu, 5 combobox lấy dữ liệu từ cơ sở dữ liệu, 1 đối tượng hiện thị dữ liệu là datagridview và 6 button để thao tác với dữ liệu
Cách sử dụng
Trong màn hình chính click chuột vào menu hoặc bạn có thể thao tác mở form với nhiều các khác nhau. Khi form được mở ta nhấn các button để sử dụng thao tác mong muốn nếu có nhu cầu nhập liệu thì điền đầy đủ các thông tin cần thiết
Hình 3.35: Form hướng dẫn sử dụng
Đặc điểm
Miêu tả
Cấu trúc
Là form hiển thị dữ liệu gồm có 1 textbox và 1 button
Tần suất sử dụng
Ít sử dụng
Thời điểm sử dụng
Khi có nhu cầu như xem các hướng dẫn về phần mềm quản lý tài sản
Các mục dữ liệu
1 đối tượng hiện thị dữ liệu là textbox
Cách sử dụng
Trong màn hình chính click chuột vào menu trợ giúp và chọn hướng dẫn sử dụng hoặc bạn có thể thao tác mở form với nhiều các khác nhau
Hình 3.36: Form thông tin liên hệ
Đặc điểm
Miêu tả
Cấu trúc
Là form hiển thị dữ liệu gồm có 6 label, 2 linhklabel và 1 button
Tần suất sử dụng
Ít sử dụng
Thời điểm sử dụng
Khi có nhu cầu như xem thông tin về phần mềm quản lý tài sản như đơn vị sử dụng và người tạo ra phần mềm
Các mục dữ liệu
đối tượng hiện thị dữ liệu là các label và linklabel
Cách sử dụng
Trong màn hình chính click chuột vào menu trợ giúp và chọn thông tin sản phẩm hoặc bạn có thể thao tác mở form với nhiều các khác nhau. Form được mở ra ban có thể đọc các thông tin và liên hệ với đơn vị sử dụng va đường link tới Website hoặc liên hệ với người tạo phần mềm thông qua email của người đó
Hình 3.37: Form thư giãn
Đặc điểm
Miêu tả
Cấu trúc
Là form hiển thị dữ liệu và cập nhật thêm dữ liệu gồm có 3 textbox và 4 button
Tần suất sử dụng
Không định kỳ
Thời điểm sử dụng
Khi có nhu cầu giải trí sâu một thời gian làm việc dài với phần mềm
Các mục dữ liệu
đối tượng hiện thị dữ liệu là các textbox và đối tượng thao tác dữ liệu là các button
Cách sử dụng
Trong màn hình chính click chuột vào menu trợ giúp và chọn thư giãn hoặc bạn có thể thao tác mở form với nhiều các khác nhau. Form được mở ra ban có thể đọc, thêm các câu truyện bạn thấy hay
Hình 3.38: Form tìm kiếm các tài sản phát sinh
Đặc điểm
Miêu tả
Cấu trúc
Là form tìm kiếm dữ liệu
Tần suất sử dụng
Sử dụng nhiều
Thời điểm sử dụng
Khi có nhu cầu lên báo cáo về thông tin các lại tài sản phát sinh trong một khoảng thời gian, có thể là khi lãnh đạo hoặc các phòng ban yêu cầu hoặc cuối mỗi kỳ
Các mục dữ liệu
Có 2 đối tượng DataTimePicker dùng để chọn ngày và 2 button để thao tác dữ liệu
Cách sử dụng
Khi có nhu cầu lập báo cáo ta chọn menu báo cáo sau đó chọn mục báo cáo phát sinh tài sản và điền các thông tin lọc
Hình 3.39: Form lọc khấu hao tài sản theo phòng ban
Đặc điểm
Miêu tả
Cấu trúc
Là form tìm kiếm dữ liệu
Tần suất sử dụng
Sử dụng nhiều
Thời điểm sử dụng
Khi có nhu cầu lập báo cáo về khấu hao tài sản của một phòng ban, có thể là khi lãnh đạo hoặc phòng ban đó yêu cầu hoặc cuối mỗi kỳ
Các mục dữ liệu
Có 2 đối tượng DataTimePicker dùng để chọn ngày và 2 button để thao tác dữ liệu
Cách sử dụng
Khi có nhu cầu lập báo cáo ta chọn menu báo cáo sau chọn báo cao khấu hao theo phòng ban và điền các thông tin lọc.
3.2.3.2. Thiết kế giao diện ra
a) Một số nguyên tắc khi đưa thông tin ra
Mục đích của thiết kế ra là rất quan trọng trên thực tế vì những nhận xét đánh giá về hệ thống thông tin của người sử dụng là dựa vào những yếu tố đầu ra này. Họ có thể từ chối sử dụng vì những yêu cầu kém ở đây cho dù HTTT được đánh giá tốt ở những khía cạnh khác. Khuân dạng đầu ra không những đẹp, hợp lý mà còn phải giúp người sử dụng thực hiện tốt hơn, dễ dàng hơn cho công việc của họ. Sau đây là một số nguyên tắc cơ bản cho việc trình bày thông tin ra màn hình:
Đặt mọi thông tin gắn liền với nhiệm vụ trên cùng một màn hình.
Người sử dụng không phải nhớ thông tin từ màn hình này sang màn hình khác.
Chỉ dẫn rõ ràng cách thoát khỏi màn hình. Đặt giữa các tiêu đề và sắp xếp thông tin theo trục trung tâm.
Nếu đầu ra gồm nhiều trang màn hình thì mỗi trang phải được đánh số thứ tự. Việc này giúp người đang sử dụng biết mình đang ở đâu.
Viết văn bản theo quy ước chung bằng cách sử dụng chữ in hoa, in thường, chữ gạch chân…và ngắt hợp lý.
Đặt tên đầu cột cho mỗi cột.
Tổ chức các phân tử của danh sách theo trật tự quen thuộc trong quản lý.
Căn trái các cột văn bản và căn phải các cột số. Đảm bảo vị trí dấu thập phân thẳng hàng. Chỉ đặt màu cho các thông tin quan trọng.
Dựa trên các nguyên tắc này ta tiến hàng thiết kế các báo cáo đầu ra.
b) Một số giao diện ra
Hình 3.40: Bảng tính khấu hao theo phòng ban
Đặc điểm
Miêu tả
Thông tin hiển thị
Là báo cáo hiện thị các thông tin khấu hao của tài sản
Tần suất sử dụng
Sử dụng nhiều
Thời điểm sử dụng
Khi có nhu cầu lập báo cáo về khấu hao tài sản của một phòng ban, có thể là khi lãnh đạo hoặc phòng ban đó yêu cầu hoặc cuối mỗi kỳ
Phần mềm tạo báo cáo
Phần mềm tạo báo cáo chuyên nghiệp Crystal report
Hình 3.41 :Báo cáo tăng giảm tài sản
Đặc điểm
Miêu tả
Thông tin hiển thị
Là báo cáo hiện thị các thông tin về các loại tài sản phát sinh trong một khoảng thời gian
Tần suất sử dụng
Sử dụng nhiều
Thời điểm sử dụng
Khi có nhu cầu lập báo cáo về thông tin về các loại tài sản phát sinh trong một khoảng thời gian, có thể là khi lãnh đạo hoặc phòng ban đó yêu cầu hoặc cuối mỗi kỳ
Phần mềm tạo báo cáo
Phần mềm tạo báo cáo chuyên nghiệp Crystal report
3.3. Triển khai phần mềm quản lý tài sản cố định
3.3.1. Yêu cầu hệ thống
Do chương trình được xây dựng trên những công cụ mới nhất hiện này nên khi sử dụng phần mềm chương trình cũng đòi hỏi yêu cầu hệ thống tương đối cao. Sau đây là một số yêu cầu chủ yếu:
Windows 2000 Service Pack 4 hoặc hơn
Windows XP Service Pack 2 (SP2)
Windows Server 2003 Service Path 1
Microsoft .Net Framework 2.0
3.3.2. Các bước thực hiện cài đặt
Để có thể sử dụng được chương trình ta phải thực hiện một số thao tác sau:
Cài Microsoft SQL Server 2005 (bản nào cũng được)
Attach cơ sở dữ liệu vào cơ sở dữ liệu vừa cài đặt
Cài đặt Framework.Net v2.0
Cài đặt chương trình bằng bộ cài đặt hoặc chạy trực tiếp chương trình trên file thực thi
3.3.3. Kiểm thử chương trình
Sử dụng một danh sách các tài sản của công ty sau đó thực hiện các chức năng của chương trình như:
Thêm mới một tài sản
Sửa một tài sản đã có trong CSDL
Lưu một tài sản vừa thêm mới hoặc vừa sửa
Xóa thử một tài sản đã có trong chương trình
Nhập thông về tài sản rồi quan sát việc tính khấu hao của tài sản đó, sau đó kiểm tra lại bằng máy tính điện tử.
Kiểm tra việc bắt lỗi như bắt lỗi mã trùng cho việc nhập mới, kiểm tra bắt lỗi cho việc xóa bản ghi không tồn tại…
KẾT LUẬN
Do thời gian thực tập ở công ty và thời gian tìm hiểu về nghiệp vụ quản lý tài sản cố định có hạn nên phần mềm rất hạn chế về các chức năng so với thực tế. Sau đây là một số hạn chế:
Vì làm phần mềm trên công nghệ mới hoàn toàn đó là C# và SQL Server 2005 nên làm phần mềm này là em vừa học vừa làm nên phần mềm mới chỉ thực hiện một số chức năng có hạn đặc biệt là việc tính khấu hao. Ban đầu khi thiết kế hệ thống em mong muốn sẽ thực hiện tính khấu hao theo nhiều cách khác nhau nhưng hiện tại phần mềm mới chỉ tính được khấu hao theo phương pháp khấu hao đều theo các tháng.
Phần mềm mới chỉ chạy được trên các máy PC đơn lẻ với một cơ sở dữ liệu hạn chế về số lượng bản ghi.
Qua nhiều lần thử nghiệp phần mềm vẫn còn gặp một số lỗi nhỏ và việc bắt lỗi còn hạn chế
Đây là phần mềm rất hữu ích cho thực tế quản lý tài sản do đó em mong rằng sẽ được sự giúp đỡ ủng hộ của các thầy cô, các anh chị và các bạn để trong tương lai phần mềm sẽ thực hiện các chức năng nhiệm vụ tốt hơn.
Em xin trân thành cám ơn !
TÀI LIỆU THAM KHẢO
GS.TS Ngô Thế Chi – TS Trương Thị Thủy
Giáo trình Kế toán tài chính -NXB Tài Chính
TS Trương Văn Tú – TS Trần Thị Song Minh
Giáo trình Hệ thống thông tin quản lý -NXB kinh tế quốc dân
Phạm Hưu Khang – Đoàn Thiện Ngân
Bộ giáo trình C# 2005-NXB Lao động xã hội
ThS Trần Công Uẩn
Giáo trình Cơ sở dữ liệu-NXB kinh tế quốc dân
PGS.TS Hàn Viết Thuận
Giáo trình Cấu trúc dư liệu và Giải Thuật- NXB Thống kê
PGS.TS Hàn Viết Thuận
Giáo trình Cộng Nghệ Phần mềm
KS Hoàng Anh Quang – Phan Ánh Nguyệt
Giáo trình Tự học SQL Server 2005-NXB Văn hóa thông tin
PHỤ LỤC
Code của một số form trong chương trình
Code cho phần kết nối cơ sở dữ liệu
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Text;
namespace DataConnect
{
public class Connection
{
public static SqlConnection cn;
public string tenMay = "(local)";
public string tenCsdl = "QLTSCD";
public static SqlConnection conn;
public void KetNoi()
{
string strConn =
"Data source=" + this.tenMay + ";" +
"Initial catalog=" + this.tenCsdl + ";" +
"Integrated security=true;";
conn = new SqlConnection(strConn);
conn.Open();
}
public DataTable FillData(string _proName, SqlParameter[] _para)
{
DataSet _ds = new DataSet();
try
{
KetNoi();
SqlCommand _cm = new SqlCommand(_proName, conn);
_cm.CommandType = CommandType.StoredProcedure;
if (_para != null)
{
int _step = 0;
while (_step < (_para.Length - 1))
{
_cm.Parameters.Add(_para[_step]);
_step = _step + 1;
}
_cm.Parameters.Add(_para[_para.Length - 1]);
}
SqlDataAdapter _ad = new SqlDataAdapter();
_ad.SelectCommand = _cm;
_ad.Fill(_ds);
conn.Close();
}
catch
{
MessageBox.Show("Lỗi Kết Nối !");
}
return _ds.Tables[0];
}
}
}
Code cho việc xử lý form Main
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace QLTS
{
public partial class frm_main : Form
{
public frm_main()
{
InitializeComponent();
}
private void frm_main_Load(object sender, EventArgs e)
{
}
private void frm_main_Resize(object sender, EventArgs e)
{
//pic_qlts.Height = this.Height - 100;
}
private void frm_main_AutoSizeChanged(object sender, EventArgs e)
{
}
private void mnu_dmnhts_Click(object sender, EventArgs e)
{
frm_nhts frm = new frm_nhts();
frm.MdiParent= this;
frm.Show();
}
private void mnu_dmts_Click(object sender, EventArgs e)
{
panel_bc.Hide();
panel_cn.Hide();
panel_dm.Hide();
panel_ht.Hide();
panel_lich.Hide();
frm_ts frm = new frm_ts();
frm.MdiParent=this;
frm.Show();
}
private void mnu_dmpb_Click(object sender, EventArgs e)
{
frm_dmpb frm = new frm_dmpb();
frm.MdiParent=this;
frm.Show();
}
private void mnu_dmngv_Click(object sender, EventArgs e)
{
frm_ngv frm = new frm_ngv();
frm.MdiParent=this;
frm.Show();
}
private void mnu_dmmdsd_Click(object sender, EventArgs e)
{
frm_mdsd frm = new frm_mdsd();
frm.MdiParent=this;
frm.Show();
}
private void mnu_lydotg_Click(object sender, EventArgs e)
{
frm_ldps frm = new frm_ldps();
frm.MdiParent = this;
frm.Show();
}
private void mnu_qlts_Click(object sender, EventArgs e)
{
frm_ts frm = new frm_ts();
frm.MdiParent = this;
frm.Show();
}
private void cmd_dmlq_Click(object sender, EventArgs e)
{
this.panel_dm.Visible = true;
}
private void panel2_Click(object sender, EventArgs e)
{
panel_dm.Visible = false;
panel_cn.Visible = false;
panel_bc.Visible = false;
}
private void cmd_cn_Click(object sender, EventArgs e)
{
panel_cn.Visible = true;
}
private void cmd_bc_Click(object sender, EventArgs e)
{
panel_bc.Visible = true;
}
private void menu_qlts_Click(object sender, EventArgs e)
{
panel_dm.Visible = false;
panel_cn.Visible = false;
panel_bc.Visible = false;
}
private void tool_qlts_Click(object sender, EventArgs e)
{
panel_dm.Visible = false;
panel_cn.Visible = false;
panel_bc.Visible = false;
}
private void cmd_dmlq_Leave(object sender, EventArgs e)
{
panel_dm.Visible = false;
panel_cn.Visible = false;
panel_bc.Visible = false;
}
private void cmd_cn_Leave(object sender, EventArgs e)
{
panel_dm.Visible = false;
panel_cn.Visible = false;
panel_bc.Visible = false;
}
private void cmd_bc_Leave(object sender, EventArgs e)
{
panel_dm.Visible = false;
panel_cn.Visible = false;
panel_bc.Visible = false;
}
private void frm_main_Click(object sender, EventArgs e)
{
panel_dm.Visible = false;
panel_cn.Visible = false;
panel_bc.Visible = false;
}
private void mnu_thoat_Click(object sender, EventArgs e)
{
if(MessageBox.Show("Bạn muốn thoát thật chứ?","Thông Báo",MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.Yes)
Application.Exit();
}
private void tool_cmb_thoat_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Bạn muốn thoát thật chứ?", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
Application.Exit();
}
private void tool_lbl_thoat_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Bạn muốn thoát thật chứ?", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
Application.Exit();
}
}
}
Code cho việc xử lý form danh mục nhóm tài sản
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using DataConnect;
using System.Windows.Forms;
namespace QLTS
{
public partial class frm_nhts : Form
{
public Connection _cn = new Connection();
public BindingSource _bdsnhts = new BindingSource();
public string _chon;
public BindingSource _sobg = new BindingSource();
public frm_nhts()
{
InitializeComponent();
}
public void hien()
{
SqlParameter[] _para;
_para = null;
_bdsnhts.DataSource = _cn.FillData("dbo.Display_DM_Nhts", _para);
this.dgv_dmnhts.DataSource = _bdsnhts;
this.txtma.DataBindings.Add("Text", _bdsnhts, "Ma_nhts");
this.txttennh.DataBindings.Add("Text",_bdsnhts,"Ten_nhts");
this.txtdg.DataBindings.Add("Text", _bdsnhts, "Dien_giai");
}
public void formatgrid()
{
this.dgv_dmnhts.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
private void Form1_Load(object sender, EventArgs e)
{
hien();
formatgrid();
}
private void LockObject()
{
this.cmdthem.Enabled = true;
this.cmdxoa.Enabled = true;
this.cmdsua.Enabled = true;
this.cmdluu.Enabled = false;
this.txtma.Enabled = false;
this.txttennh.Enabled = false;
this.txtdg.Enabled = false;
this.cmdthem.Focus();
}
private void UnLockObject()
{
this.cmdthem.Enabled = false;
this.cmdxoa.Enabled = false;
this.cmdsua.Enabled = false;
this.cmdluu.Enabled = true;
this.txtma.Enabled = true;
this.txttennh.Enabled = true;
this.txtdg.Enabled = true;
this.txtma.Focus();
}
public void AddNew()
{
this.UnLockObject();
this._bdsnhts.CurrencyManager.AddNew();
this._bdsnhts.MoveLast();
}
public void Edit()
{
this.UnLockObject();
}
private string maid()
{
string _maid = "";
DataRowView _drv = (System.Data.DataRowView)_bdsnhts.Current;
try
{
_maid = _drv["Ma_nhts"].ToString().Trim();
}
catch
{
_maid = "";
}
return _maid;
}
private void Refesh()
{
this._bdsnhts.CurrencyManager.Refresh();
}
private DataRowView CurrentRow()
{
return (System.Data.DataRowView)_bdsnhts.Current;
}
private void Savedata()
{
DataTable _tbl = new DataTable();
string _ma = txtma.Text.Trim();
string _ten = txttennh.Text.Trim();
string _dg = txtdg.Text.Trim();
try
{
if (_chon == "M")
{
SqlParameter[] _para;
_para = new SqlParameter[] { new SqlParameter("@_Property","M"),
new SqlParameter("@_Ma_nhts",_ma),
new SqlParameter("@_ten_nhts",_ten),
new SqlParameter("@_Dien_giai",_dg)};
_tbl = _cn.FillData("Save_DM_Nhts", _para);
}
if (_chon == "S")
{
SqlParameter[] _para;
_para = new SqlParameter[] { new SqlParameter("@_Property","S"),
new SqlParameter("@_Ma_nhts",_ma),
new SqlParameter("@_ten_nhts",_ten),
new SqlParameter("@_Dien_giai",_dg)};
_tbl = _cn.FillData("Save_DM_Nhts", _para);
}
}
catch
{
MessageBox.Show("Không lưu dữ liệu");
}
}
private void cmdthem_Click(object sender, EventArgs e)
{
this.AddNew();
_chon = "M";
}
private void cmdsua_Click(object sender, EventArgs e)
{
if (maid() == "")
{
MessageBox.Show("Không có bản ghi để sửa");
return;
}
this.Edit();
_chon = "S";
}
private void cmdluu_Click(object sender, EventArgs e)
{
if (txtma.Text.Trim() == "" || this.txttennh.Text.Trim() == "")
{
MessageBox.Show("Bạn phải nhập đầy đủ thông tin trước khi lưu","Thông báo",MessageBoxButtons.OK,MessageBoxIcon.Question);
this.txtma.Focus();
return;
}
if (_chon == "M")
{
int dem;
SqlParameter[] _para1;
_para1 = new SqlParameter[]{new SqlParameter("@_Ten_bang","Dm_nhts"),
new SqlParameter("@_Ma",this.txtma.Text.Trim()),
new SqlParameter("@_Ma_code","Ma_nhts")};
_sobg.DataSource = _cn.FillData("Display_tinh", _para1);
DataRowView _drv2 = (System.Data.DataRowView)_sobg.Current;
dem = Convert.ToInt32(_drv2["So_bg"].ToString());
if (dem != 0)
{
MessageBox.Show("Mã số đã tồn tại, không thể lưu !", "Thong bao",MessageBoxButtons.OK,MessageBoxIcon.Warning);
this.txtma.Clear();
this.txtma.Focus();
return;
}
}
Savedata();
this.Refresh();
this.LockObject();
}
private void Delete()
{
if (MessageBox.Show("Bạn có chắc chắn muốn xóa danh mục này ko", "Thong bao", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
DataTable _tbl = new DataTable();
SqlParameter[] _para;
_para = new SqlParameter[] { new SqlParameter("@_Ma_nhts", maid().Trim()) };
_tbl = _cn.FillData("Delete_DM_Nhts", _para); this._bdsnhts.RemoveCurrent();
MessageBox.Show("Xoa thanh cong","Thong bao");
}
else
{
return;
}
}
private void cmdxoa_Click(object sender, EventArgs e)
{
if (this.maid() == "")
{
MessageBox.Show("Không có bản ghi để xóa");
return;
}
this.Delete();
this.Refesh();
}
private void cmdthoat_Click(object sender, EventArgs e)
{
this.Close();
}
private void frm_nhts_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar==(char)Keys.Return)
SendKeys.Send("{TAB}");
}
}
}
Code cho việc xử lý form danh mục nguồn vốn
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using DataConnect;
using System.Windows.Forms;
namespace QLTS
{
public partial class frm_ngv : Form
{
public Connection _cn = new Connection();
public BindingSource _bdsnv = new BindingSource();
public string _chon;
public BindingSource _so_bg = new BindingSource();
public frm_ngv()
{
InitializeComponent();
}
public void hienthi()
{
SqlParameter[] _para;
_para = null;
_bdsnv.DataSource = _cn.FillData("dbo.Display_DM_Ngvon", _para);
this.dgv_dmnv.DataSource = _bdsnv;
this.txtma.DataBindings.Add("Text", _bdsnv, "Ma_ngvon");
this.txtten.DataBindings.Add("Text", _bdsnv, "Ten_ngvon");
this.txtdg.DataBindings.Add("Text", _bdsnv, "Dien_giai");
}
private void frm_dmpb_Load(object sender, EventArgs e)
{
hienthi();
formatgrid();
}
public void formatgrid()
{
this.dgv_dmnv.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
private void LockObject()
{
this.cmdthem.Enabled = true;
this.cmdxoa.Enabled = true;
this.cmdsua.Enabled = true;
this.cmdluu.Enabled = false;
this.txtma.Enabled = false;
this.txtten.Enabled = false;
this.txtdg.Enabled = false;
this.cmdthem.Focus();
}
private void UnLockObject()
{
this.cmdthem.Enabled = false;
this.cmdxoa.Enabled = false;
this.cmdsua.Enabled = false;
this.cmdluu.Enabled = true;
this.txtma.Enabled = true;
this.txtten.Enabled = true;
this.txtdg.Enabled = true;
this.txtma.Focus();
}
public void AddNew()
{
this.UnLockObject();
this._bdsnv.CurrencyManager.AddNew();
this._bdsnv.MoveLast();
}
public void Edit()
{
this.UnLockObject();
}
private string maid()
{
string _maid = "";
DataRowView _drv = (System.Data.DataRowView)_bdsnv.Current;
try
{
_maid = _drv["Ma_ngvon"].ToString().Trim();
}
catch
{
_maid = "";
}
return _maid;
}
private void Refesh()
{
this._bdsnv.CurrencyManager.Refresh();
}
private DataRowView CurrentRow()
{
return (System.Data.DataRowView)_bdsnv.Current;
}
private void Savedata()
{
DataTable _tbl = new DataTable();
string _ma = txtma.Text.Trim();
string _ten = txtten.Text.Trim();
string _dg = txtdg.Text.Trim();
try
{
if (_chon == "M")
{
SqlParameter[] _para;
_para = new SqlParameter[] { new SqlParameter("@_Property","M"),
new SqlParameter("@_Ma_ngvon",_ma),
new SqlParameter("@_ten_ngvon",_ten),
new SqlParameter("@_Dien_giai",_dg)};
_tbl = _cn.FillData("Save_DM_ngvon", _para);
}
if (_chon == "S")
{
SqlParameter[] _para;
_para = new SqlParameter[] { new SqlParameter("@_Property","S"),
new SqlParameter("@_Ma_ngvon",_ma),
new SqlParameter("@_ten_ngvon",_ten),
new SqlParameter("@_Dien_giai",_dg)};
_tbl = _cn.FillData("Save_DM_ngvon", _para);
}
}
catch
{
MessageBox.Show("Không lưu dữ liệu");
}
}
private void Delete()
{
if (MessageBox.Show("Bạn có chắc chắn muốn xóa danh mục này ko", "Thong bao", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
DataTable _tbl = new DataTable();
SqlParameter[] _para;
_para = new SqlParameter[] { new SqlParameter("@_Ma_nv", maid().Trim()) };
_tbl = _cn.FillData("Delete_DM_ngvon", _para); this._bdsnv.RemoveCurrent();
MessageBox.Show("Xoa thanh cong", "Thong bao");
}
else
{
return;
}
}
private void frm_dmpb_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Return)
SendKeys.Send("{TAB}");
}
private void frm_ngv_Load(object sender, EventArgs e)
{
hienthi();
formatgrid();
}
private void cmdthem_Click_1(object sender, EventArgs e)
{
this.AddNew();
_chon = "M";
}
private void cmdsua_Click(object sender, EventArgs e)
{
if (maid() == "")
{
MessageBox.Show("Không có bản ghi để sửa");
return;
}
this.Edit();
_chon = "S";
}
private void cmdluu_Click(object sender, EventArgs e)
{
if (txtma.Text.Trim() == "" || this.txtten.Text.Trim() == "")
{
MessageBox.Show("Bạn phải nhập đầy đủ thông tin trước khi lưu", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Question);
this.txtma.Focus();
return;
}
if (_chon == "M")
{
int dem;
SqlParameter[] _para1;
_para1 = new SqlParameter[]{new SqlParameter("@_Ten_bang","Dm_ngvon"),
new SqlParameter("@_Ma",this.txtma.Text.Trim()),
new SqlParameter("@_Ma_code","Ma_nv")};
_so_bg.DataSource = _cn.FillData("Display_tinh", _para1);
DataRowView _drv2 = (System.Data.DataRowView)_so_bg.Current;
dem = Convert.ToInt32(_drv2["So_bg"].ToString());
if (dem != 0)
{
MessageBox.Show("Mã số đã tồn tại, không thể lưu !", "Thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.txtma.Clear();
this.txtma.Focus();
return;
}
}
Savedata();
this.Refresh();
this.LockObject();
}
private void cmdxoa_Click(object sender, EventArgs e)
{
if (this.maid() == "")
{
MessageBox.Show("Không có bản ghi để xóa");
return;
}
this.Delete();
this.Refesh();
}
private void cmdthoat_Click(object sender, EventArgs e)
{
this.Close();
}
private void frm_ngv_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Return)
SendKeys.Send("{TAB}");
}
}
}
Code cho việc xử lý form danh mục phòng ban
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using DataConnect;
using System.Windows.Forms;
namespace QLTS
{
public partial class frm_dmpb : Form
{
public Connection _cn = new Connection();
public BindingSource _bdspb = new BindingSource();
public string _chon;
public BindingSource _so_bg = new BindingSource();
public frm_dmpb()
{
InitializeComponent();
}
public void hienthi()
{
SqlParameter[] _para;
_para = null;
_bdspb.DataSource = _cn.FillData("dbo.Display_DM_Pb", _para);
this.dgv_dmpb.DataSource = _bdspb;
this.txtma.DataBindings.Add("Text", _bdspb, "Ma_pb");
this.txtten.DataBindings.Add("Text", _bdspb, "Ten_pb");
this.txtdg.DataBindings.Add("Text", _bdspb, "Dien_giai");
}
private void frm_dmpb_Load(object sender, EventArgs e)
{
hienthi();
formatgrid();
}
public void formatgrid()
{
this.dgv_dmpb.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
private void LockObject()
{
this.cmdthem.Enabled = true;
this.cmdxoa.Enabled = true;
this.cmdsua.Enabled = true;
this.cmdluu.Enabled = false;
this.txtma.Enabled = false;
this.txtten.Enabled = false;
this.txtdg.Enabled = false;
this.cmdthem.Focus();
}
private void UnLockObject()
{
this.cmdthem.Enabled = false;
this.cmdxoa.Enabled = false;
this.cmdsua.Enabled = false;
this.cmdluu.Enabled = true;
this.txtma.Enabled = true;
this.txtten.Enabled = true;
this.txtdg.Enabled = true;
this.txtma.Focus();
}
public void AddNew()
{
this.UnLockObject();
this._bdspb.CurrencyManager.AddNew();
this._bdspb.MoveLast();
}
public void Edit()
{
this.UnLockObject();
}
private string maid()
{
string _maid = "";
DataRowView _drv = (System.Data.DataRowView)_bdspb.Current;
try
{
_maid = _drv["Ma_pb"].ToString().Trim();
}
catch
{
_maid = "";
}
return _maid;
}
private void Refesh()
{
this._bdspb.CurrencyManager.Refresh();
}
private DataRowView CurrentRow()
{
return (System.Data.DataRowView)_bdspb.Current;
}
private void Savedata()
{
DataTable _tbl = new DataTable();
string _ma = txtma.Text.Trim();
string _ten = txtten.Text.Trim();
string _dg = txtdg.Text.Trim();
try
{
if (_chon == "M")
{
SqlParameter[] _para;
_para = new SqlParameter[] { new SqlParameter("@_Property","M"),
new SqlParameter("@_Ma_pb",_ma),
new SqlParameter("@_ten_pb",_ten),
new SqlParameter("@_Dien_giai",_dg)};
_tbl = _cn.FillData("Save_DM_pb", _para);
}
if (_chon == "S")
{
SqlParameter[] _para;
_para = new SqlParameter[] { new SqlParameter("@_Property","S"),
new SqlParameter("@_Ma_pb",_ma),
new SqlParameter("@_ten_pb",_ten),
new SqlParameter("@_Dien_giai",_dg)};
_tbl = _cn.FillData("Save_DM_pb", _para);
}
}
catch
{
MessageBox.Show("Không lưu dữ liệu");
}
}
private void cmdthem_Click(object sender, EventArgs e)
{
this.AddNew();
_chon = "M";
}
private void cmdsua_Click(object sender, EventArgs e)
{
if (maid() == "")
{
MessageBox.Show("Không có bản ghi để sửa");
return;
}
this.Edit();
_chon = "S";
}
private void cmdluu_Click(object sender, EventArgs e)
{
if (txtma.Text.Trim() == "" || this.txtten.Text.Trim() == "")
{
MessageBox.Show("Bạn phải nhập đầy đủ thông tin trước khi lưu", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Question);
this.txtma.Focus();
return;
}
if (_chon == "M")
{
int dem;
SqlParameter[] _para1;
_para1 = new SqlParameter[]{new SqlParameter("@_Ten_bang","Dm_nhts"),
new SqlParameter("@_Ma",this.txtma.Text.Trim()),
new SqlParameter("@_Ma_code","Ma_nhts")};
_so_bg.DataSource = _cn.FillData("Display_tinh", _para1);
DataRowView _drv2 = (System.Data.DataRowView)_so_bg.Current;
dem = Convert.ToInt32(_drv2["So_bg"].ToString());
if (dem != 0)
{
MessageBox.Show("Mã số đã tồn tại, không thể lưu !", "Thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.txtma.Clear();
this.txtma.Focus();
return;
}
}
Savedata();
this.Refresh();
this.LockObject();
}
private void Delete()
{
if (MessageBox.Show("Bạn có chắc chắn muốn xóa danh mục này ko", "Thong bao", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
DataTable _tbl = new DataTable();
SqlParameter[] _para;
_para = new SqlParameter[] { new SqlParameter("@_Ma_pb", maid().Trim()) };
_tbl = _cn.FillData("Delete_DM_pb", _para); this._bdspb.RemoveCurrent();
MessageBox.Show("Xoa thanh cong", "Thong bao");
}
else
{
return;
}
}
private void cmdxoa_Click(object sender, EventArgs e)
{
if (this.maid() == "")
{
MessageBox.Show("Không có bản ghi để xóa");
return;
}
this.Delete();
this.Refesh();
}
private void cmdthoat_Click(object sender, EventArgs e)
{
this.Close();
}
private void frm_dmpb_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Return)
SendKeys.Send("{TAB}");
}
}
}
Code cho việc xử lý form danh mục mục đích sử dụng
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using DataConnect;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace QLTS
{
public partial class frm_mdsd : Form
{
public Connection _cn = new Connection();
public BindingSource _bdsmd = new BindingSource();
public string _chon;
public BindingSource _so_bg = new BindingSource();
public frm_mdsd()
{
InitializeComponent();
}
private void frm_mdsd_Load(object sender, EventArgs e)
{
hienthi();
formatgrid();
}
public void hienthi()
{
SqlParameter[] _para;
_para = null;
_bdsmd.DataSource = _cn.FillData("dbo.Display_DM_Mdsd", _para);
this.dgv_dmmd.DataSource = _bdsmd;
this.txtma.DataBindings.Add("Text", _bdsmd, "Ma_Mucdich");
this.txtten.DataBindings.Add("Text", _bdsmd, "Ten_Mucdich");
this.txtdg.DataBindings.Add("Text", _bdsmd, "Dien_giai");
}
public void formatgrid()
{
this.dgv_dmmd.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
private void LockObject()
{
this.cmdthem.Enabled = true;
this.cmdxoa.Enabled = true;
this.cmdsua.Enabled = true;
this.cmdluu.Enabled = false;
this.txtma.Enabled = false;
this.txtten.Enabled = false;
this.txtdg.Enabled = false;
this.cmdthem.Focus();
}
private void UnLockObject()
{
this.cmdthem.Enabled = false;
this.cmdxoa.Enabled = false;
this.cmdsua.Enabled = false;
this.cmdluu.Enabled = true;
this.txtma.Enabled = true;
this.txtten.Enabled = true;
this.txtdg.Enabled = true;
this.txtma.Focus();
}
public void AddNew()
{
this.UnLockObject();
this._bdsmd.CurrencyManager.AddNew();
this._bdsmd.MoveLast();
}
public void Edit()
{
this.UnLockObject();
}
private string maid()
{
string _maid = "";
DataRowView _drv = (System.Data.DataRowView)_bdsmd.Current;
try
{
_maid = _drv["Ma_ngvon"].ToString().Trim();
}
catch
{
_maid = "";
}
return _maid;
}
private void Refesh()
{
this._bdsmd.CurrencyManager.Refresh();
}
private DataRowView CurrentRow()
{
return (System.Data.DataRowView)_bdsmd.Current;
}
private void Savedata()
{
DataTable _tbl = new DataTable();
string _ma = txtma.Text.Trim();
string _ten = txtten.Text.Trim();
string _dg = txtdg.Text.Trim();
try
{
if (_chon == "M")
{
SqlParameter[] _para;
_para = new SqlParameter[] { new SqlParameter("@_Property","M"),
new SqlParameter("@_Ma_mucdich",_ma),
new SqlParameter("@_ten_mucdich",_ten),
new SqlParameter("@_Dien_giai",_dg)};
_tbl = _cn.FillData("Save_DM_mdsd", _para);
}
if (_chon == "S")
{
SqlParameter[] _para;
_para = new SqlParameter[] { new SqlParameter("@_Property","S"),
new SqlParameter("@_Ma_mucdich",_ma),
new SqlParameter("@_ten_mucdich",_ten),
new SqlParameter("@_Dien_giai",_dg)};
_tbl = _cn.FillData("Save_DM_mdsd", _para);
}
}
catch
{
MessageBox.Show("Không lưu dữ liệu");
}
}
private void Delete()
{
if (MessageBox.Show("Bạn có chắc chắn muốn xóa danh mục này ko", "Thong bao", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
DataTable _tbl = new DataTable();
SqlParameter[] _para;
_para = new SqlParameter[] { new SqlParameter("@_Ma_mucdich", maid().Trim()) };
_tbl = _cn.FillData("Delete_DM_mdsd", _para); this._bdsmd.RemoveCurrent();
MessageBox.Show("Xoa thanh cong", "Thong bao");
}
else
{
return;
}
}
private void cmdthem_Click(object sender, EventArgs e)
{
this.AddNew();
_chon = "M";
}
private void cmdsua_Click(object sender, EventArgs e)
{
if (maid() == "")
{
MessageBox.Show("Không có bản ghi để sửa");
return;
}
this.Edit();
_chon = "S";
}
private void cmdluu_Click(object sender, EventArgs e)
{
if (txtma.Text.Trim() == "" || this.txtten.Text.Trim() == "")
{
MessageBox.Show("Bạn phải nhập đầy đủ thông tin trước khi lưu", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Question);
this.txtma.Focus();
return;
}
if (_chon == "M")
{
int dem;
SqlParameter[] _para1;
_para1 = new SqlParameter[]{new SqlParameter("@_Ten_bang","Dm_ngvon"),
new SqlParameter("@_Ma",this.txtma.Text.Trim()),
new SqlParameter("@_Ma_code","Ma_nv")};
_so_bg.DataSource = _cn.FillData("Display_tinh", _para1);
DataRowView _drv2 = (System.Data.DataRowView)_so_bg.Current;
dem = Convert.ToInt32(_drv2["So_bg"].ToString());
if (dem != 0)
{
MessageBox.Show("Mã số đã tồn tại, không thể lưu !", "Thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.txtma.Clear();
this.txtma.Focus();
return;
}
}
Savedata();
this.Refresh();
this.LockObject();
}
private void cmdxoa_Click(object sender, EventArgs e)
{
if (this.maid() == "")
{
MessageBox.Show("Không có bản ghi để xóa");
return;
}
this.Delete();
this.Refesh();
}
private void cmdthoat_Click(object sender, EventArgs e)
{
this.Close();
}
private void frm_mdsd_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Return)
SendKeys.Send("{TAB}");
}
}
}
Code cho việc xử lý form danh mục lý do phát sinh tài sản
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using DataConnect;
using System.Windows.Forms;
namespace QLTS
{
public partial class frm_ldps : Form
{
public Connection _cn = new Connection();
public BindingSource _bdsldps = new BindingSource();
public string _chon;
public BindingSource _so_bg = new BindingSource();
public frm_ldps()
{
InitializeComponent();
}
private void frm_ldps_Load(object sender, EventArgs e)
{
hienthi();
formatgrv();
}
public void hienthi()
{
SqlParameter[] _para;
_para = null;
_bdsldps.DataSource = _cn.FillData("Display_dm_psts", _para);
this.dgv_dmmd.DataSource=_bdsldps;
this.txtma.DataBindings.Add("Text", _bdsldps, "Ma_ps");
this.txt_ld.DataBindings.Add("Text", _bdsldps, "Lydo_ps");
this.txt_kieu.DataBindings.Add("Text",_bdsldps,"Kieu_ps");
LockObject();
}
private void formatgrv()
{
this.dgv_dmmd.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
private void LockObject()
{
this.cmdthem.Enabled = true;
this.cmdxoa.Enabled = true;
this.cmdsua.Enabled = true;
this.cmdluu.Enabled = false;
this.txtma.Enabled = false;
this.txt_ld.Enabled = false;
this.txt_kieu.Enabled = false;
this.cmdthem.Focus();
}
private void UnLockObject()
{
this.cmdthem.Enabled = false;
this.cmdxoa.Enabled = false;
this.cmdsua.Enabled = false;
this.cmdluu.Enabled = true;
this.txtma.Enabled = true;
this.txt_ld.Enabled = true;
this.txt_kieu.Enabled = true;
this.txtma.Focus();
}
private void AddNew()
{
UnLockObject();
this._bdsldps.CurrencyManager.AddNew();
this._bdsldps.MoveLast();
}
private void Edit()
{
UnLockObject();
}
private string ma_id()
{
string _maid = "";
DataRowView _drv = (System.Data.DataRowView)_bdsldps.Current;
try
{
_maid = _drv["Ma_ps"].ToString().Trim();
}
catch
{
_maid = "";
}
return _maid;
}
private void Refesh()
{
this._bdsldps.CurrencyManager.Refresh();
}
private DataRowView CurrentRow()
{
return (System.Data.DataRowView)_bdsldps.Current;
}
private void Savedata()
{
DataTable _tbl = new DataTable();
string _ma = txtma.Text.Trim();
string _lydo =txt_ld.Text.Trim();
string _kieu =txt_kieu.Text.Trim();
try
{
if (_chon == "M")
{
SqlParameter[] _para;
_para = new SqlParameter[] { new SqlParameter("@_Property","M"),
new SqlParameter("@_Ma_ps",_ma),
new SqlParameter("@_lydo_ps",_lydo),
new SqlParameter("@_kieu_ps",_kieu)};
_tbl = _cn.FillData("Save_DM_psts", _para);
}
if (_chon == "S")
{
SqlParameter[] _para;
_para = new SqlParameter[] { new SqlParameter("@_Property","S"),
new SqlParameter("@_Ma_ps",_ma),
new SqlParameter("@_lydo_ps",_lydo),
new SqlParameter("@_kieu_ps",_kieu)};
_tbl = _cn.FillData("Save_DM_psts", _para);
}
}
catch
{
MessageBox.Show("Không lưu dữ liệu");
}
}
private void Delete()
{
if (MessageBox.Show("Bạn có chắc chắn muốn xóa danh mục này ko", "Thong bao", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
DataTable _tbl = new DataTable();
SqlParameter[] _para;
_para = new SqlParameter[] { new SqlParameter("@_Ma_ps", ma_id().Trim()) };
_tbl = _cn.FillData("Delete_DM_psts", _para); this._bdsldps.RemoveCurrent();
MessageBox.Show("Xoa thanh cong", "Thong bao");
}
else
{
return;
}
}
private void cmdthem_Click(object sender, EventArgs e)
{
this.AddNew();
_chon = "M";
}
private void cmd_huy_Click(object sender, EventArgs e)
{
if(this.ma_id()=="")
{
LockObject();
this._bdsldps.RemoveCurrent();
this._bdsldps.MoveLast();
}
}
private void cmdsua_Click(object sender, EventArgs e)
{
if (ma_id() == "")
{
MessageBox.Show("Không có bản ghi để sửa");
return;
}
this.Edit();
_chon = "S";
}
private void cmdluu_Click(object sender, EventArgs e)
{
if (txtma.Text.Trim() == "" || this.txt_ld.Text.Trim() == ""||this.txt_kieu.Text.Trim()=="")
{
MessageBox.Show("Bạn phải nhập đầy đủ thông tin trước khi lưu", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Question);
this.txtma.Focus();
return;
}
if (_chon == "M")
{
int dem;
SqlParameter[] _para1;
_para1 = new SqlParameter[]{new SqlParameter("@_Ten_bang","Dm_psts"),
new SqlParameter("@_Ma",this.txtma.Text.Trim()),
new SqlParameter("@_Ma_code","Ma_ps")};
_so_bg.DataSource = _cn.FillData("Display_tinh", _para1);
DataRowView _drv2 = (System.Data.DataRowView)_so_bg.Current;
dem = Convert.ToInt32(_drv2["So_bg"].ToString());
if (dem != 0)
{
MessageBox.Show("Mã số đã tồn tại, không thể lưu !", "Thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.txtma.Clear();
this.txtma.Focus();
return;
}
}
Savedata();
this.Refresh();
this.LockObject();
}
private void cmdxoa_Click(object sender, EventArgs e)
{
if (this.ma_id() == "")
{
MessageBox.Show("Không có bản ghi để xóa");
return;
}
this.Delete();
this.Refesh();
}
private void cmdthoat_Click(object sender, EventArgs e)
{
this.Close();
}
private void frm_ldps_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Return)
SendKeys.Send("{TAB}");
}
}
}
Các file đính kèm theo tài liệu này:
- 33157.doc