1. Trang chủ
  2. » Luận Văn - Báo Cáo

Quản lý thu mua chè bằng ngôn ngữ lập trình Visual Basic

86 969 4
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 86
Dung lượng 2,04 MB

Nội dung

Tài liệu tham khảo kỹ thuật công nghệ, chuyên ngành tin học Quản lý thu mua chè bằng ngôn ngữ lập trình Visual Basic

Trang 1

Mục đích và yêu cầu của phần mềm

Chức năng chính của Phần mềm Quản lý thu mua chè

Cơ sở dữ liệu

Phần III Mã nguồn chương trình

Trang 2

LỜI CẢM ƠN

Đồ án này là kết quả học tập, rèn luyện của em trong hơn bốnnăm học tại trường Đại Học Quản lý và Kinh doanh Hà Nội.Để có được kết quả này, em đã nhận được rất nhiều sự độngviên, giúp đỡ và chỉ bảo của các thầy cô, gia đình,bạn bè…Trước hết, em xin được chân thành cảm ơn Thầy giáo ĐoànHữu Vượng đã tận tình hướng dẫn và giúp đỡ em hoàn thànhđề tài luận văn tốt nghiệp này.

Em xin chân thành cảm ơn các thầy, cô giáo trường Đại HọcQuản lý và Kinh doanh Hà Nội, đặc biệt là Khoa Tin Học, đãgiảng dạy, truyền thụ cho em những kiến thức quý báu và tạomọi điều kiện thuận lợi cho em trong suốt quá trình học tập tạitrường.

Xin được gửi lời cảm ơn đến những người thân trong gia đình, bạn bè gần xa đã giúp đỡ, động viên tôi trong quá trình thực hiện luận văn

Trang 3

Lời nói đầu

Ở nước ta, những năm gần đây, công nghệ thông tin đã phát triển không ngừng, đi sâu vào nhiều lĩnh vực của đời sống Mọi cá nhân, tổ chức đều cần đến công nghệ thông tin để hoạt động, phát triển

Hoạt động kinh doanh chè nói chung và thu mua chè, cũng không nằm ngoài quy luật trên Đây là một công việc với nhiềucông đoạn phức tạp, đa dạng Nó đòi hỏi người quản lý phải nắm được những người trực tiếp bán chè, nhân viên, các loạichè mà đơn vị mình thu mua, đưa ra các thông tin về công nợ…Để góp phần nhỏ vào công cuộc phát triển công nghệ thông tin và cũng là muốn cố gắng thử sức mình em đã chọn đề tài "Quản lý thu mua chè" làm đề tài cho luận văn tốt nghiệp của mình

Đề tài "Quản lý thu mua chè" là một đề tài khá lớn, trong khi thời gian để thực hiện, kinh nghiệm lập trình, kiến thức nghiệpvụ của em còn hạn chế, nên chắc chắn chương trình này vẫn còn rất nhiều thiếu sót Em mong nhận được sự chỉ bảo, đónggóp ý kiến của các thầy, cô giáo, các bạn bè….

Trang 4

Phần I : Giới thiệu ngôn ngữ Visual Basic

Ngôn ngữ Visual Basic ngày càng được sử dụng rộng rãi trong các đề án,chương trình thực hiện trong và ngoài nước Visual Basic được xem làmột công cụ phát triển phần mềm thông dụng hiện nay

Sau phiên bản Visual Basic 1.0 là Visual Basic 2.0, đã từng chạy nhanhhơn, dễ sử dụng hơn Đến Visual Basic 3.0 bổ sung thêm một số phươngthức đơn giản, dễ điều khiển cơ sở dữ liệu hơn Visual Basic 4.0 bổ sungthêm hơn hỗ trợ phát triển 32 bit và bắt đầu tiến trình chuyển Visual Basicthành ngôn ngữ lập trình hướng đốI tượng Visual Basic 5.0 bổ sung khảnăng tạo các điều khiển riêng Visual Basic 6.0 có thêm nhiều chức năngmạnh như các ứng dụng Internet/ Intranet .v.v…

Visual Basic gắn liền vớI khái niệm lập trình trực quan, nghĩa là khi thiết kếchương trình, bạn thấy ngay được kết quả qua từng thao tác Visual Basiccho phép chỉnh sửa một cách đơn giản, nhanh chóng giao diện của cácđốI tượng trong ứng dụng Đó là một thuận lợI cho ngườI lập trình.

VớI Visual Basic, việc lập trình trong Windows đã trở nên hiệu quả hơn vàđơn giản hơn rất nhiều Một khả năng nữa của Visual Basic là khả năngkết hợp các thư viện liên kết động DLLl (Dynamic Link Library) DLL chínhlà phần mở rộng cho Visual Basic, tức là khi xây dựng một chương trìnhcó một số yêu cầu mà Visual Basic không đáp ứng đầy đủ ta có thể viếtcác DLL để phụ thêm cho chương trình.

1 Các công cụ để thiết kế giao diện:

Như chúng ta đã biết Visual Basic là ngôn ngữ lập trình có tính hướng đốItượng nên công việc thiết kế giao diện là rất đơn giản Chúng ta chỉ việctiến hành đưa các đốI tượng cần thiết trong thanh công cụ vào Form bằngcách kích – kéo sau đó thay đổI các thuộc tính của chúng trên cửa sổProperties cho phù hợp vớI mục đích lập trình.

1.1 Form:

Form là một biểu mẫu của mỗI ứng dụng trong Visual Basic Ta dùngForm nhằm mục đích định vị và sắp xếp các bộ phận trên nó khi thiết kếgiao diện vớI ngườI sử dụng Ta có thể xem Form như một bộ phận mà nócó thể chứa các bộ phận khác Các thành phần trong Form chính của ứngdụng tương tác vớI các Form khác và các bộ phận của chúng tạo nên giaotiếp cho ứng dụng Form chính là giao diện chính của ứng dụng, các Formkhác có thể chứa các công cụ để nhập dữ liệu, xem xét v.v…

Trang 5

Trong nhiều ứng dụng của Visual Basic, kích cỡ và vị trí của biểu mẫu lúcthiết kế là kích cỡ mà ngườI dùng sẽ gặp vào lúc sử dụng Điều này, cónghĩa là Visual Basic cho phép ta thay đổI kích cỡ và di chuyển vị trí Formđến bất cứ nơi nào trên màn hình khi chạy một đề án, bằng cách thay đổImột số thuộc tính của nó trên cửa sổ thuộc tính đốI tượng (PropertiesWindows ) Thực tế, một trong tính năng thiếu của Visual Basic là khảnăng tiến hành các thay đổI động để đáp ứng sự kiện ngườI dùng

1.2 Toolbox (hộp công cụ):

Toolbox là hộp công cụ chưa các biểu tượng, biểu thị cho các điều khiểnmà ta có thể biểu mẫu là bảng chứa các đối tượng đã được định nghĩasẵn của Visual Basic Các đối tượng này được sử dụng trong Form để tạothành giao diện cho các chương trình ứng dụng của Visual Basic Ta cóthể coi hộp công cụ là một hộp “đồ nghề” của người thiết kế chương trình.

1.3 Scrollbar (thanh cuốn):

Scrollbar là đối tượng cho phép nhận từ người dùng một giá trị tuỳ theo vịtrí con chạy trên thanh cuốn thay cho các giá trị số.

Thanh cuốn có một số thuộc tính quan trọng sau: Thuộc tính Min: xác định cận dưới của thanh cuốn  Thuộc tính Max: xác định cận trên của thanh cuốn.

 Thuộc tính Value: xác định giá trị tạm thời của thanh cuốn.

1.4 Option Button (Nút chọn):

Đối tượng nút chọn (thường được dùng nhiều nút) cho phép người dùngchọn một trong những lựa chọn đưa ra Như vậy, tại 1 thời điểm chỉ có thểlà 1 trong những nút chọn đuợc chọn

1.5 Checkbox( hộp kiểm);

Cũng như nút chọn, đối tượng hộp kiểm được dùng nhiều hộp một lần.Nhưng khác với nút chọn, hộp kiểm cho phép người dùng lựa một haynhiều điều kiện Như vậy tại 1 thời điểm có thể có nhiều hộp kiểm đượcchọn

Trang 6

1.7 Picturebox, Image ( hộp ảnh, điều khiển ảnh );

Đối tượng Image và Picturebox dùng để hiển thị ảnh Nó cho phép ngườithiết kế đưa hình ảnh từ các file ảnh ( bmp , gif …) lên Form

1.8 Textbox ( hộp văn bản );

Đối tượng Textbox dùng làm hộp nhập dữ liệu cho phép đưa các chuỗi kýtự vào Form Có thể dùng hộp văn bản để nhập dữ liệu hoặc hiển thị vănbản Tất cả các công cụ trong windows về chỉnh sửa văn bản như : cut ,copy , paste đều dùng trong hộp văn bản

1.9 Command Button ( nút lệnh ):

Khi người dùng kích vào 1 nút lệnh trong biểu mẫu, một thao tác nào đósẽ được thực hiện tuỳ theo thủ tục sự kiện được viết để đáp ứng sự kiệnkích chuột đó

1.10 Listbox ( hộp danh sách ):

Đối tượng Listbox cho phép kết xuất các thông tin về nhiều chuỗi kí tự vàotrong nó thông qua phương thức additem Thường được dùng để hiển thịthông tin dưới dạng danh sách có liên quan với nhau Listbox không chophép người dùng nhập dữ liệu vào.

1.11 Combo box ( hộp kết hợp );

Công cụ này cho phép người dùng gõ vào thông tin và hiển thị thông tin nó có tác dụng như hộp danh sách và hộp văn bản Hộp kết hợp có 3 loại:- Hộp kết hợp thả xuống ( drop-down combo ) : là 1 hộp văn bản chophép người dùng gõ vào, kế bên có 1 mũi tên mà khi nhấn vào nó sẽxổ ra 1 danh sách cho phép người sử dụng chọn lựa

- Hộp kết hợp đơn giản ( simple combo ) : luôn hiển thị danh sách và chophép người dùng gõ vào hộp văn bản

- Hộp danh sách thả xuống ( drop- down list box) : tương tự như hộp kếthợp thả xuống Danh sách sẽ không hiển thị sẵn nếu người dùngkhông nhấn vào mũi tên bên cạnh người sử dụng chỉ có thể chọn từdanh sách, gõ vào hộp văn bản thì danh sách sẽ cuộn đúng đến phầntử yêu cầu và đánh dấu nó.

Trang 7

1.12 Ole ( đối tượng nhúng ):

Ole là viết tắt của Object - Linking and Embedding Nó cho phép ta nhúngtoàn bộ ứng dụng và dữ liệu từ một ứng dụng khác vào chương trình Olekhông chỉ là 1 hệ thống cho phép nhúng hay kết nối dữ liệu từ 1 ứng dụngkhác mà vào thời gian chạy của chương trình ta sẽ có 1 bản sao của ứngdụng đó trong chương trình của ta Nó có khả năng automation cho phépđóng gói các đối tượng chức năng của ứng dụng để có thể sử dụng trongứng dụng khác

1.13 Project explorer :

Project explorer trong Visual Basic 6.0 giúp quản lý và định hướng các đềán, biểu mẫu, các module,… Visual Basic cho phép tổ chức nhiều đề ántrong 1 nhóm gọi là project groups Ta có thể lưu tập hợp các đề án trongVisual Basic thành 1 tập tin nhóm đề án Các tập tin này có phần mở rộnglà Vbg

1.14 Propeties windows ( cửa sổ thuộc tính ):

Là nơi chứa danh sách các thuộc tính của một đối tượng cụ thể Cácthuộc tính này có thể khác nhau với từng đối tượng cụ thể Ta có thể đặtcác thuộc tính cho phù hợp với các chương trình ứng dụng.

2 Lập trình trong Visual Basic:

Ở phần một, chúng ta mới chỉ biết tuỳ biến biểu mẫu bằng cách bổ xungcác điều khiển vào cho phù hợp với yêu cầu của chương trình Tuy nhiên,đó chỉ có thể coi là bộ mặt của chương trình Muốn chương trình chạyđược thì chúng ta phải thêm vào các thành phần khác như lệnh, dữ liệu .và cách thức thể hiển chúng trong chương trình

Khi lập trình trong Visual Basic thì phần lớn các mã được xử lý để đáp ứngsự kiện Ví dụ như sự kiện kích chuột, bấm phím, load form…Các dòngmã thi hành trong một chương trình Visual Basic phải nằm trong các thủtục hoặc hàm, các dòng lệnh nằm ngoài sẽ không làm việc Toàn bộ mãlệnh được gõ vào trong cửa sổ code.

2.1 Cửa sổ code:

Cửa số code bao gồm các thành phần sau:

Thanh tách: cửa sổ code có một thanh tách (Split bar) nằm đầu thanh

cuộn dọc Mục đích của nó là: khi các dòng mã trở nên nhiều, ta có thểchia cửa sổ code thành 2 phần

Trang 8

Hộp liệt kê Object: nằm ở đầu cửa sổ code bên trái, nó liệt kê tất cả các

điều khiển có trên biểu mẫu và thêm vào một đối tượng có tên là: General.Khi thả hộp liệt kê và nhắp vào một đối tượng nào đó thì sẽ đưa ta đếnphần mã viết cho đối tượng đó

Hộp Procedure: hộp này cung cấp mọi sự kiện mà đối tượng đã được lựa

chọn trong hộp liệt kê object.

2.2 Intellisence:

Intellisence là một công cụ thông minh, nó giúp ta đỡ mất công gõ và tracứu Intellisence mở các hộp liệt kê cùng với các thông tin về đối tượngmà ta đang tiếp cận Nó có 3 phần:

- QuickInfo: cho ta thông tin về cú pháp của 1 lệnh Visual Basic Mỗi khinhập một từ khoá theo sau là một dấu cách hoặc dấu chấm .một hộpthoại sẽ hiện ra cung cấp cú pháp của thành phần đó.

- List properties/Methods: tính năng này đưa ra một danh sách các tínhchất và phương pháp của đối tượng ngay khi ta gõ dấu chấm.

- Available constant : tính năng này cung cấp một danh sách các hằngsẵn có

2.1 Biến:

Trong Visual Basic, tên biến có thể dài tối đa 255 kí tự Kí tự đầu tiên phảilà một chữ cái và tên biến có thể là một tổ hợp chữ cái, chữ số và dấugạch dưới Không được dùng các từ khoá trong Visual Basic ( như end,print .) làm tên biến Visual Basic không phân biệt chữ hoa, chữ thường Cách khai báo biến: Dim <Tên biến> as <Kiểu biến>

Phạm vi sử dụng biến phụ thuộc vào cách khai báo biến và vị trí đặt dònglênh khai báo

- Single precision: các số có phần thập phân gồm: Single precision có độ

chính xác đến 7 chữ số và double precision có độ chính xác lên đến 16vị trí

Trang 9

- Currency: Biến tiền tệ là một kiểu mới Kiểu này cho ta 15 chữ số trước

dấu thập phân và 4 chữ số sau dấu thập phân.

- Date: kiểu dữ liệu ngày tháng

- Byte: kiểu byte có thể lưu giữ các số nguyên từ 0 đến 255.- Boolean: đây là kiểu logic với các giá trị True/False.

- Variant: kiểu này được thiết kế để lưu mọi dữ liệu khác nhau của Visual

2.3.2 Các toán tử so sánh:

> So sánh xem số thứ nhất có lớn hơn số thứ 2 không

< So sánh xem số thứ nhất có nhỏ hơn số thứ 2 không.

= So sánh số thứ nhất có bằng số thứ 2 không.

<> So sánh số thứ nhất có khác số thứ 2 không.

>= So sánh số thứ nhất có lớn hơn hay bằng số thứ 2 không

<= So sánh số thứ nhất có nhỏ hơn hay bằng số thứ 2 không

2.3.3 Các toán tử Boolean:

And Chỉ nhận giá trị True nếu cả 2 số hạng đều là True

Or Chỉ nhận giá trị False nếu cả 2 số hạng đều là False

Not Phủ định giá trị của số hạng

Trang 10

2.4 Cấu trúc điều khiển:

2.4.1 Các cấu trúc chọn:

2.4.1.1 Cấu trúc If….Then…

Dạng 1: If <Biểu thức logic> then < lệnh> End If

Khi gặp một điều lệnh If… then, Visual Basic sẽ kiểm tra <Biểu thứclogic>, nếu là True thì máy sẽ thực hiện <lệnh> nếu kêt quả là False thìmáy sẽ bỏ qua lệnh và thực hiện những lệnh sau End If

Dạng 2: If <Biểu thức logic> then <lệnh 1> else <lệnh 2>

Khi gặp lệnh này, nếu <Biểu thức logic> lấy giá trị True thì thực hiện < lệnh1> bỏ qua <lệnh 2>, còn nếu <Biểu thức logic> lấy giá trị False thì bỏ qua<lệnh 1> và thực hiện <lệnh 2>.

Nhiều khi bạn phải thực hiện nhiều lệnh ứng với điều kiện là True hayFalse Để làm được điều đó, ta sử dụng dạng khác của cấu trúc If… then, có dạng tổng quát như sau:

If <Biểu thức điều kiện> then

Trang 11

Do

<Các câu lệnh>

While <Biểu thức điều kiện>

<Các câu lệnh> được thực hiện lặp đi lặp lại nếu <Biểu thức điều kiện>vẫn nhận giá trị True Do đó, để thoát khỏi vòng lặp thì trong <Các câulệnh phải có lệnh thay đổi gia trị của <Biểu thức điều kiện> Trong cú pháp1, thì <Biều thức điều kiện> được xét trước khi thực hiện các câu lệnh,còn trong cú pháp 2 thì các câu lệnh được thực hiện trước khi xét đến<Biểu thức điều kiện>.

2.5.2 Cấu trúc For …Next:

Cú pháp:

For <biến> = <giá trị đầu> to <giá trị cuối> [Step <bước nhẩy>]

<Các câu lệnh> Next biến

Đây là lệnh lặp biết trước số lần lặp Khi gặp cấu trúc lệnh này, VisualBasic sẽ gán giá trị <biến> cho <giá trị đầu>, thực hiện <Các câu lệnh>, rồităng <biến> lên một giá trị tuỳ theo <bước nhẩy> Vòng lặp này sẽ kết thúckhi <biến> có giá trị lớn hơn <giá trị cuối>

2.5.3 Cấu trúc For Each….Next:

Trang 12

trị cho tham số của thủ tục đó Trong Visual Basic, có 2 cách để truyềnthám số : By Ref ( truyền tham chiếu) và By Val ( truyền tham trị ).

Private/Public Sub <Tên thủ tục> (<Tham số1> as <Kiểu>, <Tham số 2>,

<Các câu lệnh>

End Sub

2.7 Hiển thị và nhận thông tin:

Ta sử dụng các hộp đối thoại để hiển thị thông tin cho người dùng hoặcnhận thông tin Trong Visual Basic có 4 hộp thoại, đó là:

2.7.1 Thông điệp: (MesageBox)

Là một hộp thoại đơn giản nhất, gồm 2 loại:- Chỉ cung cấp thông tin

- Tương tác với người sử dụng.

2.7.2 Hộp nhập (InputBox):

InputBox dùng để nhập thông tin từ người dùng, nó bao gồm một dòngthông báo, hộp soạn thảo và 2 nút “OK” và “Cancel” Nó có mặt hạn chế làchỉ cho người sử dụng nhập rất ít thông tin

2.7.3 Các hộp thoại thông dụng

Bởi hộp thoại này xuất hiện mọi nơi, nên thay vì phải viết chương trìnhnhiều lần, Windows chứa chúng trong cùng một DLL, Comdlg32.dll hayComdlg.ocx

Có 6 hộp thoại:

- mở tập tin (File Open)- Lưu tập tin (File save).- Chọn mầu (Color).- Chọn phông (Font).- Trợ giúp (Help).- In ấn (Print).

2.7.4 Hộp thoại hiệu chỉnh (Custom Dialog).

Đây là loại hộp đối thoại do người lập trình định nghĩa để tương thích vớiyêu cầu nhận thông tin của người sử dụng Nó có ưu điểm là ta có thểthiết kế theo ý thích Trở ngại của nó là khi thi hành từng biểu mẫu thì sẽsử dụng tài nguyên hệ thống như bộ nhớ, thời gian CPU Nếu dùng nhiềuhộp thoại hiệu chỉnh trong ứng dụng có thể mất tài nguyên hệ thống và dễbị treo máy.

Trang 13

Phần 2 :PHẦN MỀM QUẢN LÝ THU MUA CHÈI MỤC ĐÍCH VÀ NHU CẦU THỰC TẾ CỦA PHẦN MỀM

Hiện nay, các phần mềm đang được sử dụng rộng rãi trong các doanhnghiệp tư nhân hay các cơ quan nhà nước , nó giúp cho họ dễ dàng quảnlý được công việc kinh doanh của mình

Vì vậy phần mềm "Quản lý Thu mua Chè" này được viết ra nhằm giúpcho công việc thu mua chè có nhiều thuận lợi, chặt chẽ hơn Nó cũng giúpcho doanh nghiệp tránh được các thất thoát không đáng có Nếu nhưthực hiện công việc này theo những cách viết tay và tinh toán cổ điểnbằng giấy tờ, sổ sách thì sẽ cần đến rất nhiều nhân lực, vật lực cho việcnhập số liệu, tính toán, lưu giữ hóa đơn Và cho dù có đầy đủ nhân lực,vật lực, thì công việc trên sẽ tiêu tốn một thời gian rất lớn Khi ta cần mộtbản báo cáo hay hóa đơn chi tiết nếu làm bằng thủ công với một đốnggiấy hóa đơn , báo cáo thì sẽ rất mất thời gian Trong khi đấy, ta vẫnkhông đảm bảo là sẽ tránh được các sai sót không đáng sảy ra

Vì vậy, việc áp dụng công nghệ thông tin vào công việc trên là một điều tấtyếu và vô cùng cần thiết Khi phần mềm “Quản lý thu mua Chè ” xuất hiệnnó sẽ khắc phục được các nhược điểm của cách làm việc cổ điển

Quản lý người sử dụng chương trình:

Quản lý thu mua Chè:

Quản lý công nợ:

In báo cáo :

Trang 14

Sơ đồ chương trình:

1 Quản lý người sử dụng chương trình:

Chương trình Quản lý thu mua chè được sử dụng trong các doanhnghiệp kinh doanh Chè, nên bảo mật dữ liệu là một công việc vôcùng quan trọng Сhức năng quản lý quyền truy cập của nhữnghức năng quản lý quyền truy cập của nhữngngười được phép sử dụng chương trình cho phép doanh nghiệp cóthể hạn chế việc thất thoát thông tin Ta có thể chia nhưng người

được phép sử dụng chương trình thành 2 nhóm chính: người quảntrị (Aministrator), Người quản lý việc thu mua chè.

 Người quản lý việc thu mua chè: là nhóm người có quyền truy

cập vào Username , khi nhóm người này truy cập vào thì họ

có toàn quyền sử dụng những tiện ích có trong quyền hạn củamột người quản ly’ như : nhập hóa đơn trong việc thu muaChè , thanh toán các hóa đơn, cập nhật giá , in hóa đơn haythay đổi mật khẩu truy cập của mình…… Tuy nhiên nhómnày vẫn nằm trong sự quản ly’ của những người có thẩm

quyền cao hơn và đây chính là những Người Quản trị

CHỨC NĂNG CHƯƠNG TRÌNH

QL người sử dụng chương trình

Quản lý thu mua Chè

Báo báo cáo thu mua chèQuản lý công nợ

Trang 15

 Người quản trị: Đây là nhóm người có quyền cao nhất Ngoàicác quyền hạn của nhóm người quản lý thu mua Chè, nhómnày còn được phép quản lý nhóm người kia (Như : có thểxóa bỏ người sử dụng “UserName” hay sửa chữa dữ liệuhoặc tạo mới ra các Username mới ) In ra các báo cáo tùyvào lựa chọn của Admnistrator hay khách hàng , cập nhậttiền trong quỹ ………

2 Quản lý thu mua Chè:

Đây là chức năng cho phép người quản lý thu mua chè có thể nhập các thông tin cần thiết liên quan đến các khách đến bán chè cho doanh nghiệp

Nó có thể tự động phân loại chè theo trình tự (A , B , C ……) , tính khối lượng chè , tính tổng số tiền phải trả cho khách hàng , in hóa đơn và hủy hóa đơn của khách hàng khi không cần thiết đến hóa đơn đó nữa

3 Quản lý công nợ:

Chức năng này giúp người quản lý dễ ràng thực hiện công việc thanh toán các hợp đồng mà doanh nghiệp còn nợ hoặc chưa trả đủ tiền trong khi thu mua chè vì nó có thể tự động cập nhật nhữngthông tin chi tiết về ngày tháng thanh tóan và còn nợ hay đã thanh toán hoàn toàn

4 Báo cáo thu mua Chè :

Đây là chức năng đưa ra báo cáo thu mua chè , danh sách hóa đơn nợ hay không nợ và chức năng này có thể đưa ra các báo cáocụ thể được phân rõ ràng theo từng ngày ,tháng,năm… một cách thống nhất Sau khi thực hiện được những công việc trên Nó có thể giúp người sử dụng tiết kiệm thời gian và có một báo cáo chính xác bằng việc in ấn các báo cáo bằng máy và lưu chi tiết bằng excell

Trang 16

III CƠ SỞ DỮ LIỆU :

Bảng 1 : Hóa đơn

Bảng 2: Khách hàng

Bảng 3 : Nhập tiền

Bảng 4 : Nợ tiền

Trang 17

Bảng 5: Nội dung mua

Bảng 6: OldData

Bảng 7: Price

Trang 18

Bảng 8: Tea

Bảng 9: Tổng tiền

Bảng 10: User

Bảng 11:Userlog

2 LoginTime Date/Time Thời gian truy cập vào3 LogoutTime Date/Time Thời gian thoát khỏi

Trang 19

Mối quan hệ giữa các bảng :

Trang 20

Phần III: Mã nguồn :1) frmnFlash:

Dim i As ByteDim j As Integer

Private Sub Form_Load() sBorder.Width = Me.Width sBorder.Height = Me.Height sBorder.Top = 0

sBorder.Left = 0 i = 0

Timer1.Enabled = TrueEnd Sub

Private Sub Timer1_Timer() i = i + 1

Dim start If i = 2 Then start = Timer

Do While Timer < start + 2 DoEvents

Loop

Trang 21

End If

If i = 4 Then start = Timer

Do While Timer < start + 2 DoEvents

Loop End If If i > 4 Then

lblStatus.Caption = " Ready" start = Timer

Do While Timer < start + 1 DoEvents

Loop

Timer1.Enabled = False Unload Me

frmLogin.Show Exit Sub

End If

lblStatus.Caption = LoadResString(500 + i) DoEvents

End Sub

2) frmLogin:

Private Sub cmdLogOn_Click()

txtName.Text = LCase(txtName.Text) txtPass.Text = LCase(txtPass.Text) If txtName.Text = "" Then

Dim A As Byte

MsgboxC "B¹n ph¶i nhËp tªn ngêi sö dông vµo « trèng Tªn truy cËp !", vbCritical

txtName.SetFocus

Trang 22

Exit Sub End If

Dim UserExist As Boolean

If RsUser.RecordCount <= 0 Then

MsgboxC "XuÊt hiÖn lçi 'RsUser.RecordCount<=0' Xin vui lßng liªn hÖ t¸c gi¶ söa ch÷a !"

End End If

RsUser.MoveFirst

Do While Not RsUser.EOF

If LCase(RsUser.Fields(0)) = LCase(txtName.Text) Then UserExist = True

If LCase(RsUser.Fields(1)) <> LCase(txtPass.Text) Then

MsgboxC "MËt khÈu b¹n võa nhËp bÞ sai Xin vui lßng nhËp l¹i mËt khÈu !"

txtPass.SetFocus Exit Sub

Else

If CInt(RsUser.Fields(2)) = 1 Then

frmMainUser.cmdCapNhat.Enabled = True End If

If CInt(RsUser.Fields(3)) = 1 Then frmMainUser.cmdNo.Enabled = True End If

Exit Do End If End If

RsUser.MoveNext Loop

If UserExist = False Then

MsgboxC "Tªn truy nhËp cña b¹n hiÖn kh«ng cã Xin vui lßng liªn hÖ víi ngêi qu¶n lý !"

Trang 23

Exit Sub End If

UserName = LCase(txtName.Text) Password = LCase(txtPass.Text) Unload Me

If LCase(UserName) = "administrator" Then frmMainAdmin.Show

With RsUserLog AddNew

Fields(0) = UserName Fields(1) = Now

update End With Else

frmMainUser.Show With RsUserLog AddNew

Fields(0) = UserName Fields(1) = Now

update End With End If

End Sub

Private Sub Form_Activate() pTitle.BackColor = ColorMain s1.BorderColor = ColorMainEnd Sub

Private Sub Form_Deactivate()

pTitle.BackColor = ColorDeactivate s1.BorderColor = ColorDeactivateEnd Sub

Private Sub Form_Load()

Call CreateControls ' Hàm này dùng để khởi tạo ControlsEnd Sub

Public Sub CreateControls() Call InitTitleBar(Me)

imgList.ListImages.Add , , LoadResPicture("logon", 1) imgList.ListImages.Add , , LoadResPicture("window", 1)

Trang 24

End Sub

3) frmMainUser:

Dim C As BooleanPrivate Sub InitForm()

lblDay.Caption = "H«m nay, ngµy " & Day(Now) & ", th¸ng " & Month(Now) & ", n¨m " & Year(Now)

ani1.LoadFile App.Path & "\animation\daihung1.gif", FalseEnd Sub

Private Sub DisplayNhap()

SetParent frmNhap.hWnd, frMain.hWnd frmNhap.Show

MoveWindow frmNhap.hWnd, 0, -35, 900, 600, 1End Sub

Private Sub chameleonButton2_Click() End

End Sub

Trang 25

Private Sub CloseForm_Click() Dim ans

ans = MsgboxC("B¹n cã muèn tho¸t ra khái ch¬ng tr×nh kh«ng ?", vbYesNo, "§ang tho¸t !")

If ans = vbYes Then End

End IfEnd Sub

Private Sub cmdCapNhat_Click() With frmPrice

SetParent hWnd, frmMainUser.frMain.hWnd Show

MoveWindow hWnd, 10, 10, 424, 189, 1 End With

End Sub

Private Sub cmdChangPass_Click() With frmChangePass

SetParent hWnd, frmMainUser.frMain.hWnd Show

MoveWindow hWnd, 10, 10, 370, 190, 1 End With

Else

RsUserLog.MoveLast

RsUserLog.Fields(2) = Now RsUserLog.update

End If End End IfEnd Sub

Private Sub cmdHelp_Click()

Trang 26

MsgboxC "Các thông tin trợ giúp sẽ đợc cung cấp trực tiếp từ ngời cung cấp sản phẩm"

End Sub

Private Sub cmdLog_Click()

If RsUserLog.RecordCount <= 0 Then

Else

RsUserLog.MoveLast

RsUserLog.Fields(2) = Now RsUserLog.update

End If

Unload prj_BuyTea.frmNhap Set frmNhap = Nothing

Unload prj_BuyTea.frmThanhToanNo Set frmThanhToanNo = Nothing Unload prj_BuyTea.frmPrice Set frmPrice = Nothing

Unload prj_BuyTea.frmMainUser Set frmMainUser = Nothing

Unload prj_BuyTea.frmChangePass Set frmChangePass = Nothing Unload prj_BuyTea.Rpt_HoaDon Set Rpt_HoaDon = Nothing Unload prj_BuyTea.frmBaocao Set frmBaocao = Nothing Unload prj_BuyTea.frm_DoThi Set frm_DoThi = Nothing

Unload prj_BuyTea.frmDataMan Set frmDataMan = Nothing Unload prj_BuyTea.frmMoney Set frmMoney = Nothing

Unload prj_BuyTea.frmUserMan Set frmUserMan = Nothing Unload prj_BuyTea.frmMenu Set Menu = Nothing

Unload prj_BuyTea.Form1 Set Form1 = Nothing

Unload prj_BuyTea.frmXemNo Set frmXemNo = Nothing ' -

Unload Me

Trang 27

frmLogin.ShowEnd Sub

Private Sub cmdNo_Click() With frmThanhToanNo

SetParent hWnd, frmMainUser.frMain.hWnd Show

MoveWindow hWnd, 10, 10, 590, 360, 1 End With

If Minute(Now) < 10 Then M = "0" & Minute(Now) Else

M = Minute(Now) End If

Trang 28

4) frmNhap:

Dim curPos As IntegerDim LoadedImg As BooleanDim Saved As BooleanDim EditHD As BooleanDim NewH As BooleanDim HDNo As Boolean

Private Sub chkBaobi_Click()On Error Resume Next

If chkBaobi.Value = 1 Then txtBaoBi.Enabled = True lblBaobi.Enabled = True

Trang 29

txtBaoBi.SetFocus TinhTien

Else

txtBaoBi.Enabled = False lblBaobi.Enabled = False TinhTien

End IfEnd Sub

Private Sub chkTyleChe_Click() On Error Resume Next

If chkTyleChe.Value = True Then txtTyleChe.Enabled = True lblTyle1.Enabled = True txtTyleChe.SetFocus Else

txtTyleChe.Enabled = False lblTyle1.Enabled = False End If

End Sub

Private Sub chkTyleNuoc_Click() On Error Resume Next

If chkTyleNuoc.Value = 1 Then txtTylenuoc.Enabled = True lblTyleNuoc.Enabled = True txtTylenuoc.SetFocus

TinhTien Else

txtTylenuoc.Enabled = False lblTyleNuoc.Enabled = False TinhTien

End IfEnd Sub

Private Sub cmbLoai1_Click() On Error Resume Next With cmbLoai1

If Text = "Lo¹i A" Then txtGia1.Text = GiaA End If

If Text = "Lo¹i B" Then txtGia1.Text = GiaB

Trang 30

End If

If Text = "Loại C" Then txtGia1.Text = GiaC End If

If Text = "Loại D" Then txtGia1.Text = GiaD End If

End With TinhTienEnd Sub

Private Sub cmdAdd_Click()' On Error Resume Next

If txtKhoiLuongTruoc.Text = "0" Then

MsgboxC "Không thể nhập tiếp hàng nếu không có đủ dữ liệu !", vbInformation

txtKhoiLuongTruoc.SetFocus Exit Sub

End If

NewH = True Call EnableCont

Call newHang ' Reset Controls

Call ReOrder

If lv.ListItems.Count <= 0 Then cmdDel.Enabled = False Exit Sub

End IfEnd Sub

Private Sub cmdNew_Click() On Error Resume Next

Trang 31

Dim S As Integer

S = CInt(Right(lblMaHD.Caption, 4)) lblMaHD.Caption = AutoKey

Dim ctl As Control txtTenKH.Text = "" txtDiachi.Text = "" txtBaoBi.Text = "0" lblA.Caption = "0" lblB.Caption = "0" lblC.Caption = "0" lblD.Caption = "0"

lblTongBB.Caption = "0" txtKhoiLuongTruoc.Text = "0" lblThanhTien.Caption = "0" lblTongKL.Caption = "0"

lblKhoiLuongSau.Caption = "0" lblTongtien.Caption = "0"

txtTylenuoc.Text = "0" Check1.Value = 0 Check1_Click lv.ListItems.Clear Call EnableCont NewH = True

txtTenKH.SetFocusEnd Sub

Private Sub cmdPrint_Click() If lv.ListItems.Count <= 0 Then

MsgboxC "Bạn phải nhập hàng trớc khi lu thông tin !", vbInformation,"Cha nhập dữ liệu !"

Exit Sub End If

If txtTenKH.Text = "" Or txtDiachi.Text = "" Then

MsgboxC "Bạn cha nhập đầy đủ tên khách hàng và địa chỉ ! Chơng trình sẽ tự đa tên và địa chỉ nếu bạn bỏ qua.", vbYesNo, " Chúý"

txtTenKH.Text = lblMaHD.Caption txtDiachi.Text = " - không xác định - " End If

'-Tru tien trong tai khoan HDNo = False

RsTongTien.MoveFirst

Trang 32

If (CDbl(RsTongTien.Fields(0)) < CDbl(lblTongtien.Caption)) Then MsgboxC "HiÖn thêi sè tiÒn trong tµi kho¶n cña b¹n lµ " & Format(RsTongTien.Fields(0), "#,###") & " b¹n muèn mua tiÕp vµ nî phÇn cßn l¹i hay kh«ng ?", vbYesNo

If MsgAns = vbNo Then Exit Sub

ElseIf MsgAns = vbYes Then HDNo = True

End If End If

Call SaveData

' - In hoa don If chkKoIn.Value = 0 Then

With Rpt_HoaDon

lblNgay.Caption = Date

lblDiachi.Caption = txtDiachi.Text lblMaHD.Caption = lblMaHD.Caption lblTenKH.Caption = txtTenKH.Text

lblKhoiLuongSau.Caption = lblTongKL.Caption lblTongtien.Caption = lblTongtien.Caption lblUser.Caption = UserName

lblKlA.Caption = lblA.Caption lblKlB.Caption = lblB.Caption lblKlC.Caption = lblC.Caption lblKlD.Caption = lblD.Caption RsOldData.MoveFirst

Do Until RsOldData.EOF

If RsOldData.Fields(0) = "Lo¹i A" Then lblGiaA = RsOldData.Fields(1) lblTienA = Format(CDbl(.lblGiaA) * CDbl(.lblKlA), "#,###")

End If

If RsOldData.Fields(0) = "Lo¹i B" Then lblGiaB = RsOldData.Fields(1) lblTienB = Format(CDbl(.lblGiaB) * CDbl(.lblKlB), "#,###")

End If

If RsOldData.Fields(0) = "Lo¹i C" Then lblGiaC = RsOldData.Fields(1) lblTienC = Format(CDbl(.lblGiaC) * CDbl(.lblKlC), "#,###")

End If

Trang 33

If RsOldData.Fields(0) = "Loại D" Then lblGiaD = RsOldData.Fields(1) lblTienD = Format(CDbl(.lblGiaD) * CDbl(.lblKlD), "#,###")

End If

RsOldData.MoveNext Loop

Show End With End If

Call cmdNew_Click 'Call update(lblMaHD)End Sub

Private Sub cmdSave_Click() On Error Resume Next

If txtKhoiLuongTruoc.Text = "0" Then

MsgboxC "Không thể nhập tiếp hàng nếu không có đủ dữ liệu !", vbInformation

txtKhoiLuongTruoc.SetFocus Exit Sub

End If

If curPos = 0 Then Exit Sub

End If

If NewH = True Then

lv.ListItems.Add , , lv.ListItems.Count + 1 curPos = lv.ListItems.Count

NewH = False End If

Call addHang(curPos)

End Sub

Private Sub Form_Load() On Error Resume Next

curPos = 1'****** Add combo

cmbLoai1.AddItem "Loại A" cmbLoai1.AddItem "Loại B" cmbLoai1.AddItem "Loại C" cmbLoai1.AddItem "Loại D"

Trang 34

cmbLoai2.AddItem "Lo¹i A" cmbLoai2.AddItem "Lo¹i B" cmbLoai2.AddItem "Lo¹i C" cmbLoai2.AddItem "Lo¹i D"

cmbLoai1.Text = cmbLoai1.list(0) cmbLoai2.Text = cmbLoai2.list(1)'************************

lblMaHD.Caption = AutoKey

imgNav.ListImages.Add , , LoadResPicture("back_dis", 1) imgNav.ListImages.Add , , LoadResPicture("foward_dis", 1) imgNav.ListImages.Add , , LoadResPicture("back", 1)

imgNav.ListImages.Add , , LoadResPicture("foward", 1) imgNav.ListImages.Add , , LoadResPicture("back_click", 1) imgNav.ListImages.Add , , LoadResPicture("foward_click", 1) Call DefControls

NewH = TrueEnd Sub

Private Sub Check1_Click() On Error Resume Next

If Check1.Value = True Then chkTyleChe.Value = 0 sFrame.Width = 6435 frmLoai2.Visible = True chkTyleChe.Enabled = True txtTyleChe.Enabled = True Else

chkTyleChe.Enabled = False chkTyleChe.Value = 0

sFrame.Width = 3435 frmLoai2.Visible = False txtTyleChe.Text = "100" txtTyleChe.Enabled = False End If

Trang 35

Dim Ktruoc As Double 'Khoi luong ban dau Dim Ksau As Double 'Khoi luong sau Dim Che1 As Double 'Khoi luong loai1 Dim Che2 As Double 'Khoi luong loai2 Dim Tong 'As Double

Dim Baobi As Double ' khoi luong bao bi

'########################################## 'Cong thuc tinh

' Khoi luong nuoc = (Khoi luong ban dau - Khoi luong bao bi )* (Ty le nuoc)

' Khoi luong sau = (Khoi luong truoc) - (Khoi luong nuoc) - (Bao bi)

Ktruoc = CDbl(txtKhoiLuongTruoc.Text)

If chkTyleNuoc.Value = 1 And chkBaobi.Value = 0 Then lblKhoiLuongSau.Caption = Ktruoc - KNuoc

End If

If chkTyleNuoc.Value = 0 And chkBaobi.Value = 1 Then lblKhoiLuongSau.Caption = Ktruoc - Baobi

End If

If chkTyleNuoc.Value = 1 And chkBaobi.Value = 1 Then lblKhoiLuongSau.Caption = Ktruoc - KNuoc - Baobi End If

Ksau = CDbl(lblKhoiLuongSau.Caption)

If Check1.Value = 0 Then Che1 = Ksau

Che2 = 0 Else

Che1 = Ksau * CDbl(txtTyleChe.Text) / 100

Che2 = Ksau - (Ksau * CDbl(txtTyleChe.Text) / 100) End If

Trang 36

Tong = (Che1 * CDbl(txtGia1.Text)) + (Che2 * CDbl(txtGia2.Text))

Tong = Round(Tong, 0)

'Quy tắc làm tròn : có 2 loại làm tròn do biến RoundUp (Boolean) quyết định

' +> RoundUp=True : làm tròn lên Nếu số lẻ >500 và < 1000 thì làm tròn lên 1000

' Nếu số lẻ < 500 thi tròn thành 500

' +> RoundUp=False : làm tròn xuống Nếu số lẻ >500 và < 1000 thì làm tròn xuống 500

' Nếu số lẻ < 500 thi tròn thành 0

If (Tong Mod 1000) > 500 Then

If RoundUp = True Then ' Làm tròn lên Tong = Tong - (Tong Mod 1000) + 1000

Else ' làm tròn xuống Tong = Tong - (Tong Mod 1000) + 500

End If End If

If (Tong Mod 1000) < 500 Then If RoundUp = True Then

Tong = Tong - (Tong Mod 1000) + 500 Else

Tong = Tong - (Tong Mod 1000) End If

End If

' Hàm FormatMoney sẽ đa ra định dạng kiểu tiền 'VD 1110000 sẽ đợc chuyển thành 1,100,000

lblThanhTien.Caption = FormatMoney(Tong)

If lblThanhTien.Caption = "" Then lblThanhTien.Caption = "0" End If

End Sub

Trang 37

Private Sub DisplayPos(CurP As Integer) On Error Resume Next

Dim i As Byte

With lv.ListItems(CurP)

txtKhoiLuongTruoc.Text = SubItems(1) For i = 0 To 3

If cmbLoai1.list(i) = SubItems(2) Then cmbLoai1.Text = cmbLoai1.list(i) Exit For

End If Next i

txtTyleChe.Text = SubItems(3)

If SubItems(4) <> "" Then Check1.Value = True For i = 0 To 3

If cmbLoai2.list(i) = SubItems(4) Then cmbLoai2.Text = cmbLoai2.list(i) Exit For

End If Next i

lblTyle.Caption = SubItems(5) Else

Check1.Value = False End If

Check1_Click

If SubItems(6) <> "0" Then txtBaoBi.Text = SubItems(6) Else

txtBaoBi.Text = "0" chkBaobi.Value = 0 End If

If SubItems(7) <> "0" Then

txtTylenuoc.Text = SubItems(7) Else

txtTylenuoc.Text = "0" chkTyleNuoc.Value = 0 End If

Trang 38

lblKhoiLuongSau.Caption = SubItems(8) lblThanhTien.Caption = SubItems(9) End With

End Sub

Private Sub SaveData()' On Error Resume Next Dim maKH As String Dim tien As String maKH = AutoKH With RsHoaDon .AddNew

.Fields(0) = lblMaHD.Caption .Fields(1) = maKH

.Fields(2) = UserName .Fields(3) = Date

.Fields(5) = CDbl(lblTongKL.Caption) .Fields(4) = CDbl(lblTongtien.Caption) If HDNo = True Then

RsTongTien.MoveFirst

Fields(6) = CDbl(lblTongtien.Caption) - CDbl(RsTongTien.Fields(0))

RsTongTien.Fields(0) = "0" RsTongTien.update

ElseIf HDNo = False Then With RsTongTien MoveFirst tien = Fields(0) MoveFirst

Fields(0) = CDbl(tien) - CDbl(lblTongtien.Caption) update

End With End If

.update End With

Trang 39

Call SaveND(RsNoiDungMua, lblMaHD.Caption, "Lo¹i B", lblB.Caption)

.Fields(0) = maKH

.Fields(1) = txtTenKH.Text .Fields(2) = txtDiachi.Text .update

End WithEnd Sub

Private Sub newHang() ' Khoi tao lai cac Control khi chon nhap them hang

On Error Resume Next EditHD = False

txtBaoBi.Text = "0"

txtKhoiLuongTruoc.Text = "0" txtTylenuoc.Text = "0"

chkBaobi.Value = False chkTyleNuoc.Value = False Check1.Value = 0

Check1_Click

txtKhoiLuongTruoc.SetFocusEnd Sub

Private Sub DefControls() EditHD = False

lblNote.Caption = ""

lblMaHD.Caption = AutoKey sFrame.Width = 3435

frmLoai2.Visible = FalseEnd Sub

Trang 40

Private Sub EnableCont() On Error Resume Next

txtKhoiLuongTruoc.Enabled = True Check1.Enabled = True

chkTyleNuoc.Enabled = True chkBaobi.Enabled = True cmbLoai1.Enabled = TrueEnd Sub

Private Sub ReOrder() On Error Resume Next Dim i As Integer

Call ReSum

If lv.ListItems.Count <= 0 Then Exit Sub

End If

For i = 1 To lv.ListItems.Count lv.ListItems(i).Text = i

Next i

End Sub

Private Sub ReSum()On Error Resume Next lblA.Caption = "0" lblB.Caption = "0" lblC.Caption = "0" lblD.Caption = "0"

lblTongBB.Caption = "0" lblTongKL.Caption = "0" lblTongtien.Caption = "0"If lv.ListItems.Count <= 0 Then Exit Sub

End If

Dim i As IntegerDim A As DoubleDim B As DoubleDim C As DoubleDim D As DoubleDim Per As DoubleA = 0

B = 0C = 0

Ngày đăng: 21/11/2012, 09:58

HÌNH ẢNH LIÊN QUAN

Bảng 1: Húa đơn - Quản lý thu mua chè bằng ngôn ngữ lập trình Visual Basic
Bảng 1 Húa đơn (Trang 16)
Bảng 2: Khỏch hàng - Quản lý thu mua chè bằng ngôn ngữ lập trình Visual Basic
Bảng 2 Khỏch hàng (Trang 16)
Bảng 6: OldData - Quản lý thu mua chè bằng ngôn ngữ lập trình Visual Basic
Bảng 6 OldData (Trang 17)
7 MaxSTT Text Max stt của bảng Price - Quản lý thu mua chè bằng ngôn ngữ lập trình Visual Basic
7 MaxSTT Text Max stt của bảng Price (Trang 17)
Bảng 10: User - Quản lý thu mua chè bằng ngôn ngữ lập trình Visual Basic
Bảng 10 User (Trang 18)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w