Vous êtes sur la page 1sur 20


1. They are not expertise in computer operation 2. They are used to MS Excel, grid like entry 3. Presently they are maintaining their products list in MS Excel, they want this data should be imported in new software 4. They want very fast processing of bill 5. As they are catering service to the film industry and their customer are high profile. They are very strict in bill correctness, so there is no margin of error. 6. They have 3 pc in their office running WinXP home edition. 7. They are using P-IV 3 GHZ, 160 GB HDD, 512 MB RAM in their PCs 8. They are very strict of software licensing. 9. They are very strict on software completion time and they want it should complete before the deadline. 10. They want every report should be Export in MS Excel 11. All report should be printed in DOS-Matrix and Ink Jet Printer. 12.Only Accountant and his team should have permission to use the software. 13. For future modification of any master should be done by customer only. 14. Backup of the main database should be done by the software. 15. They have 3 different company names, software should have option to select the company name while entering bill and generate reports, and should option to add future company. 16. Each customer can hire multiple products. 17.Maximum number of products in a bill is 10. 18.While entering bill, client name should come automatically for previously created bill. 19. Bill/invoice should print net amount in words automatically. 20. The CST/VAT tax stamp should print in bill invoice and they want software should have an option to change the text if Income Tax department change the stamp.

Proposed system
After analysis the requirement we decide that we need to create 1. Product master module, where we import all product data from MS Excel 2. Company Master to maintain company details. 3. Client master to maintain client name address. 4. Bill master where we maintain bill details like bill no, bill date, client details, etc. 5. Bill Details where we maintain details transaction like product, quantity, rate etc. 6. Reports in Crystal Report for easy print and export options.

Software used
1. Front End : Visual Basic 6 For fast development, easy to deployment and maintain. 2. Back End : MS Access 2003 Client already have MS Office installed in their system, nos of user are 3 only. 3. Report : Crystal Report 8.5 Easy to create, ability to print and select printer, can export report in different format including MS Excel, easily integrate with Visual Basic 6.

Company master Customer

Product detail Generating Bill

Bill Details


First Level DFD

Product Detail

Verify Product 1 Check company of product 2 Company master


Create bill & supply 3

Bill Detail


Database Schema
Table : bill

Table : bill_details

Table : product_master

Database Relation

Software Project Structure


FrmLogin (Module to Authenticate User)

Option Explicit Dim Rs As New ADODB.Recordset Private Sub Command1_Click() '>>> check wheather user name and password are blank '>>> if its is blan warn user to enter If TxtUserName.Text = "" Or TxtPassword.Text = "" Then MsgBox("Enter user name and password ...", vbExclamation) TxtUserName.SetFocus() Exit Sub End If '>>> check for entered company '>>> query to database and if no record found warn user to select company from the list. If Rs.State = adStateOpen Then Rs.Close() Rs.Open("select * from company_master where company_name='" & CmbCompanyName.Text & "'", Cn, adOpenStatic, adLockReadOnly) If Rs.RecordCount > 0 Then CompanyName = CmbCompanyName.Text Else MsgBox("Select company name from the list", vbExclamation) CmbCompanyName.SetFocus() Exit Sub End If '>>> check for username and password '>>> query to user_master with user_name and password '>>> if no record found check warn user for enter valid user namne and password '>>> if record found store user_nmae, user_type in global variable for future use. If Rs.State = adStateOpen Then Rs.Close() Rs.Open("select * from user_master where USER_name ='" & TxtUserName.Text & "' and user_password ='" & TxtPassword & "'", Cn, adOpenStatic, adLockReadOnly) If Rs.RecordCount > 0 Then CheckLogin = True UserName = IIf(IsNull(Rs("USER_name").Value) = True, "NA",

Rs("USER_name").Value) UserType = IIf(IsNull(Rs("user_type").Value) = True, "NA", Rs("user_type").Value) Unload(Me) Else MsgBox("Invalid User Name and Password ... ", vbExclamation, "Login Error ") TxtPassword.Text = "" TxtUserName.SetFocus() Exit Sub End If End Sub Private Sub Command2_Click() '>>> close the application End FrmLogin = Nothing End Sub Private Sub Form_Load() '>>> open the global connection If Cn.State = 1 Then Cn.Close() OpenCon() '>>> center the form Me.Move (Screen.Width - Width) / 2, (Screen.Height - Height) / 2 '>>> fill the combo box with all company_name from company master If Rs.State = adStateOpen Then Rs.Close() Rs.Open("select * from company_master ", Cn, adOpenStatic, adLockReadOnly) CmbCompanyName.Clear() If Rs.RecordCount > 0 Then While Rs.EOF = False CmbCompanyName.AddItem(Rs("company_name")) Rs.MoveNext() End While End If If Rs.State = adStateOpen Then Rs.Close() End Sub Private Sub Form_QueryUnload(ByVal Cancel As Integer, ByVal UnloadMode As Integer) '>>> release all the object variable used by form FrmLogin = Nothing End Sub

FrmMain (Give user access to different module)

Option Explicit Private Sub MDIForm_Activate() '>>> show the login form as modulas for first time '>>> when main form activate first time If CheckLogin = False Then FrmLogin.Show(1) End If LblCompanyName = CompanyName End Sub Private Sub MDIForm_Resize() '>>> reposition the picturebox as per form size '>>> to display the selected company name Picture1.Left = Me.Width - Picture1.Width - 400 End Sub Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) '>>> load appropriate form as per user click on toolbar buttons '>>> in design time we set key value for each toolbar button If Button.Key = "exit" Then End ElseIf Button.Key = "product_master" Then FrmProducts.Show(1) ElseIf Button.Key = "bill" Then FrmBill.Show(1) ElseIf Button.Key = "utility" Then

FrmUtility.Show(1) ElseIf Button.Key = "reports" Then FrmReports.Show(1) ElseIf Button.Key = "company" Then FrmChangeCompany.Show(1) End If End Sub

FrmProducts (Maintain Product master)

FrmBillSummary (Show bill summary for particular date range)

Bill Summary Report

FrmBill (Create and modify bill and print the saved bill)

FrmReports (Show Different Report Options)

FrmPrintBill (Print already saved bill)

ProductSummary Report (Show Product Summary report in crystal report)

Export product Data MS-Excel with formatting