Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
A Project works
Submitted for the partial fulfillment of the requirements for the award of the
Degree in
ICT
Under the Guidance of TESFELM REZENE LEGE LEGE
By
DEPARTMENT OF ICT
August – 2012
1
Admas University College Hargeisa Main Campus
Certificate
This is to certify that the project titled “building expense management system” is a bona-fide work
done by
Submitted by:
.
(mr tasfelm rezene lege lege) (Mr. Tesfalem R.)
Advisor Head of the Department
2
DECLARATION
We, mubaarik Ahmed A/rahman, Muktaar Yaasmiin Hassan Saed , hereby declare that this thesis is our
original work and has not been presented for the award of any degree/diploma in any other college or
university.
Signatures:…………………………………………………………………………………..
Date:…………………………………
Professor of ICT
Signature………………………………………………..
Date:………………………
3
Acknowledgments
First and foremost I thank the almighty Allah for giving me the courage and resolve to handle
this project work.
This book would not have been possible without the help of many people whose comments
First, we would like to thank our adviser Tesfelm-Rezenefor his advice and encouragement for
doing this project and leading for the right path to be successful project.
It is my duty to thank my parents for their rich source of motivation and advice.
I’m appreciating the willingness of some unforgettable individuals to allow me to include their
ideas in this project. These ideas have significantly enhanced the effectiveness of my project.
I would like to thank Ahmed Nassir who assigned me this project,many times for his support
and encouragement
Finally, I wish to express my appreciation to all who has contributed whatever donations to
this paper including my family, friends and my teachers.
4
CONTENTS
Project Proposal--------------------------------------------------------------------------8
Introduction ------------------------------------------------------------------------------------------- 8
Introduction ------------------------------------------------------------------------------------------- 8
Background ------------------------------------------------------------------------------------------ 11
Analyzing---------------------------------------------------------------------------------16
Preliminary Analysis------------------------------------------------------------------------------ 18
Detailed Analysis---------------------------------------------------------------------------------- 19
Proposed System---------------------------------------------------------------------------------- 24
5
Feasibility Study-----------------------------------------------------------------------------------------25
System Designing----------------------------------------------------------------------------------28
ER-Schema ---------------------------------------------------------------------------------------------30
Normalization--------------------------------------------------------------------------------------------31
Data Design----------------------------------------------------------------------------------------------32
De-normalization----------------------------------------------------------------------------------------32
6
User Account Form Coding ------------------------------------------------------------------------72
System Testing--------------------------------------------------------------------------------------79
Conclusion ---------------------------------------------------------------------------------------------84
Biography -----------------------------------------------------------------------------------------------85
7
Project proposal
Introduction:
Managing company any activity, whether for payroll, billing, project management, or
some other purpose, is a business process all companies engage in. Most begin by
using a paper-based system or simple spreadsheet application, but as they grow these
systems become more cumbersome, time-consuming and low security. So the solution
is to automate.
There are two basic automation options: design and build a system in-house
development, or buy a commercially available application. Costs for both solutions can
be considerable, and the impact each solution has on the business can be both
significant and different. It makes sense, therefore, for organizations to compare the
costs and benefits, and business implications of both options before making a decision.
High Risk
While it is possible to buy application from the market, there is no guarantee of success.
Without a lot of prior direct experience in timesheet systems, the architecture of the
preliminary solution runs the risk of missing critical issues and requirements and
underestimating the impact on the entire organization testing the product with no
guarantee that in the end it will work as intended.
While outsourcing third parties to develop a customized solution can transfer some of
the risk, there is still no guarantee that the end product will perform as desired. Such
customized solutions are far more significant than an "off-the-shelf" product and the
question of ongoing maintenance and support once the product is finished is available
to you, also customized system has support
8
The Case of in House-Development
Lower Risk:
By serving the various needs of general contractors and subcontractors across multiple
trades such as commercial construction, home building, remodeling, framing, plumbing,
electrical, and other trades, building expense management system is the ideal solution
to begin integrating the specialized processes of your growing construction business.
Methodology:
We have made a face to face communication with the general manager and the
accountant of the company by asking them a several questions about the existing
system that they are using whether there is a problem or not?
They told us that they are using spread sheet (excel) and the system is satisfying the
needs of the company but unfortunately that there is less security and lack of reliable
report
As soon as we found that problems we have convinced that we can change this system
in to computerized system which is data base management system luckily they
accepted our idea and now we are targeting our mission to make this project for the
company which we called BUILDING EXPENSE MANAGEMENT SYSTEM (BEMS)
10
Background:
They are part of countries largest and leading building company In Somaliland
Future’s strong commitment to the vision and value under which we operate are of
paramount importance. Safety, quality, outstanding customer satisfaction and all the
values associated with being an ethical, responsible and innovative company will guide
our company in the 21st century.
Since its inception in 2007, future's homes have featured the best of the local craftsmen.
At future they pride themselves with the Engineering necessary to build your dream
home in your own custom and within your sight.
Future has over 4yrs of experience in building almost every taste of architecture.
There are however, some areas where we have our own unique styles and designs.
The services offered by future are included:
11
And too many other services like:
future offers a full range of construction related services. From pre-construction
services through construction management or general contracting services. Annually,
we complete 30 projects of all sizes ranging from less than $200 on to well over
$350,000. Most importantly, each project is built with the pride and enthusiasm for
which future is known. In every case, the project is recognized as a winner.
In recent years, future has renewed its focus on premium hotel construction, with
completion of several successful projects throughout out the country
12
Problem statement:
As we know to make an application there must be at least one or more problem so the
system/application should solve those problems to become successful
system/application other-wise this application will become insignificant and
meaningless.
Future construction company (FCC) uses Microsoft excel to record and manage their
daily building expenses, although Microsoft excel have the power to handle and record
their daily transactions but they complains from three major problems and they are:
1) Security problem:
our operators (Excel Data Entry) puts data into excel sheet but in security aspect we
can’t know who record this data and when he/she recorded, some of employee
expect that this excel file can modify everybody when they aren’t at work, they are
very worrying the modifications and unreliability of this file
2) Time consuming :
When the user needs to record a new building expenses he/she needs to create a new
excel project in addition to this, one single project contains more spreadsheets like
(labor sheet, subcontractor’s sheet, import material sheet, .etc.), as well as every sheet
of those sheets needs from the user to enter/write the names of its records and
formulas so this tasks cost/waste a lot of time and energy and so as space of the
memory
13
Scope of the project:
The main purpose of this Expenses Building Tracking System In Future Construction
Company is to provide information that is useful to decision making, in deciding which
building takes less resource and expenses and which building takes long time as well
as too much expenses. Two aspects where considered. Firstly enhancing the quality of
reporting by produce well and neatly reporting based on any criteria that system user
request, and secondly improving the worries from users we mentioned above content
for the security aspect and developed thriving robust and well security based
application.
So considered the points we mention above we accomplish scope of the project by the
following points
14
Report generator has rights to generate any category of report by allocating date, type,
etc. this type of user not permitted for entering data/information to the system. When
daily activities have been finish this user takes back up from the system.
2) User logs:
This major type of security we would guarantee the number of times that user
logged to the system how much he/she was live.
By keeping this information we achieve by saving user logs when he/she
loges the system and when they arrive system
Goal
The goal of this new system would be focused the whole expenses of building
Objectives:
1. Producing high performance application that handles all activities and expenses
In future Construction Company using by the latest technology
2. Increasing confidentiality of the current system that was unsecured system
3. Moving from conventional method to computerized system
4. Producing trusted report for every transaction
Work break down of the project
15
ANALYSING 012
Requir 25/03/2012 15 09/04
ement /2012
determ
ination
Analys 09/04/2012 7 06/04
is /2012
Design Writing proposal
13/04/2012 15 28/04
/2012
Requirement Determination
Codin 07/04/2012 15 02/05
g Analysis
/2012
Testin 21/04/2012 4 25/04
g Design /2012
Imple 25/04/2012 25 20/05
mentin Coding /2012
g
Mainte Testing
29/04/2012 10 09/05
nance /2012
Implementing 61
Total
Maintainance
INTRODUCTION:
Future Construction Company is a private company which was established in 2007 to
serve Somaliland population by supplying constructions to Somaliland people.
16
We are a member the country’s largest and leading building company. Future’s strong
commitment to the vision and value under which we operate are of paramount
importance. Safety, quality, outstanding customer satisfaction and all the values
associated with being an ethical.
Construction is a complex and costly process that can challenge first-time and
experienced owners equally. Whatever the scope or nature of the project, your success
depends on choosing the right contractor. The right contractor offers experience,
competitive pricing, financial strength, professionalism, integrity and a commitment to
your project that is supported by quality and workplace safety initiatives without fail that
is what FCC offering you.
Our major goal of developing this new system is to develop and implement the system
cost effectively, customer care and most suited to the users, So that first we analyses
and analyses is the heart of our process.
Analysis is the study of the various operations performed by the system and their
relationship within and outside of the system. During analysis, data collected by various
methods on the files, decision points and transactions handled by the present system.
Different kinds of tools are used in analysis of which interview is a major one .
The company now using an excel sheet system to operate their daily transactions
although there is problems mainly at side of security and lack of report so for the sake of
this we decided to develop new computerized system that help the company and cover
all necessary information especially information about employees (HRM) In this new
Human Management System are trying to demonstrate all necessary things that to
manage the employees and it’s information’s.
Our major goal of developing this new system is to develop and implement the system
cost effectively, customer care and most suited to the users
17
So that we have taken different approach and efforts how to collect information with
sensitivity and precautions and we have used different methods of data collection like;
Interviews, questionnaires and observation
During the analysis phase the most important of our information gathering is interview
and we have collected the information mainly from the Manager of future construction
company, and Accountant office and also secretary who is the person responsible for
keeping employees information.
Also we give them a questionnaire how to know the existing system problems and here
are some of our questions we ask them.
3) What are the most problems that you meet when you are using excel sheet system?
Conducting the company we know that there is many problems in the company so that
we decided to ask the above questions in the company first if we describe the first
question that we ask was
After we have got the feedback from the company we recorded the information in to our
computer in word document
Preliminary analysis:-
18
Data analysis is a practice in which raw data is ordered and organized so that useful
information can be extracted from it.
The process of organizing and thinking about data is the key of understanding what the
data does and does not contain. There are a variety of ways in which people can
approach data analysis, and think critically about the data and the conclusions which
were drawn.
It is disreputably easy to manipulate data during the analysis phase to push certain
conclusions or agendas.
In its raw form, this information can be incredibly useful, but also overwhelming. Over
the course of the data analysis process, the raw data is ordered in a way which will be
useful. For example, survey results may be tallied, so that people can see at a glance
how many people answered the survey, and how people responded to specific
questions.
Really on the top of discussions we made this project is illegible to go forward for the
sake of this list of opportunities that we do have on bellow:
Detailed analysis:-
19
This proposed system is the one that I’m trying to solve the existing problems in the
previous excel sheet system, or even avoid the future problems that may face this
purposed system whatever it is.
The main thing in my common sense is to make a software project that can easily
understand, easy to use, cheaper, more flexible and reliable than the previous one.
There are no uniquely identifiers in the previous system excel sheet so that the data can
be entered redundantly and this causes a kind of confusions.
To avoid this problem in the new system we will introduce project ID to all projects as to
facilitate the searching of project building dealings.
I. Project plan:-
This company needs a system is excellent and professional, competition by other
companies in terms of services, in order that the plan should be developed for the
programming of the system fills the needs and requirements of the company, the plan
was as follows:
Programming system has special accounts, workers and managers who will be
working on this program.
Programming the system easy to understand and learn and all can be dealt
with easily.
Programming system fast, convenient and uncomplicated.
So we started with the aid of the implementation timetable has been explained
previously in work break down table.
The heart of the system analysis is aimed at having a detailed understanding of all-
important facts of the project under consideration.
Analyst working closely with employees and managers must be able to answer the
following key question:
What is being done by the current system?
How is being done?
How frequently does it occur?
How big is the volume of transactions or decisions?
20
How well is the task being performed?
Does a problem exist?
If problem exists, how serious is it?
If a problem exists, what is the underlying cause?
To answer the above question system analyst talks to a variety of people to gather
details about the project. Questionnaires are used to collect this information from large
groups of people who cannot be interviewed individually. Detailed investigations also
require the study of Manual and reports, actual observation of work activities and
collection of existing Forms and document to fully understand the project.
And during this phase that the analyst and the user come to an agreement on what
Functions the proposed system has to perform.
A detailed document has to prepare by system analyst containing the following:
Inputs that must be received by the system
The outputs to be produced by the system
The data to be retained
The procedures to get the output from the given inputs
Audit and control requirements
System acceptance criteria
This detailed document is called functional specification or proposed procedures.
21
FUTRURE CONSTRUCTION COMPANY DFD
Customer
Customer registration Management
Make Payment
Receive Customer Order
Receipt
3.0 2.0
Make Update
Payment Customer
File
Update Account
22
4.0
Produce
Problem of Existing System:
23
1. Slow to 1. System suitable for long- 1. Make work very much 1. Lack
register or extra term use. easily. of modern technology wit
ct data or files. 2. Develop database to store hin the company (such
2. System that all Customer information. as computers, printers, s
2. Lack of allows confidential. 3. A highly classified system canners..... etc).
confidentiality. can not be accessed
3. Fast and comfortable.
by another one outside the 2. Lack of knowledge
3. Lack
4. Easyto control company except the users of most workers in the
of computers a
and can understand and (workers and managers) use of modern
nd other
learn how it works. in the Company. technologies.
office tools.
Proposed system:
The drawback of the existing system is that it is very difficult to retrieve data from case
files. It is difficult to handle the whole system manually and it is less accurate and to
keep the data in case files for future reference because it may get destroyed. Moreover
it is very difficult to retrieve data. Redundancy of data may occur and this may lead to
the inconsistency. The manual system is so time-consuming
The proposed system is very easy to operate. Speed and accuracy are the main
advantages of proposed system. There is no redundancy of data. The data are stored in
the computer’s secondary memories like hard disk, etc. It can be easily received and
used at any time. The proposed system will easily handle all the data and the work done
by the existing systems. The proposed systems eliminate the drawbacks of the existing
system to a great extent and it provides tight security to data
Accuracy:The level of accuracy in the proposed system will be higher. All coming from
rage space and consistency in the data stored.
24
Immediate retrieve of information: The main objective of proposed system is to
provide for a quick and efficiency retrieval of information. Any type of information would
be available whenever the user requires
Reliability: - the reliability of the proposed system will be high due to the above stated
reasons. The reason for the increased reliability of the system is that now there would
be proper storage of information.
Feasibility study
A Project Feasibility Study is an exercise that involves documenting each of the
potential solutions to a particular business problem or opportunity. Feasibility Studies
can be undertaken by any type of business, project or team and they are a critical part
of the Project Life Cycle.
25
undertaken. The outcome of the Feasibility Study is a confirmed solution for
implementation.
Feasibility study is a test of system proposal according to its workability, impact of the
organization, ability to meet needs and effective use of the resource. It focuses on these
major questions:
What are the user’s demonstrable needs and how does a candidate system meets
them?
What resources are available for given candidate system?
What are the likely impacts of the candidate system on the organization?
Whether it is worth to solve the problem?
Technical feasibility
Operational feasibility
Schedule feasibility
Economic feasibility:-
Economically this system will require to study economically feasible, so that
economically this software is feasible, the financial benefits of this software will
maximize the benefits of the company, and will use number of staffs less than
those existing when we are using excel sheet system,
More commonly known as cost or benefit analysis the procedure is to determine
the benefits and savings that are expected from a candidate system and compare
them with existing costs.
NOTE if benefit be greater than the costs then the decision is to design and
implement a new system.
Technical feasibility:-
26
Project size: this project the team size is very small and the organizational
department are small, the project duration is very small, programming efforts the
programming language that will use is VB.NET and MS access for data base,
This information system will familiar to development process.
Operational feasibility:-
Operation feasibility means does the proposed system solve problems or take
advantage of opportunities?
So operation feasibility is measured how well this proposed system solve the
problem of the existing system and takes advantages of opportunities knowing
during scope definitions and how it convince the requirements of the company,
So that, this system will solve the problems of existing system like poor retrieval and will
take more advantage opportunities like to use advanced information system this will
allow to quick retrieve of data and other operations that this company needs.
Schedule feasibility:-
Schedule feasibility is the measure of how reasonable of the project time table is. In
system schedule you need to know or determine whether the deadline are mandatory
or desirable in this proposed you need to you now the time table of this proposed
project. This project will take a time and the time of our project will be 3 months,
27
SYSTEM DESIGNING
Systems design is the process of defining the architecture, components, modules,
interfaces, and data for a system to satisfy specified requirements. One could see it as
the application of systems theory to product development. There is some overlap with
the disciplines of systems analysis, systems architecture and systems engineering.
Design Goals
Support for a variety of distribution formats, so that our documentation is viewable on a
wide variety of platforms. Further, our system should be adaptable to newer distribution
formats as and when they become popular.
Our project should be capable of being processed on systems without native support for
the languages being described.
Our project system should be built over portable tools, allowing it to be used on a wide
variety of systems.
Our documentation system should be designed for longevity.
A database is a collection of interrelated data stored with minimum redundancy to serve
many users quickly and effectively. After designing input and output, the analyst must
concentrate on database design or how data should be organized around user
requirements. The general objective is to make information access easy, quick,
inexpensive and flexible for other users. During database design the following objectives
are concerned:-
28
Controlled Redundancy
Data independence
Recovery from failure
Performance
Database design are classified into to two significant types and are as follows
A database is a collection of interrelated data store with minimum Redundancy to serve many
users quickly and effectively. After designing input and output, the analyst must concentrate on
database
Design or how data should be organized around user requirements. The general objective is to
make information access easy, quick, inexpensive and flexible for other users. During database
design the following objectives are concerned:-
Database design is the process of producing a detailed data model of a database. This logical
data model contains all the needed logical and physical design choices and physical storage
parameters needed to generate a design in a Data Definition Language, which can then be
used to create a database.
Entities to Relations
During logical design you transform E-R diagrams that were developed during conceptual
design into relations. The inputs of this process are the entity relationships (Enhanced E-R)
diagrams that u studied in Analysis phase.
29
Consequently, certain terms will change in this phase as the transformation process goes into
and can be as follows:
ER-SCEMA
tbl_material
ID Project_id Recorded_date Description Invoice_No Quantity Price Total Type Account
tbl_subContractors
ID Project_id RecordedDate Description FullName Amount Account
tbl_labour
ID Project_id Recorded_date Labour_Type Quantity Price Total Account
tbl_projects
project_id Project_Desc Date_Entry Owner Budget City District Accounts
30
tbl_Accounts
ID FullName account Pass Type
tbl_userLogs
ID Account LoginTime Interval LogoutTime
Normalization:
In the design of a relational database management system (RDBMS), the process of
organizing data to minimize redundancy is normalization. The goal of database
normalization is to decompose relations with anomalies in order to produce smaller,
well-structured relations. Normalization usually involves dividing large tables into
smaller (and less redundant) tables and defining relationships between them.
Transitive Dependency: If two non-key attributes depend on each other as well as on the
primary key then they are said to be transitively dependent.
The above normalization principles were applied to decompose the data in multiple tables
thereby making the data to be maintained in a consistent state.
Data Design
In most situations, many physical database design decisions are implicit or eliminated when we
choose the database management technologies to use with the information system we are
designing.
Since many organizations have standard for operating systems, database management system
and data access languages, we must deal only with those choices not implicit in the given
technologies.
i) To decide on the organization of the database in computer storage and define the physical
structure of the database management system.
ii) To outline the program to process transactions and to generate anticipated management
information and decision support reports.
32
Designing Fields: A field is the smallest unit of application data recognized by system
software
Choosing Data Types: A data type is a detailed coding schema recognized by the
system software, such as a DBMS, for representing organizational data.
Selecting a data type involves four objectives that will have different relative importance for
different applications:
Data dictionary:
We have used six different tables for storing records. There are six tables – account table, labor
table, material table, project table, sub-contractors table, user logos table. Their design view is
shown below:
33
Material information table:
34
sub-contractors information table:
35
SYSTEM DEVELOPMENT ENVIRONMENT:
36
form and writing code to respond to its events, you customize the object to meet the
requirements of your application.
As with all objects in the .NET Framework, forms are instances of classes. The form you create
with the Windows Forms Designer is a class, and when you display an instance of the form at
run time, this class is the template used to create the form. The framework also allows you to
inherit from existing forms to add functionality or modify existing behavior. When you add a form
to your project, you can choose whether it inherits from the Form class provided by the
framework, or from a form you have previously created.
Additionally, forms are controls, because they inherit from the Control class.
Lower total cost of ownership: Windows Forms takes advantage of the versioning and
deployment features of the common language runtime to offer reduced deployment
costs and higher application robustness over time
Security: windows forms takes full advantage of the security features of the common
language runtime.
Data awareness: Windows Forms offers full support for the ADO data model.
ActiveX control support: Windows Forms offers full support for ActiveX controls. You
can easily host ActiveX controls in a Windows Forms application. You can also host a
Windows Forms control as an ActiveX control.
ADO Overview:
ADO was first introduced as the data access interface in Microsoft Internet Information Server
(IIS). ADO is easy to use because it is called using a familiar metaphor: the Automation
interface, available from just about any tool and language on the market today. Because of its
popularity as an easy-to-use, lightweight interface to all kinds of data, and the growing need for
an interface spanning many tools and languages, ADO is being enhanced to combine the best
features of, and eventually replace, RDO and DAO, the data access interfaces in widest use
today. ADO is in many ways similar to RDO and DAO. For example, it uses similar language
conventions. ADO provides simpler semantics, which makes it easy to learn for today's
developers.
37
The ADO.Net Object Model
Connection
Command
Dataset
The connection object:
The Connection object allows you to establish a communication link with a data source.
The Connection object provides a mechanism for initializing and establishing the
connection, executing queries, and using transactions.
Back-end Selection:
1. Multiple user support.
2. Efficient data handling.
3. Provide inherent features for security.
4. Efficient data retrieval and maintenance.
5. Popularity.
6. Operating System compatible.
7. Easy to install.
8. Easy to implant with the Front-end.
According to above stated features we selected MS-Access as the backend.The technical
feasibility is frequently the most difficult area encountered at this stage. It is essential that the
process of analysis and definition be conducted in parallel with an assessment to technical
feasibility. It centers on the existing computer system (hardware, software etc.) and to what
extent it can support the proposed system.
38
A database management, or DBMS, gives the user access to their data and helps them
transforming the data into information. Such database management systems include
dBase, paradox, IMS, MS Access and SQL Server. These systems allow users to
create, update and extract information from their database.
During MS Access Database design project, the analysis of your business needs
identifies all the fields or attributes of interest. If your business needs change over time,
you define any additional fields or change the definition of existing fields.
Tables
MS Access stores records relating to each other in a table. Different tables are created
for the various groups of information. Related tables are grouped together to form a
database.
Primary Key
Every table in MS Access has a field or a combination of fields that uniquely identifies
each record in the table. The Unique identifier is called the Primary Key,
Foreign Key:
When a field in one table matches the primary key of another field is referred to a foreign key. A
foreign key is a field or a group of fields in one table whose values match those of the primary
key of another table.
Relational Database:
Sometimes all the information of interest to a business operation can be stored in one
table. MS Access makes it very easy to link the data in multiple tables. Matching an
employee to the department in which they work is one example. This is what makes Ms
Access a relational database management system, or RDBMS
Login form:
39
Main form:
Labor form:
40
Material management form:
Sub-contractors form:
41
Change password form:
Implementation phase is similar to the construction phase in the sdlc, it is the fourth
42
and the last phase where the deliverables of the previous phases are converted into
computer instruction (software)which are invisible and untouchable but can be
interacted with
Regardless of the development methodology used, once coding begins ,the testing
process may began parallel with the coding in file to produce efficient ,quality
software
Installation process involves in replacing the current system along with its
documentation and working procedures in to the new system, therefore so as the
employee adapt with the new system.
They have to be given on job trainings or workshops about the application of the new
system and to give regular consultation and support on the problems they encounter
with Deliverables and outcomes
Software
Documentation
Training
43
implemented on the Microsoft .net framework.
There are several activities involved while implementing a new project. They are:-
Software Requirement:
44
Database MS Access
Hardware Specification:
Ram 32 MB
Coding is the process of converting design specifications into real software which is
able to store, edit and format data
Coding and testing are always parallel when the software is implemented.
Depending upon the complexity of the software coding is the process of changing
physical design of data into working software
1) login form:
This form does one function which is user authentication the can access my system
45
unless the user enters the actual user and password
Imports System.Data.OleDb
PublicClass frmLogin
PrivateSub OK_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK.Click
Try
If txtusername.Text = ""Then
MsgBox("Fadlan Geli Magaca")
ElseIf txtpassword.Text = ""Then
MsgBox("Fadlan Geli Furaha Sirta ah (Password)")
ElseIf txtusername.Text = "'or''='"Or txtpassword.Text = "'or''='"Then
MsgBox("Waan ka Xumahay; Jooji Qarbudaada")
txtusername.Clear()
txtpassword.Clear()
Me.Close()
Else
Dim sql = "SELECT account,Pass FROM tbl_Accounts WHERE account = '"&
txtusername.Text &"' AND Pass = '"& txtpassword.Text &"'"
Connections.connect()
cmd = New OleDbCommand(sql, con)
Dim dr As OleDbDataReader = cmd.ExecuteReader
If dr.Read = FalseThen
MessageBox.Show("Either User Name or Password is
46
Incorrect Please Try Again", "FCC: Authentication Failure...",
MessageBoxButtons.OK, MessageBoxIcon.Warning)
txtusername.Select()
txtusername.Clear()
txtpassword.Clear()
Else
currentuser.currentuser = txtusername.Text
MessageBox.Show("Si Sax ah ayaa loo Furay; Shaqo
Wacan...")
frmMain.Show()
EndIf
If con.State <> ConnectionState.Closed Then
con.Close()
EndIf
EndIf
Catch ex As Exception
MsgBox(ex.Message)
EndTry
EndSub
'da.Fill(ds, "Admin")
'frmMain.Hide()
EndSub
PrivateSub UsernameTextBox_MouseHover(ByVal sender AsObject, ByVal e As
System.EventArgs) Handles txtusername.MouseHover
txtusername.BackColor = Color.Gold
EndSub
47
PrivateSub txtuser_MouseLeave(ByVal sender AsObject, ByVal e As
System.EventArgs) Handles txtusername.MouseLeave
txtusername.BackColor = Color.White
EndSub
PrivateSub UsernameTextBox_TextChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles txtusername.TextChanged
If txtusername.Text = "'"Or txtusername.Text = "="Or txtusername.Text = " /
"Then
MessageBox.Show("Waan Ka Xumahay;Laguma Ogola inaad Si khaldan
U gasho!!!", "Security Alert", MessageBoxButtons.OK,
MessageBoxIcon.Warning)
txtusername.Clear()
EndIf
EndSub
PrivateSub txtpass_MouseHover(ByVal sender AsObject, ByVal e As
System.EventArgs) Handles txtpassword.MouseHover
txtpassword.BackColor = Color.Gold
EndSub
PrivateSub txtpass_MouseLeave(ByVal sender AsObject, ByVal e As
System.EventArgs) Handles txtpassword.MouseLeave
txtpassword.BackColor = Color.White
EndSub
PrivateSub txtpassword_TextChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles txtpassword.TextChanged
If txtpassword.Text = "'"Or txtpassword.Text = "="Or txtpassword.Text = " /
"Then
MsgBox("Waan Ka Xumahay;Laguma Ogola Inad Si Khaldan U
gasho!!!", , "Security Alert")
txtpassword.Clear()
EndIf
EndSub
EndClass
2) main form:
This form is called main form it contains six forms which linked by each other
so that the first table is called project which is a form which records every
48
project we initiate or in other word every building we start.
The second form is the labor form which records the project or the building
which the labor works and also the kind of labor, quantity and price
The third form is the material form forth form is the sub-contractors, reports,
user logos, user log out
EndSub
PrivateSub ToolStripLabel2_Click(sender As System.Object, e As
System.EventArgs) Handles ToolStripLabel2.Click
Dim chillform AsNew frmMaterial
chillform.MdiParent = Me
chillform.Show()
EndSub
PrivateSub ToolStripLabel3_Click(sender As System.Object, e As
System.EventArgs) Handles ToolStripLabel3.Click
Dim chillform AsNew frmAccounts
49
chillform.MdiParent = Me
chillform.Show()
EndSub
PrivateSub frmMain_Load(sender As System.Object, e As System.EventArgs)
HandlesMyBase.Load
tooluser.Text = "Current User: " + currentuser.currentuser
EndSub
PrivateSub ToolStripLabel7_Click(sender As System.Object, e As
System.EventArgs) Handles ToolStripLabel7.Click
Dim chillform AsNew frmlabour
chillform.MdiParent = Me
chillform.Show()
EndSub
PrivateSub ToolStripLabel4_Click(sender As System.Object, e As
System.EventArgs) Handles ToolStripLabel4.Click
Dim chillform AsNew frmRecover
chillform.MdiParent = Me
chillform.Show()
EndSub
PrivateSub ToolStripLabel5_Click(sender As System.Object, e As
System.EventArgs) Handles ToolStripLabel5.Click
Dim chillform AsNew frmSubcontractors
chillform.MdiParent = Me
chillform.Show()
EndSub
PrivateSub Timer1_Tick(sender As System.Object, e As System.EventArgs)
Handles Timer1.Tick
Dim dd AsString = Date.Now
Dim ddate AsString = Microsoft.VisualBasic.Left(dd, 9)
toolDate.Text = "Date: "& ddate
50
PrivateSub ToolStripLabel6_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles ToolStripLabel6.Click
EndSub
EndClass
3) labor form: this form registers the labor information such as labor type
quantity and price and the total amount of many the labor takes
Imports System.Data.OleDb
PublicClass frmlabour
Dim user AsString = currentuser.currentuser
Dim ds AsNew DataSet
Dim id AsInteger
PrivateSub frmlabour_Load(sender As System.Object, e As System.EventArgs)
HandlesMyBase.Load
Connections.connect()
publicfunctions.loadprojects(cmbprojects)
publicfunctions.loadlabour(cmblabourtype)
disconnect()
EndSub
PrivateSub txtTotal_GotFocus(sender AsObject, e As System.EventArgs)
Handles txtTotal.GotFocus
txtTotal.Text = publicfunctions.multiply(txtquantiy, txtPrice)
EndSub
51
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
EndSub
PrivateSub TooAdd_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TooAdd.Click
If gblabour.Enabled = FalseThen
gblabour.Enabled = True
toolSave.Enabled = True
TooAdd.Enabled = False
cmbprojects.Select()
EndIf
EndSub
PrivateSub toolSave_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles toolSave.Click
Try
If validateLabour(cmbprojects, cmblabourtype, txtquantiy, txtPrice) =
FalseThen
ExitSub
Else
Connections.connect()
Dim str AsString
Dim total AsDouble = publicfunctions.multiply(txtquantiy, txtPrice)
Dim labouttype AsString = removeSpaces(cmblabourtype.Text)
' Dim user As String = "Ali"
str = "INSERT INTO tbl_labour (Project,Recorded_date,
Labour_Type, Quantity, Price, Total, Account)Values(' "&
cmbprojects.Text.Remove(0, 1) &" ',' "& DTB1.Value &" ',' "& labouttype &"
', ' "& txtquantiy.Text &" ', ' "& txtPrice.Text &" ', ' "& total &" ',' "&
user &" ')"
Dim cmd AsNew OleDbCommand(str, con)
cmd.ExecuteNonQuery()
MessageBox.Show("Mahadsanid waa laguu xafiday
macluumaadkan", "Xaqiijin"MessageBoxButtons.OK, MessageBoxIcon.Information)
clearform()
EndIf
Catch ex As Exception
52
MsgBox(ex.Message)
EndTry
con.Close()
EndSub
PrivateSub btnFind_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnFind.Click
Dim sql AsString = "SELECT Project, Recorded_date, Labour_Type, Quantity,
Price, Total, ID FROM tbl_labour WHERE ID= "& txtSearch.Text &" "
performQuery(sql)
EndSub
PrivateSub performQuery(ByVal sql)
Try
ds.Reset()
Connections.connect()
Dim da AsNew OleDbDataAdapter(sql, con)
Connections.disconnect()
da.Fill(ds, "FetchedTable")
resultset.DataSource = ds.Tables(0)
Catch ex As Exception
MsgBox(ex.Message)
EndTry
EndSub
PrivateSub resultset_CellContentClick(ByVal sender As System.Object, ByVal
e As System.Windows.Forms.DataGridViewCellEventArgs) Handles
resultset.CellContentClick
Try
If resultset.Rows.Count > 0 Then
gblabour.Enabled = True
toolUpdate.Enabled = True
ToolDelete.Enabled = True
toolSave.Enabled = False
cmbprojects.DropDownStyle = ComboBoxStyle.DropDown
cmbprojects.Text =
resultset.SelectedRows(0).DataBoundItem(0)
DTB1.Value = resultset.SelectedRows(0).DataBoundItem(1)
53
cmblabourtype.Text =
resultset.SelectedRows(0).DataBoundItem(2)
txtquantiy.Text =
resultset.SelectedRows(0).DataBoundItem(3)
txtPrice.Text = resultset.SelectedRows(0).DataBoundItem(4)
txtTotal.Text = resultset.SelectedRows(0).DataBoundItem(5)
id = resultset.SelectedRows(0).DataBoundItem(6)
Else
MsgBox("There is no Data To fetch")
EndIf
Catch ex As Exception
MsgBox(ex.Message)
EndTry
EndSub
PrivateSub resultset_CellDoubleClick(ByVal sender AsObject, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles
resultset.CellDoubleClick
EndSub
PrivateSub cmbprojects_GotFocus(ByVal sender AsObject, ByVal e As
System.EventArgs) Handles cmbprojects.GotFocus
cmbprojects.DropDownStyle = ComboBoxStyle.DropDownList
EndSub
PrivateSub toolUpdate_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles toolUpdate.Click
If validateLabour(cmbprojects, cmblabourtype, txtquantiy, txtPrice) =
FalseThen
ExitSub
Else
Dim total AsDouble = publicfunctions.multiply(txtquantiy, txtPrice)
Dim sql AsString = "UPDATE tbl_labour SET Project=' "& cmbprojects.Text &"
', Recorded_date=' "& DTB1.Value &" ', Labour_Type=' "& cmblabourtype.Text
&" ', Quantity=' "& txtquantiy.Text &" ', Price=' "& txtPrice.Text &" ',
Total=' "& total &" ' WHERE ID="& id &" "
Try
If id <>NothingThen
Dim result As DialogResult = MessageBox.Show("are you Sure to modify this
54
item", "Warning", MessageBoxButtons.YesNo)
If result = Windows.Forms.DialogResult.Yes Then
Connections.connect()
Dim dc AsNew OleDbCommand(sql, con)
dc.ExecuteNonQuery()
Connections.disconnect()
MessageBox.Show("The item u have been selected
successfully modified", "information", MessageBoxButtons.OK,
MessageBoxIcon.Information)
id = Nothing
clearform()
ToolDelete.Enabled = False
toolUpdate.Enabled = False
TooAdd.Enabled = True
Else
MessageBox.Show("No modification takes place",
"information", MessageBoxButtons.OK, MessageBoxIcon.Information)
EndIf
Else
MessageBox.Show("There is no item selected to modify",
"information", MessageBoxButtons.OK, MessageBoxIcon.Information)
EndIf
Catch ex As Exception
MsgBox(ex.Message)
EndTry
EndIf
EndSub
PrivateSub clearform()
cmbprojects.Text = ""
DTB1.Value = Date.Now
cmblabourtype.Text = ""
txtquantiy.Clear()
txtPrice.Clear()
txtTotal.Clear()
txtSearch.Clear()
55
ds.Clear()
resultset.DataSource = ds
gblabour.Enabled = False
EndSub
PrivateFunction removeSpaces(ByVal st)
If st(0) = " "Then
Dim freshString = st.Remove(0, 1)
Return freshString
Else
Return st
EndIf
EndFunction
PrivateSub Button1_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Dim ss AsString = "removeSpaces"
removeSpaces(ss)
EndSub
PrivateSub ToolDelete_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ToolDelete.Click
Dim sql AsString = "DELETE FROM tbl_labour WHERE ID="& id &""
Try
If id <>NothingThen
Dim result As DialogResult = MessageBox.Show("are you Sure to delete this
item", "Warning", MessageBoxButtons.YesNo)
If result = Windows.Forms.DialogResult.Yes Then
Connections.connect()
Dim dc AsNew OleDbCommand(sql, con)
dc.ExecuteNonQuery()
Connections.disconnect()
MessageBox.Show("The item u have been selected
successfully deleted", "information", MessageBoxButtons.OK,
MessageBoxIcon.Information)
id = Nothing
clearform()
ToolDelete.Enabled = False
toolUpdate.Enabled = False
56
TooAdd.Enabled = True
Else
MessageBox.Show("No deletion takes place",
"information", MessageBoxButtons.OK, MessageBoxIcon.Information)
EndIf
Else
MessageBox.Show("There is no item selected to delete",
"information", MessageBoxButtons.OK, MessageBoxIcon.Information)
EndIf
Catch ex As Exception
MsgBox(ex.Message)
EndTry
EndSub
PrivateSub toolreset_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles toolreset.Click
clearform()
EndSub
EndClass
57
5) Material form code:
Imports System.Data.OleDb
PublicClass frmMaterial
Dim user AsString = currentuser.currentuser
Public id AsInteger
Dim ds AsNew DataSet
PrivateSub frmMaterial_KeyDown(ByVal sender AsObject, ByVal e As
System.Windows.Forms.KeyEventArgs) HandlesMe.KeyDown
'<<------------------Add New ShortCut ---------------------->>>>>>>
If e.Control And e.KeyCode.ToString = "N"Then
TooAdd.PerformClick()
EndIf
If e.Control And e.KeyCode.ToString = "A"Then
TooAdd.PerformClick()
EndIf
'<<<<------------- Saving Data Shortcut ------------------->>>>>
If e.Control And e.KeyCode.ToString = "S"Then
toolSave.PerformClick()
EndIf
'<<<<<<<<<<<<<-----------Deleting Data Fetching From Database -----------
----->>>>>
If e.Control And e.KeyCode.ToString = "D"Then
ToolDelete.PerformClick()
EndIf
EndSub
PrivateSub frmMaterial_Load(sender As System.Object, e As System.EventArgs)
58
HandlesMyBase.Load
Connections.connect()
publicfunctions.loadprojects(cmbprojects)
Connections.disconnect()
EndSub
PrivateSub resultset_CellContentClick(ByVal sender As System.Object, ByVal
e As System.Windows.Forms.DataGridViewCellEventArgs) Handles
resultset.CellContentClick
Try
If resultset.Rows.Count > 0 Then
GbMaterial.Enabled = True
toolUpdate.Enabled = True
ToolDelete.Enabled = True
toolSave.Enabled = False
cmbprojects.DropDownStyle = ComboBoxStyle.DropDown
cmbprojects.Text =
resultset.SelectedRows(0).DataBoundItem(0)
DTB1.Value = resultset.SelectedRows(0).DataBoundItem(1)
txtDesc.Text = resultset.SelectedRows(0).DataBoundItem(2)
txtinvoice.Text =
resultset.SelectedRows(0).DataBoundItem(3)
txtQuantity.Text =
resultset.SelectedRows(0).DataBoundItem(4)
txtprice.Text = resultset.SelectedRows(0).DataBoundItem(5)
txtTotal.Text = resultset.SelectedRows(0).DataBoundItem(6)
cmbMaterial.Text =
resultset.SelectedRows(0).DataBoundItem(7)
id = resultset.SelectedRows(0).DataBoundItem(8)
Else
MsgBox("There is no Data To fetched")
EndIf
Catch ex As Exception
59
MsgBox(ex.Message)
EndTry
EndSub
PrivateSub txtTotal_GotFocus(sender AsObject, e As System.EventArgs)
Handles txtTotal.GotFocus
txtTotal.Text = publicfunctions.multiply(txtQuantity, txtprice)
EndSub
PrivateSub TooAdd_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TooAdd.Click
Try
If GbMaterial.Enabled = FalseThen
GbMaterial.Enabled = True
toolSave.Enabled = True
TooAdd.Enabled = False
cmbprojects.Select()
EndIf
Catch ex As Exception
MsgBox(ex.Message)
EndTry
EndSub
PrivateSub TSFind_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TSFind.Click
clearform()
frmFinder.whocalled = "frmMaterial"
frmFinder.ShowDialog()
EndSub
PrivateSub clearform()
cmbprojects.Text = ""
DTB1.Value = Now.Date
txtinvoice.Clear()
txtDesc.Clear()
txtQuantity.Clear()
txtprice.Clear()
txtTotal.Clear()
GbMaterial.Enabled = False
EndSub
60
PrivateSub toolSave_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles toolSave.Click
If validatematerial(cmbprojects, txtinvoice, txtDesc, cmbMaterial,
txtQuantity, txtprice) = FalseThen
ExitSub
Else
con.Open()
Dim str AsString
Dim total AsDouble = publicfunctions.multiply(txtQuantity, txtprice)
str = "INSERT INTO tbl_material (Project_id, Recorded_date,
Description, Invoice_No, Quantity, Price, Total, Type, Account )Values(' "&
LTrim(cmbprojects.Text) &" ', ' "& DTB1.Value &" ', ' "& txtDesc.Text &" ',
' "& txtinvoice.Text &" ', ' "& txtQuantity.Text &" ', ' "& txtprice.Text
&" ', ' "& total &" ', ' "& cmbMaterial.SelectedItem &" ', ' "& user &"
')"
Dim cmd AsNew OleDbCommand(str, con)
cmd.ExecuteNonQuery()
MessageBox.Show("Mahadsanid waa laguu xafiday macluumaadkan",
"Xaqiijin", MessageBoxButtons.OK, MessageBoxIcon.Information)
toolSave.Enabled = False
clearform()
EndIf
EndSub
PrivateSub toolreset_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles toolreset.Click
clearform()
TooAdd.Enabled = True
EndSub
PrivateSub toolUpdate_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles toolUpdate.Click
If validatematerial(cmbprojects, txtinvoice, txtDesc, cmbMaterial,
txtQuantity, txtprice) = FalseThen
ExitSub
Else
Dim total AsDouble = publicfunctions.multiply(txtQuantity, txtprice)
61
Dim sql AsString = "UPDATE tbl_material SET Project=' "& cmbprojects.Text
&" ', Recorded_date=' "& DTB1.Value &" ', Description=' "& txtDesc.Text &"
', Invoice_No=' "& txtinvoice.Text &" ', Quantity=' "& txtQuantity.Text &"
', Price=' "& txtprice.Text &" ', Total=' "& total &" ' WHERE ID="& id &"
"
Try
If id <>NothingThen
Dim result As DialogResult = MessageBox.Show("are you Sure to modify this
item", "Warning", MessageBoxButtons.YesNo)
If result = Windows.Forms.DialogResult.Yes Then
Connections.connect()
Dim dc AsNew OleDbCommand(sql, con)
dc.ExecuteNonQuery()
Connections.disconnect()
MessageBox.Show("The item u have been selected
successfully modified", "information", MessageBoxButtons.OK,
MessageBoxIcon.Information)
id = Nothing
clearform()
ToolDelete.Enabled = False
toolUpdate.Enabled = False
TooAdd.Enabled = True
Else
MessageBox.Show("No modification takes place",
"information", MessageBoxButtons.OK, MessageBoxIcon.Information)
EndIf
Else
MessageBox.Show("There is no item selected to modify",
"information", MessageBoxButtons.OK, MessageBoxIcon.Information)
EndIf
Catch ex As Exception
MsgBox(ex.Message)
EndTry
EndIf
62
EndSub
PrivateSub ToolDelete_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ToolDelete.Click
Dim sql AsString = "DELETE FROM tbl_material WHERE ID="& id &""
Try
If id <>NothingThen
Dim result As DialogResult = MessageBox.Show("are you Sure to delete this
item", "Warning", MessageBoxButtons.YesNo)
If result = Windows.Forms.DialogResult.Yes Then
Connections.connect()
Dim dc AsNew OleDbCommand(sql, con)
dc.ExecuteNonQuery()
Connections.disconnect()
MessageBox.Show("The item u have been selected
successfully deleted", "information", MessageBoxButtons.OK,
MessageBoxIcon.Information)
id = Nothing
clearform()
ToolDelete.Enabled = False
toolUpdate.Enabled = False
TooAdd.Enabled = True
Else
MessageBox.Show("No deletion takes place",
"information", MessageBoxButtons.OK, MessageBoxIcon.Information)
EndIf
Else
MessageBox.Show("There is no item selected to delete",
"information", MessageBoxButtons.OK, MessageBoxIcon.Information)
EndIf
Catch ex As Exception
MsgBox(ex.Message)
EndTry
EndSub
PrivateSub btnFind_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnFind.Click
63
Dim sql AsString = "SELECT Project, Recorded_date, Description,Invoice_No,
Quantity, Price, Total, Type,ID FROM tbl_material WHERE Invoice_No= "&
txtSearch.Text &" "
performQuery(sql)
EndSub
PrivateSub performQuery(ByVal sql)
Try
ds.Reset()
Connections.connect()
Dim da AsNew OleDbDataAdapter(sql, con)
Connections.disconnect()
da.Fill(ds, "FetchedTable")
resultset.DataSource = ds.Tables(0)
Catch ex As Exception
MsgBox(ex.Message)
EndTry
EndSub
EndClass
Imports System.Data.OleDb
PublicClass frmSubcontractors
Dim user AsString = currentuser.currentuser
Public id AsInteger
Dim ds AsNew DataSet
PrivateSub frmSubcontractors_KeyDown(ByVal sender AsObject, ByVal e As
System.Windows.Forms.KeyEventArgs) HandlesMe.KeyDown
'<<------------------Add New ShortCut ---------------------->>>>>>>
If e.Control And e.KeyCode.ToString = "N"Then
TooAdd.PerformClick()
EndIf
If e.Control And e.KeyCode.ToString = "A"Then
TooAdd.PerformClick()
EndIf
'<<<<------------- Saving Data Shortcut ------------------->>>>>
If e.Control And e.KeyCode.ToString = "S"Then
toolSave.PerformClick()
EndIf
'<<<<<<<<<<<<<-----------Deleting Data Fetching From Database -----------
----->>>>>
If e.Control And e.KeyCode.ToString = "D"Then
ToolDelete.PerformClick()
EndIf
EndSub
65
PrivateSub frmSubcontractors_Load(sender As System.Object, e As
System.EventArgs) HandlesMyBase.Load
frmMain = Me.ParentForm
Connections.connect()
publicfunctions.loadprojects(cmbprojects)
publicfunctions.loadsubcon(cmbSubcontructor)
Connections.disconnect()
EndSub
PrivateSub Button1_Click(sender As System.Object, e As System.EventArgs)
Handles btnSave.Click
Try
If GbSub.Enabled = FalseThen
GbSub.Enabled = True
btnSave.BackgroundImage = My.Resources.Save
DTB1.Value = Date.Now
Else
If subcontructValidate(cmbprojects, cmbSubcontructor, txtFullname,
txtAmount) = FalseThen
ExitSub
Else
con.Open()
Dim str AsString
str = "INSERT INTO tbl_subContractors (Project,
RecordedDate, Description, FullName, Amount, Account)Values(' "&
cmbprojects.SelectedItem &" ', ' "& DTB1.Value &" ', ' "&
Trim(cmbSubcontructor.Text) &" ',' "& txtFullname.Text &" ', ' "&
txtAmount.Text &" ', ' "& user &" ')"
cmd = New OleDb.OleDbCommand(str, con)
cmd.ExecuteNonQuery()
MessageBox.Show("Mahadsanid, Macluumaadkan waa la
kaydiyey", "Xaqiijin", MessageBoxButtons.OK, MessageBoxIcon.Information)
Clearing.frmsubcontruct(cmbSubcontructor, txtFullname,
txtAmount)
66
EndIf
EndIf
Catch ex As Exception
MsgBox(ex.Message)
EndTry
con.Close()
EndSub
PrivateSub btnreset_Click(sender As System.Object, e As System.EventArgs)
Handles btnreset.Click
frmsubcontruct(cmbSubcontructor, txtFullname, txtAmount)
EndSub
PrivateSub TooAdd_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TooAdd.Click
Try
If GbSub.Enabled = FalseThen
GbSub.Enabled = True
toolSave.Enabled = True
TooAdd.Enabled = False
cmbprojects.Select()
EndIf
Catch ex As Exception
MsgBox(ex.Message)
EndTry
EndSub
PrivateSub TSFind_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TSFind.Click
clearform()
frmFinder.whocalled = "frmSubcontractors"
Dim finder AsNew frmFinder
finder.ShowDialog()
EndSub
PrivateSub clearform()
cmbprojects.Text = ""
DTB1.Value = Now.Date
cmbSubcontructor.Text = ""
txtFullname.Clear()
67
txtAmount.Clear()
txtSearch.Clear()
ds.Clear()
resultset.DataSource = ds
GbSub.Enabled = False
EndSub
PrivateSub cmbprojects_GotFocus(ByVal sender AsObject, ByVal e As
System.EventArgs) Handles cmbprojects.GotFocus
cmbprojects.DropDownStyle = ComboBoxStyle.DropDownList
EndSub
PrivateSub toolSave_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles toolSave.Click
Try
If subcontructValidate(cmbprojects, cmbSubcontructor, txtFullname,
txtAmount) = FalseThen
ExitSub
Else
Connections.connect()
Dim str AsString
str = "INSERT INTO tbl_subContractors (Project_id,
RecordedDate, Description, FullName, Amount, Account)Values(' "&
cmbprojects.SelectedItem &" ', ' "& DTB1.Value &" ', ' "&
Trim(cmbSubcontructor.Text) &" ',' "& txtFullname.Text &" ', ' "&
txtAmount.Text &" ', ' "& user &" ')"
cmd = New OleDb.OleDbCommand(str, con)
cmd.ExecuteNonQuery()
MessageBox.Show("Mahadsanid, Macluumaadkan waa la
kaydiyey", "Xaqiijin", MessageBoxButtons.OK, MessageBoxIcon.Information)
clearform()
EndIf
Catch ex As Exception
MsgBox(ex.Message)
EndTry
Connections.disconnect()
EndSub
68
PrivateSub toolreset_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles toolreset.Click
clearform()
TooAdd.Enabled = True
EndSub
PrivateSub toolUpdate_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles toolUpdate.Click
If subcontructValidate(cmbprojects, cmbSubcontructor, txtFullname,
txtAmount) = FalseThen
ExitSub
Else
Dim sql AsString = "UPDATE tbl_subContractors SET Project=' "&
cmbprojects.Text &" ', RecordedDate=' "& DTB1.Value &" ', Description=' "&
cmbSubcontructor.Text &" ', FullName=' "& txtFullname.Text &" ', Amount='
"& txtAmount.Text &" ', Account=' "& user &" ' WHERE ID="& id &" "
Try
If id <>NothingThen
Dim result As DialogResult = MessageBox.Show("are you Sure to modify this
item", "Warning", MessageBoxButtons.YesNo)
If result = Windows.Forms.DialogResult.Yes Then
Connections.connect()
Dim dc AsNew OleDbCommand(sql, con)
dc.ExecuteNonQuery()
Connections.disconnect()
MessageBox.Show("The item u have been selected
successfully modified", "information", MessageBoxButtons.OK,
MessageBoxIcon.Information)
id = Nothing
clearform()
ToolDelete.Enabled = False
toolUpdate.Enabled = False
TooAdd.Enabled = True
Else
MessageBox.Show("No modification takes place",
"information", MessageBoxButtons.OK, MessageBoxIcon.Information)
69
EndIf
Else
MessageBox.Show("There is no item selected to modify",
"information", MessageBoxButtons.OK, MessageBoxIcon.Information)
EndIf
Catch ex As Exception
MsgBox(ex.Message)
EndTry
EndIf
EndSub
PrivateSub btnFind_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnFind.Click
Dim sql AsString = "SELECT ID, Project, RecordedDate, Description,
FullName, Amount FROM tbl_subContractors WHERE FullName LIKE ' "&
txtSearch.Text &"% ' "
performQuery(sql)
EndSub
PrivateSub performQuery(ByVal sql)
Try
ds.Reset()
Connections.connect()
Dim da AsNew OleDbDataAdapter(sql, con)
Connections.disconnect()
da.Fill(ds, "FetchedTable")
resultset.DataSource = ds.Tables(0)
Catch ex As Exception
MsgBox(ex.Message)
EndTry
EndSub
PrivateSub resultset_CellContentClick(ByVal sender As System.Object, ByVal
e As System.Windows.Forms.DataGridViewCellEventArgs) Handles
resultset.CellContentClick
Try
If resultset.Rows.Count > 0 Then
GbSub.Enabled = True
toolUpdate.Enabled = True
70
ToolDelete.Enabled = True
toolSave.Enabled = False
' id, Project, RecordedDate, Description, FullName, Amount
cmbprojects.DropDownStyle = ComboBoxStyle.DropDown
cmbprojects.Text =
resultset.SelectedRows(0).DataBoundItem(1)
DTB1.Value = resultset.SelectedRows(0).DataBoundItem(2)
cmbSubcontructor.Text =
resultset.SelectedRows(0).DataBoundItem(3)
txtFullname.Text =
resultset.SelectedRows(0).DataBoundItem(4)
txtAmount.Text = resultset.SelectedRows(0).DataBoundItem(5)
id = resultset.SelectedRows(0).DataBoundItem(0)
Else
MsgBox("There is no Data To fetch")
EndIf
Catch ex As Exception
MsgBox(ex.Message)
EndTry
EndSub
PrivateSub ToolDelete_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ToolDelete.Click
Dim sql AsString = "DELETE FROM tbl_subContractors WHERE ID="& id &""
Try
If id <>NothingThen
Dim result As DialogResult = MessageBox.Show("are you Sure to delete this
item", "Warning", MessageBoxButtons.YesNo)
If result = Windows.Forms.DialogResult.Yes Then
Connections.connect()
Dim dc AsNew OleDbCommand(sql, con)
dc.ExecuteNonQuery()
Connections.disconnect()
MessageBox.Show("The item u have been selected
successfully deleted", "information", MessageBoxButtons.OK,
MessageBoxIcon.Information)
id = Nothing
71
clearform()
ToolDelete.Enabled = False
toolUpdate.Enabled = False
TooAdd.Enabled = True
Else
MessageBox.Show("No deletion takes place",
"information", MessageBoxButtons.OK, MessageBoxIcon.Information)
EndIf
Else
MessageBox.Show("There is no item selected to delete",
"information", MessageBoxButtons.OK, MessageBoxIcon.Information)
EndIf
Catch ex As Exception
MsgBox(ex.Message)
EndTry
EndSub
EndClass
7) User account form: here in this form we create our new accounts or users
by giving them user name and password.
72
User account code:
PublicClass frmAccounts
PrivateSub btnsave_Click(sender As System.Object, e As System.EventArgs)
Handles btnsave.Click
Try
If gbaccounts.Enabled = FalseThen
gbaccounts.Enabled = True
btnsave.BackgroundImage = My.Resources.Save
Else
Connections.connect()
Dim sql AsString = "INSERT INTO tbl_Accounts (FullName, account, Pass,
Type) VALUES(' "& txtfullname.Text &" ', ' "& txtuser.Text &" ', ' "&
txtnewpass.Text &" ', ' "& cmbtype.Text &" ')"
Dim dcm AsNew OleDb.OleDbCommand(sql, con)
dcm.ExecuteNonQuery()
MsgBox("Your user has been created")
EndIf
Catch ex As Exception
MsgBox(ex.Message)
EndTry
Connections.disconnect()
EndSub
PrivateSub frmAccounts_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) HandlesMyBase.Load
73
EndSub
PrivateSub Label5_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Label5.Click
EndSub
PrivateSub Label1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Label1.Click
EndSub
PrivateSub gbaccounts_Enter(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles gbaccounts.Enter
EndSub
EndClass
8) Change password form: here you have the capacity to change your
password at any time you need because there may be a possibility for
someone to know your password at that time immediately you have to change
your password from here
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
PartialClass frmChangePass
Inherits System.Windows.Forms.Form
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
ProtectedOverridesSub Dispose(ByVal disposing AsBoolean)
Try
If disposing AndAlso components IsNotNothingThen
74
components.Dispose()
EndIf
Finally
MyBase.Dispose(disposing)
EndTry
EndSub
FriendWithEvents TextBox2 As System.Windows.Forms.TextBox
FriendWithEvents Label3 As System.Windows.Forms.Label
Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
75
Me.Label1.ForeColor = System.Drawing.Color.MediumBlue
Me.Label1.Location = New System.Drawing.Point(89, 40)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(293, 38)
Me.Label1.TabIndex = 0
Me.Label1.Text = "Change Password"
'
'GroupBox1
'
Me.GroupBox1.Controls.Add(Me.TextBox2)
Me.GroupBox1.Controls.Add(Me.TextBox5)
Me.GroupBox1.Controls.Add(Me.TextBox4)
Me.GroupBox1.Controls.Add(Me.TextBox3)
Me.GroupBox1.Controls.Add(Me.TextBox1)
Me.GroupBox1.Controls.Add(Me.Label5)
Me.GroupBox1.Controls.Add(Me.Label3)
Me.GroupBox1.Controls.Add(Me.Label4)
Me.GroupBox1.Controls.Add(Me.Label2)
Me.GroupBox1.Controls.Add(Me.Label7)
Me.GroupBox1.Location = New System.Drawing.Point(44, 99)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(430, 193)
Me.GroupBox1.TabIndex = 1
Me.GroupBox1.TabStop = False
Me.GroupBox1.Text = "Account Information"
'
'TextBox2
Me.TextBox2.Location = New System.Drawing.Point(122, 151)
Me.TextBox2.Name = "TextBox2"
Me.TextBox2.PasswordChar = Global.Microsoft.VisualBasic.ChrW(42)
Me.TextBox2.Size = New System.Drawing.Size(128, 20)
Me.TextBox2.TabIndex = 4
'
'TextBox5
'
Me.TextBox5.Location = New System.Drawing.Point(122, 121)
76
Me.TextBox5.Name = "TextBox5"
Me.TextBox5.PasswordChar = Global.Microsoft.VisualBasic.ChrW(42)
Me.TextBox5.Size = New System.Drawing.Size(128, 20)
Me.TextBox5.TabIndex = 3
'
'TextBox4
'
Me.TextBox4.Location = New System.Drawing.Point(122, 95)
Me.TextBox4.Name = "TextBox4"
Me.TextBox4.PasswordChar = Global.Microsoft.VisualBasic.ChrW(42)
Me.TextBox4.Size = New System.Drawing.Size(128, 20)
Me.TextBox4.TabIndex = 2
'
'TextBox3
'
Me.TextBox3.Location = New System.Drawing.Point(122, 69)
Me.TextBox3.Name = "TextBox3"
Me.TextBox3.ReadOnly = True
Me.TextBox3.Size = New System.Drawing.Size(128, 20)
Me.TextBox3.TabIndex = 1
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(122, 42)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.ReadOnly = True
Me.TextBox1.Size = New System.Drawing.Size(216, 20)
Me.TextBox1.TabIndex = 0
'
'Label5
'
Me.Label5.AutoSize = True
Me.Label5.Location = New System.Drawing.Point(13, 97)
Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(90, 13)
Me.Label5.TabIndex = 6
77
Me.Label5.Text = "Current Password"
'
'Label3
Me.Label3.AutoSize = True
Me.Label3.Location = New System.Drawing.Point(12, 153)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(91, 13)
Me.Label3.TabIndex = 5
Me.Label3.Text = "Confirm Password"
'Label4
Me.Label4.AutoSize = True
Me.Label4.Location = New System.Drawing.Point(25, 123)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(78, 13)
Me.Label4.TabIndex = 5
Me.Label4.Text = "New Password"
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Location = New System.Drawing.Point(43, 71)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(60, 13)
Me.Label2.TabIndex = Me.Label2.Text = "User Name"
Me.Label7.AutoSize = True
Me.Label7.Location = New System.Drawing.Point(49, 45)
Me.Label7.Name = "Label7"
Me.Label7.Size = New System.Drawing.Size(54, 13)
Me.Label7.TabIndex = 7
Me.Label7.Text = "Full Name"
'
'frmChangePass
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.BackColor = System.Drawing.SystemColors.ActiveCaption
78
Me.ClientSize = New System.Drawing.Size(590, 401)
Me.Controls.Add(Me.GroupBox1)
Me.Controls.Add(Me.Label1)
Me.Name = "frmChangePass"
Me.Text = "Change Password"
Me.GroupBox1.ResumeLayout(False)
Me.GroupBox1.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
EndSub
FriendWithEvents Label1 As System.Windows.Forms.Label
FriendWithEvents GroupBox1 As System.Windows.Forms.GroupBox
FriendWithEvents TextBox5 As System.Windows.Forms.TextBox
FriendWithEvents TextBox4 As System.Windows.Forms.TextBox
FriendWithEvents TextBox3 As System.Windows.Forms.TextBox
FriendWithEvents TextBox1 As System.Windows.Forms.TextBox
FriendWithEvents Label5 As System.Windows.Forms.Label
FriendWithEvents Label4 As System.Windows.Forms.Label
FriendWithEvents Label2 As System.Windows.Forms.Label
FriendWithEvents Label7 As System.Windows.Forms.Label
PrivateSub frmChangePass_Load(sender As System.Object, e As
System.EventArgs) HandlesMyBase.Load
EndSub
PrivateSub GroupBox1_Enter(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles GroupBox1.Enter
EndSub
EndClas
SYSTEM TESTING
Objectives of Testing:
79
This section introduces the concept of testing and how important it is, for the successful
implementation of the project. Different phases of testing are described along with the level
of testing incorporated in this particular project. Testing is vital to the success of any system.
Testing is done at different stages. System testing makes a logical assumption that if all
phases of the system are correct, the goals will be achieved successfully. Insufficient testing
at all leads to errors that may come up after a long time when correction would be
extremely difficult. Another objective of testing is its utility as a user-oriented vehicle before
implementation. The testing of the system was done on both artificial and live data.
Here we are going to test login form by inserting incorrect password and user name so the
following message box appears to show you that either user name or password are incorrect
80
Here as you see from figure above the project description is empty such the user cannot
save any information and the following message box appears to the user and the project
description must be fulfilled
The same form if you leaf and other empty column such as budget as you see in the figure
above the same message will appear that means my project is user friend
81
this form is called labor form registration any type of employee will be registered here in this
form you have to fill the entire form else you information will not be stored and message
box will appear showing to you to fill the whole space as you see above
Here is where all the materials of the building is registered every kind it be such as local
material and import materials and every material must be assigned to project (building)If
you don’t assign the materials to a project your information will not be stored in the data
base as you see in the figure above the same way will be assigned to a project if it be sub-
contractors ,labors etc.
82
Here this form is called sub-contractor registration form we inserted the amount column
string instead of integer as you see in the figure above so a message box appears showing
that the instruction is incorrect
Types of testing:
The purpose of this phase is to test the individual units of the developing software
component. It focuses specifically on using internal knowledge of the software to guide the
selection of test data. This phase is recursive and is to be repeated, as many as there are,
levels of testing. In the Vehicle Management system project, each individual form has been
testedeach individual form has been validated so that user enters only valid data, Synonyms
for white-box
Function testing: also known as black box testing Black box testing focuses on the
functional requirements of the software. This is black box testing enables the software
engineering to derive a set of input conditions that will fully exercise all functional
83
requirements for a program. Black box testing is not an alternative to white box testing
rather it is balancing approach that is likely to find out a different class of errors that white
box methods hold.
1) Interface errors
2) Performances in data structure
3) Performance errors
4) Initializing and termination errors
It checks the functionality of each program with relation to other programs within the same
module. It then tests the overall functionality of each moduleEach module which this project
contains has been fully tested.
Acceptance tasting: The software has been tested with the realistic data given by the
client and produced fruitful results.
84
Conclusion
My project is only a humble venture to satisfy the needs in An expense management system
This package shall prove to be a powerful package in satisfying all the users of the
organization.
Coding of this project is neatly written; therefore future changes can easily bedone
Several user friendly coding have also adopted.
It is easy to use, since it uses the GUI provided in the user dialog.
User friendly screens are provided.
The usage of software increases the efficiency, decreases the effort wastage of time
and also decrease the error yielding
It has been thoroughly tested and implemented.
Last but not least it is not the work that played the ways to success but ALMIGHTY
85
BIOGRAPHY
Books referred:
The following books were used extensively for the project development and
implementation.
By : Cameron Wakefield
Henk-Evert Sonder
Jeffrey A.Hoffer
Mary B.Prescott
Websites referred:
The following links were searched and exploited extensively for the project development and
implementation.
www.google.com
www.wikipidea.com
www.homeandlearn.com
www.dotnetspider.com
www.codeproject.com
86