Đồ án Quản lý hộ khẩu cấp phường

• 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

doc117 trang | Chia sẻ: Dung Lona | Lượt xem: 1152 | Lượt tải: 0download
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:

  • doc2526.doc
Tài liệu liên quan