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.
108 trang |
Chia sẻ: lylyngoc | Lượt xem: 2976 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Xây dựng Hệ thống thông tin quản lý xuất nhập khẩu hàng tại Công ty Công nghiệp chế biến Thực phẩm quốc tế - Chi nhánh Nha Trang, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
asic 6.0 tuy không còn là hiện thân mới nhất và độc đáo
của ngôn ngữ BAISIC như cách đâ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
Đồ á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 - 64 -
GVHD: Bùi Thị Hoà
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.
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
Đồ á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à
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.
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.
Đồ á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à
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.
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.
Đồ á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à
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.
- 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.
Đồ á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à
- 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ụ.
- 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
Đồ á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à
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.
- 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ụ.
Đồ á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à
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.
- 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.
Đồ á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à
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ư :
- 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.
Đồ á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à
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).
- 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.
Đồ á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à
- 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
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
Đồ á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à
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.
- 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.
Đồ á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à
- 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.
- 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:
Đồ á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à
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ề.
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 :
Đồ á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à
- 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:
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.
Đồ á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à
- 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.
- 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 - 79 -
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
Microsoft
Transaction
Server
Đồ á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à
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.
Đồ á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à
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)
Sơ đồ kiến trúc của ADO :
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 - 82 -
GVHD: Bùi Thị Hoà
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ợ.
III. GIỚI THIỆU VỀ CÁC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER
Đồ á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à
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
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.
Đồ á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à
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
- 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.
Đồ á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à
- 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.
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.
Đồ á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à
- 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à
CHƯƠNG IV
XÂY DỰNG CHƯƠNG TRÌNH
I. Phần 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 - 89 -
GVHD: Bùi Thị Hoà
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:
- dtv_qlxnk_1148.pdf