Rooftop Industries Pvt. Ltd.
|
|
- Garey Hunter
- 5 years ago
- Views:
Transcription
1 Rooftop Industries Pvt. Ltd. Production and inventory management system A level Computing Project Shritesh Bhattarai Little Angels' College 1
2 Table of Contents Definition, investigation and analysis... 4 Definition... 4 Introduction to the organisation... 4 Introduction to the production department... 4 Statement of the problem... 4 Current method, origin and nature of data... 4 Investigation and analysis... 5 Plan of investigation... 5 Interview with Mr. Pandey... 5 Observation... 5 Analysis... 6 Analysis of the Interview... 6 Analysis of the observation... 6 Analysis of the current system... 6 System Flowchart of the current system... 7 Inefficiencies of the current system... 8 Alternative Solutions... 8 Proposed solution... 8 Requirement specification... 9 Functional requirements... 9 Software requirements... 9 Hardware requirements... 9 Design Nature of the solution
3 Objectives of the system Entity Relationship Diagram Data structure design Form design Login Main Finished Goods Add Finished Goods Edit Finished Goods View Finished Goods Production Add production Edit Production Sales Add Sales Edit Sales Change Login Details Menu and module design Intended Benefits Limits of the scope of the solution System Limitations Database size estimation Software development, programming, testing and installation Development Code Listing
4 Tables Modules Forms Testing Testing strategy Test plan Implementation Installation plan Training Evidence of user testing Documentation System Maintainance Documentation Data Dictionary Back up procedure User Documentation Back up routine Evaluation Original Objectives Evaluation with Evidence Degree of success Evaluation of client and user's response
5 Definition, investigation and analysis Definition Introduction to the organisation Rooftop Industries Pvt. Ltd was established in the year 1993 by Mr. M.P. Kesavan for the manufacture of plastic water tanks. The company is currently headed by his son, Mr. Sajeev Kesavan. The company is located at Patan Industrial Estate, Lalitpur. The company also manufactures other plastic based items such as road cone, waste bins, planters, etc. Over these years, the company has manufactured millions of water ranks and supplied throughout Nepal to the satisfaction of customers. It is the first company in Nepal to be certified by ISO for the manufacture of plastic water tanks. The company at Lalitpur heads everything from manufacturing, sales, marketing, finances to customer relations and is divided into many corresponding individual departments such as finances, marketing, production, etc. which is each headed by its manager or in-charge. Introduction to the production department The in-charge of the production department is Mr. Kaushal Raj Pandey. The department consists of people directly involved in the manufacturing process. The production department deals with the manufacturing of the goods. Raw materials are used for production of the finished goods after production. This department does not deal with customers or suppliers. Statement of the problem Mr. Pandey currently faces a problem in keeping records of the finished goods properly along with production. He uses a different ledger to account for the finished goods produced during production. The records are not properly organized. I have decided to solve this problem as my project as it is in serious need of computerization and the task itself is achievable by me. Current method, origin and nature of data Currently, all the data is handled manually by Mr. Pandey using ledgers and hand-written reports. Primarily, the numeric quantities are the main data. Raw materials are imported from foreign parties and are stored near the factory. The raw materials are used in production. During and after finished goods have been produced and are sent for sales after production, a ledger is filled with the individual finished goods. The sales and production are calculated with the previous stock as shown in an example below: Vertical Tank 200L Inventory Date Previous Production Sales Total Balance Remarks Stock 5
6 Date Previous Stock Production Sales Total Balance Remarks Investigation and analysis Plan of investigation To obtain the solution to the above problem, I also set up a meeting with Mr. Pandey regarding the system and his requirements as he is the responsible person of the department and will be using our soulution. The interview took a form of a Question and Answer session where I tried to gather as much information as I needed. I also decided to check the current system being used and also observed the workings of the manufacturing department. During the investigation I focused on the problem itself, and the process of the department as a whole. Interview with Mr. Pandey I interviewed Mr. Kaushal Raj Pandey on Sunday, December 9 th, The interview was recorded on the mobile phone. An excerpt from the transcript of the interview is given below: Shritesh: Can you tell me about the current system being used? Mr. Pandey: I keep my ledger with lots of scribblings, accounting current stock of finished goods with us. At the end of each day, I fill the ledger with the number of goods produced and stocks that have left the factory. I have to inform other departments about the total production and stock from the ledger itself. Shritesh: What are the current problems that you face? Mr. Pandey: I have to make a report about the current inventory many times. I am currently doing it in my ledger that I showed you on our first meeting. Its getting harder day by day as it has become bulkier and has been difficult to manage. Sometimes when I myself need to have a view of the weekly, monthly or daily production process, I have to do a lot of calculations to get it done. Shritesh: Can you describe the production process? Mr. Pandey: Sure, during the production process, the raw materials are used to make the finished goods. Those finished goods are stored outside the factory. And once they leave the factory, we count it as a sale. Shritesh: So, the system should mainly deal with the quantities of the finished goods? Mr. Pandey: That's correct. Shritesh: Thank you. Is there anything else that I should know? Mr. Pandey: It's great that you are helping us. The system does not need much bells and whistles. Just make sure that I can get the overview of the inventory with ease. Shritesh: Thank you. 6
7 Observation I decided to observe the manufacturing process for a day. I had the privilege of observing the production of various plastic object but most importantly the production of finished good and its export. My observations are listed as below: Production: - The production is a simple process that converts raw materials into finished goods. - The production process is dictated my the demand of the product. Some days may have a many production going on and some days may have none. Finished goods: - The finished goods are of various types and may also be prepared according to the needs of the customers. - Once the finished goods leave the factory floor, it is counted as a sales. Analysis Analysis of the Interview From the interview, I deduced that quantities of finished goods are the core of the system. Easy overview of the inventory is the most important part that needs to be focused on. Mr. Pandey needs a system to connect the finished goods with the production process. Analysis of the observation From the observation, I found out that the types of finished goods almost never change, only the quantities change. Analysis of the current system Mr. Pandey uses his ledger for all record keeping. The changes to the quantities are added and current quantities are calculated manually. The analysis is better summarised in the flowchart on the next page. 7
8 System Flowchart of the current system 8
9 Inefficiencies of the current system The current system is easy for Mr. Pandey and the department to follow. There is no need of any technical knowledge required to take a look at the records. Other than that, the system is very inefficient. The inefficiencies are listed below: 1. Lack of correlation between production and finished goods The present system has no means to relate the finished goods and production process. Production records need to be generated manually. 2. Repetitive and time consuming reports Mr. Pandey has to create the reports and its formatting every day manually. This can be hugely automated. 3. Difficulty in amending records If a single entry needs to be changed, all the subsequent records need to be recalculate. When a small mistake occurs, this hampers the efficiency of the work. Alternative Solutions The following alternative solutions were thought and discussed upon: 1. Integrating with the existing spreadsheet based system of other departments The sales departments use a spreadsheet based solution. We can reuse the system but those spreadsheet also contain data such as customer and pricing which cannot be granted access to the production department. 2. Using off-the-shelf inventory management system There are many off-the-shelf stock and inventory management system that solve many of the current problems. But the software are mainly sales focused with emphasis on the price. Also, the software have a lot of unnecessary features and may have a learning curve for Mr. Pandey 3. Creating a database based custom solution A database based solution can be created that can be custom tailored for Mr. Pandey to fulfill all his requirements in a way that is easy for him. The searching and report generation can be easily and efficiently implemented in this system. Proposed solution From the above alternative solutions, Mr. Pandey and I decided to settle on creating a database based custom solution. Mr. Pandey wanted a simple solution that can be used on the office computer that he can use easily and efficiently. The system can meet the demands of Mr. Pandey and can also be iterated and updated with features in the future if needed. 9
10 Requirement specification The following requirements were agreed upon with Mr. Pandey with a signed agreement. The statement is included at the end. Functional requirements - The system needs to keep track of the quantities of finished goods along with the production process. - The system needs to completely replace the previous work flow. - The system should allow to change records in case of error. - The system needs to be able to search the records. - The system should able to give a general overview of both production and finished goods - The system needs to be able to generate viewable reports for various time-frame for the raw materials, production and finished goods. - The system needs to be easy to use and user friendly for Mr. Pandey. - The system needs to work in the company's Microsoft Windows based environment. Software requirements The following software are necessary for the solution and were already installed on the company PC: 1. Microsoft Windows Operating system (Windows 7 Professional) The solution must be developed for the company's Windows based computers. The program itself will be developed using Microsoft Visual Basic 6.0 on a windows machine. 2. Microsoft office access (Microsoft Office 2010) The program requires a database for the relational storage. Microsoft office access was chosen as it is easier to manage and less expensive than other commercial database vendors. Hardware requirements The hardware itself was already provided by the company which was already more than capable for our program solution: 1. Input Device a. QWERTY Keyboard (Dell Keyboard) A QWERTY keyboard with numerical keypad is required for data input. b. Optical mouse (Dell Optical Mouse) An optical mouse is required to access the program's graphical user interface. 2. Output Device a. Color display monitor (Dell LCD Monitor) A monitor is required to display the program to the user. 3. Storage a. Internal Hard disk (Seagate 500 GB hard disk) An internal hard disk with plenty free space is required to store the program and the database. 10
11 b. External Hard disk (Kingston 128 GB external hard disk) An external hard disk may be used perform regular database backups. c. DVD Writer (LG 52X Internal DVD Burner) A DVD Writer is used to archive the database for backups and install the program. d. Blank DVDs (Saitron DVD-R 4.7 GB) DVDs are required to create a permanent archive of the database for backup. 4. System a. x86-based Processor (2.4 GHz Intel Core 2 Quad processor) A fast x86-based processor capable of running the Windows OS is required for the system. b. 512 RAM (Transcent 4GB DDR2 RAM) Sufficient RAM is required for both the program and the database to run efficiently. 5. Power Backup Uninterrupted Power Supply (APC Tower UPS) UPS is required to ensure a sudden power fluctuation does not hamper the system 11
12 Design Nature of the solution The solution has been designed to keep track of the quantities finished goods with sales along with the production process. The following objectives are based on the interviews and the requirement specification: Objectives of the system 1. The records must be easily accessible provide operations such as adding, updating, deleting. 2. Production and sales need to change the finished goods automatically. 3. There needs to be a proper system to view reports on the screen. 4. Ensure that only valid data gets inserted. 5. The system must be accessible only by a single user. 6. A proper mechanism for data backups must be made. Entity Relationship Diagram The following entity relationship diagram shows the relationship between the production, finished goods and sales. The entities when normalized in the third form, are as shown below: Data structure design Finished Goods Key Field Name Data Type Size(bytes) Sample Data Constraints PK FinID Long Number 4 5 Auto Generated FinName String 100 Horz. Tank 550L XL FinDescription String 255 Horizontal Tank 32.5'x50'x29' XL Quality Presence None 12
13 Key Field Name Data Type Size(bytes) Sample Data Constraints FinQuantity Integer 2 63 Presence Format FinRemarks String 100 High on demand this month None Production Key Field Name Data Type Size(bytes) Sample Data Constraints PK ProID Long Number 4 5 Auto Generated ProDate DateTime 8 02/04/2012 Presence Format ProQuantity Integer 2 63 Presence Format ProRemarks String 100 None gone to waste None Production Finished Goods Key Field Name Data Type Size(bytes) Sample Data Constraints PK ProID Long Number 4 5 Presence PK FinID Long Number 4 2 Presence Sales Key Field Name Data Type Size(bytes) Sample Data Constraints PK SaleID Long Number 4 5 Auto Generated 13
14 Key Field Name Data Type Size(bytes) Sample Data Constraints SaleDate DateTime 8 02/04/2012 Presence Format SaleQuantity Integer 2 63 Presence Format SaleRemarks String 100 Cleared Stock None Sales Finished Goods Key Field Name Data Type Size(bytes) Sample Data Constraints PK SaleID Long Number 4 5 Presence PK FinID Long Number 4 2 Presence Form design There are various forms that deal with operations such as adding, editing, listing and viewing the records. The design are shown as below: Login Textbox to enter the username 14 Button to validate t login
15 Main Menu bar to access other forms 15
16 Fini s h e d G o o d s Listview for the list of finished Ad d inished Goods F Text box for the description of the Text box for the quantity of the Textbox box for the for name of the Textbox for Text box for the remarks for the Button Edit Finished 16 Button to save th d Button to close the window without adding
17 Goods Label for the ID of the finished Text box for the name of the Text box for the description of the Text box for the quantity of the Text box for the remarks for the View Finished Goods Button to update th t Button to close the window without Inform ation about the Listview for the list of related Listview for the list of related Button to show th dit f Button to show the delete Button to close the 17
18 Pr o d u c t i o n Listview for the list of Ad d uction Textbox for p r o d Combobox for the Finished good Text box for the quantity of the Button to save th d Combo Button to view messagebox for of the selected good search Datepicker for the Datepick date er for Button to vie Text box for the of the select remarks for the Button to close the window without 18
19 Edit Production Label for the production ID Combobox for the Finished good Text box for the quantity of the Button to save th d Sales Listview for the list of sales Textbox for Combo for search Button to show the delete messagebox Datepick er for Button to view messagebox of the selected good Button to search the records based on the 19 Button to show add Button to show i Button to clear the criteria Button to show the edit form
20 Textbox to enter the current Add Sales Combobox for the Finished good Text box for the quantity of the Button to view messagebox of the selected good Datepicker for the date Text box for the remarks for the Button to save th d Edit Sales Button to close the window without Label for Button the sales to view ID messagebox of the selected good Combobox for the Datepicker for the Finished good date Text box for the quantity of the Button to dt th Change Login Details Textbox to enter the current username 20
21 Menu and module design FILE - Change Login Details Change Login Form - Exit FINISHED GOOD Finished Goods Form Add Finished Good Form Edit Finished Good Form View Finished Good Form SALE Sales Form Add Sales Form Edit Sales Form PRODUCTION Production Form Add Production Form Edit Production Form Intended Benefits 1. Time saving The new system will save a lot of time for the department. The need to recalculate the records will be removed. 2. Automation Whenever the production or sales is done, the quantities of the finished goods automatically changes. This makes the whole process automatic and easy. 21
22 3. Easy to use The system is very easy to use as it is custom designed for the needs of the user. 4. Reduce the amount of errors As the redundancy is removed and data is validated, the amount of error is drastically reduced compared to the previous system. Limits of the scope of the solution System Limitations There are many limitations that are itself the part of the design of the system: 1. Only a single user can use the program. 2. The records cannot be printed on paper, only displayed on the screen. 3. The system is designed for around types of finished goods, more than that may cause clutter in the program. 4. Change in either production or sales after adding, i.e. editing of those records, will not reflect to the main finished good record. It has to be done manually. 5. The user is responsible for the backups, i.e. manual backups of database files need to carried out by the user. Database size estimation Table Size per record 10% Overhead Total size per record Estimated records per year Size of total estimated records (bytes) Finished Goods Production Production Finished Goods Sales Sales Finished Goods Total = 797 KBytes 22
23 Software development, programming, testing and installation Development Visual Basic 6.0 was used for development along with access 2007 for database on a Windows XP machine. The system is a combination of forms, database tables with modules with emphasis on maximum code reuse. Code Listing Tables The design views of the tables are given below. The size, sample data and constraints are already described in the design section. Finished Goods: Production Finished goods: Sales: 23
24 Sales Finished goods: Relationships The Microsoft access database relationships is shown below 24
25 Modules Various modules were used to ensure code re-usability and modularity of the code. Their structure and code is listed below: ModAuthentication.bas Public Function Login(strUsername As String, strpassword As String) As Boolean ' Function to check if the parameters match with that on the "password.dat" file ' Exits with an error if the file does not exist ' Returns true if credentials match, false if not ' File may not exist On Error GoTo Error ' Variables to hold the username and password from the file Dim username, password As String ' Open the file and write the username and password to the variables Open App.Path & "\password.dat" For Input As #1 Input #1, username Input #1, password ' close the file Close #1 ' check if the credentials match ' username is not case sensitive but password is If UCase(strUsername) = UCase(userName) And strpassword = password Then Login = True Else Login = False Exit Function Error: ' Gracefully inform the user and exit MsgBox "Could not load password.dat file. Contact the system administrator.", vbcritical, "Login error" End End Function Public Sub ChangePassword(strUsername As String, strpassword As String) ' Sub procedure to change the password to the specified parameters ' Open the file, write the credentials and close it 25
26 Open App.Path & "\password.dat" For Output As #1 Write #1, strusername Write #1, strpassword Close #1 26
27 ModDatabase.bas ' Public Connection object for database access Public dbconnection As ADODB.Connection Public Function Connect() As Boolean ' Function to connect to the database after login ' Returns true upon successful connection ' Returns false if connection fails ' Error handler On Error GoTo Error ' Create the connection Set dbconnection = New ADODB.Connection dbconnection.connectionstring = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & App.Path & "\Database.accdb" dbconnection.mode = admodereadwrite ' Open the connection dbconnection.open 'Return True Connect = True Exit Function Error: ' Something went wrong, return False Connect = False End Function Public Sub Disconnect() ' Sub procedure to disconnect the database during exit ' Close the database connection dbconnection.close 27
28 ModFinishedGoods.bas ' Declaration for the FinishedGood Type Public Type FinishedGood FinID As Integer FinName As String FinDescription As String FinQuantity As Integer FinRemarks As String End Type Public Function Add(FinName As String, FinDescription As String, FinQuantity As Integer, FinRemarks As String) As Integer ' Function to add a new record to the database ' Returns the new ID ' Declare and open a new recordset Dim therecordset As New ADODB.Recordset therecordset.activeconnection = moddatabase.dbconnection therecordset.locktype = adlockoptimistic therecordset.open "FinishedGoods" ' Create a new record with corresponding fields therecordset.addnew therecordset.fields("finname") = FinName therecordset.fields("findescription") = FinDescription therecordset.fields("finquantity") = FinQuantity therecordset.fields("finremarks") = FinRemarks therecordset.update ' Declare a integer var to store new ID Dim newid As Integer newid = therecordset.fields("finid") ' Close the recordset therecordset.close 'return the new ID Add = newid End Function Public Function GetAll(Optional FinID As Integer = -1, Optional FinName As String = "") As FinishedGood() ' Function to return an array of all FinishedGoods that match the given optional parameters ' Returns the whole recordset if no parameters are specified ' Returns an array with the 1st element with ID -1 when no records are found 28
29 ' Array to hold all FinishedGoods Dim all() As FinishedGood ' Current record variable for iteration Dim currentrec As Integer currentrec = 0 ' Declare and open a new recordset Dim therecordset As New ADODB.Recordset therecordset.activeconnection = moddatabase.dbconnection therecordset.cursortype = adopenkeyset therecordset.locktype = adlockreadonly therecordset.open "FinishedGoods" ' Records Filtering If FinID <> -1 Then ' When ID is defined, other parameters are ignored therecordset.filter = "FinID = " & FinID ElseIf FinName <> "" Then therecordset.filter = "FinName LIKE '*" & FinName & "*'" ' Check if any record was obtained If therecordset.recordcount > 0 Then ' Set the dimension of the array ReDim all(therecordset.recordcount - 1) As FinishedGood Else ' Create a single value array with ID -1 ReDim all(0) As FinishedGood all(0).finid = -1 Do Until therecordset.eof ' Iterate over all the records and set their values in the type all(currentrec).finid = therecordset.fields("finid") all(currentrec).finname = therecordset.fields("finname") all(currentrec).findescription = therecordset.fields("findescription") all(currentrec).finquantity = therecordset.fields("finquantity") all(currentrec).finremarks = therecordset.fields("finremarks") currentrec = currentrec + 1 therecordset.movenext Loop ' Close the recordset and return the array therecordset.close GetAll = all End Function 29
30 Public Function GetOne(FinID As Integer) As FinishedGood ' Function that returns a single record from the ID ' Declare an array to store the records Dim therecords() As FinishedGood therecords = GetAll(FinID) ' Return the 1st record GetOne = therecords(0) End Function Public Sub Update(FinID As Integer, FinName As String, FinDescription As String, FinQuantity As Integer, FinRemarks As String) ' Sub procedure to update a record with the parameters ' Declare and open a new recordset Dim therecordset As New ADODB.Recordset therecordset.activeconnection = moddatabase.dbconnection therecordset.locktype = adlockoptimistic ' Get the selected record therecordset.open "FinishedGoods" therecordset.filter = "FinID = " & FinID ' update the recordset therecordset.fields("finname") = FinName therecordset.fields("findescription") = FinDescription therecordset.fields("finquantity") = FinQuantity therecordset.fields("finremarks") = FinRemarks therecordset.update ' Close the recordset therecordset.close Public Sub Delete(FinID As Integer) ' Sub Procedure to delete a record with the specified ID ' Declare and open a new recordset Dim therecordset As New ADODB.Recordset therecordset.activeconnection = moddatabase.dbconnection therecordset.locktype = adlockoptimistic ' Get the selected record therecordset.open "FinishedGoods" therecordset.filter = "FinID = " & FinID 30
31 ' Delete the record and close the recordset therecordset.delete therecordset.close Public Sub Info(FinID As Integer) ' Sub Procedure to display a messagebox with info about the specific record Dim therecord As FinishedGood therecord = GetOne(FinID) MsgBox "ID: " & therecord.finid & vbnewline & _ "Name: " & therecord.finname & vbnewline & _ "Quantity: " & therecord.finquantity & vbnewline & _ "Description: " & therecord.findescription & vbnewline & _ "Remarks: " & therecord.finremarks 31
32 ModProduction.bas ' Declaration for the Production Type Public Type Production ProID As Integer ProDate As Date ProQuantity As Integer ProRemarks As String ProFin As FinishedGood End Type Public Function Add(FinID As Integer, ProDate As Date, ProQuantity As Integer, ProRemarks As String) As Integer ' Function to add a new record to the database ' Returns the new ID ' Begin a transaction moddatabase.dbconnection.begintrans ' Declare and open a new recordset Dim therecordset As New ADODB.Recordset therecordset.activeconnection = moddatabase.dbconnection therecordset.locktype = adlockoptimistic therecordset.open "Production" ' Create a new record with corresponding fields therecordset.addnew therecordset.fields("prodate") = ProDate therecordset.fields("proquantity") = ProQuantity therecordset.fields("proremarks") = ProRemarks therecordset.update ' Declare a integer var to store new ID Dim newid As Integer newid = therecordset.fields("proid") ' Close the recordset therecordset.close ' Declare and open a new recordset Dim therecordset1 As New ADODB.Recordset therecordset1.activeconnection = moddatabase.dbconnection therecordset1.locktype = adlockoptimistic therecordset1.open "ProductionFinishedGoods" ' Create a new record with corresponding fields therecordset1.addnew therecordset1.fields("proid") = newid therecordset1.fields("finid") = FinID 32
33 therecordset1.update ' Close the recordset therecordset1.close ' Get the FinishedGood Dim thefinishedgood As FinishedGood thefinishedgood = modfinishedgoods.getone(finid) ' Add the raw materials modfinishedgoods.update FinID, thefinishedgood.finname, thefinishedgood.findescription, thefinishedgood.finquantity + ProQuantity, thefinishedgood.finremarks ' Commit the transaction moddatabase.dbconnection.committrans 'return the new ID Add = newid End Function Public Function GetAll(Optional ProID As Integer = -1, Optional ProDate As Date = "01/01/1970") As Production() ' Function to return an array of all Productions that match the given optional parameters ' Returns the whole recordset if no parameters are specified ' Returns an array with the 1st element with ID -1 when no records are found ' Array to hold all FinishedGoods Dim all() As Production ' Current record variable for iteration Dim currentrec As Integer currentrec = 0 ' Declare and open a new recordset Dim therecordset As New ADODB.Recordset therecordset.activeconnection = moddatabase.dbconnection therecordset.cursortype = adopenkeyset therecordset.locktype = adlockreadonly therecordset.open "Production" ' Records Filtering If ProID <> -1 Then ' When ID is defined, other parameters are ignored therecordset.filter = "ProID = " & ProID ElseIf ProDate <> "01/01/1970" Then 33
34 therecordset.filter = "ProDate = #" & ProDate & "#" ' Check if any record was obtained If therecordset.recordcount > 0 Then ' Set the dimension of the array ReDim all(therecordset.recordcount - 1) As Production Else ' Create a single value array with ID -1 ReDim all(0) As Production all(0).proid = -1 Do Until therecordset.eof ' Iterate over all the records and set their values in the type all(currentrec).proid = therecordset.fields("proid") all(currentrec).prodate = therecordset.fields("prodate") all(currentrec).proquantity = therecordset.fields("proquantity") all(currentrec).proremarks = therecordset.fields("proremarks") all(currentrec).profin = modfinishedgoods.getone(getfin(all(currentrec).proid)) currentrec = currentrec + 1 therecordset.movenext Loop ' Close the recordset and return the array therecordset.close GetAll = all End Function Public Function GetOne(ProID As Integer) As Production ' Function that returns a single record from the ID ' Declare an array to store the records Dim therecords() As Production therecords = GetAll(ProID) ' Return the 1st record GetOne = therecords(0) End Function Private Function GetFin(ProID As Integer) As Integer 'Function that returns the FinID associated with a ProID ' Returns -1 if not found ' Declare and open a new recordset Dim therecordset As New ADODB.Recordset therecordset.activeconnection = moddatabase.dbconnection 34
35 therecordset.cursortype = adopenkeyset therecordset.locktype = adlockreadonly therecordset.open "ProductionFinishedGoods" therecordset.filter = "ProID = " & therecordset.fields("proid") 'Get the ProID Dim FinID As Integer If therecordset.recordcount > 0 Then FinID = therecordset.fields("finid") Else FinID = -1 'Close the recordset therecordset.close 'return FinID GetFin = FinID End Function Public Sub Update(ProID As Integer, FinID As Integer, ProDate As Date, ProQuantity As Integer, ProRemarks As String) ' Sub procedure to update a record with the parameters ' Begin a transaction moddatabase.dbconnection.begintrans ' Declare and open a new recordset Dim therecordset As New ADODB.Recordset therecordset.activeconnection = moddatabase.dbconnection therecordset.locktype = adlockoptimistic ' Get the selected record therecordset.open "Production" therecordset.filter = "ProID = " & ProID ' update the recordset therecordset.fields("prodate") = ProDate therecordset.fields("proquantity") = ProQuantity therecordset.fields("proremarks") = ProRemarks therecordset.update ' Close the recordset therecordset.close 35
36 ' Declare and open a new recordset Dim therecordset1 As New ADODB.Recordset therecordset1.activeconnection = moddatabase.dbconnection therecordset1.locktype = adlockoptimistic ' Get the selected record therecordset1.open "ProductionFinishedGoods" therecordset1.filter = "ProID = " & ProID ' update the recordset therecordset1.fields("finid") = FinID therecordset1.update ' Close the recordset therecordset1.close ' Commit the transaction moddatabase.dbconnection.committrans Public Sub Delete(ProID As Integer) ' Sub Procedure to delete a record with the specified ID ' Begin a transaction moddatabase.dbconnection.begintrans ' Declare and open a new recordset Dim therecordset As New ADODB.Recordset therecordset.activeconnection = moddatabase.dbconnection therecordset.locktype = adlockoptimistic ' Get the selected record therecordset.open "Production" therecordset.filter = "ProID = " & ProID ' Delete the record and close the recordset therecordset.delete therecordset.close ' Declare and open a new recordset Dim therecordset1 As New ADODB.Recordset therecordset1.activeconnection = moddatabase.dbconnection therecordset1.locktype = adlockoptimistic 36
37 ' Get the selected record therecordset1.open "ProductionFinishedGoods" therecordset1.filter = "ProID = " & ProID ' Delete the record and close the recordset therecordset1.delete therecordset1.close ' Commit the transaction moddatabase.dbconnection.committrans Public Sub Info(ProID As Integer) ' Sub Procedure to display a messagebox with info about the specific record Dim therecord As Production therecord = GetOne(ProID) MsgBox "ID: " & therecord.proid & vbnewline & _ "Finished Good: " & therecord.profin.finname & vbnewline & _ "Date: " & therecord.prodate & vbnewline & _ "Quantity: " & therecord.proquantity & vbnewline & _ "Remarks: " & therecord.proremarks 37
38 ModSales.bas ' Declaration for the Sales Type Public Type Sale SaleID As Integer SaleDate As Date SaleQuantity As Integer SaleRemarks As String SaleFin As FinishedGood End Type Public Function Add(FinID As Integer, SaleDate As Date, SaleQuantity As Integer, SaleRemarks As String) As Integer ' Function to add a new record to the database ' Returns the new ID ' Begin a transaction moddatabase.dbconnection.begintrans ' Declare and open a new recordset Dim therecordset As New ADODB.Recordset therecordset.activeconnection = moddatabase.dbconnection therecordset.locktype = adlockoptimistic therecordset.open "Sales" ' Create a new record with corresponding fields therecordset.addnew therecordset.fields("saledate") = SaleDate therecordset.fields("salequantity") = SaleQuantity therecordset.fields("saleremarks") = SaleRemarks therecordset.update ' Declare a integer var to store new ID Dim newid As Integer newid = therecordset.fields("saleid") ' Close the recordset therecordset.close ' Declare and open a new recordset Dim therecordset1 As New ADODB.Recordset therecordset1.activeconnection = moddatabase.dbconnection therecordset1.locktype = adlockoptimistic therecordset1.open "SalesFinishedGoods" ' Create a new record with corresponding fields therecordset1.addnew therecordset1.fields("saleid") = newid therecordset1.fields("finid") = FinID 38
39 therecordset1.update ' Close the recordset therecordset1.close ' Get the FinishedGood Dim thefinishedgood As FinishedGood thefinishedgood = modfinishedgoods.getone(finid) ' Subtract the raw materials modfinishedgoods.update FinID, thefinishedgood.finname, thefinishedgood.findescription, thefinishedgood.finquantity - SaleQuantity, thefinishedgood.finremarks ' Commit the transaction moddatabase.dbconnection.committrans 'return the new ID Add = newid End Function Public Function GetAll(Optional SaleID As Integer = -1, Optional SaleDate As Date = "01/01/1970") As Sale() ' Function to return an array of all Sales that match the given optional parameters ' Returns the whole recordset if no parameters are specified ' Returns an array with the 1st element with ID -1 when no records are found ' Array to hold all Sales Dim all() As Sale ' Current record variable for iteration Dim currentrec As Integer currentrec = 0 ' Declare and open a new recordset Dim therecordset As New ADODB.Recordset therecordset.activeconnection = moddatabase.dbconnection therecordset.cursortype = adopenkeyset therecordset.locktype = adlockreadonly therecordset.open "Sales" ' Records Filtering If SaleID <> -1 Then ' When ID is defined, other parameters are ignored therecordset.filter = "SaleID = " & SaleID ElseIf SaleDate <> "01/01/1970" Then 39
40 therecordset.filter = "SaleDate = #" & SaleDate & "#" ' Check if any record was obtained If therecordset.recordcount > 0 Then ' Set the dimension of the array ReDim all(therecordset.recordcount - 1) As Sale Else ' Create a single value array with ID -1 ReDim all(0) As Sale all(0).saleid = -1 Do Until therecordset.eof ' Iterate over all the records and set their values in the type all(currentrec).saleid = therecordset.fields("saleid") all(currentrec).saledate = therecordset.fields("saledate") all(currentrec).salequantity = therecordset.fields("salequantity") all(currentrec).saleremarks = therecordset.fields("saleremarks") all(currentrec).salefin = modfinishedgoods.getone(getfin(all(currentrec).saleid)) currentrec = currentrec + 1 therecordset.movenext Loop ' Close the recordset and return the array therecordset.close GetAll = all End Function Public Function GetOne(SaleID As Integer) As Sale ' Function that returns a single record from the ID ' Declare an array to store the records Dim therecords() As Sale therecords = GetAll(SaleID) ' Return the 1st record GetOne = therecords(0) End Function Private Function GetFin(SaleID As Integer) As Integer 'Function that returns the FinID associated with a SaleID ' Returns -1 if not found ' Declare and open a new recordset Dim therecordset As New ADODB.Recordset therecordset.activeconnection = moddatabase.dbconnection 40
41 therecordset.cursortype = adopenkeyset therecordset.locktype = adlockreadonly therecordset.open "SalesFinishedGoods" therecordset.filter = "SaleID = " & therecordset.fields("saleid") 'Get the SaleID Dim FinID As Integer If therecordset.recordcount > 0 Then FinID = therecordset.fields("finid") Else FinID = -1 'Close the recordset therecordset.close 'return FinID GetFin = FinID End Function Public Sub Update(SaleID As Integer, FinID As Integer, SaleDate As Date, SaleQuantity As Integer, SaleRemarks As String) ' Sub procedure to update a record with the parameters ' Begin a transaction moddatabase.dbconnection.begintrans ' Declare and open a new recordset Dim therecordset As New ADODB.Recordset therecordset.activeconnection = moddatabase.dbconnection therecordset.locktype = adlockoptimistic ' Get the selected record therecordset.open "Sales" therecordset.filter = "SaleID = " & SaleID ' update the recordset therecordset.fields("saledate") = SaleDate therecordset.fields("salequantity") = SaleQuantity therecordset.fields("saleremarks") = SaleRemarks therecordset.update ' Close the recordset therecordset.close 41
42 ' Declare and open a new recordset Dim therecordset1 As New ADODB.Recordset therecordset1.activeconnection = moddatabase.dbconnection therecordset1.locktype = adlockoptimistic ' Get the selected record therecordset1.open "SalesFinishedGoods" therecordset1.filter = "SaleID = " & SaleID ' update the recordset therecordset1.fields("finid") = FinID therecordset1.update ' Close the recordset therecordset1.close ' Commit the transaction moddatabase.dbconnection.committrans Public Sub Delete(SaleID As Integer) ' Sub Procedure to delete a record with the specified ID ' Begin a transaction moddatabase.dbconnection.begintrans ' Declare and open a new recordset Dim therecordset As New ADODB.Recordset therecordset.activeconnection = moddatabase.dbconnection therecordset.locktype = adlockoptimistic ' Get the selected record therecordset.open "Sales" therecordset.filter = "SaleID = " & SaleID ' Delete the record and close the recordset therecordset.delete therecordset.close ' Declare and open a new recordset Dim therecordset1 As New ADODB.Recordset therecordset1.activeconnection = moddatabase.dbconnection therecordset1.locktype = adlockoptimistic 42
43 ' Get the selected record therecordset1.open "SalesFinishedGoods" therecordset1.filter = "SaleID = " & SaleID ' Delete the record and close the recordset therecordset1.delete therecordset1.close ' Commit the transaction moddatabase.dbconnection.committrans Public Sub Info(SaleID As Integer) ' Sub Procedure to display a messagebox with info about the specific record Dim therecord As Sale therecord = GetOne(SaleID) MsgBox "ID: " & therecord.saleid & vbnewline & _ "Finished Good: " & therecord.salefin.finname & vbnewline & _ "Date: " & therecord.saledate & vbnewline & _ "Quantity: " & therecord.salequantity & vbnewline & _ "Remarks: " & therecord.saleremarks 43
44 Forms The code of the forms used in the program are listed below FrmLogin.frm Private Sub cmdexit_click() ' Exit the application End Private Sub cmdlogin_click() ' Check if the username and password are correct If modauthentication.login(me.txtusername.text, Me.txtPassword.Text) Then ' Load the main form and close this window frmmain.show Unload Me Else ' Inform the user MsgBox "Invalid Username or Password.", vbexclamation FrmChangeLoginDetails.frm Private Sub cmdcancel_click() ' Close the form Unload Me Private Sub cmdchange_click() ' Check if current details are correct If modauthentication.login(me.txtusername.text, Me.txtPassword.Text) Then If Me.txtNewPassword.Text = Me.txtNewPasswordConfirm.Text Then ' Change the password, inform the user and close modauthentication.changepassword Me.txtNewPassword.Text, Me.txtNewPassword.Text MsgBox "Login Details Changed Successfully!", vbinformation Unload Me Else ' Inform the user MsgBox "New passwords do not match.", vbexclamation Me.txtNewPassword.SetFocus Else ' Inform the user MsgBox "Incorrect current username or password.", vbexclamation Me.txtUsername.SetFocus 44
45 Private Sub txtnewpassword_validate(cancel As Boolean) ' Presence Check If txtnewpassword.text = "" Then MsgBox "Password cannot be empty.", vbexclamation Cancel = True Private Sub txtnewusername_validate(cancel As Boolean) 'Remove Front or trailing spaces txtnewusername.text = Trim(txtNewUsername.Text) ' Presence Check If txtnewusername.text = "" Then MsgBox "Username cannot be empty.", vbexclamation Cancel = True Private Sub txtpassword_validate(cancel As Boolean) ' Presence Check If txtpassword.text = "" Then MsgBox "Password cannot be empty.", vbexclamation Cancel = True Private Sub txtusername_validate(cancel As Boolean) 'Remove Front or trailing spaces txtusername.text = Trim(txtUsername.Text) ' Presence Check If txtusername.text = "" Then MsgBox "Username cannot be empty.", vbexclamation Cancel = True 45
46 FrmMain.frm Private Sub MDIForm_Load() ' Make sure a database connection can be established If moddatabase.connect = False Then ' Inform the user and exit upon failure MsgBox "Unable to connect to database. Contact system administrator. ", vbcritical End Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer) ' Ask the user for confirmation upon closing If MsgBox("Are you sure you want to exit?", vbquestion + vbyesno, "Exit") = vbno Then Cancel = 1 Else ' Disconnect the database if closing moddatabase.disconnect Private Sub mnuchangelogindetails_click() ' Show the change login details form frmchangelogindetails.show Private Sub mnuexit_click() ' Close the form Unload Me Private Sub mnufinishedgood_click() ' Show the Finished Goods form frmfinishedgoods.show Private Sub mnuproduction_click() ' Show the Production form frmproduction.show Private Sub mnusale_click() ' Show the sales form frmsales.show 46
47 Private Sub mnuwindowcascade_click() ' Cascade window arrangement Me.Arrange vbcascade Private Sub mnuwindowtilehorizontal_click() ' Horizontal window arrangement Me.Arrange vbhorizontal Private Sub mnuwindowtilevertical_click() ' Vertical window arrangement Me.Arrange vbvertical 47
48 frmfinishedgoods.frm Private Sub cmdadd_click() 'show the add Form frmaddfinishedgoods.show Private Sub cmdview_click() ' Show the view Form frmviewfinishedgoods.view (Val(Me.lstFinishedGoods.SelectedItem.Text)) Private Sub cmdclear_click() ' Clear the search criteria Me.txtID.Text = "" Me.txtName = "" ' Refresh the list RefreshList Private Sub cmdclose_click() ' Close the form Unload Me Private Sub cmddelete_click() ' Ask confirmation to delete the record If MsgBox("Are you sure you want to delete this record?", vbyesno + vbquestion) = vbyes Then ' Delete the record modfinishedgoods.delete Val(Me.lstFinishedGoods.SelectedItem.Text) 'Inform the user and refresh the list MsgBox "Record deleted successfully.", vbinformation, "Deleted" RefreshList Private Sub cmdedit_click() ' Show the edit form with the ID frmeditfinishedgoods.edit (Val(Me.lstFinishedGoods.SelectedItem.Text)) Private Sub cmdsearch_click() ' Refresh The List RefreshList 48
49 Public Sub RefreshList() 'Sup procedure to fill the list with records matching the search criteria (if any) ' Clear the list of Items Me.lstFinishedGoods.ListItems.Clear ' Declare an array for the FinishedGoods Dim all() As FinishedGood If Me.txtID.Text <> "" Then ' if ID is specified, other paramaters are ignored all = modfinishedgoods.getall(val(me.txtid.text)) Else all = modfinishedgoods.getall(, Me.txtName.Text) ' Clear button is only enabled when any criteria is speicifed If Me.txtID.Text <> "" Or Me.txtName.Text <> "" Then Me.cmdClear.Enabled = True Else Me.cmdClear.Enabled = False ' Check if any record is found If all(0).finid = -1 Then ' Disable the action buttons Me.cmdView.Enabled = False Me.cmdEdit.Enabled = False Me.cmdDelete.Enabled = False Else ' Enable the action buttons Me.cmdView.Enabled = True Me.cmdEdit.Enabled = True Me.cmdDelete.Enabled = True ' Iterate over all the elements in the array and add to the list Dim i As Integer For i = LBound(all) To UBound(all) With Me.lstFinishedGoods.ListItems.Add(,, all(i).finid).listsubitems.add,, all(i).finname.listsubitems.add,, all(i).finquantity.listsubitems.add,, all(i).findescription End With Next i 49
50 Private Sub Form_Load() 'Refresh the list RefreshList Private Sub lstfinishedgoods_dblclick() ' If any item is selected, load the view form with the ID If Not Me.lstFinishedGoods.SelectedItem Is Nothing Then frmviewfinishedgoods.view (Val(Me.lstFinishedGoods.SelectedItem.Text)) Private Sub txtid_validate(cancel As Boolean) ' Numeric Test ' Make sure txtid is empty first If txtid <> "" And Not IsNumeric(txtID) Then MsgBox "ID Must be a number", vbexclamation Cancel = True 50
51 FrmAddFinishedGoods.frm Private Sub cmdadd_click() ' Declare a variable for the ID Dim FinID As Integer 'Add the record FinID = modfinishedgoods.add(me.txtname.text, Me.txtDescription.Text, Val(Me.txtQuantity.Text), Me.txtRemarks.Text) 'Inform the user MsgBox "Record with ID " & FinID & " successfuly added", vbinformation 'Close the form after showing the FinishedGoods form frmfinishedgoods.show frmfinishedgoods.refreshlist Unload Me Private Sub cmdcancel_click() ' Close the form Unload Me Private Sub txtname_validate(cancel As Boolean) ' Presence check If txtname.text = "" Then MsgBox "The name cannot be empty." Cancel = True Private Sub txtquantity_validate(cancel As Boolean) ' Presence and numeric check If Not IsNumeric(txtQuantity.Text) Then MsgBox "Quantity must be a numeric value.", vbexclamation Cancel = True 51
52 FrmEditFinishedGoods.frm Public Sub Edit(FinID As Integer) ' Make sure that the form is shown Me.Show ' Declare an array and get the corresponding record Dim therecord As FinishedGood therecord = modfinishedgoods.getone(finid) ' Check if the record exists If therecord.finid = -1 Then ' Inform the user that no record found and close the form MsgBox "No record found", vbexclamation Unload Me Else ' Fill the corresponding textboxes Me.lblID.Caption = therecord.finid Me.txtName.Text = therecord.finname Me.txtDescription.Text = therecord.findescription Me.txtQuantity = therecord.finquantity Me.txtRemarks.Text = therecord.finremarks Private Sub cmdcancel_click() ' Close the form Unload Me Private Sub cmdupdate_click() ' Update the record modfinishedgoods.update Val(Me.lblID.Caption), Me.txtName.Text, Me.txtDescription.Text, Val(Me.txtQuantity.Text), Me.txtRemarks.Text ' Inform the user and Refresh the list MsgBox "Record updated successfully.", vbinformation, "Updated" frmfinishedgoods.refreshlist ' Close the form Unload Me Private Sub txtname_validate(cancel As Boolean) ' Presence check If txtname.text = "" Then MsgBox "The name cannot be empty." Cancel = True 52
53 Private Sub txtquantity_validate(cancel As Boolean) ' Presence and numeric check If Not IsNumeric(txtQuantity.Text) Then MsgBox "Quantity must be a numeric value.", vbexclamation Cancel = True 53
54 FrmViewFinishedGoods.frm Public Sub View(FinId As Integer) ' Make sure that the form is shown Me.Show ' Declare an array and get the corresponding record Dim therecord As FinishedGood therecord = modfinishedgoods.getone(finid) ' Check if the record exists If therecord.finid = -1 Then ' Inform the user that no record found and close the form MsgBox "No record found", vbexclamation Unload Me Else ' Fill the corresponding textboxes Me.lblID.Caption = therecord.finid Me.txtName.Text = therecord.finname Me.txtDescription.Text = therecord.findescription Me.txtQuantity = therecord.finquantity Me.txtRemarks.Text = therecord.finremarks 'Fill the productions Dim allp() As Production allp = modproduction.getall Dim i As Integer For i = LBound(allP) To UBound(allP) If allp(i).profin.finid = FinId Then With Me.lstProduction.ListItems.Add(,, allp(i).proid).listsubitems.add,, allp(i).prodate.listsubitems.add,, allp(i).proquantity End With Next i 'Fill all sales Dim alls() As Sale alls = ModSales.GetAll For i = LBound(allS) To UBound(allS) If alls(i).salefin.finid = FinId Then With Me.lstSales.ListItems.Add(,, alls(i).saleid).listsubitems.add,, alls(i).saledate.listsubitems.add,, alls(i).salequantity End With 54
55 Next i Private Sub cmdcancel_click() ' Close form Unload Me Private Sub cmddelete_click() If MsgBox("Are you sure you want to delete this record?", vbyesno + vbquestion) = vbyes Then ' Delete the record modfinishedgoods.delete Val(Me.lblID.Caption) 'Inform the user and close MsgBox "Record deleted successfully.", vbinformation, "Deleted" Unload Me Private Sub cmdedit_click() ' Show the edit form frmeditfinishedgoods.edit (Val(Me.lblID.Caption)) Unload Me 55
56 FrmProduction.frm Private Sub CmdAdd_Click() 'show the add Form fromaddproduction.show Private Sub cmdview_click() ' Show the view Form modproduction.info (Val(Me.lstProduction.SelectedItem.Text)) Private Sub cmdclear_click() ' Clear the search criteria Me.txtID.Text = "" Me.dtpDate.Value = Date Me.dtpDate.Value = Null ' Refresh the list refreshlist Private Sub cmdclose_click() ' Close the form Unload Me Private Sub cmddelete_click() ' Ask confirmation to delete the record If MsgBox("Are you sure you want to delete this record?", vbyesno + vbquestion) = vbyes Then ' Delete the record modproduction.delete Val(Me.lstProduction.SelectedItem.Text) 'Inform the user and refresh the list MsgBox "Record deleted successfully.", vbinformation, "Deleted" refreshlist Private Sub cmdedit_click() ' Show the edit form with the ID frmeditproduction.edit (Val(Me.lstProduction.SelectedItem.Text)) Private Sub cmdsearch_click() ' Refresh The List refreshlist Public Sub refreshlist() 56
57 'Sup procedure to fill the list with records matching the search criteria (if any) ' Clear the list of Items Me.lstProduction.ListItems.Clear ' Declare an array for the FinishedGoods Dim all() As Production If Me.txtID.Text <> "" Then ' if ID is specified, other paramaters are ignored all = modproduction.getall(val(me.txtid.text)) ElseIf Not IsNull(Me.dtpDate.Value) Then all = modproduction.getall(, Me.dtpDate.Value) Else all = modproduction.getall() ' Clear button is only enabled when any criteria is speicifed If Me.txtID.Text <> "" Then Me.cmdClear.Enabled = True Else Me.cmdClear.Enabled = False ' Check if any record is found If all(0).proid = -1 Then ' Disable the action buttons Me.cmdView.Enabled = False Me.cmdEdit.Enabled = False Me.cmdDelete.Enabled = False Else ' Enable the action buttons Me.cmdView.Enabled = True Me.cmdEdit.Enabled = True Me.cmdDelete.Enabled = True ' Iterate over all the elements in the array and add to the list Dim i As Integer For i = LBound(all) To UBound(all) With Me.lstProduction.ListItems.Add(,, all(i).proid).listsubitems.add,, all(i).profin.finname.listsubitems.add,, all(i).prodate.listsubitems.add,, all(i).proquantity End With Next i 57
58 Private Sub Form_Load() Me.dtpDate.Value = Null 'Refresh the list refreshlist Private Sub lstproduction_dblclick() ' If any item is selected, load the view form with the ID If Not Me.lstProduction.SelectedItem Is Nothing Then modproduction.info (Val(Me.lstProduction.SelectedItem.Text)) Private Sub txtid_validate(cancel As Boolean) ' Numeric Test ' Make sure txtid is empty first If txtid <> "" And Not IsNumeric(txtID) Then MsgBox "ID Must be a number", vbexclamation Cancel = True FrmAddProduction.frm Private Sub cmbfinishedgood_validate(cancel As Boolean) ' Check if finished good has been selected If Me.cmbFinishedGood.Text = "" Then MsgBox "A finished good must be selected.", vbexclamation Cancel = True Private Sub CmdAdd_Click() ' Declare a variable for the ID Dim ProID As Integer 'Add the record ProID = modproduction.add(me.cmbfinishedgood.itemdata(me.cmbfinishedgood.listindex), Me.dtpDate.Value, Val(Me.txtQuantity.Text), Me.txtRemarks) 'Inform the user MsgBox "Record with ID " & ProID & " successfuly added", vbinformation 'Close the form after showing the Production form frmproduction.show frmproduction.refreshlist Unload Me 58
59 Private Sub cmdinfo_click() 'Show the info If Me.cmbFinishedGood.Text <> "" Then modfinishedgoods.info Me.cmbFinishedGood.ItemData(Me.cmbFinishedGood.ListIndex) Private Sub Form_Load() 'set the Datepicker date to today Me.dtpDate.Value = Date 'Populate the list of Finished Goods Dim all() As FinishedGood all = modfinishedgoods.getall Dim i As Integer For i = LBound(all) To UBound(all) Me.cmbFinishedGood.AddItem all(i).finname Me.cmbFinishedGood.ItemData(Me.cmbFinishedGood.NewIndex) = all(i).finid Next i Private Sub txtquantity_validate(cancel As Boolean) ' Presence and numeric check If Not IsNumeric(txtQuantity.Text) Then MsgBox "Quantity must be a numeric value.", vbexclamation Cancel = True 59
60 FrmEditProduction.frm Public Sub Edit(ProID As Integer) ' Make sure that the form is shown Me.Show ' Declare an array and get the corresponding record Dim therecord As Production therecord = modproduction.getone(proid) ' Check if the record exists If therecord.proid = -1 Then ' Inform the user that no record found and close the form MsgBox "No record found", vbexclamation Unload Me Else ' Fill the corresponding textboxes Me.lblID.Caption = therecord.proid Me.cmbFinishedGood.Text = therecord.profin.finname Me.dtpDate.Value = therecord.prodate Me.txtQuantity = therecord.proquantity Me.txtRemarks.Text = therecord.proremarks Private Sub cmdcancel_click() ' Close the form Unload Me Private Sub cmdupdate_click() ' Update the record modproduction.update Val(Me.lblID.Caption), Me.cmbFinishedGood.ItemData(Me.cmbFinishedGood.ListIndex), Me.dtpDate.Value, Val(Me.txtQuantity.Text), Me.txtRemarks ' Inform the user and Refresh the list MsgBox "Record updated successfully.", vbinformation, "Updated" frmproduction.refreshlist ' Close the form Unload Me Private Sub Form_Load() 'Populate the list of Finished Goods Dim all() As FinishedGood all = modfinishedgoods.getall Dim i As Integer For i = LBound(all) To UBound(all) Me.cmbFinishedGood.AddItem all(i).finname 60
61 Me.cmbFinishedGood.ItemData(Me.cmbFinishedGood.NewIndex) = all(i).finid Next i Private Sub txtname_validate(cancel As Boolean) ' Presence check If txtname.text = "" Then MsgBox "The name cannot be empty." Cancel = True Private Sub txtquantity_validate(cancel As Boolean) ' Presence and numeric check If Not IsNumeric(txtQuantity.Text) Then MsgBox "Quantity must be a numeric value.", vbexclamation Cancel = True 61
62 FrmSales.frm Private Sub CmdAdd_Click() 'show the add Form frmaddsales.show Private Sub cmdview_click() ' Show the view Form ModSales.Info (Val(Me.lstSales.SelectedItem.Text)) Private Sub cmdclear_click() ' Clear the search criteria Me.txtID.Text = "" Me.dtpDate.Value = Date Me.dtpDate.Value = Null ' Refresh the list refreshlist Private Sub cmdclose_click() ' Close the form Unload Me Private Sub cmddelete_click() ' Ask confirmation to delete the record If MsgBox("Are you sure you want to delete this record?", vbyesno + vbquestion) = vbyes Then ' Delete the record ModSales.Delete Val(Me.lstSales.SelectedItem.Text) 'Inform the user and refresh the list MsgBox "Record deleted successfully.", vbinformation, "Deleted" refreshlist Private Sub cmdedit_click() ' Show the edit form with the ID frmeditsales.edit (Val(Me.lstSales.SelectedItem.Text)) Private Sub cmdsearch_click() ' Refresh The List refreshlist 62
63 Public Sub refreshlist() 'Sup procedure to fill the list with records matching the search criteria (if any) ' Clear the list of Items Me.lstSales.ListItems.Clear ' Declare an array for the FinishedGoods Dim all() As Sale If Me.txtID.Text <> "" Then ' if ID is specified, other paramaters are ignored all = ModSales.GetAll(Val(Me.txtID.Text)) ElseIf Not IsNull(Me.dtpDate.Value) Then all = ModSales.GetAll(, Me.dtpDate.Value) Else all = ModSales.GetAll() ' Clear button is only enabled when any criteria is speicifed If Me.txtID.Text <> "" Then Me.cmdClear.Enabled = True Else Me.cmdClear.Enabled = False ' Check if any record is found If all(0).saleid = -1 Then ' Disable the action buttons Me.cmdView.Enabled = False Me.cmdEdit.Enabled = False Me.cmdDelete.Enabled = False Else ' Enable the action buttons Me.cmdView.Enabled = True Me.cmdEdit.Enabled = True Me.cmdDelete.Enabled = True ' Iterate over all the elements in the array and add to the list Dim i As Integer For i = LBound(all) To UBound(all) With Me.lstSales.ListItems.Add(,, all(i).saleid).listsubitems.add,, all(i).salefin.finname.listsubitems.add,, all(i).saledate.listsubitems.add,, all(i).salequantity End With Next i 63
64 Private Sub Form_Load() Me.dtpDate.Value = Null 'Refresh the list refreshlist Private Sub lstsales_dblclick() ' If any item is selected, load the view form with the ID If Not Me.lstSales.SelectedItem Is Nothing Then ModSales.Info (Val(Me.lstSales.SelectedItem.Text)) Private Sub txtid_validate(cancel As Boolean) ' Numeric Test ' Make sure txtid is empty first If txtid <> "" And Not IsNumeric(txtID) Then MsgBox "ID Must be a number", vbexclamation Cancel = True FrmAddSales.frm Private Sub cmbfinishedgood_validate(cancel As Boolean) ' Check if finished good has been selected If Me.cmbFinishedGood.Text = "" Then MsgBox "A finished good must be selected.", vbexclamation Cancel = True Private Sub CmdAdd_Click() ' Declare a variable for the ID Dim SaleID As Integer 'Add the record SaleID = ModSales.Add(Me.cmbFinishedGood.ItemData(Me.cmbFinishedGood.ListIndex), Me.dtpDate.Value, Val(Me.txtQuantity.Text), Me.txtRemarks) 'Inform the user MsgBox "Record with ID " & SaleID & " successfuly added", vbinformation 'Close the form after showing the Sales form frmsales.show frmsales.refreshlist Unload Me 64
65 Private Sub cmdinfo_click() 'Show the info If Me.cmbFinishedGood.Text <> "" Then modfinishedgoods.info Me.cmbFinishedGood.ItemData(Me.cmbFinishedGood.ListIndex) Private Sub Form_Load() 'set the Datepicker date to today Me.dtpDate.Value = Date 'Populate the list of Finished Goods Dim all() As FinishedGood all = modfinishedgoods.getall Dim i As Integer For i = LBound(all) To UBound(all) Me.cmbFinishedGood.AddItem all(i).finname Me.cmbFinishedGood.ItemData(Me.cmbFinishedGood.NewIndex) = all(i).finid Next i Private Sub txtquantity_validate(cancel As Boolean) ' Presence and numeric check If Not IsNumeric(txtQuantity.Text) Then MsgBox "Quantity must be a numeric value.", vbexclamation Cancel = True FrmEditSales.frm Public Sub Edit(SaleID As Integer) ' Make sure that the form is shown Me.Show ' Declare an array and get the corresponding record Dim therecord As Sale therecord = ModSales.GetOne(SaleID) ' Check if the record exists If therecord.saleid = -1 Then ' Inform the user that no record found and close the form MsgBox "No record found", vbexclamation Unload Me Else 65
66 ' Fill the corresponding textboxes Me.lblID.Caption = therecord.saleid Me.cmbFinishedGood.Text = therecord.salefin.finname Me.dtpDate.Value = therecord.saledate Me.txtQuantity = therecord.salequantity Me.txtRemarks.Text = therecord.saleremarks Private Sub cmdcancel_click() ' Close the form Unload Me Private Sub cmdupdate_click() ' Update the record ModSales.Update Val(Me.lblID.Caption), Me.cmbFinishedGood.ItemData(Me.cmbFinishedGood.ListIndex), Me.dtpDate.Value, Val(Me.txtQuantity.Text), Me.txtRemarks ' Inform the user and Refresh the list MsgBox "Record updated successfully.", vbinformation, "Updated" frmsales.refreshlist ' Close the form Unload Me Private Sub Form_Load() 'set the Datepicker date to today Me.dtpDate.Value = Date 'Populate the list of Finished Goods Dim all() As FinishedGood all = modfinishedgoods.getall Dim i As Integer For i = LBound(all) To UBound(all) Me.cmbFinishedGood.AddItem all(i).finname Me.cmbFinishedGood.ItemData(Me.cmbFinishedGood.NewIndex) = all(i).finid Next i Private Sub txtname_validate(cancel As Boolean) ' Presence check If txtname.text = "" Then MsgBox "The name cannot be empty." Cancel = True 66
67 Private Sub txtquantity_validate(cancel As Boolean) ' Presence and numeric check If Not IsNumeric(txtQuantity.Text) Then MsgBox "Quantity must be a numeric value.", vbexclamation Cancel = True 67
68 Testing Testing strategy Various tests were conducted in order to be sure that the program runs as intended and there are no bugs. All the fields in the form were tested. Various valid and invalid values were tested to ensure that the program functioned correctly. Test plan # Field Test Type Data Expectation Actual Action 1 FinName Valid 250L Tank 250L Tank 250L Tank Successful 2 FinName Empty Error Error Retry 3 FinQuantity Valid Successful 4 FinQuantity Empty Error Error Retry 5 FinQuantity Invalid Potato Error Error Retry 6 TxtPassword Invalid Apple Password Error Retry 7 FinID Empty Error Error Retry 8 FinID Valid Successful 9 ProQuantity Empty Error Error Retry 10 ProQuantity Valid Successful 11 FinID Search Invalid 0 No results found No results found Failed 12 FinID Search Valid 2 1 Result 1 Result Success 13 FinName Search Valid Hoz 2 Results 2 Results Success 68
69 14 Relation View Valid 1 3 relationship 3 relationship Success 15 Password Change Valid Correct data Changed Password Changed Password Success 69
70 Test1 Test2 70
71 Test 3 Test 4 71
72 72
73 Test 5 Test 6 73
74 Test 7 Test 8 74
75 Test 9 Test 10 75
76 76 Tes t 11 Tes t 12
77 Test 13 Test 14 Test 15 77
78 Implementation Installation plan I sat with Mr. Pandey for a few hours and he was happy with the system. Direct implementation was decided to be used as the solution was found to be easy for Mr. Pandey after using it for a few hours. With this, he can get used to the workflow fairly quickly. Training The user manual was deemed sufficient for the simple system by the end user. Evidence of user testing A meeting was scheduled with Mr. Pandey. During that time, he look a look at the user manual and decided to use the system. A statement by Mr. Pandey has been attatched with the letter. 78
79 Documentation The excerpts from the documentations that was prepared are given here System Maintainance Documentation Data Dictionary Forms FrmLogin FrmMain Form Name Use Entry point to the system. Used for authentication. The menu based form through which other forms are accessed FrmChangeLoginDetails FrmFinishedGoods FrmAddFinishedGoods FrmEditFinishedGoods FrmViewFinishedGoods FrmPurchase FrmAddPurchases FrmEditPurchases The form used to change the user details such as username and password Lists all the finished goods. Also has provision of search. All other actions such as Add, View, Edit and Delete are accessed from here Form to add a new finished good to the database Form to edit and amend the finished good in the database Views the relationship of the finished goods with purchase and sales Lists all the purchases. Also has provision of search. All other actions such as Add, View, Edit and Delete are accessed from here Form to add a new purchase to the database Form to edit and amend the purchases in the database 79
80 Form Name Use FrmSales FrmAddSales FrmEditSales Lists all the sales. Also has provision of search. All other actions such as Add, View, Edit and Delete are accessed from here Form to add a new sales to the database Form to edit and amend the sales in the database FrmLogin Objects Object Name Object Type Use CmdLogin Command Button Authenticate and load the main form CmdExit Command Button Close the form TxtUsername TextBox Enter the username TxtPassword TextBox Enter the password FrmMain Objects Object Name Object Type Use MnuChangeLoginDetails SubMenu Item Opens the Change Login Details form mnuexit SubMenu Item Close the program mnufinishedgood Menu Display the Finished Good Form mnusale Menu Display the Sales Form 80
81 Object Name Object Type Use MnuProduction Menu Display the production form MnuWindow Menu Display various submenu items to manipulate windows FrmChangeLoginDetails Objects Object Name Object Type Use cmdchange Command Button Change the login details cmdcancel Command Button Close the form TxtNewPasswordConfirm TextBox Enter the new password twice TxtNewUsername TextBox Enter the new username txtnewpassword TextBox Enter the new password TxtPassword TextBox Enter the current password TxtUsername TextBox Enter the current password FrmFinishedGoods Objects Object Name Object Type Use cmdclear Command Button Clear the search criteria cmdclose Command Button Close the form CmdDelete Command Button Delete the selected record cmdedit Command Button Show the edit form for the selected record CmdView Command Button Show the view relationship form the selected record 81
82 Object Name Object Type Use CmdSearch Command Button Search the database with the specified criteria TxtName Text Box Enter the name search criteria TxtID Text Box Enter the ID search criteria CmdAdd Command Button Show the add form LstFinishedGoods ListView Shows all the records obtained from the database FrmAddFinishedGoods Objects Object Name Object Type Use CmdAdd Command Button Add the records cmdcancel Command Button Close the form txtname TextBox Enter the name of finished good txtquantity TextBox Enter the quantity of finished good txtremarks TextBox Enter the remarks for the good txtdescription TextBox Enter the description FrmEditFinishedGoods Objects Object Name Object Type Use LblID Label Shows the ID of record CmdUpdate Command Button Update the records cmdcancel Command Button Close the form 82
83 Object Name Object Type Use txtname TextBox Enter the name of finished good txtquantity TextBox Enter the quantity of finished good txtremarks TextBox Enter the remarks for the good txtdescription TextBox Enter the description FrmViewFinishedGoods Objects Object Name Object Type Use LblID Label Shows the ID of record cmddelete Command Button Delete the record CmdEdit Command Button Shows the edit form of the respective record CmdCancel Command Button Close the form txtname TextBox Enter the name of finished good txtquantity TextBox Enter the quantity of finished good txtremarks TextBox Enter the remarks for the good TxtDescription TextBox Enter the description LstProduction ListView Shows all the associated Production LstSales ListView Shows all the associated sales 83
84 FrmProduction Objects Object Name Object Type Use cmdclear Command Button Clear the search criteria cmdclose Command Button Close the form CmdDelete Command Button Delete the selected record cmdedit Command Button Show the edit form for the selected record CmdView Command Button Show the view relationship form the selected record CmdSearch Command Button Search the database with the specified criteria DtpDate Date Picker Select a date for search TxtID Text Box Enter the ID search criteria CmdAdd Command Button Show the add form LstPurchase ListView Shows all the records obtained from the database cmbfinishedgood Combo Lists all finished goods FrmAddProduction objects Object Name Object Type Use CmdAdd Command Button Add the records 84
85 Object Name Object Type Use cmdcancel Command Button Close the form DtpDate Date Picker Pick a date of the record txtquantity TextBox Enter the quantity of finished good txtremarks TextBox Enter the remarks for the good CmbFinishedGood Combo Box Select one of the finished goods FrmEditProduction objects Object Name Object Type Use LblID Label Shows the ID of the current Record CmdUpdate Command Button Update the record cmdcancel Command Button Close the form DtpDate Date Picker Pick a date of the record txtquantity TextBox Enter the quantity of finished good txtremarks TextBox Enter the remarks for the good CmbFinishedGood Combo Box Select one of the finished goods FrmSales Objects 85
86 Object Name Object Type Use cmdclear Command Button Clear the search criteria cmdclose Command Button Close the form CmdDelete Command Button Delete the selected record cmdedit Command Button Show the edit form for the selected record CmdView Command Button Show the view relationship form the selected record CmdSearch Command Button Search the database with the specified criteria DtpDate Date Picker Select a date for search TxtID Text Box Enter the ID search criteria CmdAdd Command Button Show the add form LstSales ListView Shows all the records obtained from the database cmbfinishedgood Combo Lists all finished goods FrmAddSales objects Object Name Object Type Use CmdAdd Command Button Add the records cmdcancel Command Button Close the form DtpDate Date Picker Pick a date of the record 86
87 Object Name Object Type Use txtquantity TextBox Enter the quantity of finished good txtremarks TextBox Enter the remarks for the good CmbFinishedGood Combo Box Select one of the finished goods FrmEditSales objects Object Name Object Type Use LblID Label Shows the ID of the current Record CmdUpdate Command Button Update the record cmdcancel Command Button Close the form DtpDate Date Picker Pick a date of the record txtquantity TextBox Enter the quantity of finished good txtremarks TextBox Enter the remarks for the good CmbFinishedGood Combo Box Select one of the finished goods Tables Table Name Table Use FinishedGood Stores finished goods data 87
88 Table Name Table Use Production ProductionFinishedGood Sales SalesFinishedGood Stores production data Joins Production and finished good Stores Sales data Joins Sales and finished good TblFinishedGoods Field Name Data Type Use FinID AutoNumber Unique Identifier for record FinName String Name of the record FinDescription String Description of the record FinQuantity Number Quantity in stock FinRemarks String Additional Remarks for goods TblProduction Field Name Data Type Use ProID AutoNumber Unique Identifier for record ProDate DateTime Date of production ProQuantity Number Quantity in production ProRemarks String Additional Remarks 88
89 TblProductionFinished Goods Field Name Data Type Use ProID Number Primary key of Production FinID Number Primary key of Finished good TblSale Field Name Data Type Use SaleID AutoNumber Unique Identifier for record SaleDate DateTime Date of sale SaleQuantity Number Quantity in sales SaleRemarks String Additional Remarks TblSaleFinished Goods Field Name Data Type Use SaleID Number Primary key of Sales FinID Number Primary key of Finished good Back up procedure - To back up, use the external hard disk when day-to-day backups are being conducted. - Use the DVD disks when backing up on a longer basis (archiving) 89
90 - Copy the database.accdb to the disk for backup User Documentation Login Procedure - Enter the username and password and click login Menu Procedure 90
91 Click any of the corresponding menus to go to the desired form. View ing Finis hed good s 91 - Click the Finis hed Goo ds in the men u Addi ng Finis
92 hed Goods - Click Add on the finished good form - Fill the details and click add Viewing finished goods - Select a finished good from the list - Double click the list or click view 92
An InputBox( ) function will display an input Box window where the user can enter a value or a text. The format is
InputBox( ) Function An InputBox( ) function will display an input Box window where the user can enter a value or a text. The format is A = InputBox ( Question or Phrase, Window Title, ) Example1: Integer:
More informationDefinition, Investigation and Analysis
Definition, Investigation and Analysis Introduction and Nature of the Problem Introduction Pradhan Store is a wholesale store located in Nakhipot, Lalitpur. It has been providing its service since the
More informationUnderstanding the MsgBox command in Visual Basic
Understanding the MsgBox command in Visual Basic This VB2008 tutorial explains how to use the MsgBox function in Visual Basic. This also works for VBS MsgBox. The MsgBox function displays a message in
More informationLookup Project. frmlookup (Name: object is a combo box, style 2); use 4 labels: 2 for phone, 2 for mail. MsgBox Function:
Lookup Project frmlookup (Name: object is a combo box, style 2); use 4 labels: 2 for phone, 2 for mail. MsgBox Function: Help About, in a Message Box lookup.vbp programmed by C.Gribble Page 2 Code for
More informationvariables programming statements
1 VB PROGRAMMERS GUIDE LESSON 1 File: VbGuideL1.doc Date Started: May 24, 2002 Last Update: Dec 27, 2002 ISBN: 0-9730824-9-6 Version: 0.0 INTRODUCTION TO VB PROGRAMMING VB stands for Visual Basic. Visual
More informationA Back-End Link Checker for Your Access Database
A Back-End for Your Access Database Published: 30 September 2018 Author: Martin Green Screenshots: Access 2016, Windows 10 For Access Versions: 2007, 2010, 2013, 2016 Working with Split Databases When
More informationUser manual of Patrol V6.0. Ⅰ. Software instruction 1 / 63
User manual of Patrol V6.0 Ⅰ. Software instruction 1 / 63 Catalog Ⅰ. SOFTWARE INSTRUCTION... 1 Ⅱ. ATTENTION... 3 Ⅲ. SOFTWARE OPERATION... 3 1. LOG IN... 3 2. NEW USER... 4 3. LOGO TITLE... 8 4. NAVIGATION
More informationSparta Systems Stratas Solution
Systems Solution 21 CFR Part 11 and Annex 11 Assessment October 2017 Systems Solution Introduction The purpose of this document is to outline the roles and responsibilities for compliance with the FDA
More informationCreate a Login System in Visual Basic. Creating a login system. Start a new visual basic Windows Forms application project. Call it Login System
Creating a login system Start a new visual basic Windows Forms application project Call it Login System Change the form TITLE from Form1 to Login System Add the following to the form Component Text Name
More informationDATABASE AUTOMATION USING VBA (ADVANCED MICROSOFT ACCESS, X405.6)
Technology & Information Management Instructor: Michael Kremer, Ph.D. Database Program: Microsoft Access Series DATABASE AUTOMATION USING VBA (ADVANCED MICROSOFT ACCESS, X405.6) AGENDA 3. Executing VBA
More informationPathway Net User s Guide
Pathway Net User s Guide TABLE OF CONTENTS 3. Logging onto Pathway Net 4. Changing Passwords 5. Transaction View 7. Viewing Transaction Detail 8. Reallocating Transactions 9. Splitting Transactions 11.
More informationParts Updater. Last Update: August 10, (440)
Parts Updater Last Update: August 10, 2018 www.sedonaoffice.com (440) 247-5602 Table of Contents Overview... 4 Setup... 5 Downloading the Updater... 5 Acquiring Your Parts List... 6 Running the Parts Updater...
More informationMETHODS EXERCISES GuessNumber and Sample run SumAll Sample Run
METHODS EXERCISES Write a method called GuessNumber that receives nothing and returns back nothing. The method first picks a random number from 1-100. The user then keeps guessing as long as their guess
More informationMastering QuickBooks: Increasing Performance with Large Files and Multiple Users
Mastering QuickBooks: Increasing Performance with Large Files and Multiple Users By Joe Woodard, Advanced Certified QuickBooks ProAdvisor and Certified QuickBooks Trainer Editor s Note: Joe Woodard is
More informationCeweCetrics Start up manual
CeweCetrics Start up manual Contents Introduction...3 What is Cetrics?... 3 An outline... 3 Definitions... 4 Typical fields of application... 6 Documentation... 7 Product support... 7 Installation...8
More informationLAMPIRAN. Universitas Sumatera Utara
61 LAMPIRAN 61 Listing Program Form 1 ( Barang ) Dim CnSuzuya As ADODB.Connection Dim CommBar As ADODB.Command Dim rsbar As ADODB.Recordset Dim StrSql As String Dim psn As Byte Private Sub Form_Load()
More informationOVERVIEW...3. Why RePOS...3 INTEGRATION...3. Control...4. Reliability...4. Accessibility...5. Flexibly...5. Support...5. RePOS Components...
1 P a g e CONTENTS OVERVIEW...3 Why RePOS...3 INTEGRATION...3 Control...4 Reliability...4 Accessibility...5 Flexibly...5 Support...5 RePOS Components...6 Technical Requrirements...7 RePOS Interface...7
More informationOVERVIEW Feature Summary... 3 CONFIGURATION System Requirements... 4 ConnectWise Manage Configuration... 4
Contents OVERVIEW... 3 Feature Summary... 3 CONFIGURATION... 4 System Requirements... 4 ConnectWise Manage Configuration... 4 Configuration of Manage Login... 4 Configuration of GL Accounts... 5 Configuration
More informationSparta Systems TrackWise Digital Solution
Systems TrackWise Digital Solution 21 CFR Part 11 and Annex 11 Assessment February 2018 Systems TrackWise Digital Solution Introduction The purpose of this document is to outline the roles and responsibilities
More informationChapter 2 Introduction to Transaction Processing
Chapter 2 Introduction to Transaction Processing TRUE/FALSE 1. Processing more transactions at a lower unit cost makes batch processing more efficient than real-time systems. T 2. The process of acquiring
More informationSparta Systems TrackWise Solution
Systems Solution 21 CFR Part 11 and Annex 11 Assessment October 2017 Systems Solution Introduction The purpose of this document is to outline the roles and responsibilities for compliance with the FDA
More informationCollector and Dealer Software - CAD 3.1
Collector and Dealer Software - CAD 3.1 Your Registration Number Thank you for purchasing CAD! To ensure that you can receive proper support, we have already registered your copy with the serial number
More informationLISTING PROGRAM. 1. Form Login. Private Sub BATAL_Click() End End Sub
LISTING PROGRAM 1. Form Login Private Sub BATAL_Click() End Sub Bersih() USERNAME.Text = "" PASSWORD.Text = "" Private Sub Form_Load() Bersih Private Sub OK_Click() Sql = "select*from tbl_login where username='"
More informationIMPORTANT. Registration Settings: SERIAL NUMBER: COMPUTER ID: REGISTRATION NUMBER:
IMPORTANT Registration Settings: SERIAL NUMBER: COMPUTER ID: REGISTRATION NUMBER: Once you have your TALITY software functioning properly copy your phone system settings onto this page and save it for
More informationCopyrighted Material. Copyrighted. Material. Copyrighted
Properties Basic Properties User Forms Arrays Working with Assemblies Selection Manager Verification and Error Handling Introduction This exercise is designed to go through the process of changing document
More information22. VB Programming Fundamentals Data Access with Data Objects
22. VB Programming Fundamentals Data Access with Data Objects 22.1 Data Access Object MS Data Access Object (DAO) enables you to use a programming language to access and manipulate data in local or remote
More informationThis project was originally conceived as a pocket database application for a mobile platform, allowing a
Dynamic Database ISYS 540 Final Project Executive Summary This project was originally conceived as a pocket database application for a mobile platform, allowing a user to dynamically build, update, and
More informationUnit 6 - Software Design and Development LESSON 3 KEY FEATURES
Unit 6 - Software Design and Development LESSON 3 KEY FEATURES Last session 1. Language generations. 2. Reasons why languages are used by organisations. 1. Proprietary or open source. 2. Features and tools.
More informationEMPLOYEE PAYROLL SYSTEM
EX.NO:1 DATE: EMPLOYEE PAYROLL SYSTEM AIM: To develop a Employee Payroll System using visual Basic. PROCEDURE: 1. Problem statement Software is to be designed for supporting a computerized employee payroll
More informationContents OVERVIEW... 3
Contents OVERVIEW... 3 Feature Summary... 3 CONFIGURATION... 4 System Requirements... 4 ConnectWise Manage Configuration... 4 Configuration of Manage Login... 4 Configuration of GL Accounts... 5 Configuration
More informationCreating a Dynamo with VBA Scripts
Creating a Dynamo with VBA Scripts Creating a Dynamo with VBA 1 Table of Contents 1. CREATING A DYNAMO WITH VBA... 3 1.1 NAMING CONVENTIONS FOR DYNAMO OBJECTS...3 1.2 CREATING A DYNAMO...4 1.3 DESIGNING
More informationProgramming Concepts and Skills. Arrays continued and Functions
Programming Concepts and Skills Arrays continued and Functions Fixed-Size vs. Dynamic Arrays A fixed-size array has a limited number of spots you can place information in. Dim strcdrack(0 to 2) As String
More informationVW INTERFACE. The AutoSoft DMS and Finance Assistant Integration with VW OEM and VCI. The ASI and VW OEM Interface Solution
AUTOSOFT INTEGRATION WITH VW OEM & VCI VW INTERFACE The AutoSoft DMS and Finance Assistant Integration with VW OEM and VCI These pages list all the Volkswagen OEM and VCI Interfaces available for your
More informationUSER MANUAL SATO ASIA PACIFIC PTE. LTD. STANDARD ASSET TRACKING SYSTEM VERSION: DATE: 15 MARCH 2005
(198701343-G) 438A Alexandra Road #05-01/02 Alexandra Technopark S pore 119967 Tel: (65) 6271-5300 Fax: (65) 6273-6011 E-Mail: sales@satoasiapacific.com Sales Hotline: (65) 6276-2722 Service Hotline: (65)
More informationUser Guide. Customer Documentation. Version Issue Date - 1st August 2014
User Guide Customer Documentation Version - 1.1 Issue Date - 1st August 2014 Wireless Logic Ltd Grosvenor House Horseshoe Crescent Beaconsfield, Buckinghamshire HP9 1LJ T +44 (0)1494 679 800 www.wirelesslogic.com
More informationArchitect. User s Manual
Architect User s Manual DOC. NO. UM-PT202-03 Version 1.11 January 2013 TABLE OF CONTENTS Chapter 1: Introduction...1 Features... 1 System Requirements... 2 Installing the Software... 2 Opening the Software...
More informationApplying for Jobs Online
Applying for Jobs Online Hi, I m Sarah. I m here to show you how to apply for a job using an online application form. Most jobs now require you to fill out an application on the Internet. In this course
More informationWise Technologies Ltd.,
User manual Wise Timetable online system Wise Technologies Ltd., In front of you is a short document for all the users and administrators of Wise Timetable, describing the important part of the whole system:
More informationTop of Minds Report series Data Warehouse The six levels of integration
Top of Minds Report series Data Warehouse The six levels of integration Recommended reading Before reading this report it is recommended to read ToM Report Series on Data Warehouse Definitions for Integration
More informationSoftware Operations Manual
Software Operations Manual Version 5.0 System Requirements PC with 1GHz or higher, Intel Pentium Processor or compatible Microsoft Windows XP Professional or Vista Business Edition Microsoft.NET framework
More informationSolidWorks A Visual Basic for Applications tutorial for SolidWorks users SDC PUBLICATIONS
Automating SolidWorks 2004 using Macros A Visual Basic for Applications tutorial for SolidWorks users SDC PUBLICATIONS Schroff Development Corporation www.schroff.com www.schroff-europe.com By Mike Spens
More informationUnit 6 - Software Design and Development LESSON 3 KEY FEATURES
Unit 6 - Software Design and Development LESSON 3 KEY FEATURES Last session 1. Language generations. 2. Reasons why languages are used by organisations. 1. Proprietary or open source. 2. Features and tools.
More informationCreate and Configure a VM in the Azure Step by Step Basic Lab (V2.0)
Basic Lab (V2.0) Ahmed Abdelwahed Microsoft Certified Trainer Ahmed_abdulwahed@outlook.com Contents Create Windows Server 2016 VM On Microsoft Azure... 3 Create Windows Server 2016 Data Center VM step
More informationDell EMC Repository Manager Version 3.1. User s Guide
Dell EMC Repository Manager Version 3.1 User s Guide Notes, cautions, and warnings NOTE: A NOTE indicates important information that helps you make better use of your product. CAUTION: A CAUTION indicates
More informationIn this chapter, I m going to show you how to create a working
Codeless Database Programming In this chapter, I m going to show you how to create a working Visual Basic database program without writing a single line of code. I ll use the ADO Data Control and some
More informationi -Global System Sales Management Module User Manual
i -Global System Sales Management Module User Manual i-global System Copyright 2004, i-global Solutions Limited. All rights reserved. Sales Management Module User Manual -- Version: 1.02 This product and
More informationUser. Manual. P L U S v e r s i o n. Copyright 2002 CWORKS SYSTEMS BERHAD All Rights Reserved
User Manual P L U S v e r s i o n CWORKS Copyright 2002 CWORKS SYSTEMS BERHAD All Rights Reserved Table of Contents 1. WHAT IS CWORKS?... 9 1.1 HOW IS IT USED?...10 1.2 WHAT SHOULD YOU DO BEFORE STARTING?...10
More informationMedia Services Online Mohammed Abukhiran. Report 13 on the work of Week 13
Media Services Online Mohammed Abukhiran Report 13 on the work of Week 13 Berea College Nov 30, 2010 Application Development Project Concept Proposal Media Services at Berea College uses Voyger (Database
More informationWinScribe Web Manager Guide
WinScribe Web Manager Guide Version 4.0 Copyright WinScribe Inc 2009. All rights reserved. Publication Date: July 2009 Copyright 2009 WinScribe Inc Ltd. All Rights Reserved. Portions of the software described
More informationVERSION ASSET TRACKING SYSTEM USER MANUAL STARTER EDITION
VERSION 4.20.3 ASSET TRACKING SYSTEM USER MANUAL STARTER EDITION ATS USER MANUAL- STARTER EDITION TABLE OF CONTENTS ATS User Manual- Starter Edition... 2 Table of Contents... 2 Quick Start Overview...
More informationChandni Soneji Kinjal Tada
2012 Chandni Soneji Kinjal Tada ACKNOWLEDGEMENT This is HOTEL MANAGEMENT SYSTEM project based on new techniques and based on new idea. This is totally different and beneficial for other to easily use and
More informationxponent Version 4.2 RELEASE NOTES
xponent Version 4.2 RELEASE NOTES Copyright Luminex Corporation, 1996-2013. All rights reserved. Part Number: 89-30000-00-462 Disclaimer Subject to change without notice. Although prepared to ensure accuracy,
More informationCLIENT ONBOARDING PLAN & SCRIPT
CLIENT ONBOARDING PLAN & SCRIPT FIRST STEPS Receive Order form from Sales Representative. This may come in the form of a BPQ from client Ensure the client has an account in Reputation Management and in
More informationSmart Access Control System Software. User Manual. Version 1.0
Smart Access Control System Software User Manual Version 1.0 Copyright MaCaPS International Ltd. 2002 This manual was produced by MaCaPS International Ltd. MaCaPS International Ltd. http://www.macaps.com.hk
More informationLaurie Copley 9032 Bourne Grammar School 26202
Processing Stages As I am using text files as my data base the processes used for the system will be very different and possibly more complicated. Many of the most frequently used code are stored within
More informationCABC Installation Guide Maximizer CRM 11 Entrepreneur Edition
CABC Installation Guide Maximizer CRM 11 Entrepreneur Edition CABC Ltd PO Box 162 Newbury Berkshire RG14 1AS 01635 570970 Document Version: 2.1 Dated: 01/07/2010 Purpose of this Document This document
More informationVisual Programming 1. What is Visual Basic? 2. What are different Editions available in VB? 3. List the various features of VB
Visual Programming 1. What is Visual Basic? Visual Basic is a powerful application development toolkit developed by John Kemeny and Thomas Kurtz. It is a Microsoft Windows Programming language. Visual
More informationCLIENT ONBOARDING PLAN & SCRIPT
CLIENT ONBOARDING PLAN & SCRIPT FIRST STEPS Receive Order form from Sales Representative. This may come in the form of a BPQ from client Ensure the client has an account in Reputation Management and in
More informationTK8 Contact User's Manual
TK8 Contact User's Manual Thank you very much for selecting TK8 Contact! TK8 Contact is a professional contact management software. In addition to contact info management, it can help you in all stages
More informationMgtOp 470 Business Modeling with Spreadsheets Sample Midterm Exam. 1. Spreadsheets are known as the of business analysis.
Section 1 Multiple Choice MgtOp 470 Business Modeling with Spreadsheets Sample Midterm Exam 1. Spreadsheets are known as the of business analysis. A. German motor car B. Mexican jumping bean C. Swiss army
More informationACCESS CONTROL SOFTWARE V3.1 REFERENCE MANUAL
ACCESS CONTROL SOFTWARE V3.1 REFERENCE MANUAL 01/2004 Centaur is a registered trademark of Position Technology INC. Pro-Report, Tracker, FrontGuard and FrontView are trademarks of Position Technology Inc.
More informationStandard. Number of Correlations
Computer Science 2016 This assessment contains 80 items, but only 80 are used at one time. Programming and Software Development Number of Correlations Standard Type Standard 2 Duty 1) CONTENT STANDARD
More informationLogical File Organisation A file is logically organised as follows:
File Handling The logical and physical organisation of files. Serial and sequential file handling methods. Direct and index sequential files. Creating, reading, writing and deleting records from a variety
More informationHDPOS smart. 1. Click here to go to the download page (Copy-paste into your browser if the link did not work)
1. Getting Started Installation & Registration is a feature-rich, easy to use Point of Sale billing, inventory, and accounting management software available for 30 days FREE TRIAL System Requirements Hard
More informationd2vbaref.doc Page 1 of 22 05/11/02 14:21
Database Design 2 1. VBA or Macros?... 2 1.1 Advantages of VBA:... 2 1.2 When to use macros... 3 1.3 From here...... 3 2. A simple event procedure... 4 2.1 The code explained... 4 2.2 How does the error
More informationAIM To analyze, design and develop code for Online Course Reservation System using Rational Rose software
Ex. No.1 Date: ONLINE COURSE RESERVATION AIM To analyze, design and develop code for Online Course Reservation System using Rational Rose software PROBLEM STATEMENT As the head of information systems for
More informationPurchase Order Processor
Purchase Order Processor Last Update: 6/26/13 Digital Gateway, Inc. All rights reserved ii Table of Contents PO PROCESSOR... 1 SETUP... 5 CONNECTION SETTINGS... 5 Overview... 5 PO Processor Settings Manager...
More informationWells Fargo TM CMS (Treasury Management Customer Management System) MIS Group 12
Wells Fargo TM CMS (Treasury Management Customer Management System) MIS 4330.501 Group 12 Group Members: Arindam Bhattacharya (Project Manager) Jose Romero Amer Homsi Ameen Syed Guled Dalmar Table of Contents
More informationmsis Security Policy and Protocol
msis Security Policy and Protocol Introduction This Policy details the secure use of msis as a tool for the capture and reporting of internet intelligence and investigations (i3). msis is a powerful i3
More informationData Warehousing. Seminar report. Submitted in partial fulfillment of the requirement for the award of degree Of Computer Science
A Seminar report On Data Warehousing Submitted in partial fulfillment of the requirement for the award of degree Of Computer Science SUBMITTED TO: SUBMITTED BY: www.studymafia.org www.studymafia.org Preface
More informationInventoryControl Quick Start Guide
InventoryControl Quick Start Guide Copyright 2013 Wasp Barcode Technologies 1400 10 th St. Plano, TX 75074 All Rights Reserved STATEMENTS IN THIS DOCUMENT REGARDING THIRD PARTY PRODUCTS OR SERVICES ARE
More informationUSER MANNUAL. Version 1.9.6
USER MANNUAL Version 1.9.6 Table of Contents 1. About this Document... 3 2. Manuscript Composition... 4 3. Getting Started... 4 3.1 BIPL Direct Login... 4 3.1.1 To log on to BIPL Direct... 5 3.1.2 Server
More informationDutch-Bangla Bank Limited
Dutch-Bangla Bank Limited IT Operation Division, Head Office Rupayan Z.R. Plaza, 4 th Floor House No # 46, Road No # 9A Dhanmondi R/A, Dhaka-1209 Ref: DBBL/100/017/2018/ January 07, 2018 Tender Schedule
More informationInventory Reports. Detailed Device Report CHAPTER
CHAPTER 2 include the following device reports. Detailed Device Report Device Attributes Reports Generating a 24-Hour Inventory Change Report Hardware Reports Management Status Reports Software Reports
More informationKeeper Care System Data Manager Version
Automated Inventory Solutions, Inc. User Manual Keeper Care System Data Manager Version 1.2.22 Automated Inventory Solutions Phone: (304)725-4801 Fax: (304)725-6983 www.aisvendors.com Email: support@aisvendors.com
More informationAT&T Core Mobility Integrated Dispatch Console User Guide. Installation Guide. AT&T Integrated Dispatch Console 3.0
Installation Guide AT&T Integrated Dispatch Console 3.0 October 2016 Table of Content 1. Introduction... 3 1.1. Purpose and Scope... 3 1.2. Terms and Definitions... 3 1.3. About this Manual... 5 1.4. What
More informationOpen Source Digitalization Application. User s Manual
Open Source Digitalization Application User s Manual Easyndexer by Raúl Diez This is version 1.0 of the Easyndexer user s manual. This work is licensed under the Creative Commons Attribution 3.0 Unported
More informationInternational School of Informatics and management, Jaipur Billing System Synopsis TEAM GROUP - 04 TEAM MEMBERS -ANIL KUMAR ANJANA -BHAIYA LAL ANJANA
International School of Informatics and management, Jaipur Billing System Synopsis TEAM GROUP - 04 TEAM MEMBERS -ANIL KUMAR ANJANA -BHAIYA LAL ANJANA -SAURABH JAIN PROJECT GUIDE - Ms JYOTI KHURANA (Lecturer
More informationSegregating Data Within Databases for Performance Prepared by Bill Hulsizer
Segregating Data Within Databases for Performance Prepared by Bill Hulsizer When designing databases, segregating data within tables is usually important and sometimes very important. The higher the volume
More informationMicrosoft Remote Desktop setup for OSX, ios and Android devices
Microsoft Remote Desktop setup for OSX, ios and Android devices Table of Contents Microsoft Remote Desktop Installation and Use: Introduction.. 3 OSX setup. 4 ios setup...10 Android setup..22 Page 2 of
More informationLearning vrealize Orchestrator in action V M U G L A B
Learning vrealize Orchestrator in action V M U G L A B Lab Learning vrealize Orchestrator in action Code examples If you don t feel like typing the code you can download it from the webserver running on
More informationNew Finance Officer & Staff Training
New Finance Officer & Staff Training Overview MUNIS includes many programs and tools to allow for the management of the District financials. As newer finance officers and staff, you are charged with understanding,
More informationCopyright (c) by Matthew S. Harris
Documentation & How-To Didjiman's Forms Instance Manager Class For MS Access 2007 and Higher Version v2017-03-28 Copyright (c) 2014-2017 by Matthew S. Harris Permission is granted to copy, distribute and/or
More informationSage 50 Accounting. Premium 2015 Level 1. Courseware For Evaluation Only. MasterTrak Accounting Series
Sage 50 Accounting Premium 2015 Level 1 Courseware 1618-1 MasterTrak Accounting Series Lesson 1: Introduction Lesson Objectives Sage 50 Premium Accounting 2015 Level 1 The objective of this lesson is to
More informationVBA Macro for Micro Focus Reflections Face-to-Face Orlando March 2018
VBA Macro for Micro Focus Reflections Face-to-Face Orlando March 2018 Christopher Guertin Pharm D, MBA, BCPS Clinical Analyst, Pharmacy Benefits Management Objectives Define what a Macro is Explain why
More informationBest Practices for designing Farms and Clusters
Best Practices for designing Farms and Clusters Daniel McLean Systems Engineer Strategic Accounts Thank you to: Nathan Wheat, Andy Meakin and Michael Francis Objectives Speak and be understood! What is
More informationUpdate Tool Instructions for Use
Update Tool Welcome... 3 What is the Dexcom Update Tool?... 3 Update in 2 Steps... 3 What Do I Need to Use This Tool?... 3 Indications and Precautions... 4 Indications for Use... 4 Precautions... 4 System
More informationCentral Depository System User Manual For Pledgee. (Ver 1.2)
Central Depository System User Manual For Pledgee (Ver 1.2) Table of Contents 1 INTRODUCTION...5 1.1 PURPOSE AND SCOPE...5 1.2 OPERATING DAY...6 1.3 UPDATING...6 1.4 DISTRIBUTION...7 2 GETTING STARTED...8
More informationAllworx User s Guide (Release x)
Allworx User s Guide (Release 6.8.1.x) -PAGE INTENTIONALLY LEFT BLANK- Table of Contents 1 VOICEMAIL...1 1.1 ACCESSING YOUR MESSAGE CENTER INBOX...1 1.2 LISTENING TO YOUR VOICEMAIL...2 1.3 SENDING VOICEMAIL
More informationCloud CFO Trial: Step by Step Guide
Cloud CFO Trial: Step by Step Guide Index Introduction to Cloud CFO... 3 Register and Download... 4 Getting Started... 6 Data Overview... 11 Reports... 14 2 01. Introduction: Cloud CFO Cloud CFO automates
More informationWeb Portal User Guide Leap GIO Public. Leap GIO Public. New Generation - Web Portal User Guide. Copyright 2017 by Leap Solutions Asia Co., Ltd.
New Generation - Web Portal User Guide 1 Page Contents 1 General... 3 1.1 Overview... 3 1.2 Definition... 3 1.3 Access the Web Portal... 3 2 Sign-Up... 4 2.1 Personal Account... 4 2.2 Corporate Account...
More informationTIS HELP FOR INDEPENDENT OPERATORS CONTENTS
TIS HELP FOR INDEPENDENT OPERATORS CONTENTS 1 INTRODUCTION... 3 1.1 TIE... 3 1.2 Account set up in TIS... 3 1.3 VAT number (EU only)... 3 1.4 Business license number (China only)... 3 1.5 Access levels...
More informationCrystal Report Parameter Default Value Current Date
Crystal Report Parameter Default Value Current Date 3.2.1 Crystal Reports - Excel 2007 Data Centric, 3.2.2 Content Grouping - Customize SSRS report parameters with 'Default' values are now supported. If
More informationA NETWORK PRIMER. An introduction to some fundamental networking concepts and the benefits of using LANtastic.
A NETWORK PRIMER An introduction to some fundamental networking concepts and the benefits of using LANtastic. COPYRIGHT 1996 Artisoft, Inc. All Rights Reserved. This information file is copyrighted with
More informationMultiSite Suite: General Ledger
MultiSite Suite: General Ledger User s Manual version 2.2.97 Copyright & Trademarks Copyright Notice and Trademarks 2003 by Brent Lawrence, LLC. All rights reserved. Reprinted and edited by MultiSite Systems,
More informationCDK Requisitioner. Users Manual
CDK Requisitioner Users Manual January 15, 2012 2011 CDK Systems, Inc. 444 Shades of Death Road Great Meadows, NJ 07838 Phone: (908) 850-8194 i Table of Contents Table of Contents... ii Welcome to CDK
More informationCox Business Online Backup Administrator Guide. Version 2.0
Cox Business Online Backup Administrator Guide Version 2.0 2012 by Cox Communications. All rights reserved. No part of this document may be reproduced or transmitted in any form or by any means, electronic,
More informationLAMPIRAN LIST PROGRAM
LAMPIRAN LIST PROGRAM 1. Modules Public conn As New ADODB.Connection Public rstb_pendekatan As ADODB.Recordset Public rstb_solusi As ADODB.Recordset Public rstb_alasan As ADODB.Recordset Public rstb_pilihan
More informationNAMI Affiliate Profile Center Contact Manual
NAMI Affiliate Profile Center Contact Manual Standards of Excellence/Center for Excellence November 2013 Table of Contents Chapter Page I. NAMI Affiliate Profile Center Contact Training Timetable 3 II.
More informationContents OVERVIEW... 3
Contents OVERVIEW... 3 Feature Summary... 3 CONFIGURATION... 4 System Requirements... 4 ConnectWise Manage Configuration... 4 Configuration of Manage Login... 4 Configuration of Integrator Login... 5 Option
More information