• Quan hệ 1-∞(one – to – many )
Hai bảng có quan hệ một nhiều (one – to – many ) nếu đối với bảng thứ nhất có thể không có, hay có một hay nhiều trong bảng thứ hai. Quan hệ một nhiều còn được gọi là quan hệ cha con hay là quan hệ chính phục. Loại quan hệ này được dùng rất nhiều trong CSDL quan hệ.
• Quan hệ ∞-∞.(many – to – many )
Hai bảng có quan hệ many – to – many khi đối với mọi hàng trong bảng thứ nhất có thể có nhiều hàng trong bảng thứ hai và đối với mọi bảng trong bảng thứ hai có thể có nhiều hàng trong bảng thứ nhất. Các quan hệ ∞-∞ không thể mô hình hóa trong nhiều phần mềm CSDL trong đó có cả Microsoft Assecc. Những quan
117 trang |
Chia sẻ: Dung Lona | Lượt xem: 1260 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đồ án Quản lý hộ khẩu cấp phường, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
le với extension vb. Trong VB.NET tất cả mọi VB source files đều có extension.vb. System sẽ nhận diện ra loại VB file (form, class, module,. v. v.. ) nhờ đọc content của file, chớ không dựa vào file extension.
Nếu bạn muốn đặt tên cho Class mới nầy là TheClass chẳng hạn, thì bạn có thể sửa tên nó trong Dialog. Khi bạn click button Open một file mới sẽ được cho thêm vào trong Project và nó chứa hai hàng code sau:
Public Class TheClass
End Class
2.7 Tạo một Class mới
Class Keyword
Trong một.vb file ta có thể viết nhiều Classes, code của mỗi Class nằm trong một Class... End Class block. Thí dụ:
Public Class TheClass
Public Sub Greeting()
MessageBox.Show("Hello world", MsgBoxStyle.Information, "TheClass")
End Sub
End Class
MessageBox.Show và MsgBoxStyle.Information trong VB.NET thay thế MsgBox và vbInformation trong VB6.
Classes và Namespaces
Nhắc lại là.NET dùng Namespace để sắp đặt các Classes cho thứ tự theo nhóm, loại. Namespaces được declared với một Block Structure giống như sau:
Namespace Vovisoft
Public Class TheClass
Public Sub Greeting()
MessageBox.Show("Hello world", MsgBoxStyle.Information, "TheClass")
End Sub
End Class
End Namespace
Muốn nói đến bất cứ Class, Structure, hay thứ gì được declared bên trong một Namespace... End Namespace block ta phải dùng tên Namespace trước. Thí dụ:
Private myObject As Vovisoft.TheClass
Một source file có thể chứa nhiều Namespaces, và bên trong mỗi Namespace lại có thể có nhiều Classes.
Ngoài ra, Classes thuộc về cùng một Namespace có thể nằm trong nhiều files khác nhau trong một VB.NET project.
Thí dụ ta có một source file với code như sau:
Namespace Vovisoft
Public Class TheClass
' Code
End Class
End Namespace
Và một source file khác trong cùng project với code:
Namespace Vovisoft
Public Class TheOtherClass
' Code
End Class
End Namespace
Vậy thì trong Namespace Vovisoft ta có hai Classes TheClass và TheOtherClass.
Nhớ là, by default, Root Namespace của một VB.NET project là tên của project ấy. Khi ta dùng Namespace block structure là chúng ta đang thêm một tầng tên vào Root Namespace. Do đó, trong thí dụ trên nếu tên project là MyProject thì, từ bên ngoài project ấy, ta có thể declare một variable như sau:
Private myObject As MyProject.Vovisoft.TheClass
Tạo ra Methods
Methods trong VB.NET có hai thứ: Sub và Function. Function thì phải return một kết quả. By default, parameters của Method là ByVal chớ không phải ByRef. Tức là nếu muốn parameter nào ByRef thì phải nhớ khai ra rõ ràng.
Nhắc lại là khi một variable được passed vào trong một method bằng ByVal thì system cho method đó một copy (bản sao) của variable, do đó, trị số của variable không bị thay đổi bởi công tác của method. Ngược lại, nếu một variable được passed vào trong một method bằng ByRef thì method dùng chính variable đó, do đó, trị số của variable có thể bị thay đổi bởi công tác của method.
Ta có thể giới hạn việc sử dụng một method bằng cách áp đặt một Access Modifier (sửa đổi quyền truy nhập) hay còn gọi là Scoping keyword (phạm vi hoạt động):
Private - chỉ cho phép code trong cùng Class được gọi.
Friend - chỉ cho phép code trong cùng project/component được gọi.
Public - cho phép ai gọi cũng được.
Protected - cho phép code trong subclasses (classes con, cháu) được gọi.
Protected Friend - cho phép code trong cùng project/component hay code trong subclasses được gọi.
Tạo ra Properties
Trong VB.NET ta chỉ dùng một routine duy nhất cho mỗi Property, với hai chữ Get và Set như sau (không còn dùng chữ Let của VB6 nữa):
Private mdescription As String
Public Property Description() As String
Set (ByVal Value As String)
mdescription = Value
End Set
Get
Description = mdescription
End Get
End Property
ReadOnly và WriteOnly property
Bây giờ nếu Property là ReadOnly ta sẽ lấy phần Set ra và viết:
Public ReadOnly Property Age() As Integer
Get
Age = 3
End Get
End Property
hay WriteOnly ta sẽ ấy phần Get ra và viết:
Private _data As Integer
Public WriteOnly Property Data() As Integer
Set (ByVal Value As Integer)
_data = Value
End Set
End Property
Default Properties
Default Property là property của Object mà program dùng khi ta chỉ cho tên của Object và không nói rõ property nào. Thí dụ trong VB6 khi ta code:
TextBox1 = "The house of rising sun"
VB6 hiểu rằng ta muốn dùng Default Property text của Textbox1 nên code ấy tương đương với:
TextBox1.text = "The house of rising sun"
Trong VB6 khi ta dùng keyword Set với tên của Object, thí dụ như:
Dim myTextBox As Textbox
Set myTextBox = TextBox1
program sẽ hiểu là ta muốn nói đến chính Object myTextBox. Nếu không thì nó biết ta muốn nói đến Object Default Property mà làm biếng code cho rõ ra.
Trong VB.NET Default Property phải là một Property array. Một Property array là một property được Indexed (nói đến từng Item bằng con số Index) giống như một array. Lý do chính của sự bắt buộc nầy là để khỏi lẫn lộn giữa hai trường hợp ta nói đến Default property của một Object hay chính Object ấy, vì trong VB.NET ta không còn dùng Set keyword cho Object assignment nữa (ta chỉ còn dùng keyword Set trong Property mà thôi).
Bây giờ hể muốn nói đến Default Property của Object thì phải dùng Index. Thí dụ để nói đến chính Object, ta code:
myValue = myObject
để nói đến Default Property Item 3 của Object, ta code:
myValue = myObject(3)
Sự thay đổi từ VB6 nầy có nghĩa là một property array procedure phải nhận một parameter. Thí dụ:
Private theData(100) As String
Default Public Property Data(ByVal Index As Integer) As String
Get
Data = theData(Index)
End Get
Set(ByVal Value As String)
theData(Index) = Value
End Set
End Property
Ta không thể viết:
TextBox1 = "Good morning!"
như trong VB6 được nữa, mà phải viết:
TextBox1.text = "Good morning!"
Vì Property Text không còn là Default Property của TextBox.
Overloading methods
Một trong những chức năng đa diện (Polymorphism) hùng mạnh nhất của VB.NET là overload (quá tải, có rồi mà còn cho thêm) một method. Overloading có nghĩa là ta có thể dùng cùng một tên cho nhiều methods - miễn là chúng có danh sách các parameters khác nhau, hoặc là parameter dùng data type khác nhau (td: method nầy dùng Integer, method kia dùng String), hoặc là số parameters khác nhau (td: method nầy có 2 parameters, method kia có 3 parameters).
Overloading không thể được thực hiện chỉ bằng cách thay đổi data type của Return value của Function. Phải có parameter list khác nhau mới được.
Dưới đây là thí dụ ta dùng Overloading để code hai Functions tìm data, một cái cho String, một cái cho Integer:
Public Function FindData(ByVal Name As String) As ArrayList
' find data and return result
End Function
Friend Function FindData(ByVal Age As Integer) As ArrayList
' find data and return result
End Function
Để ý là ta có thể cho mỗi overloading Function một phạm vi hoạt động (Scope on implementation) khác nhau. Trong thí dụ trên ta dùng Access Modifier Public cho Function đầu và Friend cho Function sau.
Object Lifecycle
Object Lifecycle (cuộc đời của Object) được dùng để nói đến khi nào Object bắt đầu hiện hữu và khi nào nó không còn nữa. Sở dĩ ta cần biết rõ cuộc đời của một Object bắt đầu và chấm dứt lúc nào là để tránh dùng nó khi nó không hiện hữu, tức là chưa ra đời hay đã khuất bóng rồi.
New method
Trong VB6, khi một Object thành hình thì Sub Class_Initialize được executed. Tương đương như vậy, trong VB.NET ta có Sub New(), gọi là Constructor. VB.NET bảo đảm Sub New() sẽ được CLR gọi khi Object được instantiated và nó chạy trước bất cứ code nào trong Object.
Nếu Sub Class_Initialize của một Class Object trong VB6 không nhận parameter thì Sub New() trong VB.NET chẳng những có nhận parameters mà còn cho phép ta nhiều cách để gọi nó. Sự khác biệt trong Constructors của VB6 và VB.NET rất quan trọng.
Phần 2: XÂY DỰNG CHƯƠNG TRÌNH
Chương 1: GIỚI THIỆU HỆ THỐNG
KHÁI NIỆM HỆ THỐNG THÔNG TIN QUẢN LÝ(MIS)
Thông tin quản lý là thông tin mà nhà quản lý cần sử dụng để thực hiện tốt chức năng của họ.
Hệ thống thông tin quản lý là một hệ thống tập hợp các thông tin hữu ích hay vô ích, có cấu trúc hoặc không có cấu trúc, hình thức hoặc phi hình thức, luân chuyển trong doanh nghiệp. Là một tập hợp các phương tiện xử lý thông tin thông qua mối liên hệ giữa chúng.
Một hệ thông tin quản lý bao gồm ba hệ con: hệ quyết định, hệ tác nghiệp và hệ thông tin.
+ Hệ quyết định: thực hiện các tác vụ quản lý, đưa ra những quyết định chiến lược trong một thời gian ngắn hay dài hạn.
+ Hệ tác nghiệp: gồm các hoạt động thực hiện những công việc có tính cạnh tranh để đạt được mục tiêu đã xác định bởi hệ quyết định.
+ Hệ thông tin: thực hiện việc liên hệ giữa hệ quyết định với hệ tác nghiệp, bảo đảm hệ thống vận hành đạt mục tiêu.
MIS cung cấp cho hệ ra quyết định những thông tin cần thiết trong quá trình ra quyết định( là các thông tin từ môi trường xung quanh hay từ hệ tác nghiệp). Chuyển các thông tin từ hệ ra quyết định cho hệ tác nghiệp và môi trường bên ngoài hoạt động hệ thống được đánh giá tốt hay xấu tùy thuộc vào chất lượng xử lý, tính phù hợp của thông tin.
Mục đích, ý nghĩa.
Mục đích của dự án phát triển một hệ thống thông tin là có được một sản phẩm đáp ứng được nhu cầu của người sử dụng mà nó được hòa hợp trong các hoạt động của tổ chức, chính xác về mặt kỹ thuật, tuân thủ các giới hạn về tài chính và thời gian định trước. Vì vậy, ngoài những yêu cầu trên, mục đích của dự án xây dựng phần mền quản lý hộ khẩu cấp phường phải úng dụng được tin học hóa vào việc quản lý hộ khẩu
Phải trang bị được hệ thống CSDL của phần mền quản lý hộ khẩu sẽ bao gồm các vấn đề sau:
Quản lý hộ khẩu: Cập nhật, thêm, sửa , xóa, tra cứu thông tin hộ khẩu
Quản lý nhân khẩu: Cập nhật, thêm, sửa , xóa, tra cứu thông tin nhân khẩu
Quản lý thông tin liên quan: Thêm, cập nhật
Lập báo cáo
Đây là một đề tài mang tính thực tế vì vậy mà trong quá trình thực hiện em luôn tìm hiểu, phân tích phương hướng về mọi mặt của đề tài.
Để đáp ứng nhu cầu tin học hóa trong công tác hành chính, vấn đề quản lý hộ khẩu là một vấn đề quan trọng , đề tài “Quản lý hộ khẩu cấp phường” nhằm trợ giúp các công tác quản lý hộ khẩu trong bất kỳ một phường nào nhằm đạt hiệu quả cao nhất.
Chương 2: KHẢO SÁT HỆ THỐNG
MÔ TẢ HỆ THỐNG
Nhiệm vụ cơ bản
Một trong những giải pháp để quản lý hộ khẩu là Bộ công an – cơ quan chức năng,ủy ban pháp luật của Quốc hội phải thông qua việc xây dựng một chính phủ điện tử, quản lý theo một hệ thống thống nhất từ trên xuống, xây dựng cơ sở dữ liệu của mọi công dân trong một hệ thống.
Cơ quan công can có thể quản lý, theo dõi và cập nhật thông tin của công dân qua hệ thống này, tất cả các thông tin đó thì luôn phải được cập nhật nếu có thay đổi có thể tìm kiếm để thay đổi những thông tin cần thiết. Ở mọi nơi mọi lúc có thể có mọi thông tin về công dân đó.
Nhiệm vụ cơ bản của chương trình quản lý hộ khẩu là:
Quản lý toàn bộ hộ khẩu
Cập nhật hay sửa đổi thông tin khi có sự thay đổi về nhân khẩu
Tìm kiếm thông tin của một hộ gia đinh bất kỳ
Tách khẩu, chuyển khẩu
Báo cáo, thống kê thông tin vào định kỳ.
Xem thông tin khi có yêu cầu cần thiết
Cơ cấu tổ chức và sự phân công trách nhiệm
Cơ cấu tổ chức:
Gồm 3 bộ phận chính:
Bộ phận kiểm tra thủ tục: có nhiệm vụ hướng dẫn, kiểm tra hồ sơ trước khi xử lý thủ tục và cấp giấy. Ngoài những nhiệm vụ đó ra còn có thêm nhiệm vụ giải quyết khiếu nại tố cáo,khởi kiện về những hành cư trú trái phép
Bộ phận xử lý thủ tục và cấp giấy tờ liên quan:thực hiện xử lý các hồ sơ đã hợp pháp, cung cấp giấy thường trú, tạm trú theo mẫu của pháp luật nhà nước. Do trưởng công an quận quản lý.
Bộ phận thống kê lưu trữ : có nhiêm vụ thống kê, báo cáo số lượng nhân khẩu, hộ khẩu, tình trạng tạm vắng, tạm trú của phường vào mỗi định kỳ nhất định hoặc khi có yêu cầu của lãnh đạo, cấp trên. Thực hiện tra cứu tìm kiếm thông tin cá nhân khi cần thiết. Bảo đảm an toàn dữ liệu theo đúng nguyên tắc.
Quy trình xử lý
Qua quá trình khảo sát, ta nhận thấy các trường hợp cần xử lý thông tin và quy trình làm việc của hệ thống như sau:
Mô hình chung, khi công dân đến làm thủ tục hay khai báo thông tin với cơ quan chức năng thì phải thực hiện theo đúng thứ tự qua từng bộ phận sau:
Nếu có giấy tờ hay thủ tục có gì thiếu sót hay không chính xác thì bộ phận này phải có trách nhiệm chỉ rõ và hướng dẫn công dân theo đúng quy định.
Nếu giấy tờ đã đúng và hợp pháp thì bộ phận này sẽ chuyển hồ sơ đến bộ phân Xử lý thủ tục và cấp giấy.
Bộ phận này phải hoàn toàn chịu trách nhiệm trước pháp luật về sự sai sót trong quá trình kiểm tra.
Bộ phận Xử lý thủ tục và cấp giấy. Sauk hi hồ sơ được chuyển từ bộ phận kiểm tra. Bộ phận này có trách nhiệm:
Xác định yêu cầu cần giải quyết
Hợp pháp hóa thủ tục.
Xử lý yêu cầu: giải quyết, thực hiện ngay yêu cầu của công dân nếu có thể hoặc cấp giấy biên nhận và hẹn ngày cấp giấy tờ.
Thu lệ phí của công dân theo đúng thông tư của bộ tài chính.
Cung cấp thông tin đã xử lý cho bộ phận thông kê và báo cáo.
Bộ phận Thông kê và báo cáo để lưu giữ hồ sơ vào cơ sở dữ liệu. Đến đây bộ phận thống kê có nhiệm vụ đảm bảo thông tin về hồ sơ, cập nhật, báo cáo tình hình hộ khẩu,m nhân khẩu vào cuối mỗi định kỳ quy đinh.
Sau khi hoàn tất thủ tục thì hẹn công dân đến ngày cấp sổ, giấy tờ liên quan được ghi trên giấy biên nhận hẹn ngày trả(khoảng 10-15 ngày). Và khi đến ngày nhận thì công dân phải mang theo giấy hẹn ngày trả. CMTND đến gặp bộ phận Xử lý và cấp giấy tờ. Bộ phận này hoàn tất công viêuc bằng cách kiểm tra giấy hẹn và số CMTND nếu trùng khớp thì cấp sổ,giấy tờ không trùng thì không cấp
Quy tắc xử lý
Tất cả quá trình xử lý phải tuân thủ theo luật cư trú do Bộ Công An và pháp luật của Quốc hội ban hành.
Ví dụ:
Mọi công dân từ 15 tuổi trở lên vắng mặt qua đêm khỏi quận, thành phố nơi đang cư trú của mình đều phải khai báo tạm trú tạm vắng.
Người có nhu cầu sinh sống, làm việc tại nơi không có hộ khẩu thường trú thì phải đăng kí tạm trú tại địa phương cư trú.
Các mẫu biểu liên quan
Sau đây là một số mẫu biểu liên quan khi khảo sát:
Bản khai nhân khẩu
Phiếu báo thay đổi hộ khẩu
Cộng hoà xã hội chủ nghĩa Việt Nam
Độc lập - Tự do - Hạnh phúc
PHIẾU BÁO THAY ĐỔI HỘ KHẨU, NHÂN KHẨU
Kính gửi..
Họ và tên người báo (*):
Chỗ ở hiện nay:
Điện thoại:.
Quan hệ với chủ hộ (*):
Họ và tên chủ hộ: Sổ hộ khẩu số:..
Chỗ ở hiện nay....
Điện thoại.. ..
Nội dung thay đổi
...
..Ngàytháng ...năm. ngàytháng..năm
Ý kiến của chủ hộ người viết báo cáo
(Ghi rõ nội dung, ký và ghi rõ họ tên) (ký, ghi rõ họ tên)
Giấy tạm vắng
Tỉnh/TP.. Cộng hoà xã hội chủ nghĩa việt nam
Quận/Huyện Độc lập tự do hạnh phúc
Số hiệu:.
GIẤY TẠM VẮNG (TRÚ)
Họ tên:.Giới tính:..........................
Ngày sinh:............................CMTND:
Nguyên quán:..
Thường trú tại:
Lý do:
Nơi đến:
Thời gian: từ ngàythángnăm đến ngày..tháng..năm
Trưởng công an Người viết đơn
(ký tên, ghi rõ họ tên) (ký tên, ghi rõ họ tên)
Giấy biên nhận hẹn ngày trả
TP.. Cộng hoà xã hội chủ nghĩa Việt Nam
Huyện Độc lập - Tự do - Hạnh phúc
Số hiệu:.......
GIẤY BIÊN NHẬN
Họ tên người làm đơn:
Ngày sinh:.Giới tính:
Số CMTND:
Nguyên quán:
Chỗ ở hiện nay:
Công việc thực hiện:
Ngày trả:
Trưởng công an Công dân làm thủ tục
(ký tên, ghi rõ họ tên) (ký tên, ghi rõ họ tên)
Hóa đơn thanh toán
Tỉnh/TP.. Cộng hoà xã hội chủ nghĩa Việt Nam
Quận/ huyện Độc lập - Tự do - Hạnh phúc
Số hiệu:.
BIÊN LAI THANH TOÁN
Họ và tên:.. Giới tính.................
Số CMTND: .
Nguyên quán:
Chỗ ở hiện nay:.
Công việc thực hiện:
Thành tiền:bằng chữ:
Người thu Người nộp
(ký, ghi rõ họ tên) (ký, ghi rõ họ tên)
Hộ khẩu
Giấy khai sinh:
Giấy khai tử:
Giấy chứng nhận kết hôn
MÔ HÌNH TIẾN TRÌNH NGHIỆP VỤ
Kí hiệu:
Ta có thể hình dung quy trình làm viêu của bốn tôt chức trên mô hình nghiệp vụ như sau:
Chương 3: PHÂN TÍCH HỆ THỐNG VỀ DỮ LIỆU
SƠ ĐỒ PHÂN RÃ CHỨC NĂNG
Các bước xây dựng
Có thể sử dụng 2 phương pháp để xác định các chức năng nghiệp vụ:
Bottom up: phân rã các chức năng lớn thành các chức năng nhỏ hơn chi chi tiết hơn.
Top down: xuất phát từ những chức năng chi tiết gom nhóm lại thành các chức năng ở mức cao hơn.
Các bước tiến hành xây dựng sơ đồ phân rã chức năng:
Sử dụng phương pháp Bottom up, gồm 5 bước:
Bước 1: Trong bảng khảo sát chi tiết hệ thống hiện tại, trong phần quy trình xử lý gạch chân tất cả các động từ + bổ ngữ liên quan đến công việc của hệ thống.
Bước2: Trong danh sách các chức năng được chọn ở bước 1, tìm và loại bỏ những chức năng trùng lặp.
Bước3: Trong danh sách các chức được chọn ở bước 2, gom nhóm những chức năng đơn giản do 1 người thực hiện lại.
Bước4: Trong danh sách các chức năng được chọn ở bước 3, loại bỏ những chức năng không có ý nghĩa đối với hệ thống.
Bước5: Chỉnh sửa lại tên các chức năng ở bước 4 cho hợp lý.
Sử dụng phương pháp Top down:ở mức cáo nhất của nghiệp vụ, một chức năng chính sẽ làm được 1 trong 3 điều:
Cung cấp sản phẩm
Cung cấp dịch vụ
Quản lý tài nguyên
Kí hiệu sử dụng
Biểu diễn:
Hình chữ nhật:
Mỗi chức năng được phân rã thành các chức năng con. Các chức năng con có quan hệ phân cấp với chức năng cha và được thể hiện như sau:
Tên chức năng
Áp dụng bài toán
Sử dụng phương pháp Bottom up để xây dựng sơ đồ phân rã chức năng cho hệ thống. Thực hiện theo các bước sau:
Bước1: Xác định được các chức năng chi tiết trong hệ thống là:
Tiếp nhận hồ sơ, thủ tục.
Kiểm tra chi tiết thủ tục, hồ sơ.
Giải quyết khiếu nại, tố cáo và khởi kiện.
Cung cấp thông tin khi có yêu cầu.
Cung cấp mẫu hướng dẫn làm thủ tục.
Cấp giấy tờ tạm trú, tạm vắng.
Lập giấy biên nhận hẹn ngày trả.
Cấp sổ hộ khẩu.
Cấp giấy khai sinh
Cấp giấy khai tử
Cấp giấy chứng nhân kết hôn
Cấp giấy bản sao của khai sinh
Cấp giấy bản sao của khai tử
Cấp giấy chuyển hộ khẩu.
Lập hóa đơn thanh toán
Thống kê số lượng nhân khẩu
Thống kê hộ khẩu
Thống kê số lượng người tạm trú, tạm vắng.
Thống kê tổng hợp số dân theo độ tuổi
Bước2: Gom nhóm chức năng chi tiết thành chức năng lớn hơn của hệ thống
1. Tiếp nhận hồ sơ, thủ tục.
2. Kiểm tra chi tiết thủ tục, hồ sơ
3. Giải quyết các khiếu nại, tố cáo và khởi kiện
4. Cung cấp thông tin khi có yêu cầu
5. Cung cấp mẫu hướng dẫn làm thủ tục
Bộ phận kiểm tra và giải quyết khiếu nại tố cáo
Hệ thống quản lý hộ khẩu
6. Cấp giấy tờ tạm vắng, tạm trú
7. Lập giấy biên nhận hẹn ngày trả.
8. Cấp sổ hộ khẩu
9. Cấp giấy chuyển hộ khẩu
10. Lập hoá đơn thanh toán
11.Cấp giấy khai sinh
12. Cấp giấy khai tử
13. Cấp bản sao giấy khai sinh
14. Bản sao giấy khai tử
15. Cấp giấy chứng nhận kết hôn
Bộ phận xử lý và cấp sổ, giấy tờ liên quan
16 Thống kê số lượng nhân khẩu
17 Thống kê hộ khẩu
18 Thống kê số lượng người tạm trú, tạm vắng
19 Thống kê tổng hợp số dân theo độ tuổi
Bộ phận lưu trữ, thống kê
Biểu đồ phân cấp chức năng
SƠ ĐỒ LUỒNG DỮ LIỆU
Các bước xây dựng
Ta xác định các luồng thông tin nghiệp vụ bằng phương pháp phân tích Top down dựa trên mô hình tiến trình nghiệp vụ của hệ thống. Quá trình phân tích chia thành 3 bước.
Xây dựng biểu đồ luồng dữ liệu (DFD) mức ngữ cảnh để ta xác định giới hạn của hệ thống. Nó có chức năng biểu thị toàn bộ hệ thống ta đang nghiên cứu, chức năng này được nối với mọi tác nhân ngoài của hệ thống. Các luồng dữ liệu giữa các chức năng và tác nhân ngoài chỉ thông tin vào ra của hệ thống.
Xây dựng biểu đồ luồng dữ liệu mức đỉnh, với mức đỉnh các tác nhân ngoài của hệ thống ở mức khung cảnh được giữ nguyên với các luồng thông tin vào ra. Trong hệ thống được phân ra thành các tiến trình với mức đỉnh là các chức năng chính bên trong hệ thống theo biểu đồ phân cấp chức năng ở mức 1.
Xây dựng biểu đồ luồng dữ liệu mức dưới đỉnh, ta thực hiện phân rã đối với mỗi tiến trình của mức đỉnh dựa trên biểu đồ phân cấp chức năng.
Ký hiệu sử dụng
Sau đây là một số kí hiệu quy định trong sơ đồ:
Biểu diễn:
Hình chữ nhật:
Tên tác nhân ngoài
Tên chức năng
Hình tròn, hình elip: tên chức năng
Hướng luồng dữ liệu:
Kho thông tin, dữ liệu:
Dựa vào các bước xây dựng và các kí hiệu biểu diễn ta đi xây dựng sơ đồ luồng dữ liệu của hệ thống quản lý hộ khẩu cấp phường như sau:
Bước 1: Xây dựng biểu đồ luồng dữ liệu mức ngữ cảnh (mức 0) của hệ thống quản lý hộ khẩu cấp phường:
Bước 2: Xây dựng biểu đồ luồng dữ liệu mức đỉnh của hệ thống quản lý hộ khẩu:
Bước 3: Xây dựng sơ đồ luồng dữ liệu mức dưới đỉnh của hệ thống quản lý hộ khẩu:
a. Sơ đồ luồng dữ liệu mức 1.0: Kiểm tra giải quyết khiếu nại
b. Sơ đồ luồng dữ liệu mức 2.0: Xử lý cấp giấy tờ liên quan
c. Sơ đồ luồng dữ liệu mức 3.0: Lưu trữ thống kê
Mô hình quan hệ
Từ các hồ sơ liên quan trên ta xác định được các thực thể sau:
Nhân khẩu
Hộ khẩu
Tạm trú/tạm vắng
Giấy khai sinh
Giấy khai tử
Giấy kết hôn
Bản sao giấy khai sinh
Bản sao giấy khai tử
Giấy hẹn
Hóa đơn thanh toán
Công việc
Các thuộc tính của kiểu thực thể đã nêu trên là:
Nhân khẩu( mã nhân khẩu, họ và tên, bí danh, tên gọi khác, giới tính,CMTND,sinh ngày, nơi sinh, nguyên quán, dân tộc, nơi đăng ký thường trú, nơi ở hiện nay, trình độ học vấn, trình độ ngoại ngữ, quan hệ với chủ hộ,khen thưởng, kỷ luật)
Hộ khẩu( quyển số, tên chủ hộ, số thành viên, địa chỉ)
Công việc( mã công việc, tên công việc)
Khai tử(quyển số,số hiệu, họ tên người chứng tử,giới tính,ngày sinh,quê quán,nơi thường trú,dân tộc,quốc tịnh,CMND,ngày cấp, nơi cấp, ngày giờ chết, nơi chết, nguyên nhân chết, người khai, mối quan hệ, cán hộ hộ tịch, trạng thái,người cấp, chức vụ, nơi cấp, ghi chú)
Kết hôn(quyển số, số hiệu, họ tên chồng,ngày sinh của chồng, dân tộc,quê quán,nơi thường trú,CMND,ngày cấp, nơi cấp, lần kết hôn,họ tên vợ, ngày sinh của vợ, dân tộc, quê quán, nơi thường trú, CMND,ngày cấp, lần kết hôn,cán bộ hộ tịch, người cấp, chức vụ, ngày cấp,nơi cấp giấy kết hôn, ghi chú, ngày xác nhân, nơi xác nhận)
Khai sinh(quyển số, số hiệu, họ tên người được khai sinh, giới tính, ngày sinh, nơi sinh,dân tộc, quốc tịch,quê quán,họ tên bố,dân tộc,quốc tịch,ngày sinh,quê quán, nơi thường trú,họ tên mẹ, dân tộc, quốc tịch, ngày sinh, quê quán, nơi thường trú, tình trạng của cha và mẹ,người khai sinh, mối quan hệ, cán bộ hộ tịch, người cấp, chức vụ, ngày cấp,nơi cấp, trạng thái, ghi chú)
Tạm trú/tạm vắng (số phiếu, họ và tên, ngày sinh, giới tính, CMD, nguyên quán, thường trú tại, lý do, nơi đến,thời gian)
Bản sao giấy khai sinh (quyển sô, số hiệu,người đăng ký, CMND,địa chỉ, họ tên ngươi được khai sinh, sinh ngày, nơi sinh,họ tên cha, họ tên mẹ, nơi đăng ký giấy khai sinh, năm đăng ký giấy khai sinh, nơi đăng ký cấp bản sao, số bản sao yêu cầu)
Bản sao giấy khai tử ( quyển số, số hiệu,họ tên người đăng ký, mối quan hệ, CMND,địa chỉ,họ tên người mất, ngày/tháng/năm mất, địa chỉ đăng ký chứng tử, cấp tại, số bản yêu cầu)
Giấy hẹn(mã giấy hẹn, họ và tên, ngày sinh, CMND, nguyên quán, chỗ ở hiện nay, công việc, ngày trả)
Hóa đơn (mã HD, họ tên, CMND, nguyên quán, chỗ ở hiện nay, công việc, thành tiền)
è Chuẩn hóa các thực thể trên
Nhân khẩu ( mã nhân khẩu, quyển số, họ và tên, ngày sinh, bí danh, giới tính, CMND, dân tộc, quê quán, học vấn, mối quan hệ, mã giấy thưởng, mã kỉ luật, nơi ở hiện nay)
Hộ khẩu (quyển số, tên chủ hộ, số thành viên)
Công việc(mã công việc, tên công việc)
Khen thưởng( mã giấy khen,ngày khen thưởng,cơ quan khen thưởng, hình thức khen thưởng)
Kỷ luật(mã kỉ luật,ngày kỷ luật, hình thức xử phạt, mức độ, thời gian, cơ quan xử lý)
Tạm trú/tạm vắng( mã nhân khẩu,mã tạm trú tạm vắng,lý do, nơi đến, thời gian, ghi chú)
Khai tử(quyển số,số hiệu, họ tên người chứng tử,giới tính,ngày sinh,quê quán,nơi thường trú,dân tộc,quốc tịnh,CMND,ngày cấp, nơi cấp, ngày giờ chết, nơi chết, nguyên nhân chết, người khai, mối quan hệ, cán hộ hộ tịch, trạng thái,người cấp, chức vụ, nơi cấp, ghi chú)
Kết hôn(quyển số, số hiệu, họ tên chồng,ngày sinh của chồng, dân tộc,quê quán,nơi thường trú,CMND,ngày cấp, nơi cấp, lần kết hôn,họ tên vợ, ngày sinh của vợ, dân tộc, quê quán, nơi thường trú, CMND,ngày cấp, lần kết hôn,cán bộ hộ tịch, người cấp, chức vụ, ngày cấp,nơi cấp giấy kết hôn, ghi chú)
Khai sinh(quyển số, số hiệu, họ tên người được khai sinh, giới tính, ngày sinh, nơi sinh,dân tộc, quốc tịch,quê quán,họ tên bố,dân tộc,quốc tịch,ngày sinh,quê quán, nơi thường trú,họ tên mẹ, dân tộc, quốc tịch, ngày sinh, quê quán, nơi thường trú, tình trạng của cha và mẹ,người khai sinh, mối quan hệ, cán bộ hộ tịch, người cấp, chức vụ, ngày cấp,nơi cấp, trạng thái, ghi chú)
Bản sao giấy khai sinh(quyển sô, số hiệu,người đăng ký, CMND,địa chỉ, họ tên ngươi được khai sinh, sinh ngày, nơi sinh,họ tên cha, họ tên mẹ, nơi đăng ký giấy khai sinh, năm đăng ký giấy khai sinh, nơi đăng ký cấp bản sao, số bản sao yêu cầu)
Bản sao giấy khai tử ( quyển số, số hiệu,họ tên người đăng ký, mối quan hệ, CMND,địa chỉ,họ tên người mất, ngày/tháng/năm mất, địa chỉ đăng ký chứng tử, cấp tại, số bản yêu cầu)
Giấy hẹn( mã giấy hẹn,mã nhân khẩu,mã công việc,ngày trả)
Hóa đơn( mã hóa đơn,mã giấy hẹn,thành tiền)
Chương 4 :PHÂN TÍCH THIÊT KẾ HỆ THỐNG
I. THIẾT KẾ CƠ SỞ DỮ LIỆU
1. Cơ sở dữ liệu: Bảng “NHÂN KHẨU”:
tblnhankhau
Tên trường
Kiểu
Cỡ
Ràng buộc
Ghi chú
Manhankhau
Int
4
Khóa chính NOT NULL
Mã nhân khẩu
Quyenso
Varchar
50
NOT NULL
Quyển số
Hoten
Nvarchar
50
NULL
Họ và tên
Ngaysinh
Date/time
8
NULL
Ngày sinh
Bidanh
Nvarchar
50
NULL
Bí danh
Gioitinh
Nvarchar
50
NULL
Giới tính
CMND
Nvarchar
50
NULL
Chứng minh thư nhân dân
Dantoc
Nvarchar
50
NULL
Dân tộc
Quequan
Nvarchar
50
NULL
Quê quán
Hocvan
Nvarchar
50
NULL
Học vấn
Moiquanhe
Nvarchar
50
NULL
Mối quan hệ
Magiaykhen
Char
10
NOT NULL
Mã giấy khen
Makiluat
Char
10
NOT NULL
Mã kỉ luật
Noiohiennay
Nvarchar
50
NULL
Nơi ở hiện nay
Ghichu
Nvarchar
50
NULL
Ghi chú
2. Cơ sở dữ liệu: Bảng “HỘ KHẨU”:
tblhokhau
Tên trường
Kiểu
Cỡ
Ràng buộc
Ghi chú
Quyenso
Varchar
50
Khóa chính NOT NULL
Quyển số
Tenchuho
Nvarchar
50
NOT NULL
Tên chủ hộ
Sothanhvien
Int
4
NULL
Số thành viên
Ngaylap
Date/time
8
NULL
Ngày lập
Ghichu
Nvarchar
50
NULL
Ghi chú
3. Cơ sở dữ liệu: Bảng “KHAI SINH”:
tblkhaisinh
Tên trường
Kiểu
Cỡ
Ràng buộc
Ghi chú
Quyenso
Varchar
50
Khóa chính NOT NULL
Quyển số
Sohieu
Varchar
50
NOT NULL
Số hiệu
Hotennguoidcksinh
Nvarchar
50
NULL
Họ tên người được khai sinh
Gioitinh
Nvarchar
50
NULL
Giới tính
Ngaysinh
Date/Time
8
NULL
Ngày sinh
Noisinh
Nvarchar
50
NULL
Nơi sinh
Dantoc
Nvarchar
50
NULL
Dân tộc
Quoctich
Nvarchar
50
NULL
Quốc tịch
Quequan
Nvarchar
50
NULL
Quê quán
Hotencha
Nvarchar
50
NULL
Họ tên bố
Dantoccha
Nvarchar
50
NULL
Dân tộc bố
Quoctichcha
Nvarchar
50
NULL
Quốc tịch bố
Ngaysinhcha
Date/time
8
NULL
Ngày sinh bố
Quequancha
Nvarchar
50
NULL
Quê quán bố
Noithuongtrucha
Nvarchar
50
NULL
Nơi thường trú bố
Hotenme
Nvarchar
50
NULL
Họ và tên mẹ
Dantocme
Nvarchar
50
NULL
Dân tộc mẹ
Quoctichme
Nvarchar
50
NULL
Quốc tịch mẹ
Ngaysinhme
Date/time
8
NULL
Ngày sinh mẹ
Quequanme
Nvarchar
50
NULL
Quê quán mẹ
Noithuongtrume
Nvarchar
50
NULL
Nơi thường trú mẹ
Tinhtranghonnhan
Nvarchar
50
NULL
Tình trạng hôn nhân
Nguoikhai
Nvarchar
50
NULL
Người khai
Moiquanhe
Nvarchar
50
NULL
Mối quan hệ
Canbohotich
Nvarchar
50
NULL
Cán bộ hộ tịch
Nguoicap
Nvarchar
50
NULL
Người cấp
Chucvu
Nvarchar
50
NULL
Chức vụ
Ngaycap
Date/tme
8
NULL
Ngày cấp
Noicap
Nvarchar
50
NULL
Nơi cấp
Trangthai
Nvarchar
50
NULL
Trạng thái
Ghichu
Nvarchar
50
NULL
Ghi chú
4.2 Mô hình thực thể và quan hệ
Các modul xử lý
Sơ đồ khối quá trình đăng nhập
Không hợp lệ
Bắt đầu
Nhâp Username và Password
Kiểm tra tính hợp lệ
Hạn chế quyền hạn
Kết thúc
Hợp lệ
b. Sơ đồ khối quá trình nhập mới một hồ sơ.
Bắt đầu
Nhập thông tin về cán bộ
Kiểm tra tính hợp lệ của thông tin
Cập nhật Cơ sở dữ liệu
Kết thúc
Cập nhật
Đúng
Có
Không
Sai
c.Sơ đồ khối chức năng thống kê báo cáo.
Bắt đầu
Nhập thông tin cần báo cáo, thống kê
Thống kê,báo cáo
In ấn ?
Đưa thông tin ra màn hình
Đưa thông tin ra máy in
Kết thúc
Không
Có
II. GIAO DIỆN CHƯƠNG TRÌNH
Giao diện LoGin
b.Giao diện đăng nhập
c. Giao diên manu chính
d. Giao diện cập nhật nhân khẩu
e. Giao diện nhân khẩu
f.Giao diện Khen thưởng – kỷ luật
g. Giao diện khai sinh
III. MỘT SỐ ĐOẠN MÃ LỆNH CHÍNH CỦA CHƯƠNG TRÌNH
Phần modul
Imports System.Data.SqlClient
Module Module1
Public str As String
Public bien As String
Public user, pass, group, test, SQLstr As String
Public Sub truyvan(ByVal SQL As String)
Dim cnn As New SqlConnection(str)
Try
cnn.Open()
Dim comm As New SqlCommand(SQL, cnn)
comm.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message.ToString)
Finally
If cnn.State = ConnectionState.Closed Then
cnn.Open()
cnn.Close()
cnn.Dispose()
End If
End Try
End Sub
End Module
*Code của Form Kết Nối
Private Sub btnKetNoi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnKetNoi.Click
Dim myconnection As SqlConnection
str = "server=" & TextBox1.Text & ";database=" & TextBox2.Text
If RadioButton1.Checked And TextBox1.Text "" And TextBox2.Text "" Then
str += ";integrated security=true"
ElseIf (RadioButton2.Checked) And TextBox1.Text "" Or TextBox2.Text "" Or TextBox3.Text "" Or TextBox4.Text "" Then
str += ";uid=" & TextBox3.Text & ";password=" & TextBox4.Text()
Else
MsgBox("Lỗi kết nối")
End If
myconnection = New SqlConnection(str)
Try
If myconnection.State = ConnectionState.Closed Then
myconnection.Open()
'MsgBox("Kết nối thành công")
dangnhap.Show()
Me.Hide()
Else
MsgBox("thong so sai" & TextBox1.Text & vbCrLf & TextBox2.Text & vbCrLf & TextBox3.Text & vbCrLf & TextBox4.Text)
End If
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
*Code của Form nhân khẩu
Imports System.Data.SqlClient
Public Class nhankhau
Dim b, c As String
Private Sub nhankhau_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim conn As New SqlConnection(str)
conn.Open()
Dim adap As New SqlDataAdapter("select * from nhankhau", conn)
Dim tbl As New DataTable
adap.Fill(tbl)
DataGridView1.DataSource = tbl
Dim da As New SqlDataAdapter("select distinct quyenso from hokhau", conn)
Dim tbl1 As New DataTable
da.Fill(tbl1)
ComboBox1.DataSource = tbl1
ComboBox1.DisplayMember = tbl1.Columns(0).ToString
ComboBox1.ValueMember = tbl1.Columns(0).ToString
Dim dap As New SqlDataAdapter("select distinct magiaykhen from khenthuong", conn)
Dim tbl2 As New DataTable
dap.Fill(tbl2)
com1.DataSource = tbl2
com1.DisplayMember = tbl2.Columns(0).ToString
com1.ValueMember = tbl2.Columns(0).ToString
Dim dap1 As New SqlDataAdapter("select distinct makiluat from kyluat", conn)
Dim tbl3 As New DataTable
dap1.Fill(tbl3)
com2.DataSource = tbl3
com2.DisplayMember = tbl3.Columns(0).ToString
com2.ValueMember = tbl3.Columns(0).ToString
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As String
If RadioButton1.Checked Then
a = "Nam"
Else
a = "Nữ"
End If
Dim conn As New SqlConnection(str)
conn.Open()
truyvan("insert into nhankhau values('" + ComboBox1.Text + "',N'" + txtten.Text + "',N'" + txtnsinh.Text + "',N'" + txtbidanh.Text + "',N'" + a + "','" + txtCMND.Text + "',N'" + txtdtoc.Text + "',N'" + txtque.Text + "',N'" + txthocvan.Text + "',N'" + txtquanhe.Text + "','" + com1.Text + "','" + com2.Text + "',N'" + txtnoio.Text + "',N'" + txtghichu.Text + "')")
nhankhau_Load(sender, e)
If txtquanhe.Text "Không có quan hệ" Then
truyvan("update hokhau set sothanhvien=sothanhvien +1 where quyenso='" + ComboBox1.Text + "'and tenchuho N'" + txtten.Text + "'") 'pai khac ten chu ho vi moi lần nhập nếu trùng tên thì hệ thống cũng tự động tăng
nhankhau_Load(sender, e)
End If
txtma.Text = ""
ComboBox1.Text = ""
txtten.Text = ""
txtnsinh.Text = ""
txtbidanh.Text = ""
txtCMND.Text = ""
txtdtoc.Text = ""
txtque.Text = ""
txthocvan.Text = ""
txtquanhe.Text = ""
com1.Text = ""
com2.Text = ""
txtnoio.Text = ""
TextBox1.Text = ""
txtghichu.Text = ""
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim a As String
If RadioButton1.Checked Then
a = "Nam"
Else
a = "Nữ"
End If
Dim str1 As String = " "
Dim conn As New SqlConnection(str)
truyvan("update nhankhau set quyenso='" + ComboBox1.Text + "',hoten=N'" + txtten.Text + "',ngaysinh='" + txtnsinh.Text + "',bidanh=N'" + txtbidanh.Text + "',gioitinh=N'" + a + "',CMND='" + txtCMND.Text + "',dantoc=N'" + txtdtoc.Text + "',quequan=N'" + txtque.Text + "',hocvan=N'" + txthocvan.Text + "',moiquanhe=N'" + txtquanhe.Text + "',magiaykhen='" + com1.Text + "',makiluat='" + com2.Text + "',noiohiennay=N'" + txtnoio.Text + "',Ghichu=N'" + txtghichu.Text + "' where manhankhau= '" + txtma.Text + "'")
nhankhau_Load(sender, e)
txtma.Text = ""
ComboBox1.Text = ""
txtten.Text = ""
txtnsinh.Text = ""
txtbidanh.Text = ""
txtCMND.Text = ""
txtdtoc.Text = ""
txtque.Text = ""
txthocvan.Text = ""
txtquanhe.Text = ""
com1.Text = ""
com2.Text = ""
txtnoio.Text = ""
TextBox1.Text = ""
txtghichu.Text = ""
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
If MsgBox("Bạn có chắc muốn xóa bản ghi này không?", MsgBoxStyle.YesNo, "Xóa bản ghi") = MsgBoxResult.Yes Then
truyvan("delete nhankhau where manhankhau='" + txtma.Text + "'and moiquanhe'chủ hộ'")
truyvan("update hokhau set sothanhvien=sothanhvien -1 where quyenso='" + ComboBox1.Text + "'and tenchuho N'" + txtten.Text + "'")
nhankhau_Load(sender, e)
txtma.Text = ""
ComboBox1.Text = ""
txtten.Text = ""
txtnsinh.Text = ""
txtbidanh.Text = ""
txtCMND.Text = ""
txtdtoc.Text = ""
txtque.Text = ""
txthocvan.Text = ""
txtquanhe.Text = ""
com1.Text = ""
com2.Text = ""
txtnoio.Text = ""
TextBox1.Text = ""
End If
truyvan("delete nhankhau where manhankhau='" + txtma.Text + "'")
truyvan("update hokhau set sothanhvien=sothanhvien -1 where quyenso='" + ComboBox1.Text + "'and tenchuho N'" + txtten.Text + "'")
nhankhau_Load(sender, e)
txtma.Text = ""
ComboBox1.Text = ""
txtten.Text = ""
txtnsinh.Text = ""
txtbidanh.Text = ""
txtCMND.Text = ""
txtdtoc.Text = ""
txtque.Text = ""
txthocvan.Text = ""
txtquanhe.Text = ""
com1.Text = ""
com2.Text = ""
txtnoio.Text = ""
TextBox1.Text = ""
End Sub
Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
txtma.Text = DataGridView1.Rows(e.RowIndex).Cells(0).Value.ToString
ComboBox1.Text = DataGridView1.Rows(e.RowIndex).Cells(1).Value.ToString
txtten.Text = DataGridView1.Rows(e.RowIndex).Cells(2).Value.ToString
txtnsinh.Text = DataGridView1.Rows(e.RowIndex).Cells(3).Value.ToString
txtbidanh.Text = DataGridView1.Rows(e.RowIndex).Cells(4).Value.ToString
If DataGridView1.Rows(e.RowIndex).Cells(5).Value.ToString = "Nam" Then
RadioButton1.Select()
Else
RadioButton2.Select()
End If
txtCMND.Text = DataGridView1.Rows(e.RowIndex).Cells(6).Value.ToString
txtdtoc.Text = DataGridView1.Rows(e.RowIndex).Cells(7).Value.ToString
txtque.Text = DataGridView1.Rows(e.RowIndex).Cells(8).Value.ToString
txthocvan.Text = DataGridView1.Rows(e.RowIndex).Cells(9).Value.ToString
txtquanhe.Text = DataGridView1.Rows(e.RowIndex).Cells(10).Value.ToString
com1.Text = DataGridView1.Rows(e.RowIndex).Cells(11).Value.ToString
com2.Text = DataGridView1.Rows(e.RowIndex).Cells(12).Value.ToString
txtnoio.Text = DataGridView1.Rows(e.RowIndex).Cells(13).Value.ToString
End Sub
Private Sub txtten_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtten.MouseLeave
txtquanhe.Text = b
Dim conn As New SqlConnection(str)
conn.Open()
Dim sqlcom As String = "select * from hokhau where quyenso='" + ComboBox1.Text + "'"
Dim comm As SqlCommand = New SqlCommand(sqlcom, conn)
Dim dr As SqlDataReader = comm.ExecuteReader
If dr.HasRows Then
While dr.Read
test = dr("tenchuho")
If dr("tenchuho") = txtten.Text Then
b = "Chủ hộ"
End If
dr.Close()
Exit Sub
End While
End If
End Sub
Private Sub ComboBox1_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedValueChanged
Dim myconn As New SqlConnection(str)
myconn.Open()
Dim mysql As String = "select tenchuho from hokhau where quyenso='" + ComboBox1.Text + "'"
Dim mycomm As SqlCommand = New SqlCommand(mysql, myconn)
Dim mydr As SqlDataReader = mycomm.ExecuteReader
While mydr.Read()
TextBox1.Text = mydr("tenchuho")
End While
myconn.Close()
End Sub
End Class
*Code của Form Khai sinh
Imports System.Data.SqlClient
Public Class Khaisinh
Dim gt, ttHonNhan, TrangThai As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim gt, ttHonNhan, TrangThai As String
If RDnam.Checked Then
gt = "Nam"
Else
gt = "Nữ"
End If
If RDkethon.Checked Then
ttHonNhan = "Có kết hôn"
Else
If RDko.Checked Then
ttHonNhan = "Không kết hôn"
Else
If RDboroi.Checked Then
ttHonNhan = "Con bỏ rơi"
Else
ttHonNhan = "Không xác định"
End If
End If
End If
If RD1.Checked Then
TrangThai = "Đúng hạn"
Else
If RD2.Checked Then
TrangThai = "Trễ hạn"
Else
TrangThai = "Không xác định"
End If
End If
Dim conn As New SqlConnection(str)
conn.Open()
truyvan("insert into khaisinh values('" + cmbquyen.Text + "','" + txtsohieu.Text + "',N'" + txtten.Text + "',N'" + gt + "','" + CDate(DTPsinh.Text) + "',N'" + txtnoisinh.Text + "',N'" + cmbdtoc.Text + "',N'" + cmbquoctich.Text + "',N'" + txtque.Text + "',N'" + txtcha.Text + "',N'" + cmbcha.Text + "',N'" + cbmqch.Text + "','" + CDate(DTPcha.Text) + "',N'" + txtqcha.Text + "',N'" + txtttrucha.Text + "',N'" + txtme.Text + "',N'" + cbmme.Text + "',N'" + cbmqme.Text + "','" + CDate(DTPme.Text) + "',N'" + txtqme.Text + "',N'" + txtttrume.Text + "',N'" + ttHonNhan + "',N'" + txtnkhaisinh.Text + "',N'" + txtmqh.Text + "',N'" + txthotich.Text + "',N'" + txtngcap.Text + "',N'" + txtchucvu.Text + "','" + CDate(DTPngaycap.Text) + "',N'" + txtnoicap.Text + "',N'" + TrangThai + "',N'" + txtghichu.Text + "')")
truyvan("update hokhau set sothanhvien=sothanhvien +1 where quyenso='" + cmbquyen.Text + "'")
truyvan("insert into nhankhau values('" + cmbquyen.Text + "',N'" + txtten.Text + "',N'" + CDate(DTPsinh.Text) + "',N'',N'" + gt + "','',N'" + cmbdtoc.Text + "',N'" + txtque.Text + "',N'','Con','GK1','KL1',N'" + txtttrucha.Text + "',N'')")
End Sub
Private Sub Khaisinh_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim conn As New SqlConnection(str)
conn.Open()
Dim adapter As New SqlDataAdapter("select quyenso from hokhau", conn)
Dim tbl As New DataTable
adapter.Fill(tbl)
cmbquyen.DataSource = tbl
cmbquyen.DisplayMember = tbl.Columns(0).ToString
cmbquyen.ValueMember = tbl.Columns(0).ToString
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ctkhaisinh.Show()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
If RDnam.Checked Then
gt = "Nam"
Else
gt = "Nữ"
End If
If RDkethon.Checked Then
ttHonNhan = "Có kết hôn"
ElseIf RDko.Checked Then
ttHonNhan = "Không kết hôn"
ElseIf RDboroi.Checked Then
ttHonNhan = "Con bỏ rơi"
Else
ttHonNhan = "Không xác định"
End If
If RD1.Checked Then
TrangThai = "Đúng hạn"
ElseIf RD2.Checked Then
TrangThai = "Trễ hạn"
Else
TrangThai = "Không xác định"
End If
truyvan("update khaisinh set hotennguoidcksinh=N'" + txtten.Text + "',gioitinh=N'" + gt + "',ngaysinh='" + DTPsinh.Text + "',noisinh=N'" + txtnoisinh.Text + "',dantoc=N'" + cmbdtoc.Text + "',quoctich=N'" + cmbquoctich.Text + "',quequan=N'" + txtque.Text + "',hotencha=N'" + txtcha.Text + "',dantoccha=N'" + cmbcha.Text + "',quoctichcha=N'" + cbmqch.Text + "',ngaysinhcha='" + DTPcha.Text + "',quequancha=N'" + txtqcha.Text + "',noithuongtrucha=N'" + txtttrucha.Text + "',hotenme=N'" + txtme.Text + "',dantocme=N'" + cbmme.Text + "',quoctichme=N'" + cbmqme.Text + "',ngaysinhme='" + DTPme.Text + "',quequanme=N'" + txtqme.Text + "',noithuongtrume=N'" + txtttrume.Text + "',tinhtranghonnhan=N'" + ttHonNhan + "',nguoikhai=N'" + txtnkhaisinh.Text + "',moiquanhe=N'" + txtmqh.Text + "',canbohotich=N'" + txthotich.Text + "',nguoicap=N'" + txtngcap.Text + "',chucvu=N'" + txtchucvu.Text + "',ngaycap='" + DTPngaycap.Text + "',noicap=N'" + txtnoicap.Text + "',trangthai=N'" + TrangThai + "',ghichu=N'" + txtghichu.Text + "' where sohieu='" + txtsohieu.Text + "' and quyenso='" + cmbquyen.Text + "'")
Khaisinh_Load(sender, e)
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
truyvan("delete khaisinh where sohieu='" + txtsohieu.Text + "'and quyenso='" + cmbquyen.Text + "'")
truyvan("update hokhau set sothanhvien=sothanhvien-1 where quyenso='" + cmbquyen.Text + "'")
Khaisinh_Load(sender, e)
txtcha.Text = ""
txtchucvu.Text = ""
txtghichu.Text = ""
txthotich.Text = ""
txtme.Text = ""
txtmqh.Text = ""
txtngcap.Text = ""
txtnkhaisinh.Text = ""
txtnoicap.Text = ""
txtnoisinh.Text = ""
txtqcha.Text = ""
txtqme.Text = ""
txtque.Text = ""
txtsohieu.Text = ""
txtten.Text = ""
txtttrucha.Text = ""
txtttrume.Text = ""
cmbcha.Text = ""
cmbdtoc.Text = ""
cmbquoctich.Text = ""
cmbquyen.Text = ""
cbmme.Text = ""
cbmqch.Text = ""
cbmqme.Text = ""
RD1.Checked = False
RD2.Checked = False
rd3.Checked = False
RDboroi.Checked = False
RDkethon.Checked = False
RDko.Checked = False
RDkxacdinh.Checked = False
RDnam.Checked = False
RDnu.Checked = False
DTPcha.Value = Today
End Sub
Private Sub txtqme_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtqme.KeyPress
If txtqme.Text = "nt" Then
txtqme.Text = txtque.Text
End If
End Sub
Private Sub txtttrume_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtttrume.KeyPress
If txtttrume.Text = "nt" Then
txtttrume.Text = txtttrucha.Text
End If
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
Dim myconn As New SqlConnection(str)
myconn.Open()
Dim mysql As String = "select * from khaisinh where sohieu='" + txtsohieu.Text + "' and quyenso='" + cmbquyen.Text + "'"
Dim mycomm As SqlCommand = New SqlCommand(mysql, myconn)
Dim mydr As SqlDataReader = mycomm.ExecuteReader
While mydr.Read()
txtten.Text = mydr("hotennguoidcksinh")
If mydr("gioitinh") = "Nam" Then
RDnam.Checked = True
Else
RDnu.Checked = True
End If
DTPsinh.Text = mydr("ngaysinh")
txtnoisinh.Text = mydr("noisinh")
cmbdtoc.Text = mydr("dantoc")
cmbquoctich.Text = mydr("quoctich")
txtque.Text = mydr("quequan")
txtcha.Text = mydr("hotencha")
cmbcha.Text = mydr("dantoccha")
cbmqch.Text = mydr("quoctichcha")
DTPcha.Text = mydr("ngaysinhcha")
txtqcha.Text = mydr("quequancha")
txtttrucha.Text = mydr("noithuongtrucha")
txtme.Text = mydr("hotenme")
cbmme.Text = mydr("dantocme")
cbmqme.Text = mydr("quoctichme")
DTPme.Text = mydr("ngaysinhme")
txtqme.Text = mydr("quequanme")
txtttrume.Text = mydr("noithuongtrume")
If mydr("tinhtranghonnhan") = "Có kết hôn" Then
RDkethon.Checked = True
ElseIf mydr("tinhtranghonnhan") = "Không kết hôn" Then
RDko.Checked = True
ElseIf mydr("tinhtranghonnhan") = "Bỏ rơi" Then
RDboroi.Checked = True
Else
RDkxacdinh.Checked = True
End If
txtnkhaisinh.Text = mydr("nguoikhai")
txtmqh.Text = mydr("moiquanhe")
txthotich.Text = mydr("canbohotich")
txtngcap.Text = mydr("nguoicap")
txtchucvu.Text = mydr("chucvu")
DTPngaycap.Text = mydr("ngaycap")
txtnoicap.Text = mydr("noicap")
If mydr("trangthai") = "Đúng hạn" Then
RD1.Checked = True
ElseIf mydr("trangthai") = "Trễ hạn" Then
RD2.Checked = True
Else
rd3.Checked = True
End If
txtghichu.Text = mydr("ghichu")
End While
myconn.Close()
End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
txtten.Text = ""
RDnam.Checked = False
RDnu.Checked = False
DTPsinh.Text = ""
txtnoisinh.Text = ""
cmbdtoc.Text = ""
cmbquoctich.Text = ""
txtque.Text = ""
txtcha.Text = ""
cmbcha.Text = ""
cbmqch.Text = ""
DTPcha.Text = ""
txtqcha.Text = ""
txtttrucha.Text = ""
txtme.Text = ""
cbmme.Text = ""
cbmqme.Text = ""
DTPme.Text = ""
txtqme.Text = ""
txtttrume.Text = ""
RDkethon.Checked = False
RDko.Checked = False
RDboroi.Checked = False
RDkxacdinh.Checked = False
txtnkhaisinh.Text = ""
txtmqh.Text = ""
txthotich.Text = ""
txtngcap.Text = ""
txtchucvu.Text = ""
DTPngaycap.Text = ""
txtnoicap.Text = ""
RD1.Checked = False
RD2.Checked = False
rd3.Checked = False
txtghichu.Text = ""
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
test = cmbquyen.Text
bien = txtsohieu.Text
Dim frm As New baocao
frm.MdiParent = xulythongtin
frm.Show()
End Sub
Private Sub cmbquyen_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbquyen.SelectedIndexChanged
Dim myconn As New SqlConnection(str)
myconn.Open()
Dim mysql As String = "select * from nhankhau where quyenso='" + cmbquyen.Text + "' and moiquanhe=N'chủ hộ'"
Dim mycomm As SqlCommand = New SqlCommand(mysql, myconn)
Dim mydr As SqlDataReader = mycomm.ExecuteReader
While mydr.Read()
txtcha.Text = mydr("hoten")
cmbcha.Text = mydr("dantoc")
DTPcha.Text = mydr("ngaysinh")
txtqcha.Text = mydr("quequan")
txtttrucha.Text = mydr("noiohiennay")
End While
myconn.Close()
myconn.Open()
Dim mysql1 As String = "select * from nhankhau where quyenso='" + cmbquyen.Text + "' and moiquanhe=N'Vợ'"
Dim mycomm1 As SqlCommand = New SqlCommand(mysql1, myconn)
Dim mydr1 As SqlDataReader = mycomm1.ExecuteReader
While mydr1.Read()
txtme.Text = mydr1("hoten")
cbmme.Text = mydr1("dantoc")
DTPme.Text = mydr1("ngaysinh")
txtqme.Text = mydr1("quequan")
txtttrume.Text = mydr1("noiohiennay")
End While
myconn.Close()
End Sub
End Class
*Code Form Báo cáo Kết Hôn
Private Sub BCKetHon_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim conn As New SqlConnection(str)
conn.Open()
Dim sqlstr As String
sqlstr = "select * from kethon where quyenso='" + test + "'and sohieu='" + bien + "'"
Dim ad As New SqlDataAdapter(sqlstr, conn)
Dim ds As New DataSet
ad.Fill(ds, "DTKetHon")
Dim dts As New ReportDataSource
dts.Name = "DSKetHon_DTKetHon"
dts.Value = ds.Tables("DTKetHon")
ReportViewer1.LocalReport.ReportEmbeddedResource = "quanlynhankhau.RptKetHon.rdlc" 'rdlc là đuôi của report
ReportViewer1.LocalReport.DataSources.Add(dts)
Me.ReportViewer1.RefreshReport()
End Sub
End Class
KẾT LUẬN
Chương trình Quản lý hộ khẩu sẽ giúp cho việc tin học hóa trong Phường cũng như công tác hành chính, cán bộ được tốt hơn, chính xác và khóa học hơn, làm tăng năng suất và hiệu quả công việc. Trên cơ sở đó giúp cho Lãnh đạo quản lý hộ khẩu, nhân khẩu một cách tự động hóa, tránh được những sai sót, những hạn chế mà cách quản lý thủ công gây ra, đáp ứng được yêu cầu lãnh đạo, chỉ đạo của cấp trên trong mọi tình huống kịp thời nhất.
Chương trình Quản lý hộ khẩu cấp phường hoàn thành tương đối tốt đáp ứng được nhu cầu cập nhật, truy vấn thông tin nhanh chóng và giải quyết được việc tổ chức nhất quán CSDL trong lưu trữ thông tin. Tuy nhiên, chương trình vẫn còn nhược điểm, thiếu sót cần được hoàn thiện trong thời gian tới.
Em xin chân thành cảm ơn các thầy cô giáo trong khoa CNTT trường DHDL Phương Đông đã nhiệt tình dạy dỗ, trang bị kiến thức giúp em trong cả khóa học và hoàn thành tốt đồ án này. Đặc biệt, em xin chân thành cảm ơn thầy Trần Văn Lộc, người đã tận tình chỉ bảo, giúp đỡ em hoàn thành tốt đồ án tốt nghiệp này.
Hà Nội, ngày 22 tháng 4 năm 2009
Sinh viên
Nguyễn Thị Hoài Thu
TÀI LIỆU THAM KHẢO
1. Phân tích và Thiết kế hệ thống – TS Lê Văn Phùng
2. Cơ sở Dữ Liệu – TS Lê Văn Phùng
3. Bài giảng VisualBasic.Net – Nguyễn Bá Tiến
4. Hệ quản trị CSDL SQL Server - Phan Hiền
LỜI CAM ĐOAN
“Em xin cam đoan đây là công trình nghiên cứu của riêng em. Những tài liệu trong đồ án tốt nghiệp là hoàn toàn trung thực. Các kết quả nghiên cứu do chính em thực hiện dưới sự chỉ đạo của thầy giáo hướng dẫn”.
TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG
KHOA CÔNG NGHỆ THÔNG TIN
*******
PHIẾU ĐÁNH GIÁ ĐỒ ÁN TỐT NGHIỆP
Kính gửi:
Ban chủ nhiệm khoa Công nghệ thông tin
Đề nghị đọc, nhận xét, đánh giá đồ án với tiêu đề: “Tìm hiểu và xây dựng chương trình quản lý hộ khẩu cấp phường” theo các nội dung cụ thể dưới đây:
Ý nghĩa lý luận, thực tiễn của đề tài.
Đặt vấn đề:
Cơ sở đặt vấn đề (0,5 điểm).
Mức độ rõ ràng trong phương pháp trình bày vấn đề (1 điểm).
Tính logic và hợp lý (0,5 điểm).
Cách giải quyết vấn đề:
Cơ sở lý luận và phương pháp luận ( 2 điểm).
Độ tin cậy, cập nhập, tính chính xác về nguồn gốc của số liệu, tài liệu (1 điểm).
Mức độ phù hợp của phương pháp xử lý thông tin ( 1 điểm).
Mức độ hoàn thành mục tiêu, nhiệm vụ ( 1 điểm).
Mức độ nắm vững kiến thức và vận dụng (1 điểm).
Kết luận và kiến nghị (1 điểm).
Bố cục, văn phòng (1 điểm).
Xếp loại (xuất sắc, giỏi, khá, trung bình khá, trung bình, kém ), cho điểm( số nguyên).
Hà Nội, ngày tháng năm 2009
Ký tên
Nguyễn Thị Hoài Thu
Các file đính kèm theo tài liệu này:
- 2526.doc