Xây dựng hệ thống thông tin quản lý xuất nhập hàng tại công ty công nghiệp chế biến thực phẩm quốc tế tại Chi nhánh Nha Trang

Hệ thống quản lý xuất nhập hàng giúp cho việc quản lý mua bán của công ty được thực hiện một cách thuận tiện nhanh chóng và an tồn, góp phần tiết kiệm thời gian và giảm bớt các công việc thủ công (tuy nhiên không thể thay thế hồn tồn). Hệ thống đáp ứng được những yêu cầu cơ bản trong công tác cập nhật, xử lý xuất nhập hàng một cách nhanh chóng, chính xác như cập nhật dữ liệu, tìm kiếm thông tin, báo cáo tổng hợp xuất, nhập, tồn hàng. Giao diện thân thiện và dễ dàng cho người sử dụng.

pdf108 trang | Chia sẻ: lylyngoc | Ngày: 27/11/2013 | Lượt xem: 1561 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Xây dựng hệ thống thông tin quản lý xuất nhập hàng tại công ty công nghiệp chế biến thực phẩm quốc tế tại Chi nhánh Nha Trang, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
y vài năm nhưng nó vẫn còn tính năng ưu việt cho bạn hệ thống phát triển ứng dụng của Windows tồn diện và trọn gói. Microsoft Visual Basic 6.0 có nhiều công cụ hổ trợ mà bạn có thể viết thêm và biên dịch các file trợ giúp. Nó bao gồm: 1. Các công cụ điều khiển ( controls). Bao gồm các công cụ trên cửa sổ toolbox , những cái mà bạn có thể đặt vào biểu mẫu để tương tác với người dùng và điều khiển luồng chương trình. 2. Chương trình ( Program). Là tập hợp các câu lệnh để cho máy tính thực hiện các công việc nào đó theo ý muốn người lập trình. Bản thân Microsoft Visual Basic là trình ứng dụng. Bạn tải và thực hiện hệ thống giống như thực hiện các chương trình ứng dụng khác. Nó còn là công cụ rất tuyệt vời, các lập trình viên viết, kiểm tra và chạy các trình ứng dụng của Windows. Nó cung cấp các Form windows là vùng làm việc, nó duy trì các đối tượng tương tác của chương trình như các nút lệnh, các nhãn, các hợp thoại văn bản, các thanh cuộn và các công cụ điều khiển khác. 1. Đề án (Project): là tập hợp các file bạn tạo cho chương trình ứng dụng Windows của mình. 2. Wizard : Đây là các hộp thoại hỏi và trả lời tự động làm việc. Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 65 - GVHD: Bùi Thị Hoà 3. Trình biên dịch (Compiler): là hệ thống chuyển đổi chương trình bạn viết thành trình ứng dụng khả thi của máy tính. 4. Developer Studio: là môi trường phát triển của Visual Basic. Mặc dù Microsoft Visual Basic là ngôn ngữ lập trình tồn diện, nhưng nó vẫn duy trì ngôn ngữ BASIC thừa kế nó. Các lập trình viên vào cuối thập niên 1950 đã phát triển ngôn ngữ lập trình BASIC cho các lập trình viên sơ cấp. BASIC dễ sử dụng hơn các ngôn ngữ lập trình khác nhiều lần, như COBOL và FORTRAN. Microsoft không bao giờ quên nền tảng của VB khi phát triển nó. Nó giúp cho người lập trình có được nhiều chương trình Windows chỉ trong thời gian ngắn. Microsoft Visual Basic 6.0 có nhiều ấn bản khác nhau bao gồm : Standard, Profectional và Enterprise. Aán bản Enterprise cung cấp cho các lập trình viên phần mềm client /server với các công cụ mở rộng cho các máy tính ở xa và phân phối các trình ứng dụng. Microsoft tăng cường tính năng làm việc trên mạng, môi trường phân phối cho những người dùng phiên bản Enterprise. Một số tính năng mới trong Visual Basic 6.0 : Microsoft Visual Basic 6.0 có nhiều tính năng mới, các điều khiển mới cho phép ta viết chương trình ứng dụng kết hợp giao diện, các xử lý và tính năng của office 97 và trình duyệt WEB Internet Explorer. Microsoft Visual Basic 6.0 cho phép ta lập trình để thêm điều khiển vào dự án tự động và có thể tạo ra các ActiveX hiệu chỉnh. Ta cũng có thể viếc các ứng dụng phía máy chủ ( server-side) dùng HTML động nhúng kết với các thư viện liên kết động của Internet Information Server. Một vài ứng dụng với các cãi tiến giúp cho truy cập dữ liệu ở tầm cở vĩ mô liên quan đến hàng trăm, hàng nghìn người sử dụng qua mạng hay qua Internet. 3. Làm việc với Microsoft Visual Basic 6.0. 3.1. Khám phá dữ liệu mới. Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 66 - GVHD: Bùi Thị Hoà Visual Basic cung cấp các đối tượng dữ liệu ActiveX ( ActiveX Data Object – ADO ). Trong các phiên bản trước của VB, truy cập dữ liệu được thực hiện thông qua DAO ( Đối tượng truy cập dữ liệu- Data Access Object ) và RDO ( Đối tượng dữ liệu từ xa- Remote Data Object). ADO tổng hợp và thay thế các kỹ thuật này. ADO dễ dùng hơn và có tầm hoạt động rộng hơn. Ta có thể dùng ADO để kết nối với cơ sở dữ liệu của một máy để bàn hoặc một máy chủ chứa cơ sở dữ liệu ở xa. Hơn thế nữa ADO còn cho phép truy cập nhiều kiểu dữ liệu, ví dụ thư điện tử. Kỹ thuật ADO hiện nay chứa trong điều kiển mới, điều kiển dữ liệu ADO. Nó trông giống như các điều khiển dữ liệu trong các phiên bản trước, nhưng phần thuộc tính của điều khiển, ta sẽ thấy có nhiều điểm khác. Nó cho phép kết nối với cơ sở dữ liệu để bàn hay cơ sở dữ liệu máy chủ ODBC trên mạng, hoặc ta có thể tạo kết nối đến các cơ sở dữ liệu khác. Ngồi ADO, Visual Basic 6 còn có bộ công cụ kỹ thuật mới giúp truy cập dữ liệu dễ dàng hơn. Trình thiết kế môi truờng dữ liệu cho phép cho phép xem xét và thao tác dữ liệu trong CSDL khác nhau, bởi vì bản thân môi trường dữ liệu là các đối tượng, ta có thể sử dụng chúng như một điều khiển dữ liệu. Thậm chí ta có thể gắn nó với các điều khiển khác như hợp văn bản hay nhãn. Một vài điều khiển dữ liệu khác cho phép ta tận dụng các thế mạnh của điều khiển dữ liệu ADO. Điều khiển DataGrid cho phép xem dữ liệu dưới dạng bảng và các dòng và cột. DataList và DataCombo tương tự như DBList và Dbcombo trong các phiên bản trước, ta có thể dùng chúng để lấy một danh sách dữ liệu từ điều khiển ADO trong cấu hình hợp danh sách ( ListBox ) hoặc hợp kết hợp ( ComboBox) hoặc chúng ta có thể sử dụng FlexGrid để xem những dữ liệu phức tạp. Visual Basic 6.0 mở rộng khả năng báo cáo với các trình báo cáo dữ liệu cho phép tạo, xem trước và in các báo cáo trong Visual Basic tương tự như ACCESS. Ta có thể lấy các điều khiển báo cáo từ hợp cong cụ báo cáo dữ liệu mới và đưa vào biểu mẩu báo cáo dữ liệu. Sau đó gọi phương thức PrintReport() của báo cáo dữ liệu. Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 67 - GVHD: Bùi Thị Hoà 3.2. Bổ sung mới về lập trình hướng đối tượng. Visual Basic 6.0 giúp tạo các lớp và điều khiển ActiveX phong phú hơn. Giờ đây ta có thể lưu dữ liệu qua các lớp tự tạo từ session này sang session khác thông qua túi thuộc tính ( Property bag ). Ta cũng có thể tạo hai kiểu lớp hiệu chỉnh data-aware là data source và Data consumers. Các kiểu lớp dữ liệu này hạot động tương tự như các đối tượng dữ liệu ADO, nhưng chúng đáp ứng được yêu cầu của khách hàng nhiều hơn. Đối với điều khiển ActiveX, ta có thể tạo các điều khiển “hạng nhẹ” trong Visual Basic 6.0. Đây là các điều khiển “Windowless” tốn ít tài nguyên hệ thống hưon các điều khiển khác. Để xác định một điều khiển có phải “Windowless” hay không Visual Basic 6.0 cung cấp thuộc tính mới HasDC. Add-in là công cụ Visual Basic mà các lập trình viên có thể lập trình để tạo cho các lập trình viên khác. Nhưng Add-in được viết trong Visual Basic chỉ có thể thi hành trong IDE của VB. Trình tạo ứng dụng Application Wizard, trình biểu mẫu dữ liệu ( Data Forms Wizard ) là những phần thêm mới.  Một số Wizard / Add-in dùng trong mọi phiên bản như : - Trình đóng gói và triển khai tự động ( Package and development Wizard ) công dụng là chuẩn bị và triển khai ứng dụng cho các máy để bàn hoặc dùng qua mạng. - Trình tạo ứng dụng tự động (Application Wizard ): Khởi tạo khung sườn cho ứng dụng. Nó tự động thêm menu, thanh công cụ, tập tin tài nguyên, các điều khiển ActiveX và điều khiển dữ liệu. - Trình quản lý tự động ( Wizard Manager ): tổ chức các trình tự động khác nhau để có thể truy cập từ trong IDE.  Một số Wizard / Add-in dùng trong phiên bản Enterprise và Proffessional như: - Trình đối tượng dữ liệu tự động ( Data Object Wizard): Tạo các đối tượng dữ liệu liên kết với các điều khiển dữ liệu và các ActiveX hiệu chỉnh. Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 68 - GVHD: Bùi Thị Hoà - Tiện ích xây dựng lớp ( Class builder Ultility ): dùng tạo giao diện các lớp hiểu chỉnh. - Trình thanh công cụ tự động (toolBar Wizard): Dùng giao diện tạo thanh công cụ cho biểu mẫu. - Trình biểu mẫu dữ liệu tự động(Data Form Wizard): Tạo biểu mẫu chứa các điều khiển tham chiếu đến dữ liệu trong một CSDL. - Trình thiết kế Add-in (Add-in Designer) : Tạo các Add-in hiệu chỉnh của VB. - Trình trang thuộc tính tự động( Property page Wizard): Tạo hợp thoại thuộc tính cho các điều khiển ActiveX tự tạo. - Trình gỡ rối T-SQL (T- SQL Debugger): Giúp gỡ rối khi viết các CSDL của SQL Server. - Trình duyệt API Viewer: Giúp tra cứu các khai báo hàm, hằng, kiểu của các Window APIs. - Trình giao diện điều khiển ActiveX (ActiveX control interface Wizard) : Tạo các điều khiển ActiveX. 3.3. Làm việc trong môi trường lập trình.  Tìm hiểu các thành phần của IDE - Định nghĩa IDE : IDE là tên viết tắt của môi trường phát triển tích hợp ( Integrated Development Enviroment). IDE là nơi tạo ra các chương trình Visual Basic, là nơi tập trung các menu, thanh công cụ và các cửa sổ để ta thao tác trên chúng. Mỗi thành phần của IDE có các tính năng ảnh hưởng đến hoạt động lập ttrình khác nhau. - Thanh menu cho phép bạn thao tác trên tồn bộ ứng dụng, thanh công cụ cho phép thao tác, truy cập các chức năng của thanh menu qua các nut trên thanh công cụ. Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 69 - GVHD: Bùi Thị Hoà - Các biểu mẫu (Form) là khối xây dựng chính của chương trình Visual Basic, chúng xuất hiện trong các của sổ Form. Chúng ta có thể thêm các công cụ điều khiển vào biểu mẫu của các đề án( Project). - Project Explorer hiển thị các đề án bạn đang làm cũng như các thành phần khác của đề án, bạn có thể duyệt, cài đặt các thuộc tính của điều khiển, biểu mẫu và module trong của sổ Properties. - Cuối cùng bạn xem xét một hoặc nhiều biểu mẫu trên màn hình thông qua của sổ Form Layout.  Sử dụng một số thanh công cụ trong IDE Chúng ta có thể thêm và xố các thanh công cụ trong IDE của Visual Basic: Thanh công cụ là tâp hợp các nút bấm mang biểu tượng chứa trong một thanh thường đặt dưới thanh menu. Các nút bấm này phải đảm bảo các chức năng thông dụng trong cấu trúc của thanh menu của Visual Basic. Thanh công cụ rất hữu ích và tiết kiệm thời gian để ta chọn qua các mục ở menu con, ta click vào một nút nào đó trên thanh công cụ để gọi một chức năng nào đó trên thanh menu. - Sử dụng thanh công cụ Debug : Thanh công cụ Debug dùng để kiểm tra chương trình và giả quyết một số lõi có thể xãy ra. Khi gỡ rối chương trình ta làm một số việc như chạy từng dòng chương trình, kiểm tra các giá trị biến, hoặc dừng chương trình tại một điểm nghi ngờ nào đó. - Sử dụng thanh công cụ Edit : Thanh công cụ Edit được dùng để viết chương trình trong các cửa sổ code. Nó bao gồm đầy đủ tính năng có ở menu Edit. Một tính năng lý thú của IDE là thanh công cụ Edit có chức năng complete Word, tự động hồn tất các từ khố, nó giúp cho ta tránh được các lỗi cú pháp do gõ sai chính tả. - Thanh công cụ Form Editor dùng để kéo giãn, di chuyển và sắp xếp các điều khiển trên biểu mẫu, nó có tính năng tương tự như menu Format. Thuộc tính ZOrder của điều khiển cho phép điều khiển nào có thể nằm lên trên điều khiển nào, điều khiển có ZOrder bằng không luôn nằm ở bên trên. Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 70 - GVHD: Bùi Thị Hoà - Sử dụng thanh công cụ chuẩn ( Standard )là thanh công cụ chính trong IDE, nó cung cấp nhiều tính năng trong menu File, Project, Debug và Run.  Thêm các điều khiển vào thanh công cụ Hợp công cụ là bảng chứa các điều khiển và ta thiết kế giao diện bằng cách chọn các mẫu điều khiển và đưa chúng vào biểu mẫu. Một số điều khiển có sẳn trong VB ta không thể gỡ bỏ khỏi hộp công cụ gọi là các điều khiển nội tại (intrinsic). Một số nằm ngồi VB chứa trong các tập tin có phần mở rộng là .OCX. Những điều khiển này có thể được thêm vào hoặc gỡ bỏ khỏi hộp công cụ.  Quản lý ứng dụng với Project Explorer Project Explorer trong VB 6.0 giúp ta định hướng và quản lý nhiều dự án, nó cho phép tổ chức nhiều dự án chung trong một nhóm gọi là Project groups. Ta có thể lưu tập hợp các đề án thành một tập tin nhóm đề án với phần mở rộng là .vbg. Project Explorer có cấu trúc cây phân cấp, các đề án nằm ở phần trên của cây và các bộ phận của đề án chứa trong phần dưới cây. Khi chúng ta cần thao tác trên thành phần nào của đề án ta chỉ việc chọn phần ấy và xem của sổ Form hoặc của sổ Code của nó. Đặc biệt nó vô cùng hữu ích cho chúng ta trong khi xây dựng nhiều dự án lớn.  Cửa sổ Properties: Mỗi thuộc tính trong cửa sổ có thể có một hoặc nhiều giá trị. Nó giúp bạn xem xét sửa đổi và điều khiển các thuộc tính của điều khiển ActiveX trong chương trình.  Hiển thị trong IDE Ta có thể hiển thị IDE của Visual Basic bằng hai cách : MDI và SDI. Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 71 - GVHD: Bùi Thị Hoà - MDI là giao diện đa tài liệu, cho phép ta hiển thị tất cả các cửa sổ thành phần trong IDE như là cửa sổ được chứa đựng trong cửa sổ mẹ. - Trái lại với giao diện SDI các cửa sổ thành phần hiển thị một cách độc lập nhau. Không có cửa sổ chính để chứa các cửa sổ thành phần.  Trợ giúp Không chỉ làm chủ ngôn ngữ lập trình VB, bạn cần phải cần sử dụng thuần thục môi trường VB cũng như hiểu các thông điệp mà VB gửi ra. Mircosoft đã cung cấp một trong những hệ thống trợ giúp tốt nhất cho công cụ phát triên ứng dụng. Những trợ giúp nhạy với ngữ cảnh ( Context-sensitive help) : tại vị trí bất kỳ trong VB bạn nhấn F1, hoặc nút trợ giúp. Nó sẽ kích hoạt hệ thống trợ giúp của Visual Basic, nơi có thể giải thích cũng như đưa ra các lời khuyên và các đoạn chương trình mẫu có liên quan. Những ai quen dùng Windows, chắc chắn cũng biết qua trợ giúp cảm ngữ cảnh. VB được hổ trợ với hệ thống thư viện MSDN được sử dụng rộng rãi cho các ứng dụng của Microsoft để cung cấp, truy cập đến công cụ hướng dẫn sử dụng các sản phẩm trực tuyến. 3.4. Giới thiệu về thuộc tính, phương thức, sự kiện. Visual Basic là một ngôn ngữ lập trình hổ trợ hướng đối tượng (Object- Oriented Programming). Trong lập trình hướng đối tượng , lập trình viên chia nhỏ các công việc thành các đối tượng. Từng đối tượng có đời sống riêng của nó, có những đặc điểm gọi là thuộc tính (Properties), có những chức năng riêng biệt gọi là phương thức ( methods).  Thuộc tính. Có thể hiểu nôm na là thuộc tính mô tả đối tượng. Mỗi đối tượng đều có thuộc tính mô tả riêng. Nhưng nhìn chung các đối tượng đều có những thuộc chính chung như : Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 72 - GVHD: Bùi Thị Hoà - Left : vị trí canh trái, - Right : vị trí canh phải, - Height :chiều cao của đối tượng điều khiển, - Width: chiều rộng của đối tượng, - Enable : Có giá trị logic ( True/False) quyết định người sử dụng có thể làm việc với các đối tượng này không. - Ngồi ra còn rất nhiều thuộc tính khác tuỳ theo từng đối tượng điều khiển.  Phương thức. Phương thức là những đoạn chương trình chứa trong điều khiển, cho điều khiển biết cách thực hiện công việc nào đó. Tương tự như thuộc tính, mỗi đối tượng điều khiển cũng có các phương thức khác nhau, nhưng cũng có các phương thức rất thông dụng cho hầu hết các đối tượng. Đó là: - Move : thay đổi vị trí của một đối tượng theo yêu cầu của chương trình. - Drag: thi hành hoạt động kéo thả của đối tượng. - SetFocus: cung cấp tầm ngắm cho đối tượng được chỉ ra trong lệnh gọi phương thức. - ZOder : qui định thứ tự xuất hiện của các đối tượng trên màn hình.  Sự kiện. Nếu như thuộc tính mô tả đối tượng, phương thức chỉ ra cách thức đối tượng hành động thì sự kiện là những phản ứng của đối tượng. Tương tự như thuộc tính và phương thức, sự kiện cũng có đặc trương ở từng đối tượng điều khiển. Nhưng những sự kiện thường gặp nhất của các đối tượng là: - Change: Người sử dụng sửa đổi chuỗi ký tự trong hộp kết hợp ( combobox) hoặc hộp văn bản (TextBox). Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 73 - GVHD: Bùi Thị Hoà - Click : Người sử dụng sử dụng các phím của chuột để click lên các đối tượng. - Dblick : Người sử dụng sử dụng phím của chuột để nhấp đúp lên các đối tượng. - DragDrop : Người sử dụng kéo rê một đối tượng sang đối tượng khác. - DragOver: Người sử dụng kéo rê một đối tượng ngang qua một điều khiển khác. - GotFocus: Đưa một đối tượng vào tầm ngắm của người sử dụng. - KeyDown: Người sử dụng nhấn một nút trên bàn phím khi một đối tượng đang trong tầm ngắm. - KeyPress: Người sử dụng nhấn và thả một nút trên bàn phím khi một đối tượng đang trong tầm ngắm. - KeyUp: Người sử dụng thả một nút trên bàn phím khi một đối tượng đang trong tầm ngắm. - LostFocus: Đưa một dối tượng ra khỏi tầm ngắm. - MouseDown: Người sử dụng nhấn một nút chuột bất kỳ trong khi con trỏ chuột đang nằm trên một đối tượng. - MouseMove : Người sử dụng di chuyển con trỏ ngang qua một đối tượng. - MouseUp : Người sử dụng thả nút chuột trong khi con trỏ chuột đang nằm trên một đối tượng. 3.5. Khả năng sử dụng các DLL và Windows API. Windows cung cấp vô số các hàm gọi, dưới dạng thư viện lên kết động (Dynamic Link Libraries ). Trong Visual Basic 6.0 còn có các tiện ích gọi ngược của DLL ( DLL Callback Facilities ), nghĩa là thay vì ta gọi chương trình trong Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 74 - GVHD: Bùi Thị Hoà API, nó cho phép ta gọi một API mà bản thân nó có thể gọi ngược về chương trình của ta như là một phần chương trình của nó vậy.  Giới thiệu về thư viện liên kết động (DLL) Đối với các ngôn ngữ lập trình cổ điển như C, khi biên dịch chương trình, ta có một chương trình .EXE duy nhất có thể thi hành mà không dùng bất kỳ tập tin nào khác, còn tập tin .vbp của Visual Basic không như thế nó phải chạy trong môi trường Visual Basic. Có 2 loại thư viện liên kết : thư viện liên kết tĩnh (SLL) và thư viện liên kết động (DLL). - Liên kết tĩnh : Cung cấp một kết nối bền vững giữa chương trình và module viết sẳn lúc thiết kế, tương tự như viết thủ tục trong Visual Basic và gọi thủ tục đó, nhưng chỉ khác là liên kết tĩnh chứa bên ngồi Visual Basic. Tuy nhiên khi sử dụng cần phải copy đoạn chương trình viết sẳn của liên kết tĩnh vào tập tin chương trình khi biên dịch. Từ đó trở đi nó trở thành một phần của chương trình viết sẳn và gắn chặt với chương trình của ta. - Liên kết động : Là giải pháp linh hoạt hơn liên kết tĩnh, tập tin thư viện bên ngồi chương trình không bị ràng buộc với chương trình. Nó chứa một nơi sao cho tập tin EXE có thể tìm ra và gửi thông điệp cho nó. Khi thi hành các thông điệp này là các cuộc gọi đến các hàm/ thủ tục, yêu cầu phần nào đó của DLL được thi hành. Các DLL của Visual Basic nằm trong thư mục Windows \ System \  Giới thiệu về các DLL của Windows. - KERNEL32 : Là DLL chính, đảm nhiệm quản lý bộ nhớ, thực hiện chức năng đa nhiệm và những hàm ảnh hưởng trực tiếp đến hoạt động của Windows. - USER32 : Là thư viện quản lý Windows. Thư viện này chứa các hàm xử lý menu, định giờ, truyền tin, tập tin và nhiều phần không được hiển thị khác của Windows. Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 75 - GVHD: Bùi Thị Hoà - GDI32 : Là thư viện chứa giao diện thiết bị đồ hoạ (Graphics Device Interface) cung cấp các hàm vẽ trên màn hình, cũng như kiểm tra phần biểu mẫu nào cần vẽ lại. - WINNM: cung cấp các hàm Multimedia để xử lý âm thanh, nhạc, video, thời gian thực, lấy mẫu, vv… Đây là thư viện 32 bit còn thư viện 16 bit tương ứng tên là MMSYSTEM.  Thế mạnh của DLL. - Nhất quán : Người sử dụng ưa chuộng Windows vì đa số điều có một giao diện phổ biến cho mọi ứng dụng, nghĩa là có chương trình chung để tạo ra chúng. - Dễ bảo trì : Những thay đổi hoặc bổ sung nếu có sẽ biểu hiện trên mọi ứng dụng. - Tập tin .EXE nhỏ hơn : Do một phần công việc chứa đựng ở nơi khác và không gắn kết “cứng nhắc” như liên kết tĩnh, kích cỡ tập tin nhỏ hơn. Tuy nhiên DLL còn chứa nhiều thành phần khác chứ không chỉ những gì chương trình của ta cần. Cấu trúc của Windows : DLL là nền tảng thiết kế của Windows. Windows thực chất là tập hợp các DLL để các ứng dụng khác nhau có thể dùng chung. Bên trong các DLL là hàng trăm, ngàn các hàm và thủ tục. Ta gọi chung là Windows API.  Giới thiệu về WIN API - Giao diện lập trình ứng dụng ( Application Programmer’s Interface ) là tập hợp các hàm có sẳn của Windows, chúng gần gủi với ngôn ngữ C/ C++ hơn. Visual Basic được thiết kế theo kiểu che bớt các công việc bên dưới hệ thống. Phần lớn các cuộc gọi đến hàm API được lồng trong các dạng lệnh của Visual Basic, bao gồm các từ khố, phương thức và thuộc tính. Chúng sẽ được thông dịch thành WinAPI và chúng ta vận dụng các thế mạnh hổ trợ của chúng. Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 76 - GVHD: Bùi Thị Hoà - Lớp bọc API và các điều khiển hiệu chỉnh : Điều khiển hiệu chỉnh (OCX hay ActiveX) bản thân chúng là những lớp bọc API, chúng chuyển giao chuyển giao các chức năng theo kiểu Visual Basic một cách thân thiện. Các điều khiển ActiveX và OLE Automation Servers đưa chương trình vào các đề án mà không cần có các DLL thực sự.  Cách gọi hàm API. Gọi hàm API trong Visual Basic không khác với gọi hàm/ thủ tục trong module của đề án. Ví dụ thủ tục gọi sau: Public Declare Function Flash Lib “User32” Alias “FlashWindow” (ByVal hWnd as Long, Byval Invert As Long ) as Long. Khai báo cho một cuộc gọi API : Trước khi dùng hàm của DLL, ta cần khai báo hàm đó cho Visual Basic hiểu, Visual Basic cần biết: - Tên hàm hoặc thủ tục. - Tên tập tin DLL chứa nó. - Tham số truyền. - Kiểu dữ liệu trả về nếu là hàm. Từ khố Declare báo cho VB biết đây là một hàm của DLL, sau Declare là từ khố Sub hoặc Function cho biết đây là thủ tục hay hàm. Từ khố Lib cho biết tên của DLL đang chứa hàm hoặc thủ tục mà ta gọi. Từ khố Alias cho biết tên thực sự của thủ tục hoặc hàm trong thư viện. Nó có thể khác với tên ta khai báo trước từ khố Lib. Cuối cùng là khai báo các tham số truyền, cùng các kiểu dữ liệu trã về. Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 77 - GVHD: Bùi Thị Hoà 3.6. Thiết lập báo cáo và truy xuất thông tin. Thiết lập báo cáo trên cơ sở dữ liệu không chỉ là hiển thị cơ sở dữ liệu từ dữ liệu mà nó còn liên quan đến một số hoạt động khác trên dữ liệu. Sau đây tôi xin giới thiệu về một số công cụ lập báo cao như Data Report, MS Access, Crystal Report. 3.6.1. Sử dụng một số công cụ để lập báo cáo trong Visual Basic.  Sử dụng thiết kế DATAREPORT: Đây là điểm nổi bậc trong VB 6, thiết kế Datareport là cách trực quan để tạo báo cáo trong môi trường phát triển VB, nó cung cấp các chức năng hết sức cơ bản nhưng lại lại dễ dùng. Các điều khiển Report bao gồm : - các điều khiển nhãn, - điều khiển hợp văn bản, - điều khiển ảnh, - điều khiển đoạn thẳng và điều khiển hình dạng, - điều khiển hàm cho phép chèn các tính tốn tóm tắt vào báo cáo. Chúng ta có thể xem báo cáo trong chế độ Print Preview bằng cách thi hành phương thức Show  Sử dụng MS Access để lập báo cáo: MS Access cho phép viết các báo cáo cơ sở dữ liệu. Nó hổ trợ giao diện dễ dùng và trực quan. Nó cho phép sắp xếp và phân nhóm cũng như sử dụng các hiệu chỉnh trong báo cáo. Hai kỹ thuật để thực hiện là: - Sử dụng Automation để thi hành báo cáo Access. - Sử dụng VSREPORTS để thi hành báo cáo Access.  Sử dụng CRYSTAL REPORT để lập báo cáo: Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 78 - GVHD: Bùi Thị Hoà Ta không thể tạo báo cáo bằng chương trình mà thay vào đó ta dùng Crystal Report để xây dựng báo cáo. Sau khi xây dựng xong báo cáo ta lưu nó và phân phát cùng các ứng dụng cho người sử dụng. 3.6.2. Sử dụng các công cụ in ấn trong Visual Basic.  Sử dụng đối tượng Printer. Ta có thể dùng đối tượng Printer của Visual Basic để in dữ liệu từ ứng dụng. Tuy nhiên cách này đòi hỏi lập trình nhiều và không linh hoạt trong những trường hợp cần kiểm sốt kết quả in ấn. Khi sử dụng đối tượng printer ta cần thực hiện các bước sau: - Xác định hệ toạ độ ta sẽ dùng với đối tượng Printer. - Tạo các cách bố trí báo cáo. - Viết chương trình tạo đối tượng Recordset dùng bất cứ thư viện truy cập cơ sở dữ liệu nào tuỳ thích. Lặp xuyên qua các mẫu tin để trả về các đối tượng Recordset, gửi dữ liệu đến đối tượng Printer dùng các thuộc tính và các phương thức của nó. Đối tượng Printer đưa ra một số thuộc tính và các phương thức hổ trợ việc thể hiện trang in và các tác vụ điều khiển như : - Thuộc tính CurentX, curentY : kiểm sốt vị trí hiện hành trên trang in. - Thuộc tính Font là đối tượng điều khiển các thuộc tính của văn bản chứa trong trang in. - Phương thức Print : trình bày văn bản trên trang in. - Phương thức Newpages chèn một phép ngắt trang vào tác vụ in, thuộc tính page trả về trang in hiện hành của tác vụ in, phương thức KillDoc xố bỏ một tác vụ in. - Phương thức đồ hoạ như Line, Point, Circle. Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 79 - GVHD: Bùi Thị Hoà - Phương thức EnDoc: gửi tồn bộ tác vụ in cho máy in. Thi hành phương thức này ở cuối tác vụ in sử dụng đối tượng Printer.  Sử dụng VSVIEW của VIDEOSOFT để lập báo cáo và in bảng in với điều khiển VsPrinter: Thiếu sót của đối tượng Printer là trước khi in ta không biết được báo cáo sẽ thể hiện như thế nào, hay thậm chí không biết báo cáo có bao nhiêu trang in do đó ta nên dùng công cụ cung cấp nhiều tiện ích hơn là vsPrinter. VsPrinter rất thích hợp để in bảng CSDL bởi vì nó hổ trợ rõ ràng cho việc in dữ liệu theo định dạng dòng – cột. Ta có thể in dữ liệu trong bảng bằng cách gán dữ liệu cho thuộc tính Table của điều khiển. Để tạo bảng vsPrinter, trước hết cần tạo ra một chuổi chứa thông tin định dạng cách thức in bảng chứa các thông tin đầy đủ về cách bố trí văn bản. Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 80 - GVHD: Bùi Thị Hoà 4. KHẢ NĂNG KẾT NỐI VỚI CƠ SỞ DỮ LIỆU CỦA VISUAL BASIC. Hình 2: Minh hoạ khả năng kết nối dữ liệu của VB với CSDL. Data ActiveX .EXE .DLL Midder Tier Data Source Form Client DHTML Report Code D at a bi nd in g Remoting Data Access ADO, RDO, DAO Class Module, Data Enviroment Creatable Recordsets, ADO Data Control , Intrinsic Data Control DCOM, Remotables,ADO Recordsets, Remoting UDTs Microsoft Transaction Server Microsoft Visual Database Tool (Dataview) Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 81 - GVHD: Bùi Thị Hoà Sử dụng Visual Basic 6.0 bạn có thể tạo các thành phần gói gọn từng bước trong một hệ thống truy cập dữ liệu. Khởi đầu với data source, Microsoft Visual Data Tools (Việc truy cập dữ liệu thông qua cửa sổ Dataview) cung cấp cho bạn các khả năng để xem và thao tác trên các đố tượng Table, views, Stored procedures, và các sơ đồ cơ sở dữ liệu trên các hệ thống SQL Server và Oracle. Data Source và Data Controls : Trên Client chúng ta có thể sử dụng công cụ Data Enviroment để thực hiện việc tạo nhanh các kết nối ADO và các đối tượng Command để truy cập dữ liệu của bạn. Data Enviroment còn cung cấp thêm các giao tiếp lập trình động cho phép truy cập các đối tượng dữ liệu trong dự án của bạn. ADO Conrol về bản chất bên trong cung tương tự như Data Control, ngoại trừ việc nó sử dụng đối tượng ADO Recordset như là một Data Source cho các Controls và các đối tượng trong Visual Basic. Dynamic Data Binding: Khả năng kết buộc một data source tới một đối tượng cần dữ liệu là khả thi đối với Visual Basic 6.0. Tại thời điểm thi hành bạn có thể thiết lập thuộc tính Data source của đối tượng cần dữ liệu (ví dụ như đối tượng DataGrid Control ) tới một data source. Thế mạnh của Visual Basic là khả năng hổ trợ và kết nối dữ liệu. Visual Basic hổ trợ các kiểu truy cập dữ liệu như : DAO - đối tượng truy cập dữ liệu, RDO – truy cập dữ liệu từ xa, ADO - các đối tượng dữ liệu ActiveX. Nó còn có khả năng kết nối với dữ liệu từ MS Access, SQL Server với hệ quản trị cơ sở dữ liệu Oracle và một số hệ quản trị cơ sở dữ liệu khác. Trong đồ án tốt nghiệp này tôi đã cài đặt chương trình trên ngôn ngữ VB 6.0 và dùng hệ quản trị CSDL SQL Server 7.0 qua phương pháp truy cập ADO. Sau đây tôi xin giới thiệu thêm về kiểu truy cập dữ liệu ADO Đối tượng dữ liệu ActiveX (Active X Data Object) Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 82 - GVHD: Bùi Thị Hoà Sơ đồ kiến trúc của ADO : Khái niệm về ADO: Là cầu nối giữa đối tượng cung cấp dữ liệu và đối tượng sử dụng dữ liệu thông qua các Data source đã được tạo cho việc sử dụng Microsoft ActiveX Data Objects (ADO), nó là phương pháp tối ưu nhất để truy cập dữ liệu của Visual Basic trong nguồn dữ liệu bất kỳ quan hệ và không quan hệ. Truy nhiên các phương pháp khác như RDO, DAO vẫn còn được hổ trợ. Connection Command Recordset Errors Fields Parameters Error Parameter Field Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 83 - GVHD: Bùi Thị Hoà III. GIỚI THIỆU VỀ CÁC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 1. Cấu trúc cơ sở dữ liệu của SQL Server 7.0. SQL Server tổ chức dữ liệu lưu trong Cơ sở dữ liệu (CSDL) thành những thành phần logic. User làm việc trên những thành phần logic này như bảng (table), view, procedure… Thành phần vật lý của những file thì trong suốt (transparent), chỉ có người quản lý Cơ sở dữ liệu mới được làm việc trên đó. SQL Server có 4 cơ sở dữ liệu hệ thống ( master, msdb, model, temdb database ) và các cơ sở dữ liệu của user. Hình minh họa Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 84 - GVHD: Bùi Thị Hoà - Master database: Ghi lại cấu hình hệ thống của SQL Server. Nó ghi lại tất cả tài khoản đăng ký của user và cấu hình hệ thống, những file primary chứa thông tin khởi động của Cơ sở dữ liệu của user, chứa thông tin khởi động của SQL Server. Những thao tác sau gây ra những thay đổi trong master database: Tạo, thay đổi, xóa cơ sở dữ liệu,thay đổi transaction log. Thêm hay xóa của những sever sử dụng thủ tục hệ thống như sp-addserver (thêm server) and sp-dropserver (bỏ server). - Temdb database : chứa những bảng tạm và những stored procedure tạm. Những bảng tạm và những stored procedure của user khi nối kết vào hệ thống được lưu trong temdb database. Khi SQL khởi động thì tất cả các bảng tạm và các stored procedure trong temdb database đều mất. - Stored procedure : là 1 tập hợp biên dịch trước của những câu lệnh của Transact-SQL được lưu và xử lý như 1 đơn vị (unit). Stored procedure sẵn sàng cho việc quản lý SQL Server và hiển thị thông tin của cơ sở dữ liệu, của những người sử dụng. SQL Server cung cấp những stored procedure gọi là stored procedure hệ thống. - Model database : được dùng như 1 khuôn mẫu của CSDL trong hệ thống. Khi tạo ra 1 CSDL thì phần đầu của CSDL là bản sao của model database, phần còn lại là những trang trống. - Msdb database : SQL Server Agent dùng msdb database để lập kế hoạch alert, job. Alert là 1 định nghĩa của người sử dụng đáp ứng 1 sự kiện của Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 85 - GVHD: Bùi Thị Hoà SQL Server. Alert có thể thực thi cả nhiệm vụ định nghĩa hoặc gởi e-mail đến 1 người chỉ định. Job là sự thực hiện 1 hành động quản lý chứa 1 hoặc nhiều bước, thay thế cho thuật ngữ task của SQL Server 6.5. 2. Cấu trúc cơ sở dữ liệu vật lý. a. Trang (page). Đơn vị cơ bản lưu trữ dữ liệu là trang (page). Trong SQL Server 7.0, 1 trang có kích thước 8MB, ta sẽ có 128 trang/1MB. 96 byte đầu của mỗi trang chứa header của trang gồm thông tin hệ thống như loại trang, số vùng trống của trang. Cấu trúc trang dữ liệu : Các hàng dữ liệu (data row) được đưa vào tuần tự ngay sau page header, row offset được bắt đầu từ cuối trang, chỉ đến data row và cho biết byte bắt đầu của data row, kích thước hàng tối đa là 8060 byte. b. Extent. Extent là đơn vị cơ bản chỉ vùng lưu bảng và index. Mỗi extent gồm 8 trang liên tục nhau. Có 2 loại extent : Mixed extent có thể lưu những đối tượng khác nhau. Uniform extent chỉ có thể lưu 1 đối tượng duy nhất. c. Những loại file trong CSDL : SQL Server có 3 loại file: - Primary file : là file bắt đầu của cơ sở dữ liệu. Mỗi cơ sở dữ liệu chỉ có 1 file primary, tên file có phần mở rộng là .mdf Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 86 - GVHD: Bùi Thị Hoà - Secondary file : là file lưu những gì còn lại của cơ sở dữ liệu mà không chứa trong primary file, có thể có nhiều file secondary, tên file có phần mở rộng là .ndf. - Log file : chứa những thông tin transaction log, được dùng để khôi phục cơ sở dữ liệu, mỗi cơ sở dữ liệu có ít nhất 1 log file, tên file có phần mở rộng là .ldf.  File của SQL Server có 2 tên: - Logical_file_name: là tên dùng trong những câu lệnh Transact_SQL. - Os_file _name: là tên file vật lý, chỉ rõ đường dẫn của file cơ sở dữ liệu, ví dụ: C:\Mssql7\Data\MyData1.mdf là tên Os_file_name. - MyDB_primary là tên logical_file_name, Những trang trong file được đánh số bắt đầu từ 0. Mỗi file có 1 số ID. Mỗi trang trong file gồm cả ID file và số thứ tự trang trong file. Ví dụ: File primary có kích thước 4MB, và Secondary có kích thứơc 1 MB. Trang đầu tiên trong mỗi file là trang header file chứa thông tin về thuộc tính của file. Trang thứ 9 trong primary file là trang khởi động cơ sở dữ liệu chứa thông tin về thuộc tính của cơ sở dữ liệu. 3. Lý thuyết mô hình quan hệ a. Các khái niệm cơ bản - Thực thể : là một đối tượng cụ thể nào đó - Thuộc tính thực thể : Tính chất xác định thực thể - Lớp thực thể : Các thực thể có cùng thuộc tính - Thuộc tính: Tên thuộc tính, miền xác định của thuộc tính - Lược đồ quan he : gồm các thuộc tính của thực thể (tên, miền xác định) cùng với các mệnh đề ràng buộc. Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 87 - GVHD: Bùi Thị Hoà Lược đồ của một quan hệ : R== (A1: D1’ A2 : D2 ,……,An :Dn , M) trong đó: AI :Tên thuộc tính, DI :Miền xác định của thuộc tính, M : Mệnh đề ràng buộc. b. Khái Niệm phụ thuộc dữ liệu và các dạng chuẩn - Một thuộc tính gọi là phụ thuộc vào các thuộc tính khác khi giá trị của thuộc tính này phụ thuộc vào giá trị của thuộc tính kia. Sự phụ thuộc có thể là trực tiếp hay gián tiếp. - Một quan hệ bao giờ cũng có một nhóm thuộc tính mà giá trị của chúng qui định giá trị của các thuộc tính khác, nhóm thuộc tính đó gọi là khóa. - Với một quan hệ tùy vào các phụ thuộc của các thuộc tính vào khóa trong đó mà ta phân chia các quan hệ đó thành các dạng chuẩn khác nhau. Các dạng chuẩn cơ bản: Dạng chuẩn 1 Dạng chuẩn 2 Dạng chuẩn 3 Các dữ liệu lưu giữ dưới dạng chuẩn 3 tránh được hiện tượng dư thừa dữ liệu, tạo cho dữ liệu có tính độc lập cao. Các quan hệ nếu chưa ở dạng chuẩn 3 sẽ được phân rã thành các quan hệ nhỏ hơn ở dạng chuẩn 3. c. Khái niệm chỉ dẫn và khóa chỉ dẫn Để có thể tìm kiếm thông tin nhanh theo một tiêu chuẩn nào đó chúng ta tạo ra các thông tin chỉ dẫn theo tiêu chuẩn đó. Các thông tin chỉ dẫn là các thông tin giúp ta tìm kiếm dữ liệu nhanh. Các thông tin này gọi là khóa chỉ dẫn. Khóa chỉ dẫn có thể là một trường, hoặc nhiều trườngï. Với cách tạo ra khóa chỉ dẫn theo tiêu chuẩn nào đó ta có thể tìm kiếm nhanh dữ liệu theo tiêu chuẩn đó. Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 88 - GVHD: Bùi Thị Hoà Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 89 - GVHD: Bùi Thị Hoà CHƯƠNG IV XÂY DỰNG CHƯƠNG TRÌNH I. Phần dữ liệu : Như đã trình bày trong chương 2, phần phân tích và thiết kế hệ thống. Ta tổ chức dữ liệu thành 16 bảng dữ liệu như trên. Hình : Mô hình vật lý dữ liệu II. Một số giao diện chính : Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 90 - GVHD: Bùi Thị Hoà 1. Hình ảnh Form chính của chương trình: 2. Đây là hình ảnh Menu giao dịch xuất hàng: Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 91 - GVHD: Bùi Thị Hoà 3. Hình ảnh Form đơn đặt hàng : Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 92 - GVHD: Bùi Thị Hoà 4. Hình ảnh Form lập phiếu xuất hàng : Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 93 - GVHD: Bùi Thị Hoà 5. Hình ảnh Form lập phiếu thu tiền hàng : Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 94 - GVHD: Bùi Thị Hoà III. Một số mô đun chính : 1. Mô mô đun kết nối CSDL : Public Function Ketnoi() As Boolean On Error Resume Next con.ConnectionTimeout = 5 'su dung sqloledb de ket noi toi sqlserver ' phuong thuc chuoi ket noi con.ConnectionString = "PROVIDER=SQLOLEDB.1;server =(local)" & ";Database=dulieu1" & ";Trusted_Connection=yes" 'con.Properties("Prompt") = adPromptComplete con.Open End Function 2. Mô đun kiểm tra ngày tháng nhập vào : ' Ham kiem tra ngay nhap vao Public Function checkdate(strdate As String) As String Dim temp As Integer Dim strtemp As String temp = 3 If IsNumeric(Left(strdate, 1)) Then ' Neu ky tu dau la so thi If IsNumeric(Mid(strdate, 2, 1)) Then ' Neu ky tu thu hai la so thi If Left(strdate, 2) <= 31 Then ' Neu gia tri 2 ky tu Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 95 - GVHD: Bùi Thị Hoà ' <=31 thi kiem tra dau "/" mask1: If Mid(strdate, temp, 1) = "/" Then If IsNumeric(Mid(strdate, temp + 1, 1)) Then If IsNumeric(Mid(strdate, temp + 2, 1)) Then If Mid(strdate, temp + 1, 2) <= 12 Then If Mid(strdate, temp + 3, 1) = "/" Then strtemp = Left(strdate, temp + 3) ' Cat bo 6 ky tu dau If IsDate(strdate) Then ' Chuyen phan con lai th nam checkdate = strtemp & Format(strdate, "yyyy") Else GoTo msgdate End If End If Else GoTo msgdate End If Else If Mid(strdate, temp + 2, 1) = "/" Then strtemp = Left(strdate, temp + 2) If IsDate(strdate) Then checkdate = strtemp & Format(strdate, "yyyy") Else GoTo msgdate Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 96 - GVHD: Bùi Thị Hoà End If End If End If Else GoTo msgdate End If Else GoTo msgdate End If Else GoTo msgdate End If Else If Mid(strdate, 2, 1) = "/" Then temp = 2 GoTo mask1 Else GoTo msgdate End If End If Else msgdate: checkdate = "1" End If Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 97 - GVHD: Bùi Thị Hoà End Function 3. Mô đun lưu dữ liệu xuất hàng: Public Sub Luudl() On Error GoTo error1 Dim rs As New ADODB.Recordset Dim cmd As New ADODB.Command Dim str As String If Trim(txtmapnx) = "" Or Trim(txtngaylappnx) = "" Or Trim(Combomaddh.Text) = "" Or Trim(txtngaynx) = "" Or Trim(txtngayhtt) = "" Or Trim(Combomahang.Text) = "" Or Trim(txtsoluongnx) = "" Or Trim(txtdongianx) = "" Then MsgBox "Chu y: Phai nhap day du thong tin truoc khi luu!", vbOKOnly + vbExclamation, "Thong bao" txtmapnx.SetFocus Exit Sub End If 'Neu kiem tra ma khach hang co bat dau bang chu 'K' hay khong If Left(Trim(txtmapnx), 1) "X" Then MsgBox "Chu y: Ma phieu xuat hang phai bat dau boi 'X ...' !", vbOKOnly + vbExclamation, "Thong bao" txtmapnx.SetFocus Exit Sub Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 98 - GVHD: Bùi Thị Hoà End If 'Tim xem da ton tai Maduong nay trong Table duong hay chua? Set cmd.ActiveConnection = con str = "Select NXHANG.mapnxh, NXHANG.maddh, NXHANG.makho, NXHANG.ngaynxh, NXHANG.ngayhtt, NXHANG.ngaylappnx from NXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Neu chua ton tai Set rs = Nothing ' Dong record lai toithieu = 0 'Xoa gia tri ban dau toida = 0 'Xoa gia tri ban dau Set cmd.ActiveConnection = con str = "select MATHANG.mahang, MATHANG.sltontt, MATHANG.sltontd from MATHANG where MATHANG.mahang ='" & Trim(Left(Combomahang.Text, 4)) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = False Then ' Neu da ton tai, chac chan co toithieu = rs!sltontt toida = rs!sltontd Set rs = Nothing End If Set cmd.ActiveConnection = con Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 99 - GVHD: Bùi Thị Hoà str = "select CTMATHANG.mahang, CTMATHANG.soluongton from CTMATHANG where CTMATHANG.mahang ='" & Trim(Left(Combomahang.Text, 4)) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = False Then ' Neu da ton tai sltontam = rs!soluongton - Val(txtsoluongnx) If sltontam < toithieu Then MsgBox "So luong hang ton duoi muc toi thieu. Can phai nhap them truoc da.", vbOKOnly + vbExclamation, "Thong bao" txtsoluongnx.SetFocus Me.MousePointer = 0 Set rs = Nothing Exit Sub Else ' Neu khong duoi muc ton toi thieu, cap nhat SL Set rs = Nothing Set cmd.ActiveConnection = con 'Mo lai de luu str = "Select NXHANG.mapnxh, NXHANG.maddh, NXHANG.makho, NXHANG.ngaynxh, NXHANG.ngayhtt, NXHANG.ngaylappnx from NXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Neu chua ton tai, chac chan chua co rs.AddNew Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 100 - GVHD: Bùi Thị Hoà rs!mapnxh = Trim(txtmapnx) rs!ngaylappnx = Trim(txtngaylappnx) rs!maddh = Trim(Left(Combomaddh.Text, 5)) rs!makho = Trim(Left(Combomakho.Text, 5)) rs!ngaynxh = Trim(txtngaynx) rs!ngayhtt = Trim(txtngayhtt) rs.Update Set rs = Nothing ' Dong record lai End If Set cmd.ActiveConnection = con str = "Select DONGNXHANG.mapnxh, DONGNXHANG.mahang, DONGNXHANG.soluongnxh, DONGNXHANG.dongianxh from DONGNXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "' and mahang = '" & Trim(Left(Combomahang.Text, 4)) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Neu chua ton tai rs.AddNew rs!mapnxh = Trim(txtmapnx) rs!mahang = Trim(Left(Combomahang.Text, 4)) rs!soluongnxh = Trim(txtsoluongnx) rs!dongianxh = Trim(txtdongianx) rs.Update Set rs = Nothing End If Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 101 - GVHD: Bùi Thị Hoà 'Chi tiet mat hang duoc cap nhat sau cung Set rs.ActiveConnection = con 'Cap nhat phai nhu vay str = "Update CTMATHANG set soluongton ='" & sltontam & "' where mahang ='" & Trim(Left(Combomahang.Text, 4)) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText sltontam = 0 ' Xoa Set rs = Nothing 'Dong ban ghi lai End If Else ' Neu chua co (chua xuat lan nao) sltontam = Val(txtsoluongnx) ' Kiem tra vuot Sltontd If sltontam < toithieu Then MsgBox "So luong hang ton duoi muc toi thieu. Can phai nhap them truoc da.", vbOKOnly + vbExclamation, "Thong bao" txtsoluongnx.SetFocus Me.MousePointer = 0 Set rs = Nothing Exit Sub Else ' Khong duoi SLtontt, tao moi Set rs = Nothing Set cmd.ActiveConnection = con 'Mo lai de luu str = "Select NXHANG.mapnxh, NXHANG.maddh, NXHANG.makho, NXHANG.ngaynxh, NXHANG.ngayhtt, Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 102 - GVHD: Bùi Thị Hoà NXHANG.ngaylappnx from NXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Neu chua ton tai, chac chan chua co rs.AddNew rs!mapnxh = Trim(txtmapnx) rs!ngaylappnx = Trim(txtngaylappnx) rs!maddh = Trim(Left(Combomaddh.Text, 5)) rs!makho = Trim(Left(Combomakho.Text, 5)) rs!ngaynxh = Trim(txtngaynx) rs!ngayhtt = Trim(txtngayhtt) rs.Update Set rs = Nothing ' Dong record lai End If Set cmd.ActiveConnection = con str = "Select DONGNXHANG.mapnxh, DONGNXHANG.mahang, DONGNXHANG.soluongnxh, DONGNXHANG.dongianxh from DONGNXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "' and mahang = '" & Trim(Left(Combomahang.Text, 4)) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Neu chua ton tai rs.AddNew rs!mapnxh = Trim(txtmapnx) rs!mahang = Trim(Left(Combomahang.Text, 4)) Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 103 - GVHD: Bùi Thị Hoà rs!soluongnxh = Trim(txtsoluongnx) rs!dongianxh = Trim(txtdongianx) rs.Update Set rs = Nothing End If 'Chi tiet mat hang phai duoc tao moi sau cung Set cmd.ActiveConnection = con str = "select CTMATHANG.mahang, CTMATHANG.soluongton from CTMATHANG where CTMATHANG.mahang ='" & Trim(Left(Combomahang.Text, 4)) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Chac chan chua co rs.AddNew rs!mahang = Trim(Left(Combomahang.Text, 4)) rs!soluongton = sltontam rs.Update Set rs = Nothing sltontam = 0 'Xoa gia tri End If End If End If toithieu = 0 'Xao gia tri toida = 0 'Xao gia tri Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 104 - GVHD: Bùi Thị Hoà Else 'Neu da ton tai phieu xuat hang nay roi MsgBox "Phieu xuat hang co ma so [" & Trim(txtmapnx) & "] da ton tai. Vui long kiem tra lai !", vbOKOnly + vbExclamation, "Thong bao" txtmapnx.SetFocus Me.MousePointer = 0 Exit Sub End If DisplayGrid 'Hien thi danh sach cac hang san xuat error1: If Err.Number 0 Then MsgBox Err.Number & Err.Description Else MsgBox "Luu thanh cong phieu xuat hang co ma so: '" & Trim(txtmapnx) & "'" response = MsgBox("Ban co muon them mat hang vao phieu xuat hang nua khong ?", vbYesNo + vbQuestion, "Thong bao") If response = vbYes Then 'Neu chon NO thi khong Xoa Locktext Unlocktext2 Setnull2 'Xoa Textbox Combomahang.SetFocus Flag = True Else Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 105 - GVHD: Bùi Thị Hoà Setnull2 'Xoa Textbox Locktext End If End If End Sub CHƯƠNG V ĐÁNH GIÁ HỆ THỐNG Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 106 - GVHD: Bùi Thị Hoà I. Những kết quả đạt được Hệ thống quản lý xuất nhập hàng giúp cho việc quản lý mua bán của công ty được thực hiện một cách thuận tiện nhanh chóng và an tồn, góp phần tiết kiệm thời gian và giảm bớt các công việc thủ công (tuy nhiên không thể thay thế hồn tồn). Hệ thống đáp ứng được những yêu cầu cơ bản trong công tác cập nhật, xử lý xuất nhập hàng một cách nhanh chóng, chính xác như cập nhật dữ liệu, tìm kiếm thông tin, báo cáo tổng hợp xuất, nhập, tồn hàng. Giao diện thân thiện và dễ dàng cho người sử dụng. II. Những tồn tại của chương trình Trong điều kiện hạn hẹp về thời gian và kiến thức còn hạn chế nên chương trình vẫn còn một số tồn tại như sau: - Hệ thống chỉ mới phát triển bằng ngôn ngữ VisualBasic, lưu trữ dữ liệu bằng hệ quản trị cở sở dữ liệu MicroSoft SQL Server và chạy trên máy đơn. - Một số phần xử lý Tiếng Việt còn chư tốt. - Chưa xây dựng hệ thống bảo mật cơ sở dữ liệu và phân quyền người sử dụng. III. Hướng phát triển chương trình Dựa vào kết quả khảo sát bài tốn thực tế và phân tích thiết kế hệ thống ở trên, em xin đề xuất hướng phát triển chương trình như sau: 1. Phát triển hệ thống Xây dựng hệ thống thương mại điện tử Web bằng công nghệ ASP (Active Server Pages) hoặc ASP.Net, lưu trữ dữ liệu bằng hệ quản trị cơ sở dữ liệu MicroSoft SQL Server hoặc Orecle và chạy trên mạng. 2. Bảo mật cơ sở dữ liệu và phân quyền người sử dụng Ta sẽ phân cấp ra 3 mức người sử dụng: Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 107 - GVHD: Bùi Thị Hoà - Addmin: có quyền thêm, sửa, xố database, phân cấp, phân quyền cho người sử dụng. - User mức 1: có quyền thêm dữ liệu và database. - User mức 2: chỉ được quyền xem mà không được thực hiện bất cứ thao tác gì trên database. Một vấn đề nữa là database sẽ được đặt trên máy chủ chứ không đặt trên các máy con như hiện nay nữa và như vậy việc quản trị và bảo mật ddatabase sẽ dễ dàng hơn. Đồ án tốt nghiệp Đề tài: Quản lý xuất nhập hàng hố SVTH: Đinh Trọng Vinh – Lớp: TH40 - 108 - GVHD: Bùi Thị Hoà TÀI LIỆU THAM KHẢO 1. Microsoft Visual Basic 6.0 & Lập trình cơ sở dữ liệu – Nguyễn Thị Ngọc Mai (Chủ biên), NXB GIÁO DỤC 2. Lập trình Visual Basic trong 21 ngày – Nathan Gurewich – On Gurewich, NXB GIÁO DỤC. 3. Kế tốn doanh nghiệp với Visual Basic – VN GUIDE, NXB Thống Kê. 4. Giáo trình phân tích và thiết kế hệ thống thông tin quản lý – ThS.Nguyễn Hữu Trọng, Trường Đạ Học Thuỷ Sản. 5. Phân tích và thiết kế hệ thống thông tin - Nguyễn Văn Ba, NXB ĐẠI HỌC QUỐC GIA HÀ NỘI. 6. Hướng dẫn triển khai Căn Cứ Dữ Liệu sử dụng SQL SERVER 7.0 và VISUAL BASIC 6.0 - Biên dịch: Dương Quang Thiện, NXB Thống Kê.

Các file đính kèm theo tài liệu này:

  • pdfxuat_nhap_hang_5425.pdf