You are on page 1of 104

LEARNING POINT

A-20, SECTOR- 16, NOIDA (U.P.)


LC CODE: 0950
A
PROJECT REPORT
ON
E-BILLING & INVOICE SSTE!
P"#$%: NOIDA
D#&%: '0.09.201(
SUB!ITTED B
ARAVIND )U!AR
BCA
R*"" N*. 5+1116902
R%,*-& ./012&&%3 24 5/"52""1%4& *5 -%6/2-%1%4& 5*- &7% 3%8-%% *5
BCA #9#-3%3 *5 S2::21 !#42,#" U42;%-.2&<, INDIA
SI))I! = !ANIPAL UNIVERSIT O> ?EALT?, !EDICAL AND TEC?NOLOGICAL SCIENCE
DISTANCE EDUCATION @ING, SNDICATE ?OUSE, !ANIPAL = 5+610(
1 5+1116902
STUDENT DECLARATION

I ARAVIND KUMAR, hereby declare that the project report entitled "E-
Billing & Invoice System" submitted in partial fulfllment of the
reuirements for the de!ree of "#A to $i%%im Manipal Uni&ersity, India, is
my ori!inal 'or% and not submitted for the a'ard of any other de!ree,
Diploma, (ello'ship or any other similar title or pri)es*
+lace, Noida $tudent
Date: 30.09.2014 ARAVIND )U!AR
Roll No. -5+1116902
2 5+1116902
EXAMINERS CERTIFICATION
T7% P-*A%$& R%,*-& *5
BBBBBBBBBBBBBBBBBBB
P-*A%$& E4&2&"%3 "E-Billing & Invoice System" 2. #,,-*;%3 #43 2. #$$%,&#0"% 24
6/#"2&< & 5*-1.
I4&%-4#" EC#124%- EC&%-4#" EC#124%-.
(N#1%, D/#"252$#&2*4 & D%.284#&2*4) (N#1%, D/#"252$#&2*4 )
3 5+1116902
CERTIFICATE
This is to certify that the project report entitled "E-Billing & Invoice System" is a
bonafied or! carried o"t by #R#$%ND &'(#R, a st"dent of )CA in a tea* "nder
able +"idance and s"per,ision.
This is to f"rther certify that this is an ori+inal done and the report thron has not been
earlier for the aard of any diplo*a or de+ree to any instit"te of "ni,ersity.
S284#&/-% *5 P-*A%$& G/23%
D#&%:
S284#&/-% *5 C#4323#&%
Na*e: ARAVIND )U!AR
R%8. N*. 5+1116902
SC C*3%: 0950
S284#&/-% *5 C%4&-% ?%#3
SC C*3%: 0950
SC N#1% : LP, N*23#
4 5+1116902
AC)NO@LEDGE!ENT
-.ords often fail to e/press one0s inner feelin+s of +ratit"de and indebtedness to
one0s benefactors1 b"t then it is the only readily a,ailable *edi"* thro"+h hich the
"ndersi+ned can e/press their sincere than!s to all those ho are associated ith the
or! in one ay or the other2
% ac!noled+e *y sincere +ratit"de toards *y 5#$/"&< 8/23%, L%#-4248 P*24&.,
N*23# (U.P.) for their ,al"able +"idance and s"pport at all ti*e.
% o"ld li!e to than! all the respondents itho"t hose cooperation *y st"dy3
project o"ld not ha,e been co*plete.

ARAVIND )U!AR
R%8. N*. 5+1116902
SC C*3%: 0950
4 5+1116902
TABLE O> CONTENT
C?APTER-1: PROJECT INTRODUCTION 09-10
1.1 %ntrod"ction
1.2 5roject profile
C?APTER-2: GOAL 11-1E
2.1 USER PRO>ILES
2.2 USAGE SU!!AR
2.3 R67'%R6(6NT8 8'((#R9
2.3.1 )"siness Re:"ire*ents
2.3.2 'ser Re:"ire*ents
2.3.3 ;perational Re:"ire*ents
2.3.4 8yste* Re:"ire*ents
2.3.4 8'<<688 <R%T6R%
2.3.= 8#>68 #'T;(#T%;N
C?APTER-' DESIGN GOALS AND CONSTRAINTS 19-20
3.1 56R?;R(#N<6
3.2 #$#%>#)%>%T9
3.3 R6>%#)%>%T9
3.4 8<#>#)%>%T9
3.4 86<'R%T9
3.= %NT6R;56R#)%>%T9
3.@ >;<#T%;N
3.A 86T'53%N8T#>>#T%;N
C?APTER-( SOLUTION ARC?ITECTURE 21-26
(.1 IN>RASTRUCTURE
(.2 CONCEPTUAL DESIGN
4.3 >;B%<#> D68%BN
4.4 5C98%<#> D68%BN
= 5+1116902
C?APTER-5: EBILLING AND INVOICE SSTE! DATA DICTIONAR
2+-'0
5.1 TABLE : PRODUCTB!ASTER
4.2 T#)>6 : )%>>
4.3 T#)>6 : )%>>DD6T#%>8
4.4 T#)>6 : <;(5#N9D(#8T6R
4.4 T#)>6 : '86RD(#8T6R
C?APTER-6: STRUCTURED ANALSIS '1-'(
3.1 %ntrod"ction
3.2 Tools 'sed in 8tr"ct"red #nalysis
3.2.1 <onte/t dia+ra*
3.2.2 Data flo dia+ra*
3.2.3 6R dia+ra*
C?APTER-+: >OR! DESIGN AND CODING '5-95
@.1 ?r*8plas
@.2 ?r*>o+in
@.3 ?r*(ain
@.4 ?r*5rod"cts
@.4 ?r*)ill
@.= ?r*Reports
@.@ ?r*5rint)il
@.A 5rod"ct8"**ary Repor
@.9 ?r*)ill8"**ary
@.10 ?r*6/portData
@.11 ?r*'tlity
@.12 ?r*<o*pact#ndRepairDatabase
@.13 ?r*)ac!"pDatababe
@.14 ?r*<o*pany%nfo
@.14 ?r*<lient%nfo
@.1= ?r*<han+e5assord
@.1@ (odBen
@.1A (od)rose
+.19 !ODRSTO@ORD
@ 5+1116902
C?APTER-E EBILLING AND INVOICE SSTE! TEST PLANE 9E-102
A.1 %NTR;D'<T%;N
A.2 Test 8cope
A.3 Test 8trate+y
A.4 5reconditions
A.4 Test 5riorities
A.= Test Techni:"es
A.@ R;>68 #ND R685;N8%)%>%T%68

CONCLUSION AND >UTURE EN?ANCE!ENT 10'
BIBLIOGRAP? 10(



A 5+1116902

PROJECT INTRODUCTION


1.1 I4&-*3/$&2*4
1.2 P-*A%$& P-*52"%

9 5+1116902
1.1 INTRODUCTION
This project is foc"sed on -e-billin+ and in,oice syste* - . Donloads and "ploads c"sto*er and
order infor*ation1 hich affects acco"ntin+1 in,entory and prod"ct data. $ie c"sto*er and
prod"ct data as described in *etrics1 trac! orders and deli,eries.
The client "ses (8 6/cel1 and *aintains their prod"ct list1 c"sto*er list1 and prints the in,oice1
hoe,er it is not possible the* to share the data fro* *"ltiple syste* in *"lti "ser en,iron*ent1
there is lot of d"plicate or!1 and chance of *ista!e. .hen the prod"ct price are chan+ed they need
to "pdate each and e,ery e/cel file. There is no option to find and print pre,io"s sa,ed in,oice.
There is no sec"rityE any body can access any report and sensiti,e data1 also no reports to find o"t
the sales ,ol"*e1 stoc! list1 and s"**ary report. This e)illin+ and in,oicin+ syste* is "sed to
o,erco*e the entire proble* hich they are facin+ c"rrently1 and *a!in+ co*plete ato*iFation of
*an"al billin+ and in,oicin+ syste*
10
1.2 P-*A%$& P-*52"%
5roject Title: 6-)%>>%NB #ND %N$;%<6 898T6(
5roject objecti,e: the *ain objecti,e of the syste* is to co*p"teriFed the
6-)illin+ and %n,oice 8yste*. Desi+n and prepare a faster1
acc"rateE
6rror-free and *ore efficient co*p"teriFed -6-billin+ and in,oice
8yste* - .This 6-)illin+ and in,oicin+ syste* is "sed to o,erco*e the
6ntire proble* hich they are facin+ c"rrently1 and *a!in+ co*plete
ato*iFation of *an"al billin+ and in,oicin+ syste*
.
C#RD.#R6 856<%?#T%;N ;? (#<C%N6 '86D

5rocessor: 5enti"* %$
R#(: 412 ()
CDD: A0 B)

8;?T.#R6 '86D
;peratin+ syste*: .indos G5 5rofessional
?ront-6nd: (8 $is"al )asic =.0
)ac!-6nd: (8 #ccess
5ac!a+e: (8 .ord
;)H6<T%$6 #<C%6$6D: 8"ccessf"lly
Cardare38oftare
Necessary to r"n the
project :
aI (ini*"* Cardare :
1.4BCF <5'
2 B) CDD
=4 () R#(

bI (ini*"* 8oftare :
.indos 9A
(8 #ccess
$is"al )asic
11

GOAL
2.1 USER PRO>ILES
2.2 USAGE SU!!AR
2.' REDUIRE!ENTS SU!!AR
2.'.1 B/.24%.. R%6/2-%1%4&.
2.'.2 U.%- R%6/2-%1%4&.
2.'.' O,%-#&2*4#" R%6/2-%1%4&.
2.'.( S<.&%1 R%6/2-%1%4&.
2.( SUCCESS CRITERIA
2.5 S#"%. A/&*1#&2*4

12
2.1 User Profiles
The folloin+ "ser types are e/pected for the e)illin+ and %n,oicin+ 8yste*:
U.%- B-2%5 D%.$-2,&2*4 *5 U.% A$&2*4.
8ales Representati,e Donloads and "ploads c"sto*er and order
infor*ation1 hich affects acco"ntin+1 in,entory and
prod"ct data. $ie c"sto*er and prod"ct data as
described in *etrics1 trac! orders and deli,eries.
(ana+er #ll sales representati,e "se actions1 and *ana+e*ent
reports1 :"ota establish*ent1 reportin+ and
adj"st*ent.
#cco"ntant $ie and print stoc!s1 trac! orders. 'pdate prod"ct
details li!e price.
(%8 6/ec"ti,e Benerate reports1 ,ie and print in,entory reports1
,ie and print stoc! reports.
13
2.2 'sa+e 8"**ary
e)illin+ and %n,oicin+ 8yste* ill address the folloin+ "se cases. The co*plete "sa+e scenarios
ill be co*pleted d"rin+ the infor*ation-+atherin+ process. 'se cases ill be created and
prioritiFed. 8elected "se cases ill be e/panded into "sa+e scenarios and feat"res that are deri,ed
fro* both "se cases and the "sa+e scenarios1 as represented in the folloin+ dia+ra*:
'sa+e
s"**ary
"se case
14
2.' R%6/2-%1%4&. S/11#-<
The folloin+ preli*inary lists are based on initial inter,ies
2.'.1 B/.24%.. R%6/2-%1%4&.
The b"siness +oal for the application is to s"pport an increase the prod"cti,ity and co*plete
a"to*ation of e/istin+ *an"al bill and in,oice +eneration process. )"siness re:"ire*ents are
disc"ssed in the 8cope section1 ith the folloin+ additional detail:
8ales representati,es need a *ethod to store and access sales opport"nity data1 and hen a
sale is +enerated1 con,ert so*e or all of the infor*ation into a sales order itho"t re-enterin+
infor*ation.
6ach sales representati,e sho"ld recei,e c"sto*er and sales data pertinent only to the*.
The acco"ntant sho"ld be able to enter or "pdate prod"ct infor*ation in one interface only1
ith all necessary prod"ct infor*ation bein+ recei,ed by sales staff.
(ana+er *"st recei,e his or her c"sto*er and appoint*ent data pl"s detailed and roll"p
infor*ation for each sales representati,e on his or her tea*.
The application sho"ld s"pport the capability to "se *"lti "ser en,iron*ent.
The (%8 6/ec"ti,e sho"ld able to +enerate all type of reports as and hen re:"ired by the
*ana+e*ent.
The sales staff ants to i*pro,e their c"rrent ability to analyFe their c"sto*ers. %n partic"lar1 they
ant to foc"s on identifyin+ their best c"sto*ers and b"ildin+ lon+-ter* relationships ithin that
base. To enable the* to acco*plish this +oal1 they ant to e/tract *eanin+f"l data that easily
ansers the folloin+ :"estions:
.hat are the early arnin+ si+ns of proble*sJ
.ho are *y best c"sto*ers across prod"ct linesJ
.ith ho* do % foc"s *y efforts for b"ildin+ a lon+-ter* relationshipJ
.hat are *y c"sto*ersK iss"es as +ro"psJ
14
Beo+raphically1 here are *y best c"sto*ersJ
.hat prod"cts are *y c"sto*ers b"yin+ and at hat rateJ
2.'.2 U.%- R%6/2-%1%4&.
'ser re:"ire*ents are cate+oriFed by "ser type.
8ales 8taff LRepresentati,es and (ana+ersI
$ie the data in ,ario"s ays1 for e/a*ple:
o <"sto*ers ho are the top b"yers of specific ite*s
o )est c"sto*ers based on criteria to be deter*ined
o )est c"sto*ers based on +eo+raphical analysis
o Drops in a c"sto*erKs sales
8tore *"ltilin+"al and *"ltire+ional infor*ation in the database rather than relyin+ on the
sales staff to translate the infor*ation
%dentify hich prod"ct prices ha,e been *odified1 especially on c"rrent orders in pro+ress
'se opport"nity r"les1 hich are state*ents that help the sales representati,e con,ert an
opport"nity into a sale
#dd third-party data so"rces and financial e,al"ation tools
%dentify here pro*otions and pro+ra*s o"ld be the *ost beneficial
#pply disco"nts to c"sto*er orders:
o 8ales representati,es can offer disco"nts "p to 14 percent1 or "p to 20 percent ith
a"thoriFation.
o 8ales *ana+ers can offer disco"nts "p to 20 percent
6nable capt"re1 analysis1 and sharin+ of data abo"t a c"sto*er across the co*pany
'se forecasts to establish sales +oals
#llo all staff to ,ie all contacts1 b"t allo each contact to be assi+ned to a sales
representati,e
1=
A$$*/4&#4&
'pdate prod"ct details1 incl"din+ price1 photo1 and description
#dd1 delete1 and "pdate prod"ct specifications
Benerate stoc! reports and chec! the a,ailability1 order the ite* as and hen needed.
!IS EC%$/&2;%
Benerate Reports as per re:"ire*ent.
8hare the data1 and con,ert reports to different for*at li!e Te/t1 <8$.
2.'.' O,%-#&2*4#" R%6/2-%1%4&.
T7% 5*""*9248 -%6/2-%1%4&. ,-*;23% # 7287-"%;%" ;2%9 *5 7*9 &7% .<.&%1 92"" -/4:
5rocessor "sa+e sho"ld not e/ceed A0 percent d"rin+ conc"rrent "ses.
)ac!"ps ill occ"r incre*entally thro"+ho"t the day.
# f"ll ee!ly bac!"p is re:"ired to .;R( dri,es.
6ns"re that infor*ation is easy to access either1 and *eanin+f"l for the sales representati,e
and the co*pany.
(ini*iFe the technical !noled+e that sales and *ar!etin+ staff need to access the data1
+enerate ad hoc :"eries1 trac! pro*otions1 and ,ie c"sto*er se+*entation infor*ation.
#ny chan+e to infor*ation *"st be reflected i**ediately1 and the chan+es *"st be
propa+ated to the search en+ine so that e*ployees that perfor* searches see this ne
infor*ation.
The application sho"ld or! ith the e/istin+ co**"nications and netor!in+
infrastr"ct"re.
1@
2.( S<.&%1 R%6/2-%1%4&.
T7%.% #-% #332&2*4#" $*4.&-#24&. 5-*1 # .<.&%1 ,%-.,%$&2;%:
5re,io"s data of c"sto*er1 prod"ct details *"st be i*ported in the ne syste*.
The ad*inistrator *"st be able to *onitor e,erythin+ fro* the %T depart*ent.
The infor*ation *"st be accessible by e,eryone in the co*pany as per the ri+hts specify.
2.5 S/$$%.. C-2&%-2#
To deter*ine the s"ccess of this project1 the folloin+ *etrics can be :"antified and "sed to analyFe
s"ccess factors.
2.6 S#"%. A/&*1#&2*4
P-*0"%1 $/.&*1%- 23%4&252$#&2*4. #bility to identify top 10 de,elopin+ proble* c"sto*ers
by sales representati,e.
I3%4&252$#&2*4 *5 0%.& $/.&*1%-. #$-*.. ,-*3/$& "24%. #43 -%82*4.. #ll c"sto*ers can be
sorted by the factors Lto be deter*inedI that ran! the* :"alitati,ely. $ariable sorts and
ran!in+s can be chosen by the sales representati,e.
I3%4&252$#&2*4 *5 2../%. #$-*.. 8-*/,.. #ll c"sto*ers can be sorted by the iss"es Lto be
deter*inedI ithin +ro"p cate+ories that can be "pdated. $ariable sorts and ran!in+s can be
chosen by the sales representati,e or other "ser.
A4#"<.2. *5 6/#4&2&2%. #43 -#&%. *5 ,-*3/$&.. 5rod"cts can be sorted by the :"antity and
dates sold. $ariable sorts and ran!in+s can be chosen by the "ser.

1A
S*5&9#-% #43 ?#-39#-% R%6/2-%1%4&.
S*5&9#-% R%6/2-%1%4&. :
;peratin+ 8yste*: .indos 9A3(63G5
)ac! 6nd Database: (8 #ccess
?ront 6nd Tool: $is"al )asic =.0

?#-39#-% S,%$252$#&2*4. :
Card Dis!: 10 B)
R#(: 12A ()
19

DESIGN GOALS AND CONSTRAINTS

'.1 PER>OR!ANCE
'.2 AVAILABILIT
'.' RELIABILIT
'.( SCALABILIT
'.5 SECURIT
'.6 INTEROPERABILIT
'.+ LOCATION
'.E SETUPFINSTALLATION
20
DESIGN GOALS AND CONSTRAINTS
'.1 P%-5*-1#4$%
No *ore than a 4-percent de+radation in a,era+e :"ery response is alloed hile all conc"rrent "ser
are "sin+ the syste*.
5rocessor "tiliFation sho"ld not e/ceed A0 percent d"rin+ all conc"rrent "sers are "sin+ the syste*.
'.2 A;#2"#02"2&<
)eca"se the syste* is accessed by sales representati,e to boo! the order and print the in,oice1 and
their sho"ld not be any sin+le point of fail"re.
'.' R%"2#02"2&<
)eca"se of the need no sin+le point fail"re1 a"to*atic failo,er ill be re:"ired. %n addition1 e/istin+
disaster reco,ery and bac!"p plans and proced"res *"st be re,ised to incorporate the e)illin+ and
%n,oicin+ 8yste*.
'.( S$#"#02"2&<
e)illin+ and %n,oice 8yste* an a,era+e load of 40 conc"rrent "sers after the syste* is f"lly
operational1 and e/pects that to +ro by 4 percent each year for the ne/t fi,e years.
'.5 S%$/-2&<
?or the sensiti,e c"sto*er and order data1 all "sers ill need to lo+ on the syste* ith their "ser id
and passord.
6,ery reso"rce in the syste* are defined by the role and pri,ile+ed. 8yste* ad*inistrator assi+ned
"ser role and pri,ile+ed for their access ri+hts.
'.6 L*$#&2*4
The e)illin+ and %n,oice 8yste* are "sed in the co*pany office only.
21

SOLUTION ARC?ITECTURE
(.1 IN>RASTRUCTURE
(.2 VISUAL DESIGN
(.' CONCEPTUAL DESIGN
(.( LOGICAL DESIGN
(.5 P?SICAL DESIGN
22
SOLUTION ARC?ITECTURE
(.1 I45-#.&-/$&/-%
Ne ser,ers *"st be d"al processor 1.2= BCF co*p"ters1 ith 1 B) of R#(. The operatin+ syste*
softare ill be (icrosoft .indos 2000 ith the latest ser,ice pac!1 altho"+h "se of .indos
8er,er 2003 ill be considered hen it is a,ailable.
These ser,ers ill be installed on e/istin+ netor!.
To help pro,ide sec"rity of the application1 both an internal and e/ternal fireall ill be installed. .
(.2 C*4$%,&/#" D%.284
?or infor*ation abo"t the concept"al desi+n see the "se case of pre,io"s chapters of the e)illin+ and
%n,oice 8yste*1
)"siness R"le <atalo+ of e)illin+ and %n,oice 8yste*
BR ID
Business Rule
Title
Description Authority Current Process
1 Timely Product
Information
Adjustments
The product information, price
in the system must be current
100% of the time. Adjustments
to this information must be
made at any time.
Mr. Ajay Kumar,
Accountant.
Interie!.
1. Product is identified by
Mana"er
#. $urrent information is reie!ed
and modifications are identified.
%. Accountant notes chan"es to
information and obtains approal
from Mana"er.
&. Accountant ma'es the chan"es
to the product information.
(. After approal is "ien by all
o!ners, Accountant saes the
chan"es.
23
2 )eactiatin"
*eleted Products
A product can be +deleted,+
meanin" that it is no lon"er sold
by e,illin" and Inoice -ystem.
.o!eer, the product
information should be aailable
in case the product is
reactiated at a future time.
1. Product is identified by
Mana"er.
#. Accountant is notified that the
product should be remoed from
the catalo". /otification comes
from Mana"er.
%. Accountant archies product
information and saes the
information in te0t and "raphics
files on an internal business
serer.
&. If a product is reactiated, the
Accountant receies notification
from Mana"er.
(. Accountant creates a ne!
product record in the database
and copies the information from
the files on the internal business
serer to the database record.
1. Accountant notifies product
information +o!ners+ in Mana"er
to reie! the ne! product record.
2. After approal is "ien by all
o!ners, Accountant ma'es the
product record aailable to the
catalo".
3 Authori3ation for
$atalo" $han"es
/o chan"e to product
information can be made
publicly aailable !ithout the
approal from the information
+o!ners,+ usually Mana"er.
Mr. Ajay Kumar,
Accountant.
Interie! .
*eried from ,)1
4 *eliery of *aily
Pricin" 4pdates to
-ales
The -ales force needs to use the
most up5to5date information
about product pricin" and
related information, such as
aailability. 6ther!ise, sales
representaties miss receiin"
chan"es that do affect them.
This results in the sales
representaties hain" to redo
orders and recalculate pricin".
Mr. Ajay Kumar,
Accountant.
Interie! .
7ery mornin" of eery day8
1. Accountant 4pdate the pricin"
from the endor.
5 Authori3ation for
Information
Access
$ertain roles hae access to
certain information types and
functions. $urrent roles include
-ales )epresentatie, -ales
Mana"er, Accountant, MI-
70ecutie
Mr. 9oy deep
*as, IT
Mana"er.
Interie! .
1. A suitable authority is
re:uested for creation of a role.
#. The role is created and
authori3ed by the authori3ation
authority.
24
B/.24%..
O0A%$&.
S%-;2$%. A$&*-. (R*"%.) R%.,*4.202"2&2%. C*""#0*-#&2*4
.
U.% C#.%
R%5%-%4$%
5rod"cts
(ana+e
5rod"cts
8ales
representati,e
8et filterin+
infor*ation
Bet price
*odifications
8elect a
catalo+ ite*
fro* catalo+
ite*
'se <ase :
(ana+e
5rod"ct
8ales
representati,e
8elect a
catalo+ ite*
Bet details of
catalo+ ite*
Bet prod"ct
specs
None 'se <ase :
(ana+e
5rod"ct
8ales
representati,e
8et address
details
Bet address
list
$alidate
address
<onfir*
deli,ery
8et deli,ery
address fro*
order
'se <ase :
(ana+e
5rod"ct
8ales
representati,e
5rint prod"ct
specs
None 'se <ase :
(ana+e
5rod"ct
8ales
representati,e
$ie prod"ct
specs
None 'se <ase :
(ana+e
5rod"ct
<"sto*
er
8ales
representati,e
$ie s"**ary
infor*ation
None 'se <ase :
(ana+e
5rod"ct
8ales
representati,e
$ie detailed
infor*ation
None 'se <ase :
(ana+e
5rod"ct
6dit
5rod"cts
#cco"nt
ant
#dd ite* to
catalo+
)rose
catalo+ ite*s
8et ite*
details fro*
catalo+ ite*
'se <ase :
6dit 5rod"ct
#cco"nt
ant
Bet editable
ite*s
8et ite*
details
$alidate ite*
details
8a,e ite*
details
Bet details
of catalo+
ite* fro*
catalo+ ite*
'se <ase :
6dit 5rod"ct
(.( P7<.2$#" D%.284
24
%B2""248 #43 I4;*2$% S<.&%1 P7<.2$#" O0A%$& !*3%"

2=
#dd ne prod"ct to prod"ct *aster se:"ence dia+ra*

2@
EBILLING AND INVOICE SSTE! DATA DICTIONAR
5.1 TABLE : PRODUCTB!ASTER
5.2 TABLE : BILL
5.' TABLE : BILLBDETAILS
5.( TABLE : CO!PANB!ASTER
5.5 TABLE : USERB!ASTER
2A
4.1 Table: prod"ctD*aster
O94%-: dbo
D%.&24#&2*4 DB 4#1%: ebill
N/10%- *5 $*"/14.: 4
N/10%- *5 243%C%.: 2
N/10%- *5 5*-%284 :%<.: 0
EC&%43%3 #&&-20/&%.:
O4>2"%G-*/, 5R%(#R9
C"/.&%-%3 P) 9es
I43%C%. T<,% C*"/14.
P)BP-*3/$&!#.&%-B.4* cl"stered1 "ni:"e1 pri*ary !ey
located on 5R%(#R9
sno
4.2 Table : bill
O94%-: dbo
D%.&24#&2*4 DB 4#1%: ebill
N/10%- *5 $*"/14.: 14
N/10%- *5 243%C%.: 3
N/10%- *5 5*-%284 :%<.: 0
EC&%43%3 #&&-20/&%.:
O4>2"%G-*/, 5R%(#R9
C"/.&%-%3 P) 9es
C*"/14. NULL . A""*9%3 3#&#T<,%
.4* Not alloed %ntI
24;*2$%4* Not alloed int
$#41% Not alloed n,archarL=0I
I4;*2$%B3#&% Not alloed n,archarL=0I
"*$#&2*4 Not alloed dateti*e
$7#"#4B4* Not alloed n,archerL=0I
$/.&*1%-B4#1% Not alloed int10I
C/.&*1%-B#33-%..1 Not alloed n,archarL100I
C/.&*1%-B#33-%..2 #lloed
n,archarL100I
T*&#"B#1& Not alloled n,archarL100I
32.$*/4& Notl alloed %nt
A1&B9*-3. Not alloed %nt
P#23B&<,% Not alloed n,archarL100I
C7%6/%B4* #lloed n,archarL=0I
E4&-<B3#&% Not alloed N,archarL=0I
29
C*"/14. N/"". A""*9%3 3#&#T&<,%
S4* Not alloed %nt
P-*3T<,% Not alloed n$archarL=0I
P-*3S/0T<,% Not alloed n$archarL=0I
R#&% Not alloed %nt
2.#$&2;% Not alloed n,archarL30I
I43%C%. T<,% C*"/14.
P)BB2""BSNO cl"stered1 "ni:"e1 pri*ary !ey
located on 5R%(#R9
sno
IGB02""B$4#1% noncl"stered located on
5R%(#R9
cna*e
IGB02""B24;*2$%4* noncl"stered1 "ni:"e located on
5R%(#R9
in,oiceno
4.3 Table : billDdetails
O94%-: dbo
D%.&24#&2*4 DB 4#1%: ebill
N/10%- *5 $*"/14.: =
N/10%- *5 243%C%.: 3
N/10%- *5 5*-%284 :%<.: 2
EC&%43%3 #&&-20/&%.:
O4>2"%G-*/, 5R%(#R9
C"/.&%-%3 P) 9es
C*"/14. NULL. A""*9%3 D#&# &<,%
.4* Not alloed %nt
B2""B.4* Not alloed %nt
P-*3B.4* Not alloed N,archarL=0I
6&< Not alloed Dateti*e
-#&% Not alloed n,archarL=0I
#1& Not alloed int
I43%C%. T<,% C*"/14.
P)BB2""B3%&#2".BSNO cl"stered1 "ni:"e1 pri*ary !ey
located on 5R%(#R9
sno
IGB02""B3%&#2".B02""B.4* noncl"stered located on
5R%(#R9
)illDsno
IGB02""B3%#&2".B,-*3B.4* noncl"stered1 "ni:"e located on
5R%(#R9
5rodDsno
4.4 Table : <o*panyD*aster
O94%-: dbo
D%.&24#&2*4 DB 4#1%: ebill
N/10%- *5 $*"/14.: @
N/10%- *5 243%C%.: 2
N/10%- *5 5*-%284 :%<.: 0
EC&%43%3 #&&-20/&%.:
O4>2"%G-*/, 5R%(#R9
C"/.&%-%3 P) 9es
C*"/14. NULL. A""*9%3 D#&# &<,%
C*1,#4<B4#1% Not alloed N,archarL=0I
30
A33-%..1 Not alloed N,archarL100I
A33-%..2 #lloed N,archarL100I
$2&< Not alloed N,archarL=0I
,24 Not alloed %nt
&%"%,7*4% Not alloed N,archarL=0I
;#&4* Not alloed n,archarL=0I
I43%C%. T<,% C*"/14.
P)B$*1#,4<B1#.&%-B$*1,#4<B4#1% cl"stered1 "ni:"e1 pri*ary !ey
located on 5R%(#R9
<o*apnayDna*e
IGB $*1#,4<B1#.&%-B,24 noncl"stered located on
5R%(#R9
pin
4.4 Table : "serD*aster
O94%-: dbo
D%.&24#&2*4 DB 4#1%: ebill
N/10%- *5 $*"/14.: 3
N/10%- *5 243%C%.: 2
N/10%- *5 5*-%284 :%<.: 0
EC&%43%3 #&&-20/&%.:
O4>2"%G-*/, 5R%(#R9
C"/.&%-%3 P) 9es
C*"/14. NULL . #""*9%3 D#&# &<,%
/.%-B4#1% Not alloed n,archarL=0I
U.%-B,#..9*-3 Not alloed n,archarL=0I
U.%-B&<,% #lloed N,archarL=0I

I43%C%. T<,% C*"/14.
P)B/.%-B1#.&%-B/.%-B4#1% cl"stered1 "ni:"e1 pri*ary !ey
located on 5R%(#R9
"serDna*e
IGB /.%-B1#.&%-B/.%-B&<,% noncl"stered located on
5R%(#R9
'serDtype
31
STRUCTURED ANALSIS
6.1 I4&-*3/$&2*4
6.2 T**". U.%3 24 S&-/$&/-%3 A4#"<.2.
6.2.1 C*4&%C& D2#8-#1
6.2.2 D#&# S$7%1# ER D2#8-#1
6.2.' D#&# >"*9 D2#8-#1

32
6.1 NTRODUCTION
;ne of the best approach to syste* is the str"ct"red analysis . 8tr"ct"red analysis is a set if
techni:"es and +raphical tools that allo "s to de,elop a ne !ind of syste* specification that
is easily "nderstandably to the de,eloper . %t is detailed step-by-step in,esti+ation of related
proced"re to see hat *"st be b"ild a syste* specification that pro,ides the basis for desi+n
and i*ple*entation .
T7% V#-2*/. &**". &7#& #-% /.%3 24 S&-/$&/-%3 #4#"<.2. #-% .

1 : <onte/t Dia+ra*
2 : Data ?lo Dia+ra*
3 : 6ntity Relationship Dia+ra*
4 : Data Dictionary
6.2 T**". U.%3 24 S&-/$&/-%3 A4#"<.2.
6.2.1 C*4&%C& D2#8-#1
<onte/t dia+ra* is the startin+ point of str"ct"red analysis .they are constr"cted to sho the
hi+hest-le,el *odel of the syste* .they are "sed to represent pictorially the scope or bo"ndary of the
syste* . the conte/t dia+ra* of the proposed syste* is +i,en .

33
6.2.2 %B2""248 #43 I4;*2$% S<.&%1 = D#&# S$7%1# ER D2#8-#1
34
6.2.' %B2""248 #43 I4;*2$% S<.&%1 D>D (D#&# >"*9 D2#8-#1)
34

>OR! DESIGN AND CODING
+.1 >-1S,"#.
+.2 >-1L*824
+.' >-1!#24
+.( >-1P-*3/$&.
+.5 >-1B2""
+.6 >-1R%,*-&.
+.+ >-1P-24&B2"
+.E P-*3/$&S/11#-< R%,*-
+.9 >-1B2""S/11#-<
+.10 >-1EC,*-&D#&#
+.11 >-1U&"2&<
+.12 >-1C*1,#$&A43R%,#2-D#&#0#.%
+.1' >-1B#$:/,D#&#0#0%
+.1( >-1C*1,#4<I45*
+.15 >-1C"2%4&I45*
+.16 >-1C7#48%P#..9*-3
+.1+ !*3G%4
+.1E !*3B-*9.%
+.19 !*3R.T*@*-3
3=
+.1 >-1S,"#.7
L(od"le to sho start"p screenI
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K e)illin+ 8yste*
K
K(od"le to sho start"p screen
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
;ption 6/plicit
Di* r #s %nte+er
Di* i #s %nte+er
5ri,ate 8"b ?or*D>oadLI
KNNN center the for*
(e.>eft O L8creen.Cei+ht - (e.Cei+htI 3 2
(e.Top O L8creen..idth - (e..idthI 3 2
KNNN +et a rando* ,al"e to decide ho *any seconds
KNNN start"p screen sho"ld be displayed
r O Rnd M 4 P 1
6nd 8"b
5ri,ate 8"b ?or*D'nloadL)y$al <ancel #s %nte+erI
KNNN release all the references
?r*8plash O Nothin+
6nd 8"b
5ri,ate 8"b Ti*er1DTi*erLI
KNNN chec! the ellapsed ti*e
KNNN if the ellapsed ti*e +reater then rando* ,al"e
KNNN stored in for* load1 stop the ti*er
KNNN sho *ain fro* and close the start"p screen
i O i P 1
%f r NO i Then
i O 0
Ti*er1.%nter,al O 0
'nloadL(eI
>oadL?r*(ainI
?r*(ain.8hoLI
6nd %f
6nd 8"b
3@
+.2 >-1L*824
L(od"le to #"thenticate 'serI
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K e)illin+ 8yste*
K
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K >o+in (od"le
K 'sed Table : "serD*aster
K(od"le to chec! "ser lo+in and load
K"ser ri+hts as per "ser type.
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
;ption 6/plicit
Di* Rs #s Ne #D;D).Recordset
5ri,ate 8"b <o**and1D<lic!LI
KNNN chec! heather "ser na*e and passord are blan!
KNNN if its is blan arn "ser to enter
%f T/t'serNa*e.Te/t O QQ ;r T/t5assord.Te/t O QQ Then
(s+)o/LQ6nter "ser na*e and passord ...Q1 ,b6/cla*ationI
T/t'serNa*e.8et?oc"sLI
6/it 8"b
6nd %f
KNNN chec! for entered co*pany
KNNN :"ery to database and if no record fo"nd arn "ser to select co*pany fro* the list.
%f Rs.8tate O ad8tate;pen Then Rs.<loseLI
Rs.;penLQselect M fro* co*panyD*aster here co*panyDna*eOKQ R <*b<o*panyNa*e.Te/t
R QKQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
%f Rs.Record<o"nt N 0 Then
<o*panyNa*e O <*b<o*panyNa*e.Te/t
6lse
(s+)o/LQ8elect co*pany na*e fro* the listQ1 ,b6/cla*ationI
<*b<o*panyNa*e.8et?oc"sLI
3A
6/it 8"b
6nd %f
KNNN chec! for "serna*e and passord
KNNN :"ery to "serD*aster ith "serDna*e and passord
KNNN if no record fo"nd chec! arn "ser for enter ,alid "ser na*ne and passord
KNNN if record fo"nd store "serDn*ae1 "serDtype in +lobal ,ariable for f"t"re "se.
%f Rs.8tate O ad8tate;pen Then Rs.<loseLI
Rs.;penLQselect M fro* "serD*aster here '86RDna*e OKQ R T/t'serNa*e.Te/t R QK and
"serDpassord OKQ R T/t5assord R QKQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
%f Rs.Record<o"nt N 0 Then
<hec!>o+in O Tr"e
'serNa*e O %%fL%sN"llLRsLQ'86RDna*eQI.$al"eI O Tr"e1 QN#Q1 RsLQ'86RDna*eQI.$al"eI
'serType O %%fL%sN"llLRsLQ"serDtypeQI.$al"eI O Tr"e1 QN#Q1 RsLQ"serDtypeQI.$al"eI
'nloadL(eI
6lse
(s+)o/LQ%n,alid 'ser Na*e and 5assord ... Q1 ,b6/cla*ation1 Q>o+in 6rror QI
T/t5assord.Te/t O QQ
T/t'serNa*e.8et?oc"sLI
6/it 8"b
6nd %f
6nd 8"b
5ri,ate 8"b <o**and2D<lic!LI
KNNN close the application
6nd
?r*>o+in O Nothin+
6nd 8"b
5ri,ate 8"b ?or*D>oadLI
KNNN open the +lobal connection
%f <n.8tate O 1 Then <n.<loseLI
;pen<onLI
KNNN center the for*
(e.(o,e L8creen..idth - .idthI 3 21 L8creen.Cei+ht - Cei+htI 3 2
KNNN fill the co*bo bo/ ith all co*panyDna*e fro* co*pany *aster
%f Rs.8tate O ad8tate;pen Then Rs.<loseLI
Rs.;penLQselect M fro* co*panyD*aster Q1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
<*b<o*panyNa*e.<learLI
%f Rs.Record<o"nt N 0 Then
39
.hile Rs.6;? O ?alse
<*b<o*panyNa*e.#dd%te*LRsLQco*panyDna*eQII
Rs.(o,eNe/tLI
6nd .hile
6nd %f
%f Rs.8tate O ad8tate;pen Then Rs.<loseLI
6nd 8"b
5ri,ate 8"b ?or*D7"ery'nloadL)y$al <ancel #s %nte+er1 )y$al 'nload(ode #s %nte+erI
KNNN release all the object ,ariable "sed by for*
?r*>o+in O Nothin+
6nd 8"b
@.3 ?r*(ain
LBi,e "ser access to different *od"leI
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K e)illin+ 8yste*
K
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K (ain 8creen
K 'sed Table : N#
K(od"le to sho diffrent options
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
;ption 6/plicit
5ri,ate 8"b (D%?or*D#cti,ateLI
KNNN sho the lo+in for* as *od"las for first ti*e
KNNN hen *ain for* acti,ate first ti*e
%f <hec!>o+in O ?alse Then
?r*>o+in.8hoL1I
6nd %f
>bl<o*panyNa*e O <o*panyNa*e
6nd 8"b
5ri,ate 8"b (D%?or*DResiFeLI
KNNN reposition the pict"rebo/ as per for* siFe
KNNN to display the selected co*pany na*e
5ict"re1.>eft O (e..idth - 5ict"re1..idth - 400
6nd 8"b
5ri,ate 8"b Toolbar1D)"tton<lic!L)y$al )"tton #s (8<o*ctl>ib.)"ttonI
KNNN load appropriate for* as per "ser clic! on toolbar b"ttons
40
KNNN in desi+n ti*e e set !ey ,al"e for each toolbar b"tton
%f )"tton.&ey O Qe/itQ Then
6nd
6lse%f )"tton.&ey O Qprod"ctD*asterQ Then
?r*5rod"cts.8hoL1I
6lse%f )"tton.&ey O QbillQ Then
?r*)ill.8hoL1I
6lse%f )"tton.&ey O Q"tilityQ Then
?r*'tility.8hoL1I
6lse%f )"tton.&ey O QreportsQ Then
?r*Reports.8hoL1I
6lse%f )"tton.&ey O Qco*panyQ Then
?r*<han+e<o*pany.8hoL1I
6nd %f
6nd 8"b
@.4 ?r*5rod"cts
L(aintain 5rod"ct *asterI
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K e)illin+ 8yste*
K
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K (aintain 5rod"ct (aster
K 'sed Table : prod"ctD*aster
K
K(od"le to allo "ser to select prod"ct
Kadd3*odify prod"ct details
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
;ption 6/plicit
KNN decalre for* le,el ,alriable
Di* Rs #s Ne #D;D).Recordset
Di* #dd6dit #s 8trin+
5ri,ate 8"b <*b5rod"ctTypeD<han+eLI
KNNN as per prod"ct type fill the prod"ct list
Di* 7r8tr #s 8trin+
%f <*b5rod"ctType.Te/t O Q#>>Q Then
7r8tr O Qselect prodDs"bDtype fro* prod"ctD*aster order by prodDs"bDtypeQ
6lse
41
7r8tr O Qselect prodDs"bDtype fro* prod"ctD*aster here prodDtypeOKQ R
<*b5rod"ctType.Te/t R QK order by prodDs"bDtypeQ
6nd %f
>st5rod"ct8"bType.<learLI
%f Rs.8tate O ad8tate;pen Then Rs.<loseLI
Rs.;penL7r8tr1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
.hile Rs.6;? O ?alse
>st5rod"ct8"bType.#dd%te*LRsLQprodDs"bDtypeQII
Rs.(o,eNe/tLI
6nd .hile
KNNN select the first prod"ct
%f >st5rod"ct8"bType.>ist<o"nt N 0 Then
>st5rod"ct8"bType.>ist%nde/ O 0
DisplayRecordLI
6nd %f
6nd 8"b
5ri,ate 8"b <*b5rod"ctTypeD<lic!LI
KNNN call chan+e e,ent
<*b5rod"ctTypeD<han+eLI
6nd 8"b
5ri,ate 8"b <*d<ancelD<lic!LI
KNNN cancel "pdate
6DL?alse1 Tr"eI
DisplayRecordLI
6nd 8"b
5ri,ate 8"b <*d<loseD<lic!LI
KNNN close the fron
'nloadL(eI
6nd 8"b
5ri,ate 8"b <*d6ditD<lic!LI
KNNN set fla+ to edit
6DLTr"e1 ?alseI
#dd6dit O Q6D%TQ
6nd 8"b
5ri,ate 8"b <*dNeD<lic!LI
KNNN set the fla+ to add
KNNN claer te/t bo/
>bl8r.<aption O 0
<*bType.Te/t O QQ
42
T/tNa*e.Te/t O QQ
T/tRate.Te/t O 0
<h!#cti,e.$al"e O 1
6DLTr"e1 ?alseI
#dd6dit O Q#DDQ
6nd 8"b
5ri,ate 8"b <*d8a,eD<lic!LI
KNNN ,alidate the entry
%f Tri*L<*bType.Te/tI O QQ Then
(s+)o/LQ8elect or 6nter prod"ct type.Q1 ,b6/cla*ationI
<*bType.8et?oc"sLI
6/it 8"b
6nd %f
%f Tri*LT/tNa*e.Te/tI O QQ Then
(s+)o/LQ6nter prod"ct na*e.Q1 ,b6/cla*ationI
T/tNa*e.8et?oc"sLI
6/it 8"b
6nd %f
%f %n8trL11 T/tNa*e.Te/t1 <hrL34II N 0 Then
(s+)o/LQDonKt "se do"ble :o"te in prod"ct na*e.Q1 ,b6/cla*ationI
T/tNa*e.8et?oc"sLI
6/it 8"b
6nd %f
%f %sN"*ericLT/tRate.Te/tI O ?alse Then
(s+)o/LQ6nter rate1 n"*eric onlyQ1 ,b6/cla*ationI
T/tRate.8et?oc"sLI
6/it 8"b
6nd %f
KNNN chec! the fla+ fro* add3edit
%f #dd6dit O Q#DDQ Then
%f Rs.8tate O ad8tate;pen Then Rs.<loseLI
Rs.;penLQselect *a/LsnoI P1 fro* prod"ctD*aster Q1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
Di* sno #s %nte+er
sno O RsL0I
%f Rs.8tate O ad8tate;pen Then Rs.<loseLI
Rs.;penLQselect M fro* prod"ctD*aster here 1O2Q1 <n1 ad;penDyna*ic1
ad>oc!;pti*isticI
Rs.#ddNeLI
RsLQsnoQI O sno
RsLQprodDtypeQI O <*bType.Te/t
RsLQprodDs"bDtypeQI O T/tNa*e.Te/t
RsLQrateQI O $alLT/tRate.Te/tI
RsLQisDacti,eQI O $alL<h!#cti,e.$al"eI
43
Rs.'pdateLI
Rs.<loseLI
6lse
%f Rs.8tate O ad8tate;pen Then Rs.<loseLI
Rs.;penLQselect M fro* prod"ctD*aster here snoOQ R $alL>bl8r.<aptionI1 <n1
ad;penDyna*ic1 ad>oc!;pti*isticI
RsLQprodDtypeQI O <*bType.Te/t
RsLQprodDs"bDtypeQI O T/tNa*e.Te/t
RsLQrateQI O $alLT/tRate.Te/tI
RsLQisDacti,eQI O $alL<h!#cti,e.$al"eI
Rs.'pdateLI
Rs.<loseLI
6nd %f
KNNN dispaly and "pdate lists
Di* ;ld5Type #s 8trin+
;ld5Type O <*bType.Te/t
Di* ;ld5Na*e #s 8trin+
;ld5Na*e O T/tNa*e.Te/t
<*bType.<learLI
<*b5rod"ctType.<learLI
<*b5rod"ctType.#dd%te*LQ#>>QI
<*b5rod"ctType.Te/t O ;ld5Type
%f Rs.8tate O ad8tate;pen Then Rs.<loseLI
Rs.;penLQselect distinct prodDtype fro* prod"ctD*aster order by prodDtypeQ1 <n1
ad;pen8tatic1 ad>oc!Read;nlyI
.hile Rs.6;? O ?alse
<*b5rod"ctType.#dd%te*LRsLQprodDtypeQII
<*bType.#dd%te*LRsLQprodDtypeQII
Rs.(o,eNe/tLI
6nd .hile
KNNN fill the prod"ct list a+ain ith "pdated3inserted records
Di* 7r8tr #s 8trin+
%f <*b5rod"ctType.Te/t O Q#>>Q Then
7r8tr O Qselect prodDs"bDtype fro* prod"ctD*aster order by prodDs"bDtypeQ
6lse
7r8tr O Qselect prodDs"bDtype fro* prod"ctD*aster here prodDtypeOKQ R
<*b5rod"ctType.Te/t R QK order by prodDs"bDtypeQ
6nd %f
>st5rod"ct8"bType.<learLI
%f Rs.8tate O ad8tate;pen Then Rs.<loseLI
Rs.;penL7r8tr1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
.hile Rs.6;? O ?alse
>st5rod"ct8"bType.#dd%te*LRsLQprodDs"bDtypeQII
44
Rs.(o,eNe/tLI
6nd .hile
KNNN sho the first record
%f >st5rod"ct8"bType.>ist<o"nt N 0 Then
>st5rod"ct8"bType.Te/t O ;ld5Na*e
DisplayRecordLI
6nd %f
KNNN enable3diable b"tton
6DL?alse1 Tr"eI
6nd 8"b
5ri,ate 8"b ?or*D>oadLI
KNNN center the for*
(e.(o,e L8creen..idth - .idthI 3 21 L8creen.Cei+ht - Cei+htI 3 2
KNNN reset connection
;pen<onLI
6DL?alse1 Tr"eI
<*bType.<learLI
KNNN fill the prod"ct type
<*b5rod"ctType.<learLI
<*b5rod"ctType.#dd%te*LQ#>>QI
<*b5rod"ctType.Te/t O Q#>>Q
%f Rs.8tate O ad8tate;pen Then Rs.<loseLI
Rs.;penLQselect distinct prodDtype fro* prod"ctD*aster order by prodDtypeQ1 <n1
ad;pen8tatic1 ad>oc!Read;nlyI
.hile Rs.6;? O ?alse
<*b5rod"ctType.#dd%te*LRsLQprodDtypeQII
<*bType.#dd%te*LRsLQprodDtypeQII
Rs.(o,eNe/tLI
6nd .hile
KNNN fill the prod"ct s"b type
Di* 7r8tr #s 8trin+
%f <*b5rod"ctType.Te/t O Q#>>Q Then
7r8tr O Qselect prodDs"bDtype fro* prod"ctD*aster order by prodDs"bDtypeQ
6lse
7r8tr O Qselect prodDs"bDtype fro* prod"ctD*aster here prodDtypeOKQ R
<*b5rod"ctType.Te/t R QK order by prodDs"bDtypeQ
6nd %f
>st5rod"ct8"bType.<learLI
%f Rs.8tate O ad8tate;pen Then Rs.<loseLI
Rs.;penL7r8tr1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
44
.hile Rs.6;? O ?alse
>st5rod"ct8"bType.#dd%te*LRsLQprodDs"bDtypeQII
Rs.(o,eNe/tLI
6nd .hile
KNNN select the first record
%f >st5rod"ct8"bType.>ist<o"nt N 0 Then
>st5rod"ct8"bType.>ist%nde/ O 0
DisplayRecordLI
6nd %f
6nd 8"b
5ri,ate 8"b DisplayRecordLI
KNNN display record as per selected prod"ct na*e
%f Rs.8tate O ad8tate;pen Then Rs.<loseLI
Rs.;penLQselect M fro* prod"ctD*aster here prodDs"bDtypeOQ R <hrL34I R
>st5rod"ct8"bType.Te/t R <hrL34I1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
%f Rs.Record<o"nt N 0 Then
>bl8r.<aption O RsLQsnoQI
<*bType.Te/t O RsLQprodDtypeQI
T/tNa*e.Te/t O RsLQprodDs"bDtypeQI
T/tRate.Te/t O RsLQrateQI
<h!#cti,e.$al"e O RsLQisDacti,eQI
6lse
>bl8r.<aption O QQ
<*bType.Te/t O QQ
T/tNa*e.Te/t O QQ
T/tRate.Te/t O QQ
<h!#cti,e.$al"e O 1
6nd %f
6nd 8"b
5ri,ate 8"b 6DL)y$al T1 #s )oolean1 )y$al T2 #s )ooleanI
KNNN enable3disable b"tton
<*d8a,e.$isible O T1
<*d<ancel.$isible O T1
<*d?ind.$isible O T2
<*dNe.$isible O T2
<*d6dit.$isible O T2
<*d<lose.$isible O T2
<*bType.>oc!ed O T2
T/tNa*e.>oc!ed O T2
T/tRate.>oc!ed O T2
<h!#cti,e.6nabled O T1
6nd 8"b
5ri,ate 8"b >st5rod"ct8"bTypeD<lic!LI
4=
DisplayRecordLI
6nd 8"b
5ri,ate 8"b T/tNa*eD&eyDonL)y$al &ey<ode #s %nte+er1 )y$al 8hift #s %nte+erI
KNNN 86>6<T ?R;( >%8T
%f <*b5rod"ctType.Te/t SN Q#>>Q Then
<*b5rod"ctType.Te/t O Q#>>Q
6nd %f
%f &ey<ode O ,b&eyDon Then
%f >st5rod"ct8"bType.>ist%nde/ S >st5rod"ct8"bType.>ist<o"nt - 1 Then
>st5rod"ct8"bType.>ist%nde/ O >st5rod"ct8"bType.>ist%nde/ P 1
6nd %f
6nd %f
%f &ey<ode O ,b&ey'p Then
%f >st5rod"ct8"bType.>ist%nde/ N 0 The
>st5rod"ct8"bType.>ist%nde/ O >st5rod"ct8"bType.>ist%nde/ - 1
6nd %f
6nd %f
6nd 8"b
@.4 ?r*bill
L<reate and *odify bill and print the sa,ed billI
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K e)illin+ 8yste*
K
4@
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K Ne3(odify )ill (od"le
K 'sed Table : )ill
K : )ill Details
K : 5rod"ct
K : <o*pany
K(od"le to *a!e ne or *odify bill1
K5rint bill after sa,e the record
Kalso e *a!e editable fle/+rid ith
Kte/t bo/ and co*bobo/
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
;ption 6/plicit
KNNN declare for* +lobal ,ariable
Di* #dd6dit #s 8trin+
Di* Rs #s Ne #D;D).Recordset
Di* sno #s %nte+er
Di* 8a,e5rint #s 8trin+
5ri,ate 8"b <*d<loseD<lic!LI
KNNN chec! the caption of the b"tton
KNNN close the for* or cancel the sa,e
%f <*d<lose.<aption O QR<loseQ Then
'nloadL(eI
6lse
D6LTr"e1 ?alseI
6nd %f
6nd 8"b
5ri,ate 8"b <*dDeleteD<lic!LI
KNNN confir* for deletion of bill
KNNN if "ser select 968 delete the record fro* bill and billDdetails
KNNN clear the seleted data fro* the screen for deleted bill
%f (s+)o/LQRecord ill delete per*antley JQ1 ,b9esNo P ,b<riticalI O ,b9es Then
<n.6/ec"teLQdelete fro* billDdetails here billDsno OQ R snoI
<n.6/ec"teLQdelete fro* bill here sno OQ R snoI
#dd6dit O QQ
<*dBet)ill.<aption O QR?indQ
4A
<*dDelete.6nabled O ?alse
<all <lear?ieldLI
%f T/t%n,oiceNo.6nabled O Tr"e Then
T/t%n,oiceNo.8et?oc"sLI
6nd %f
6nd %f
6nd 8"b
5ri,ate 8"b <*dBet)illD<lic!LI
KNNN find the bill details
KNNN find the bill by in,oice no
#dd6dit O QQ
%f <*dBet)ill.<aption O QRBet )illQ Then
T/t%n,oiceNo.6nabled O Tr"e
<all <lear?ieldLI
T/t%n,oiceNo.)ac!<olor O ,b9ello
T/t%n,oiceNo.8et?oc"sLI
<*dBet)ill.<aption O QR?indQ
6lse
Di* R81 #s Ne #D;D).Recordset
R81.;penLQselect M fro* bill here in,oiceDno OQ R $alLT/t%n,oiceNo.Te/tI R Q and
cna*eOKQ R <o*panyNa*e R QKQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
%f R81.Record<o"nt N 0 Then
KNNN sho details fro* bill table
DtDate.$al"e O R81LQin,oiceDdateQI
T/t>ocation.Te/t O R81LQlocationQI
T/t<halanNo.Te/t O R81LQchalanDnoQI
T/t<o*pany.Te/t O R81LQc"sto*erDna*eQI
T/t#ddress1.Te/t O R81LQc"sto*erDaddress1QI
T/t#ddress2.Te/t O R81LQc"sto*erDaddress2QI
>blTotal#*o"nt O R81LQtotalDa*tQI
>blRs.ord.<aption O R81LQa*tDordQI
T/t8erial.Te/t O R81LQserialQI
KNNN sho data fro* billDdetails
Di* Rs2 #s Ne #D;D).Recordset
%f Rs2.8tate O ad8tate;pen Then Rs2.<loseLI
Di* Rs3 #s Ne #D;D).Recordset
Rs2.;penLQselect M fro* billDdetails here billDsnoOQ R R81LQsnoQI R Q order by sno Q1
<n1 ad;pen8tatic1 ad>oc!Read;nlyI
%f Rs2.Record<o"nt N 0 Then
Di* i #s %nte+er
Rs2.(o,e?irstLI
49
?or i O 0 To Rs2.Record<o"nt - 1
%f Rs3.8tate O ad8tate;pen Then Rs3.<loseLI
Rs3.;penLQselect M fro* prod"ctD*aster here sno OQ R Rs2LQprodDsnoQI1 <n1
ad;pen8tatic1 ad>oc!Read;nlyI
%f Rs3.Record<o"nt N 0 Then
(f1.Te/t(atri/Li P 11 1I O Rs3LQprodDs"bDtypeQI
6nd %f
%f Rs3.8tate O ad8tate;pen Then Rs3.<loseLI
(f1.Te/t(atri/Li P 11 2I O Rs2LQ:tyQI
(f1.Te/t(atri/Li P 11 3I O Rs2LQrateQI
(f1.Te/t(atri/Li P 11 4I O Rs2LQa*tQI
Rs2.(o,eNe/tLI
Ne/t
6nd %f
%f Rs2.8tate O ad8tate;pen Then Rs2.<loseLI
<*dBet)ill.<aption O QRBet )illQ
<*dDelete.6nabled O Tr"e
c*b,al.$isible O ?alse
<*d5rint.6nabled O Tr"e
<*d8a,e.6nabled O Tr"e
KNNN loca! the b"ttons
(f1.6nabled O Tr"e
c*b,al.6nabled O Tr"e
TGT$#>.6nabled O Tr"e
T/t<o*pany.>oc!ed O ?alse
T/t#ddress1.>oc!ed O ?alse
T/t#ddress2.>oc!ed O ?alse
DtDate.6nabled O Tr"e
T/t>ocation.>oc!ed O ?alse
T/t<halanNo.>oc!ed O ?alse
6lse
(s+)o/LQNo 5re,io"s Details fo"nd for in,oice...Q R T/t%n,oiceNo.Te/t1 ,b6/cla*ationI
<*dBet)ill.<aption O QR?indQ
T/t%n,oiceNo.6nabled O Tr"e
T/t%n,oiceNo.8et?oc"sLI
<*dDelete.6nabled O ?alse
<*d5rint.6nabled O ?alse
<*d8a,e.6nabled O ?alse
(f1.6nabled O ?alse
c*b,al.6nabled O ?alse
TGT$#>.6nabled O ?alse
T/t<o*pany.>oc!ed O Tr"e
40
T/t#ddress1.>oc!ed O Tr"e
T/t#ddress2.>oc!ed O Tr"e
DtDate.6nabled O ?alse
T/t>ocation.>oc!ed O Tr"e
T/t<halanNo.>oc!ed O Tr"e
6nd %f
%f R81.8tate O ad8tate;pen Then R81.<loseLI
6nd %f
6nd 8"b
5ri,ate 8"b <*dNeD<lic!LI
KNNN claer the screen for enterin+ data for ne bill
KNNN enable3disable b"ttons
D6L?alse1 Tr"eI
#dd6dit O Q#DDQ
<all <lear?ieldLI
KNNN +et the ne syste* id fro* bill
%f Rs.8tate O ad8tate;pen Then Rs.<loseLI
Rs.;penLQselect *a/LsnoI fro* bill Q1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
%f Rs.Record<o"nt N 0 Then
sno O %%fL%sN"llLRsL0II O Tr"e1 01 RsL0II P 1
6nd %f
%f Rs.8tate O ad8tate;pen Then Rs.<loseLI
T/t<o*pany.8et?oc"sLI
6nd 8"b
5ri,ate 8"b <*d5rintD<lic!LI
KN;T6 : it is not the ri+ht sol"tion to call crystal report by te*p "sin+ te*p table
Kso*e ti*e it is a +ood practice for co*plecated databse relation table
KThis *ay not r"n properly in *"lti "ser en,iron*ent
K)etter approch is passin+ ,al"e by 8election?or*"la in crystal report
Kb"t anyay it is a or!in+ sol"tion
KNNN find the bill sno fro* seleted in,oice no
KNNN if record fo"nd
KNNN delete te*p bill na dbillDdetails
KNNN insert fro* bill1billDdetails to te*pDbill1 tee*pDbillDdetails
Di* R81 #s Ne #D;D).Recordset
%f R81.8tate O 1 Then R81.<loseLI
R81.;penLQselect sno fro* bill here in,oiceDnoOQ R $alLT/t%n,oiceNo.Te/tI R Q and cna*e
OKQ R <o*panyNa*e R QKQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
%f R81.Record<o"nt N 0 Then
41
<n.6/ec"teLQdelete fro* te*pDbillDdetailsQI
<n.6/ec"teLQdelete fro* te*pDbillQI
<n.6/ec"teLQinsert into te*pDbill select M fro* bill here snoOQ R R81LQsnoQII
<n.6/ec"teLQinsert into te*pDbillDdetails select M fro* billDdetails here billDsnoOQ R
R81LQsnoQII
<all ;pen<onLI
KNNN call crystal report
<r1..indo8tate O crpt(a/i*iFed
<r1.Report?ileNa*e O #pp.5ath R QTreportsTbill.rptQ
<r1.Data?ilesL0I O #pp.5ath R QTdata.*dbQ
<r1.#ction O 1
6lse
(s+)o/LQNo )ill fo"nd select3enter in,oice no for printQ1 ,b6/cla*ationI
6/it 8"b
6nd %f
6nd 8"b
5ri,ate 8"b <*d8a,eD<lic!LI
KNNN ,alidation
KNNN chec! the re:"ired field
%f Tri*LT/t<o*pany.Te/tI O QQ Then
(s+)o/LQ6nter <o*pany Na*e...Q1 ,b6/cla*ationI
T/t<o*pany.8et?oc"sLI
6/it 8"b
6nd %f
%f %sN"*ericLT/t%n,oiceNo.Te/tI O ?alse Then
(s+)o/LQ6nter only N"*eric %n,oice No...Q1 ,b6/cla*ationI
T/t%n,oiceNo.8et?oc"sLI
6/it 8"b
6nd %f
%f Tri*LT/t>ocation.Te/tI O QQ Then
(s+)o/LQ6nter >ocation...Q1 ,b6/cla*ationI
T/t>ocation.8et?oc"sLI
6/it 8"b
6nd %f
%f Tri*LT/t<halanNo.Te/tI O QQ Then
(s+)o/LQ6nter <halan No...Q1 ,b6/cla*ationI
T/t<halanNo.8et?oc"sLI
6/it 8"b
42
6nd %f
%f %sN"*ericLT/t<halanNo.Te/tI O ?alse Then
(s+)o/LQ6nter only N"*eric <halan No...Q1 ,b6/cla*ationI
T/t<halanNo.8et?oc"sLI
6/it 8"b
6nd %f
KNNN reset the transaction
<all ;pen<onLI
KNNN create transaction for insert bill and bil details
<n.)e+inTransLI
Di* R81 #s Ne #D;D).Recordset
KNNN chec! heather e need to insert or edit the record
KNNN if it is edit1 then delete the old bill and insert ne record
%f #dd6dit SN Q#DDQ Then
%f R81.8tate O ad8tate;pen Then R81.<loseLI
R81.;penLQselect M fro* bill here in,oiceDno OQ R $alLT/t%n,oiceNo.Te/tI R Q and
cna*eOKQ R <o*panyNa*e R QKQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
%f R81.Record<o"nt N 0 Then
sno O R81LQsnoQI
6nd %f
%f R81.8tate O ad8tate;pen Then R81.<loseLI
<n.6/ec"teLQdelete fro* billDdetails here billDsno OQ R snoI
<n.6/ec"teLQdelete fro* bill here sno OQ R snoI
#dd6dit O QQ
6nd %f
KNNN chec! for prod"ct *aster
KNNN chec! the +rid
KNNN heather there is a prod"ct or not
KNNN heater they enter any :"antity or not
KNNN heatehr there is any price or not
KNNN if any thin+ +oes ron+ sho *essa+e
Di* cc #s %nte+er
Di* i #s %nte+er
?or i O 1 To (f1.Ros - 1
Di* <h #s )oolean
<h O ?alse
%f Tri*L(f1.Te/t(atri/Li1 1II O QQ Then
<h O Tr"e
6nd %f
%f R81.8tate O ad8tate;pen Then R81.<loseLI
R81.;penLQselect sno fro* prod"ctD*aster here prodDs"bDtype OQ R <hrL34I R
(f1.Te/t(atri/Li1 1I R <hrL34I1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
43
%f R81.Record<o"nt SO 0 Then
<h O Tr"e
6nd %f
%f R81.8tate O ad8tate;pen Then R81.<loseLI
%f $alL(f1.Te/t(atri/Li1 2II O 0 Then
<h O Tr"e
6nd %f
%f $alL(f1.Te/t(atri/Li1 3II O 0 Then
<h O Tr"e
6nd %f
%f $alL(f1.Te/t(atri/Li1 4II O 0 Then
<h O Tr"e
6nd %f
%f <h O ?alse Then
cc O cc P 1
6nd %f
Ne/t
%f cc O 0 Then
(s+)o/LQNo )ill details fo"nd for sa,eQ1 ,b6/cla*ationI
6/it 8"b
6nd %f
KNNN chec! for d"plicate in,oice no
%f Rs.8tate O ad8tate;pen Then Rs.<loseLI
Rs.;penLQselect M fro* bill here in,oiceDnoOQ R $alLT/t%n,oiceNo.Te/tI1 <n1 ad;pen8tatic1
ad>oc!Read;nlyI
%f Rs.Record<o"nt N 0 Then
(s+)o/LQ%n,alid %n,oice No cannot sa,e..Q1 ,b6/cla*ationI
T/t%n,oiceNo.8et?oc"sLI
6/it 8"b
6nd %f
%f Rs.8tate O ad8tate;pen Then Rs.<loseLI
KNNN sa,e record in bill table
R81.;penLQselect M fro* bill here 1O2Q1 <n1 ad;penDyna*ic1 ad>oc!;pti*isticI
R81.#ddNeLI
R81LQsnoQI O sno
R81LQin,oiceDnoQI O $alLT/t%n,oiceNo.Te/tI
R81LQcna*eQI O <o*panyNa*e
R81LQin,oiceDdateQI O ?or*atLDtDate.$al"e1 Qdd-***-yyQI
R81LQlocationQI O Tri*LT/t>ocation.Te/tI
R81LQchalanDnoQI O $alLT/t<halanNo.Te/tI
R81LQc"sto*erDna*eQI O Tri*LT/t<o*pany.Te/tI
R81LQc"sto*erDaddress1QI O Tri*LT/t#ddress1.Te/tI
R81LQc"sto*erDaddress2QI O Tri*LT/t#ddress2.Te/tI
44
R81LQtotalDa*tQI O $alL>blTotal#*o"nt.<aptionI
R81LQdisco"ntQI O 0
R81LQa*tDordQI O >blRs.ord
R81LQpaidDtypeQI O QN#Q
R81LQche:"eDnoQI O QN#Q
R81LQentryDdateQI O No
R81LQserialQI O T/t8erial.Te/t
R81.'pdateLI
%f R81.8tate O 1 Then R81.<loseLI
KNNN ,aildate each ro before sa,e in details
Di* >ast8no #s %nte+er
Di* 5rod8no #s %nte+er
Di* Rs2 #s Ne #D;D).Recordset
%f Rs2.8tate O 1 Then Rs2.<loseLI
Rs2.;penLQselect *a/LsnoI fro* billDdetailsQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
%f Rs2.Record<o"nt N 0 Then
>ast8no O %%fL%sN"llLRs2L0II O Tr"e1 01 Rs2L0II P 1
6nd %f
?or i O 1 To (f1.Ros - 1
<h O ?alse
%f Tri*L(f1.Te/t(atri/Li1 1II O QQ Then
<h O Tr"e
6nd %f
%f R81.8tate O ad8tate;pen Then R81.<loseLI
R81.;penLQselect sno fro* prod"ctD*aster here prodDs"bDtype OQ R <hrL34I R
(f1.Te/t(atri/Li1 1I R <hrL34I1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
%f R81.Record<o"nt N 0 Then
5rod8no O R81L0I
6lse
<h O Tr"e
6nd %f
%f R81.8tate O ad8tate;pen Then R81.<loseLI
%f $alL(f1.Te/t(atri/Li1 2II O 0 Then
<h O Tr"e
6nd %f
%f $alL(f1.Te/t(atri/Li1 3II O 0 Then
<h O Tr"e
6nd %f
%f $alL(f1.Te/t(atri/Li1 4II O 0 Then
<h O Tr"e
6nd %f
%f <h O ?alse Then
44
KNNN insert in bill details for each ,alidated +rid ro
%f Rs2.8tate O 1 Then Rs2.<loseLI
Rs2.;penLQselect M fro* billDdetails here 1O2Q1 <n1 ad;penDyna*ic1
ad>oc!;pti*isticI
Rs2.#ddNeLI
Rs2LQsnoQI O >ast8no
Rs2LQbillDsnoQI O sno
Rs2LQprodDsnoQI O 5rod8no
Rs2LQ:tyQI O $alL(f1.Te/t(atri/Li1 2II
Rs2LQrateQI O $alL(f1.Te/t(atri/Li1 3II
Rs2LQa*tQI O $alL(f1.Te/t(atri/Li1 4II
Rs2.'pdateLI
%f Rs2.8tate O 1 Then Rs2.<loseLI
>ast8no O >ast8no P 1
6nd %f
Ne/t
KNNN co**it the transaction
<n.<o**itTransLI
(s+)o/LQ)ill 8a,edQ1 ,b%nfor*ationI
%f <h!5rint.$al"e O 1 Then
KNNN call the report for print of the sa,ed bill
<*d5rintD<lic!LI
6nd %f
KNNN prepare for ne bill entry
#dd6dit O QQ
<all <lear?ieldLI
<all <*dNeD<lic!LI
6nd 8"b
5ri,ate 8"b DtDateD&eyDonL)y$al &ey<ode #s %nte+er1 )y$al 8hift #s %nte+erI
KNNN *o,e the c"rsor to ne field
%f &ey<ode O 13 Then
8end&eysLQUtabVQI
6nd %f
6nd 8"b
5ri,ate 8"b DtDateD&ey5ressL)y$al &ey#scii #s %nte+erI
KNNN *o,e the c"rsor to ne field
%f &ey#scii O 13 Then
8end&eysLQUtabVQI
6nd %f
6nd 8"b
4=
5ri,ate 8"b ?or*D>oadLI
KNNN cnter the for*
(e.>eft O L8creen..idth - (e..idthI 3 2
(e.Top O L8creen.Cei+ht - (e.Cei+htI 3 2
KNNN reset connection
<all ;pen<onLI
>bl<o*panyNa*e.<aption O <o*panyNa*e
DtDate.$al"e O No
KNNN clear the for* for ne bill entry
<all <lear?ieldLI
KNNN enable3diable b"ttons
D6LTr"e1 ?alseI
KNNN load last stat"s for bill print after sa,ed
Di* <h!$ #s %nte+er
<h!$ O $alLBet8ettin+LQbillsyste*Q1 QprintQ1 Qchec!printQ1 Q1QII
<h!5rint.$al"e O <h!$
KNNN load clent na*e fro* the table
Rs.;penLQselect clientDna*e fro* clientD*aster here clientDna*e is not n"ll order by
clientDna*eQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
.hile Not Rs.6;?
T/t<o*pany.#dd%te*LRsL0II
Rs.(o,eNe/tLI
6nd .hile
5ict"re1.$isible O Tr"e
6nd 8"b
5ri,ate 8"b D6L)y$al T1 #s )oolean1 )y$al T2 #s )ooleanI
KNNN enable3disable b"ttons
<*dBet)ill.6nabled O T1
<*dNe.6nabled O T1
<*d8a,e.6nabled O T2
<*d5rint.6nabled O T2
TGT$#>.6nabled O T2
c*b,al.6nabled O T2
(f1.6nabled O T2
%f T1 O Tr"e Then
<*d<lose.<aption O QR<loseQ
6lse
4@
<*d<lose.<aption O QR<ancelQ
6nd %f
T/t<o*pany.>oc!ed O T1
T/t#ddress1.>oc!ed O T1
T/t#ddress2.>oc!ed O T1
DtDate.6nabled O T2
T/t>ocation.>oc!ed O T1
T/t<halanNo.>oc!ed O T1
T/t%n,oiceNo.)ac!<olor O ,b.hite
<*dDelete.6nabled O ?alse
6nd 8"b
5ri,ate 8"b <lear?ieldLI
KNNN clear the fields
T/t<o*pany.Te/t O QQ
T/t#ddress1.Te/t O QQ
T/t#ddress2.Te/t O QQ
T/t%n,oiceNo.Te/t O QQ
T/t>ocation.Te/t O QQ
>blRs.ord.<aption O QQ
>blTotal#*o"nt.<aption O QQ
T/t<halanNo.Te/t O QQ
T/t8erial.Te/t O QQ
KNNN for +rid edit
<all setDheadin+LI
<all *o,eDte/tbo/LI
6nd 8"b
5ri,ate 8"b ?or*D7"ery'nloadL)y$al <ancel #s %nte+er1 )y$al 'nload(ode #s %nte+erI
KNNN sa,e last stat"s for bill print after sa,ed in the re+istry
%f <h!5rint.$al"e O 1 Then
8a,e8ettin+LQbillsyste*Q1 QprintQ1 Qchec!printQ1 Q1QI
6lse
8a,e8ettin+LQbillsyste*Q1 QprintQ1 Qchec!printQ1 Q0QI
6nd %f
6nd 8"b
5ri,ate 8"b T/t#ddress1D&ey5ressL)y$al &ey#scii #s %nte+erI
KNNN *o,e the foc"s to ne/t control
%f &ey#scii O 13 Then
8end&eysLQUtabVQI
4A
6nd %f
6nd 8"b
5ri,ate 8"b T/t#ddress2D&ey5ressL)y$al &ey#scii #s %nte+erI
KNNN *o,e the foc"s to ne/t control
%f &ey#scii O 13 Then
8end&eysLQUtabVQI
6nd %f
6nd 8"b
5ri,ate 8"b T/t<halanNoD&ey5ressL)y$al &ey#scii #s %nte+erI
KNNN *o,e the foc"s to ne/t control
%f &ey#scii O 13 Then
c*b,al.8et?oc"sLI
6nd %f
6nd 8"b
5ri,ate 8"b T/t<o*panyDBot?oc"sLI
KNNN *a!e listbo/ as editable te/tbo/
T/t<o*pany.Cei+ht O 1020
5ict"re1.$isible O ?alse
6nd 8"b
5ri,ate 8"b T/t<o*panyD&eyDonL)y$al &ey<ode #s %nte+er1 )y$al 8hift #s %nte+erI
KNNN sho the address of the seleted co*pany
Di* R81 #s Ne #D;D).Recordset
%f R81.8tate O ad8tate;pen Then R81.<loseLI
R81.;penLQselect M fro* clientD*aster here clientDna*eOKQ R T/t<o*pany.Te/t R QKQ1 <nI
%f R81.Record<o"nt N 0 Then
T/t#ddress1.Te/t O %%fL%sN"llLR81LQaddress1QII O Tr"e1 QQ1 R81LQaddress1QII
T/t#ddress2.Te/t O %%fL%sN"llLR81LQaddress2QII O Tr"e1 QQ1 R81LQaddress2QII
6lse
T/t#ddress1.Te/t O QQ
T/t#ddress2.Te/t O QQ
6nd %f
%f R81.8tate O ad8tate;pen Then R81.<loseLI
6nd 8"b
5ri,ate 8"b T/t<o*panyD&ey5ressL)y$al &ey#scii #s %nte+erI
KNNN *o,e the foc"s to ne/t control
%f &ey#scii O 13 Then
8end&eysLQUtabVQI
6nd %f
6nd 8"b
49
5ri,ate 8"b T/t<o*panyD>ost?oc"sLI
KNNN *o,e the foc"s to ne/t control
T/t<o*pany.Cei+ht O 330
5ict"re1.$isible O Tr"e
6nd 8"b
5ri,ate 8"b T/t%n,oiceNoD&eyDonL)y$al &ey<ode #s %nte+er1 )y$al 8hift #s %nte+erI
KNNN call +etbill by enter !ey in in,oice no te/t bo/
%f &ey<ode O 13 #nd <*dBet)ill.<aption O QR?indQ Then
<*dBet)illD<lic!LI
6nd %f
6nd 8"b
5ri,ate 8"b T/t>ocationD&ey5ressL)y$al &ey#scii #s %nte+erI
KNNN *o,e the foc"s to ne/t control
%f &ey#scii O 13 Then
8end&eysLQUtabVQI
6nd %f
6nd 8"b
5ri,ate 8"b T/t8erialD&ey5ressL)y$al &ey#scii #s %nte+erI
KNNN *o,e the foc"s to ne/t control
%f &ey#scii O 13 Then
8end&eysLQUtabVQI
6nd %f
6nd 8"b
5ri,ate 8"b TGT$#>D&ey5ressL)y$al &ey#scii #s %nte+erI
KNNN *a!e fle/ +ird editable *o,e th te/tbo/ in +id cell for enterin+ ,al"e
KNNN chec! heathe e press enter !ey
KNNN if yes..*o,e the control to ne/t +rod
Di* t #s %nte+er
%f &ey#scii O 13 #nd (f1.<ol O 2 Then
%f %sN"*ericLTGT$#>.Te/tI O ?alse Then
&ey#scii O 0
6/it 8"b
6nd %f
(f1.Te/t O TGT$#>.Te/t
KNNN sho total
(f1.Te/t(atri/L(f1.Ro1 (f1.<ol P 2I O $alL(f1.Te/t(atri/L(f1.Ro1 (f1.<ol P 1II M
TGT$#>.Te/t
Di* / #s %nte+er
=0
Di* T1 #s Do"ble
?or / O 1 To (f1.Ros - 1
T1 O T1 P $alL(f1.Te/t(atri/L/1 4II
Ne/t
>blTotal#*o"nt.<aption O T1
>blRs.ord O Rs.ordL>blTotal#*o"nt.<aptionI
%f (f1.<ol SN (f1.<ols - 3 Then
(f1.<ol O (f1.<ol P 1
6lse
%f (f1.Ro SN (f1.Ros - 2 Then
KNNN +o to ne/t ro
(f1.Ro O (f1.Ro P 1
6lse
KNNN add ne ros
(f1.Ros O (f1.Ros P 1
KNNN set the c"rrent ro
(f1.Ro O (f1.Ro P 1
KNNN set sr no
(f1.Te/t(atri/L(f1.Ro1 0I O $alL(f1.Te/t(atri/L(f1.Ro - 11 0II P 1
6nd %f
(f1.<ol O 1
6nd %f
*o,eDte/tbo/LI
KNNN select the te/t in te/t bo/
TGT$#>.8el8tart O 0
TGT$#>.8el>en+th O >enLTGT$#>.Te/tI
6nd %f
6nd 8"b
5ri,ate 8"b c*b,alD&ey5ressL)y$al &ey#scii #s %nte+erI
KNNN *a!e fle/ +ird editable *o,e th co*bobo/ in +id cell for seletin+ ,al"e
KNNN chec! heathe e press enter !ey
KNNN if yes..*o,e the control to ne/t +rod
Di* t #s %nte+er
%f &ey#scii O 13 Then
KNNN find prod rate
Di* R81 #s Ne #D;D).Recordset
=1
%f R81.8tate O ad8tate;pen Then R81.<loseLI
R81.;penLQselect M fro* prod"ctD*aster here prodDs"bDtypeOQ R <hrL34I R c*b,al.Te/t
R <hrL34I1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
%f R81.Record<o"nt N 0 Then
(f1.Te/t(atri/L(f1.Ro1 (f1.<ol P 2I O R81LQrateQI
6lse
&ey#scii O 0
6/it 8"b
6nd %f
(f1.Te/t O c*b,al.Te/t
KNNN sho total
(f1.Te/t(atri/L(f1.Ro1 4I O $alL(f1.Te/t(atri/L(f1.Ro1 2II M
$alL(f1.Te/t(atri/L(f1.Ro1 3II
Di* / #s %nte+er
Di* T1 #s Do"ble
?or / O 1 To (f1.Ros - 1
T1 O T1 P $alL(f1.Te/t(atri/L/1 4II
Ne/t
>blTotal#*o"nt.<aption O T1
>blRs.ord O Rs.ordL>blTotal#*o"nt.<aptionI
%f (f1.<ol SN (f1.<ols - 2 Then
(f1.<ol O (f1.<ol P 1
6lse
%f (f1.Ro SN (f1.Ros - 1 Then
(f1.Ro O (f1.Ro P 1
6lse
KNNN add ne ros
(f1.Ros O (f1.Ros P 1
KNNN set the c"rrent ro
(f1.Ro O (f1.Ro P 1
KNNN set sr no
(f1.Te/t(atri/L(f1.Ro1 0I O $alL(f1.Te/t(atri/L(f1.Ro - 11 0II P 1
6nd %f
(f1.<ol O 1
6nd %f
=2
*o,eDte/tbo/LI
c*b,al.8el8tart O 0
c*b,al.8el>en+th O >enLc*b,al.Te/tI
6nd %f
6nd 8"b
5"blic 8"b setDheadin+LI
KNNN creatin+ for the +rid
Di* & #s %nte+er
Di* t #s %nte+er
(f1.<learLI
(f1.RefreshLI
(f1.Ros O 30
(f1.<ols O 4
(f1.Ro O 0
(f1.RoCei+htL0I O =00
(f1.<ol O 0
(f1.<ol.idthL0I O 1000
(f1.<ell?ore<olor O ,b)l"e
(f1.<ell?ont)old O Tr"e
(f1.<ell#li+n*ent O 4
(f1.Te/t O Q8r.Q
(f1.<ol O 1
(f1.<ol.idthL1I O 4200
(f1.<ell?ore<olor O ,b)l"e
(f1.<ell?ont)old O Tr"e
(f1.<ell#li+n*ent O 4
(f1.Te/t O Q5artic"larsQ
(f1.<ol O 2
(f1.<ol.idthL2I O 1200
(f1.<ell?ore<olor O ,b)l"e
(f1.<ell?ont)old O Tr"e
(f1.<ell#li+n*ent O 4
(f1.Te/t O Q7"antityQ
(f1.<ol O 3
(f1.<ol.idthL3I O 1200
(f1.<ell?ore<olor O ,b)l"e
(f1.<ell?ont)old O Tr"e
(f1.<ell#li+n*ent O 4
(f1.Te/t O QRateQ
=3
(f1.<ol O 4
(f1.<ol.idthL4I O 1200
(f1.<ell?ore<olor O ,b)l"e
(f1.<ell?ont)old O Tr"e
(f1.<ell#li+n*ent O 4
(f1.Te/t O Q#*o"ntQ
(f1.Te/t(atri/L11 0I O Q1Q
(f1.Ro O 0
?or & O 0 To (f1.<ols - 1
(f1.<ol O &
(f1.<ell?ont)old O Tr"e
Ne/t
(f1.Ro O 1
(f1.<ol O 1
KNNN set serial fro* 1.2...
?or & O 1 To (f1.Ros - 1
(f1.Te/t(atri/L&1 0I O &
Ne/t
(f1.Ro O 1
6nd 8"b
5ri,ate 8"b (?1D6nter<ellLI
KNNN call appropriate control for edit the +rid
%f (f1.<ol O 1 Then
KNNN ,isble co*bo bo/ for select prod"ct
c*b,al.$isible O Tr"e
TGT$#>.$isible O ?alse
%f c*b,al.$isible O Tr"e Then
%f c*b,al.6nabled O Tr"e Then
c*b,al.8et?oc"sLI
6nd %f
6nd %f
c*b,al.<learLI
Di* Rs #s Ne #D;D).Recordset
%f Rs.8tate O 1 Then Rs.<loseLI
KNNN?ill ite*
%f (f1.<ol O 1 Then
=4
Rs.;penLQselect prodDs"bDtype fro* prod"ctD*aster order by prodDs"bDtypeQ1 <n1
ad;pen8tatic1 ad>oc!Read;nlyI
.hile Not Rs.6;?
c*b,al.#dd%te*LRsL0II
Rs.(o,eNe/tLI
6nd .hile
6lse%f (f1.<ol O 3 Then
c*b,al.#dd%te*LQQI
6nd %f
6lse
KNNN ,isble te/t bo/ for entrin+ :"antity
c*b,al.$isible O ?alse
TGT$#>.$isible O Tr"e
%f TGT$#>.$isible O Tr"e Then
%f TGT$#>.6nabled O Tr"e Then
TGT$#>.8et?oc"sLI
6nd %f
6nd %f
6nd %f
<all *o,eDte/tbo/LI
6nd 8"b
5"blic 8"b *o,eDte/tbo/LI
KNNali+n te/tbo/ as per +rid cell and set te/t
TGT$#>.>eft O (f1.<ell>eft P (f1.>eft
TGT$#>.Top O (f1.<ellTop P (f1.Top
TGT$#>..idth O (f1.<ell.idth
TGT$#>.Cei+ht O (f1.<ellCei+ht
TGT$#>.Te/t O (f1.Te/t
KNNali+n co*bo bo/ as per +rid cell and set te/t
c*b,al.>eft O (f1.<ell>eft P (f1.>eft
c*b,al.Top O (f1.<ellTop P (f1.Top
c*b,al..idth O (f1.<ell.idth
c*b,al.Te/t O (f1.Te/t
6nd 8"b
=4
L5rint o"t of the billI
==
@.= ?r*Reports
L8ho Different Report ;ptionsI
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K e)illin+ 8yste*
K
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K 8ho report options
K
K
Kallo "ser to select diffrent report
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
;ption 6/plicit
5ri,ate 8"b <*d)ill8"**aryD<lic!LI
KNNN sho bill s"**ary
?r*)ill8"**ary.8hoL1I
6nd 8"b
5ri,ate 8"b <*d<loseD<lic!LI
KNNN cloase the for*
'nloadL(eI
6nd 8"b
5ri,ate 8"b <*d6/portD<lic!LI
KNNN sho e/port prod"ct for*
?r*6/portData.8hoL1I
6nd 8"b
5ri,ate 8"b <*d5rint)illD<lic!LI
=@
KNN sho print bill
?r*5rint)ill.8hoL1I
6nd 8"b
5ri,ate 8"b <*d5rod"ct8"**aryD<lic!LI
KNNN sho all prod"ct list report
<r1..indo8tate O crpt(a/i*iFed
<r1.Report?ileNa*e O #pp.5ath R QTreportsTprod"cts.rptQ
<r1.Data?ilesL0I O #pp.5ath R QTdata.*dbQ
<r1.#ction O 1
6nd 8"b
5ri,ate 8"b ?or*D>oadLI
KNNN center the for*
(e.(o,e L8creen..idth - .idthI 3 21 L8creen.Cei+ht - Cei+htI 3 2
6nd 8"b
@.@ ?r*5rint)ill
L5rint already sa,ed billI
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K e)illin+ 8yste*
K
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K 5rint already sa,ed bill
K 'sed Table : bill
K : billDdetails
K(od"le to allo "ser to select the in,oice
Kno fro* seleted date ran+e
Kand open the bill by its in,oice3bill no
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
=A
;ption 6/plicit
Di* Rs #s Ne #D;D).Recordset
5ri,ate 8"b <*d<loseD<lic!LI
KNNN close the bill
'nloadL(eI
6nd 8"b
5ri,ate 8"b <*dBet)illD<lic!LI
KNNN +et bill no as per selected date ran+e
KNNN fill the list bo/ fro* record set
>st%n,oiceNo.<learLI
%f Rs.8tate O ad8tate;pen Then Rs.<loseLI
Rs.;penLQselect in,oiceDno fro* bill here in,oiceDdateNOWQ R ?or*atLDT5ic!er1.$al"e1
Qdd-***-yyQI R QW and in,oiceDdateSOWQ R ?or*atLDT5ic!er2.$al"e1 Qdd-***-yyQI R QW and
cna*eOKQ R <o*panyNa*e R QK order by in,oiceDnoQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
.hile Rs.6;? O ?alse
>st%n,oiceNo.#dd%te*LRsL0II
Rs.(o,eNe/tLI
6nd .hile
6nd 8"b
5ri,ate 8"b <*d8ho)illD<lic!LI
KNNN +et teh bill details fro* bill table as per selected bill no
%f >st%n,oiceNo.>ist%nde/ S 0 Then 6/it 8"b
Di* R81 #s Ne #D;D).Recordset
%f R81.8tate O 1 Then R81.<loseLI
R81.;penLQselect sno fro* bill here in,oiceDnoOQ R $alL>st%n,oiceNo.Te/tI R Q and cna*e
OKQ R <o*panyNa*e R QKQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
%f R81.Record<o"nt N 0 Then
KNNN delete old data fro* te*p table and insert fro* bill1 billDdeatils table
<n.6/ec"teLQdelete fro* te*pDbillDdetailsQI
<n.6/ec"teLQdelete fro* te*pDbillQI
<n.6/ec"teLQinsert into te*pDbill select M fro* bill here snoOQ R R81LQsnoQII
<n.6/ec"teLQinsert into te*pDbillDdetails select M fro* billDdetails here billDsnoOQ R
R81LQsnoQII
KNNN reset the connection
<all ;pen<onLI
KNNN open the crystal report
<r1.Data?ilesL0I O #pp.5ath R QTdata.*dbQ
<r1..indo8tate O crpt(a/i*iFed
<r1.Report?ileNa*e O #pp.5ath R QTreportsTbill.rptQ
<r1.#ction O 1
6lse
(s+)o/LQNo )ill fo"nd select3enter in,oice no for printQ1 ,b6/cla*ationI
=9
6/it 8"b
6nd %f
6nd 8"b
5ri,ate 8"b ?or*D>oadLI
KNNN center for*
(e.(o,e L8creen..idth - .idthI 3 21 L8creen.Cei+ht - Cei+htI 3 2
>st%n,oiceNo.<learLI
KNNN set datepic!er to c"rrent date
DT5ic!er1.$al"e O Date
DT5ic!er2.$al"e O Date
KNNN reset connection
<all ;pen<onLI
6nd 8"b
@0
@.A 5rod"ct8"**ary Report
L8ho 5rod"ct 8"**ary report in crystal reportI
@.9 ?r*)ill8"**ary
L8ho bill s"**ary for partic"lar date ran+eI
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K e)illin+ 8yste*
K
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K 8ho s"**ery of bill
K 'sed Table : bill
K : billDdetails
Ksho bill s"**ary for seleted date
Kran+e1 sho report in crystal report
K*o,e data into te*p table and sho
@1
Kreport fro* te*p table
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
;ption 6/plicit
5ri,ate 8"b <*d<loseD<lic!LI
KNNN close the for*
'nloadL(eI
6nd 8"b
5ri,ate 8"b <*dBet)illD<lic!LI
KN;T6 : it is not the ri+ht sol"tion to call crystal report by te*p "sin+ te*p table
Kso*e ti*e it is a +ood practice for co*plecated databse relation table
KThis *ay not r"n properly in *"lti "ser en,iron*ent
K)etter approch is passin+ ,al"e by 8election?or*"la in crystal report
Kb"t anyay it is a or!in+ sol"tion
KNNN find the bill sno fro* seleted in,oice no
KNNN if record fo"nd
KNNN delete te*p bill na dbillDdetails
KNNN insert fro* bill1billDdetails to te*pDbill1 tee*pDbillDdetails
<n.6/ec"teLQdelete fro* te*pDbillDdetailsQI
<n.6/ec"teLQdelete fro* te*pDbillQI
<n.6/ec"teLQinsert into te*pDbill select M fro* bill here in,oiceDdateNOWQ R
?or*atLDT5ic!er1.$al"e1 Qdd-***-yyQI R QW and in,oiceDdateSOWQ R ?or*atLDT5ic!er2.$al"e1
Qdd-***-yyQI R QW and cna*eOKQ R <o*panyNa*e R QK QI
<n.6/ec"teLQinsert into te*pDbillDdetails select M fro* billDdetails here billDsno in L select
sno fro* bill here in,oiceDdate NOWQ R ?or*atLDT5ic!er1.$al"e1 Qdd-***-yyQI R QW and
in,oiceDdateSOWQ R ?or*atLDT5ic!er2.$al"e1 Qdd-***-yyQI R QW and cna*eOKQ R
<o*panyNa*e R QKIQI
<all ;pen<onLI
KNNN open crystal report
<r1.Data?ilesL0I O #pp.5ath R QTdata.*dbQ
<r1..indo8tate O crpt(a/i*iFed
<r1.Report?ileNa*e O #pp.5ath R QTreportsTbills"**ary.rptQ
<r1.#ction O 1
6nd 8"b
5ri,ate 8"b ?or*D>oadLI
KNNN cnter the for*
(e.>eft O L8creen..idth - (e..idthI 3 2
(e.Top O L8creen.Cei+ht - (e.Cei+htI 3 2
KNNN sho the c"rrent date
DT5ic!er1.$al"e O Date
@2
DT5ic!er2.$al"e O Date
6nd 8"b
)ill 8"**ary Report
@.10 ?r*6/portData
L6/port prod"ct Data in ?le/Brid and (8-6/cel ith for*attin+I
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K e)illin+ 8yste*
K
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K 6/port prod"ctD*aster in +rid and *s-e/cel
K 'sed Table : prod"ctD*aster
Kopen the prod"ctD*aster in +rid
Kdisplay record in fle/ +rid ith +rop" by prod"ct type
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
@3
;ption 6/plicit
5ri,ate 8"b <*d<loseD<lic!LI
KNNN close the for*
'nloadL(eI
6nd 8"b
5ri,ate 8"b <*d6/celD<lic!LI
KNNNe/port data into *s e/cel fro* +rid ith for*attin+
KNNN chec! the +rid
%f (f1.Te/t(atri/L01 0I O QQ Then
(s+)o/LQNo Records #,ailable for 6/portin+ ... Q1 ,b6/cla*ationI
6/it 8"b
6nd %f
>abel1.<aption O Q.#%T ... Benerate 6/cel Q
>abel1.RefreshLI
KNNN creatin+ e/cel object ,ariable
Di* e/ #s Ne 6/cel.#pplication
Di* b #s Ne .or!boo!
Di* 6s #s Ne .or!sheet
b O e/..or!boo!s.#dd
6s O b..or!sheetsL1I
Di* i #s %nte+er
Di* j #s %nte+er
KNNN set e/cel col"*ns idth as per fle/ +rid col"*ns idth
?or i O 0 To (f1.<ols - 1
(f1.Ro O 1
(f1.<ol O i
6s.<ol"*nsLRet"rn#lphabetLi P 1I R Q:Q R Ret"rn#lphabetLi P 1II.<ol"*n.idth O
(f1.<ell.idth 3 110
Ne/t
KNNN set data fro* +rid to e/cel ro1 col"*n ise
Di* & #s %nte+er
?or i O 0 To (f1.Ros - 1
?or j O 0 To (f1.<ols - 1
e/.<ellsLi P 11 j P 1I O (f1.Te/t(atri/Li1 jI
Ne/t
Ne/t
Di* R1 #s 8trin+
Di* R2 #s 8trin+
R2 O Ret"rn#lphabetL(f1.<olsI R Q1Q
KNNN for*attin+ e/cel
Di* / #s Ran+e
@4
KNNNhead
/ O 6s.Ran+eLQ#1:Q R R2I
/.?ont.)old O Tr"e
/.?ont.<olor%nde/ O 40
/.%nterior.<olor%nde/ O 9
/.%nterior.5attern O /l8olid
/.CoriFontal#li+n*ent O /l<enter
/.$ertical#li+n*ent O /l)otto*
KNNNborder
R2 O Ret"rn#lphabetL(f1.<olsI R (f1.Ros - 1
/ O 6s.Ran+eLQ#1:Q R R2I
.ith /.)ordersL/l6d+e>eftI
.>ine8tyle O /l<ontin"o"s
..ei+ht O /lThin
.<olor%nde/ O /l#"to*atic
6nd .ith
.ith /.)ordersL/l6d+eTopI
.>ine8tyle O /l<ontin"o"s
..ei+ht O /lThin
.<olor%nde/ O /l#"to*atic
6nd .ith
.ith /.)ordersL/l6d+e)otto*I
.>ine8tyle O /l<ontin"o"s
..ei+ht O /lThin
.<olor%nde/ O /l#"to*atic
6nd .ith
.ith /.)ordersL/l6d+eRi+htI
.>ine8tyle O /l<ontin"o"s
..ei+ht O /lThin
.<olor%nde/ O /l#"to*atic
6nd .ith
.ith /.)ordersL/l%nside$erticalI
.>ine8tyle O /l<ontin"o"s
..ei+ht O /lThin
.<olor%nde/ O /l#"to*atic
6nd .ith
.ith /.)ordersL/l%nsideCoriFontalI
.>ine8tyle O /l<ontin"o"s
..ei+ht O /lThin
.<olor%nde/ O /l#"to*atic
6nd .ith
KNNN ?%>> D6T#%>8
/ O 6s.Ran+eLQ#2:Q R R2I
/.%nterior.<olor%nde/ O 40
@4
KNNT;T#>
R2 O Ret"rn#lphabetL(f1.<olsI R (f1.Ros
/ O 6s.Ran+eLQ#Q R (f1.Ros R Q:Q R R2I
/.?ont.)old O Tr"e
/.?ont.<olor%nde/ O 9
K
6s.Na*e O QReportQ
e/.$isible O Tr"e
e/.7"itLI
b O Nothin+
6s O Nothin+
e/ O Nothin+
KNNN process co*plete
>abel1.<aption O QReadyQ
>abel1.RefreshLI
6nd 8"b
5ri,ate 8"b <*d5rod"ct(asterD<lic!LI
KNNN reset the +rid
(f1.Ros O 2
(f1.<ols O 3
(f1.<learLI
(f1.RefreshLI
(f1.Ro O 0
(f1.<ol O 0
(f1.<ol.idthL0I O A00
(f1.Te/t O Q8rQ
(f1.<ell#li+n*ent O 4
(f1.<ell?ontNa*e O Q#rialQ
(f1.?ont.8iFe O 10
(f1.?ont.)old O Tr"e
(f1.<ell?ore<olor O ,b)l"e
(f1.<ell)ac!<olor O ,b<yan
@=
(f1.<ol O 1
(f1.<ol.idthL1I O 2400
(f1.Te/t O Q5rod"ct TypeQ
(f1.<ell#li+n*ent O 4
(f1.<ell?ontNa*e O Q#rialQ
(f1.?ont.8iFe O 10
(f1.?ont.)old O Tr"e
(f1.<ell?ore<olor O ,b)l"e
(f1.<ell)ac!<olor O ,b<yan
(f1.<ol O 2
(f1.<ol.idthL2I O 4000
(f1.Te/t O Q5rod"ctQ
(f1.<ell#li+n*ent O 4
(f1.<ell?ontNa*e O Q#rialQ
(f1.?ont.8iFe O 10
(f1.?ont.)old O Tr"e
(f1.<ell?ore<olor O ,b)l"e
(f1.<ell)ac!<olor O ,b<yan
KNNN find distinct prod"ct type fro* prod"ct *aster
KNNN loop all prod"ct type
Di* R81 #s Ne #D;D).Recordset
Di* Rs2 #s Ne #D;D).Recordset
R81.;penLQselect distinct prodDtype fro* prod"ctD*asterQ1 <n1 ad;pen8tatic1
ad>oc!Read;nlyI
Di* i #s %nte+er
Di* j #s %nte+er
?or i O 0 To R81.Record<o"nt - 1
(e.<aption O i P 1
(f1.Ro O (f1.Ros - 1
(f1.<ol O 0
(f1.Te/t O i P 1
(f1.<ol O 1
(f1.Te/t O R81LQprodDtypeQI
KNNN :"ery prod"ct *aster for each prod type fro* o"ter loop
%f Rs2.8tate O ad8tate;pen Then Rs2.<loseLI
Rs2.;penLQselect prodDs"bDtype fro* prod"ctD*aster here prodDtype OKQ R
R81LQprodDtypeQI R QK order by prodDs"bDtypeQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI
?or j O 0 To Rs2.Record<o"nt - 1
(f1.Ro O (f1.Ros - 1
(f1.<ol O 2
(f1.Te/t O Rs2L0I
@@
(f1.Ros O (f1.Ros P 1
Rs2.(o,eNe/tLI
Ne/t
R81.(o,eNe/tLI
Ne/t
6nd 8"b
5ri,ate 8"b ?or*D>oadLI
KNNN cnter the for*
(e.>eft O L8creen..idth - (e..idthI
(e.Top O L8creen.Cei+ht - (e.Cei+htI
6nd 8"b
6/port prod"ct Data (8-6/cel ith for*attin+
@A
@.11 ?r*'tlity
LTo #ccess different "tility pro+ra* li!e co*pact1 bac!"p1 chan+e passord etc.I
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K e)illin+ 8yste*
K
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K 8ho options for "tilities
K
K
Kallo "ser to select diffrent options
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
;ption 6/plicit
5ri,ate 8"b <*d#dd(odify<lientD<lic!LI
?r*<lient%nfo.8hoL1I
6nd 8"b
5ri,ate 8"b <*d#dd(odify<o*panyD<lic!LI
?r*<o*pany%nfo.8hoL1I
6nd 8"b
5ri,ate 8"b <*d)ac!'pD<lic!LI
?r*)ac!"pDatabase.8hoL1I
@9
6nd 8"b
5ri,ate 8"b <*d<han+e5assordD<lic!LI
?r*<han+e5assord.8hoL1I
6nd 8"b
5ri,ate 8"b <*d<loseD<lic!LI
'nloadL(eI
6nd 8"b
5ri,ate 8"b <*dRepairD<lic!LI
?r*<o*pact#ndRepairDatabase.8hoL1I
6nd 8"b
5ri,ate 8"b <o**and1D<lic!LI
6nd 8"b
5ri,ate 8"b <o**and2D<lic!LI
6nd 8"b
5ri,ate 8"b <o**and4D<lic!LI
'nloadL(eI
6nd 8"b
5ri,ate 8"b <*dRestoreD<lic!LI
(s+)o/LQ<opy last bac!"p file1 rena*e it to data.*db and then paste it in application folder.Q
R ,b<r>f R ,b<r>f R Q<ontact pro+ra* ,endor..it *ay ca"se lost of data1 if bac!"p is not c"rrentQ1
,b<riticalI
6nd 8"b
5ri,ate 8"b ?or*D>oadLI
KNNN center the for*
(e.(o,e L8creen..idth - .idthI 3 21 L8creen.Cei+ht - Cei+htI 3 2
KNNN chec! "ser type and sho diffrent options as per "ser ri+hts
%f ><aseL'serTypeI SN Qad*inQ Then
<*dRepair.6nabled O ?alse
<*d)ac!'p.6nabled O ?alse
<*d#dd(odify<o*pany.6nabled O ?alse
<*dRestore.6nabled O ?alse
6nd %f
6nd 8"b
A0
@.12 ?r*<o*pact#ndRepairDatabase
LTo shrin! and co*pact *ain database data.*db.I
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K e)illin+ 8yste*
K
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K co*apct3shrin! the access database
K 'sed Table : N#
Kchec! the repairdb.*db file in application path
Kif it is already their delete the file
K"se D)6NB%N6 <o*pactDatabase f"nction to co*apct the access database
Kcreate ne co*pacted te*pdb.*db fro* data.*db.
Kdelete old data.*db and rena*e te*pdb.*db to data.*db
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
;ption 6/plicit
Di* db6 #s Ne D#;.D)6n+ine
5ri,ate 8"b <o**and1D<lic!LI
'nloadL(eI
6nd 8"b
5ri,ate 8"b <o**and2D<lic!LI
KNNN if any connection open close all the connection
%f <n.8tate O 1 Then <n.<loseLI
Di* / #s 8trin+
KNNN chec! allready file is there or not
/ O DirL#pp.5ath R QTrepairedD).*dbQI
KNNN if file present delete the file
%f / SN QQ Then &illL#pp.5ath R QTrepairedD).*dbQI
Ti*er1.6nabled O Tr"e
A1
KNNN co*pact teh database
db6.<o*pactDatabaseL#pp.5ath R QTdata.*dbQ1 #pp.5ath R QTRepairedD)QI
KNNN delete old database
&illL#pp.5ath R QTdata.*dbQI
KNNN rena*e the ne database to old database
Na*e #pp.5ath R QTrepairedD).*dbQ #s #pp.5ath R QTdata.*dbQ
KNNN open connection
<all ;pen<onLI
6nd 8"b
5ri,ate 8"b ?or*D>oadLI
KNNN center the for*
(e.(o,e L8creen..idth - .idthI 3 21 L8creen.Cei+ht - Cei+htI 3 2
KNNN set the pro+ress bar initial ,al"e
5ro+ress)ar1.(in O 0
5ro+ress)ar1.(a/ O 100
6nd 8"b
5ri,ate 8"b Ti*er1DTi*erLI
KNN sho the pro+ress of co*pact process
%f 5ro+ress)ar1.$al"e S 100 Then
5ro+ress)ar1.$al"e O 5ro+ress)ar1.$al"e P 10
6lse
(s+)o/LQ5rocess <o*plete 8"ccessf"lly ..Q1 ,b%nfor*ationI
5ro+ress)ar1.$al"e O 0 KReset the *in ,al"e
Ti*er1.6nabled O ?alse KDisable the Ti*er
6nd %f
6nd 8"b
A2
@.13 ?r*)ac!"pDatabase
LTo ta!e bac!"p of *ain database data.*db.I
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K e)illin+ 8yste*
K
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K )ac!"p the Database Ldata.*dbI
K 'sed Table : N#
K(od"le to ta!e a copy of data.*db in
Kdiffrent location ith ti*estra*p
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
;ption 6/plicit
KNNN Declare ?ile 8yste* ,ariable
Di* ?s #s Ne ?ile8yste*;bject
Di* Ne?ile #s 8trin+
5ri,ate 8"b <o**and1D<lic!LI
KNNN open folder broser dialo+
KNNN select the folder path
KNNN store the path in te/t bo/ te/t1
Di* 8 #s 8trin+
8 O )rose?oldersLh.nd1 Q8elect ?older for <reatin+ )ac!"p file ... Q1 )rose?or6,erythin+1
<8%D>DD68&T;5I
%f 8 O QQ Then
(s+)o/LQ8elect $alid ?older for <reatin+ D"*p ?ile.Q1 ,b%nfor*ation1 Q<reatin+ D"*pQI
<o**and1.8et?oc"sLI
6/it 8"b
6lse
%f ?s.?older6/istsL8I O ?alse Then
(s+)o/LQ%n,alid ?older18elect $alid ?older. Q1 ,b%nfor*ation1 Q<reatin+ D"*pQI
<o**and1.8et?oc"sLI
6/it 8"b
A3
6nd %f
Te/t1.Te/t O 8
6nd %f
6nd 8"b
5ri,ate 8"b <o**and2D<lic!LI
;n 6rror BoTo *yer1
KNNN chec! the selected folder heather
KNNN it is e/ist or not
%f ?s.?older6/istsLTe/t1I O ?alse Then
(s+)o/LQ%n,alid ?older18elect $alid ?older. Q1 ,b%nfor*ation1 Q<reatin+ D"*pQI
<o**and1.8et?oc"sLI
6/it 8"b
6nd %f
KNNN sa,e the settin+s in re+istry
8a,e8ettin+LQ)%>>%NBD8;?T.#R6Q1 Q)#<&'5DD#T#)#86Q1 Q)#<&'5D5#TCQ1 Te/t1I
KNNN copy the database file in selected folder for bac!"p
?s.<opy?ileL#pp.5ath R QTdata.*dbQ1 Te/t1.Te/t R QTQ R Ne?ile1 ?alseI
(s+)o/LQ)ac!"p 5rocess <o*plete.Q1 ,b%nfor*ationI
6/it 8"b
*yer1:
KNN chec! the folder if the file alreday e/ist arn for o,errite
%f 6rr.N"*ber O 4A Then
%f (s+)o/LQ?ile #llready e/ist in sa*e na*e 1 do yo" ant to o,errite the e/istin+ file ..Q1
,b6/cla*ation P ,b9esNo P ,bDefa"lt)"tton1I O ,b9es Then
?s.<opy?ileL#pp.5ath R QTdata.*dbQ1 Te/t1.Te/t R QTQ R Ne?ile1 Tr"eI
(s+)o/LQ)ac!"p 5rocess <o*pleteQ1 ,b%nfor*ationI
6nd %f
6lse
(s+)o/LQ<an not co*plete bac!"p folloin+ error occ"red : Q R 6rr.Description1
,b<riticalI
6nd %f
6nd 8"b
5ri,ate 8"b <o**and3D<lic!LI
'nloadL(eI
6nd 8"b
5ri,ate 8"b ?or*D>oadLI
KNNN center the for*
A4
(e.(o,e L8creen..idth - .idthI 3 21 L8creen.Cei+ht - Cei+htI 3 2
KNNN ne bac!"p file na*e li!e dataD04010AD1@44.*db
Ne?ile O QDataDQ R ?or*atLNo1 QddnnyyDhhnnQI R Q.*dbQ
>abel2.<aption O Q)ac!"p Database Na*e : Q R Ne?ile
KNNN load the last sa,ed settin+s fro* re+istry
Te/t1.Te/t O Bet8ettin+LQ)%>>%NBD8;?T.#R6Q1 Q)#<&'5DD#T#)#86Q1
Q)#<&'5D5#TCQ1 QQI
6nd 8"b
A4
@.14 ?r*<o*pany%nfo
L#dd3(odify <o*pany %nfoI
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K e)illin+ 8yste*
K
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K add3edit3delete co*pany details
K 'sed Table : co*panyD*aster
Kopen the co*panyD*aster
Kdisplay first record in for* load
Kadd edit sa,e delete and na,i+ation
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
;ption 6/plicit
Di* R81 #s Ne #D;D).Recordset
Di* #dd6dit #s 8trin+
5ri,ate 8"b <o**and1D<lic!LI
KNNN close the for*
'nloadL(eI
6nd 8"b
5ri,ate 8"b <o**and11D<lic!LI
KNNN delete the record
%f R81.8tate O ad8tate<losed Then 6/it 8"b
%f R81.Record<o"nt SO 0 Then 6/it 8"b
;n 6rror BoTo *yer1
KNNN confir* before delete
%f (s+)o/LQDelete the Record J Q1 ,b<ritical P ,b9esNoI O ,b9es Then
A=
R81.DeleteLI
<all <learTe/tLI
<o**and4D<lic!LI
6nd %f
6/it 8"b
*yer1:
(s+)o/LQ6rror ;cc"red : Q R 6rr.Description1 ,b<riticalI
6nd 8"b
5ri,ate 8"b <o**and2D<lic!LI
KNNN *o,e record ponter to first record
KNNN display first record
;n 6rror Res"*e Ne/t
%f R81.8tate O ad8tate<losed Then 6/it 8"b
%f R81.Record<o"nt SO 0 Then 6/it 8"b
R81.(o,e?irstLI
<all DisplayRecordLI
6nd 8"b
5ri,ate 8"b <o**and3D<lic!LI
KNNN *o,e bac! the record pointer and display c"rrent record
;n 6rror Res"*e Ne/t
%f R81.8tate O ad8tate<losed Then 6/it 8"b
%f R81.Record<o"nt SO 0 Then 6/it 8"b
%f R81.#bsol"te5osition N 1 Then
R81.(o,e5re,io"sLI
6lse
(s+)o/LQ?irst Record ..Q1 ,b%nfor*ationI
R81.(o,e?irstLI
6nd %f
<all DisplayRecordLI
6nd 8"b
5ri,ate 8"b <o**and4D<lic!LI
KNNN *o,e ne/t the record pointer and display c"rrent record
;n 6rror Res"*e Ne/t
%f R81.8tate O ad8tate<losed Then 6/it 8"b
%f R81.Record<o"nt SO 0 Then 6/it 8"b
%f R81.#bsol"te5osition S R81.Record<o"nt Then
R81.(o,eNe/tLI
6lse
(s+)o/LQ>ast Record ..Q1 ,b%nfor*ationI
R81.(o,e>astLI
A@
6nd %f
<all DisplayRecordLI
6nd 8"b
5ri,ate 8"b <o**and4D<lic!LI
KNNN *o,e last the record pointer and display c"rrent record
;n 6rror Res"*e Ne/t
%f R81.8tate O ad8tate<losed Then 6/it 8"b
%f R81.Record<o"nt SO 0 Then 6/it 8"b
R81.(o,e>astLI
<all DisplayRecordLI
6nd 8"b
5ri,ate 8"b <o**and=D<lic!LI
KNNN prepare for add record1 clear all te/t bo/1 set fla+ to #DD
%f R81.8tate O ad8tate<losed Then 6/it 8"b
%f R81.Record<o"nt SO 0 Then 6/it 8"b
#dd6dit O Q#DDQ
<all <learTe/tLI
D6L?alse1 Tr"eI
T/t<o*panyNa*e.8et?oc"sLI
6nd 8"b
5ri,ate 8"b <o**and@D<lic!LI
KNNN prepare for edit record1 set fla+ to 6D%T
%f R81.8tate O ad8tate<losed Then 6/it 8"b
%f R81.Record<o"nt SO 0 Then 6/it 8"b
#dd6dit O Q6D%TQ
D6L?alse1 Tr"eI
T/t<o*panyNa*e.8et?oc"sLI
6nd 8"b
5ri,ate 8"b <o**andAD<lic!LI
KNNN sa,e the record
KNNN chec! for ,alidation
KNNN chec! the fla+ for #DD36dit
%f R81.8tate O ad8tate<losed Then 6/it 8"b
%f R81.Record<o"nt SO 0 Then 6/it 8"b
;n 6rror BoTo *yer1
%f Tri*LT/t<o*panyNa*e.Te/tI O QQ Then
(s+)o/LQ6nter <o*pany Na*e Q1 ,b<riticalI
T/t<o*panyNa*e.8et?oc"sLI
AA
6/it 8"b
6nd %f
%f #dd6dit O Q#DDQ Then
R81.#ddNeLI
R81LQco*panyDna*eQI O T/t<o*panyNa*e.Te/t
R81LQ#ddress1QI O T/t#ddress1.Te/t
R81LQ#ddress2QI O T/t#ddress2.Te/t
R81LQcityQI O T/t<ity.Te/t
R81LQpinQI O T/t5in.Te/t
R81LQtelephoneQI O T/tTelephone.Te/t
R81LQ,atnoQI O T/t$atNo.Te/t
R81.'pdateLI
R81.(o,e>astLI
<all DisplayRecordLI
6lse
R81LQ#ddress1QI O T/t#ddress1.Te/t
R81LQ#ddress2QI O T/t#ddress2.Te/t
R81LQcityQI O T/t<ity.Te/t
R81LQpinQI O T/t5in.Te/t
R81LQtelephoneQI O T/tTelephone.Te/t
R81LQ,atnoQI O T/t$atNo.Te/t
R81.'pdateLI
KNNN if it is edit after re:"ery sho the edited record
Di* p #s %nte+er
p O R81.#bsol"te5osition
R81.Re:"eryLI
R81.(o,e?irstLI
R81.(o,eLp - 1I
<all DisplayRecordLI
6nd %f
D6LTr"e1 ?alseI
6/it 8"b
*yer1:
(s+)o/LQ6rror ;cc"red : Q R 6rr.Description1 ,b<riticalI
6nd 8"b
5ri,ate 8"b <o**and9D<lic!LI
KNNN cancel sa,e
D6LTr"e1 ?alseI
6nd 8"b
5ri,ate 8"b ?or*D>oadLI
KNNN center the for*
A9
(e.(o,e L8creen..idth - .idthI 3 21 L8creen.Cei+ht - Cei+htI 3 2
KNNN reset connection
KNNN clear all te/t
<learTe/tLI
;pen<onLI
KNNN load alreday sa,ed clent data
KNNN and sho the first record
%f R81.8tate O ad8tate;pen Then R81.<loseLI
R81.;penLQselect M fro* co*panyD*aster order by co*panyDna*e Q1 <n1 ad;penDyna*ic1
ad>oc!;pti*isticI
%f R81.Record<o"nt N 0 Then
R81.(o,e?irstLI
<all DisplayRecordLI
6nd %f
D6LTr"e1 ?alseI
6nd 8"b
5ri,ate 8"b <learTe/tLI
KNNN clear all te/t bo/ in the for*
Di* <tl #s <ontrol
?or 6ach <tl %n (e.<ontrols
%f Type;f <tl %s Te/t)o/ Then
<tl.Te/t O QQ
6nd %f
Ne/t
6nd 8"b
5ri,ate 8"b DisplayRecordLI
KNNN display c"rrent record
;n 6rror Res"*e Ne/t
<all <learTe/tLI
T/t<o*panyNa*e.Te/t O %%fL%sN"llLR81LQco*panyDna*eQII O Tr"e1 QQ1
R81LQco*panyDna*eQII
T/t#ddress1.Te/t O %%fL%sN"llLR81LQ#ddress1QII O Tr"e1 QQ1 R81LQ#ddress1QII
T/t#ddress2.Te/t O %%fL%sN"llLR81LQ#ddress2QII O Tr"e1 QQ1 R81LQ#ddress2QII
T/t<ity.Te/t O %%fL%sN"llLR81LQcityQII O Tr"e1 QQ1 R81LQcityQII
T/t5in.Te/t O %%fL%sN"llLR81LQpinQII O Tr"e1 QQ1 R81LQpinQII
T/tTelephone.Te/t O %%fL%sN"llLR81LQtelephoneQII O Tr"e1 QQ1 R81LQtelephoneQII
T/t$atNo.Te/t O %%fL%sN"llLR81LQ,atnoQII O Tr"e1 QQ1 R81LQ,atnoQII
>abel1@.<aption O R81.#bsol"te5osition R Q3Q R R81.Record<o"nt
6nd 8"b
5ri,ate 8"b D6L)y$al T1 #s )oolean1 )y$al T2 #s )ooleanI
90
KNNN enable disable b"ttons
<o**and2.6nabled O T1
<o**and3.6nabled O T1
<o**and4.6nabled O T1
<o**and4.6nabled O T1
<o**and=.6nabled O T1
<o**and@.6nabled O T1
<o**and11.6nabled O T1
<o**andA.6nabled O T2
<o**and9.6nabled O T2
6nd 8"b
91
@.14 ?r*<lient%nfo
L#dd3(odify <lient %nfoI
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K e)illin+ 8yste*
K
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
K add3edit3delete client details
K 'sed Table : clientD*aster
Kopen the clientD*aster
Kdisplay first record in for* load
Kadd edit sa,e delete and na,i+ation
KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
;ption 6/plicit
Di* R81 #s Ne #D;D).Recordset
Di* #dd6dit #s 8trin+
5ri,ate 8"b <o**and1D<lic!LI
KNNN close the for*
'nloadL(eI
6nd 8"b
5ri,ate 8"b <o**and11D<lic!LI
KNNN delete the record
%f R81.8tate O ad8tate<losed Then 6/it 8"b
%f R81.Record<o"nt SO 0 Then 6/it 8"b
;n 6rror BoTo *yer1
KNNN confir* before delete
%f (s+)o/LQDelete the Record J Q1 ,b<ritical P ,b9esNoI O ,b9es Then
R81.DeleteLI
<all <learTe/tLI
92
<o**and4D<lic!LI
6nd %f
6/it 8"b
*yer1:
(s+)o/LQ6rror ;cc"red : Q R 6rr.Description1 ,b<riticalI
6nd 8"b
5ri,ate 8"b <o**and2D<lic!LI
KNNN *o,e record ponter to first record
KNNN display first record
;n 6rror Res"*e Ne/t
%f R81.8tate O ad8tate<losed Then 6/it 8"b
%f R81.Record<o"nt SO 0 Then 6/it 8"b
R81.(o,e?irstLI
<all DisplayRecordLI
6nd 8"b
5ri,ate 8"b <o**and3D<lic!LI
KNNN *o,e bac! the record pointer and display c"rrent record
;n 6rror Res"*e Ne/t
%f R81.8tate O ad8tate<losed Then 6/it 8"b
%f R81.Record<o"nt SO 0 Then 6/it 8"b
%f R81.#bsol"te5osition N 1 Then
R81.(o,e5re,io"sLI
6lse
(s+)o/LQ?irst Record ..Q1 ,b%nfor*ationI
R81.(o,e?irstLI
6nd %f
<all DisplayRecordLI
6nd 8"b
5ri,ate 8"b <o**and4D<lic!LI
KNNN *o,e ne/t the record pointer and display c"rrent record
;n 6rror Res"*e Ne/t
%f R81.8tate O ad8tate<losed Then 6/it 8"b
%f R81.Record<o"nt SO 0 Then 6/it 8"b
%f R81.#bsol"te5osition S R81.Record<o"nt Then
R81.(o,eNe/tLI
6lse
(s+)o/LQ>ast Record ..Q1 ,b%nfor*ationI
R81.(o,e>astLI
6nd %f
<all DisplayRecordLI
93
6nd 8"b
5ri,ate 8"b <o**and4D<lic!LI
KNNN *o,e last the record pointer and display c"rrent record
;n 6rror Res"*e Ne/t
%f R81.8tate O ad8tate<losed Then 6/it 8"b
%f R81.Record<o"nt SO 0 Then 6/it 8"b
R81.(o,e>astLI
<all DisplayRecordLI
6nd 8"b
5ri,ate 8"b <o**and=D<lic!LI
KNNN prepare for add record1 clear all te/t bo/1 set fla+ to #DD
%f R81.8tate O ad8tate<losed Then 6/it 8"b
%f R81.Record<o"nt SO 0 Then 6/it 8"b
#dd6dit O Q#DDQ
<all <learTe/tLI
D6L?alse1 Tr"eI
T/t<o*panyNa*e.8et?oc"sLI
6nd 8"b
5ri,ate 8"b <o**and@D<lic!LI
KNNN prepare for edit record1 set fla+ to 6D%T
%f R81.8tate O ad8tate<losed Then 6/it 8"b
%f R81.Record<o"nt SO 0 Then 6/it 8"b
#dd6dit O Q6D%TQ
D6L?alse1 Tr"eI
T/t<o*panyNa*e.8et?oc"sLI
6nd 8"b
5ri,ate 8"b <o**andAD<lic!LI
KNNN sa,e the record
KNNN chec! for ,alidation
KNNN chec! the fla+ for #DD36dit
%f R81.8tate O ad8tate<losed Then 6/it 8"b
%f R81.Record<o"nt SO 0 Then 6/it 8"b
;n 6rror BoTo *yer1
%f Tri*LT/t<o*panyNa*e.Te/tI O QQ Then
(s+)o/LQ6nter <o*pany Na*e Q1 ,b<riticalI
T/t<o*panyNa*e.8et?oc"sLI
6/it 8"b
94
6nd %f
%f #dd6dit O Q#DDQ Then
R81.#ddNeLI
R81LQclientDna*eQI O T/t<o*panyNa*e.Te/t
R81LQ#ddress1QI O T/t#ddress1.Te/t
R81LQ#ddress2QI O T/t#ddress2.Te/t
R81.'pdateLI
R81.(o,e>astLI
<all DisplayRecordLI
6lse
R81LQ#ddress1QI O T/t#ddress1.Te/t
R81LQ#ddress2QI O T/t#ddress2.Te/t
R81.'pdateLI
KNNN if it is edit after re:"ery sho the edited record
Di* p #s %nte+er
p O R81.#bsol"te5osition
R81.Re:"eryLI
R81.(o,e?irstLI
R81.(o,eLp - 1I
<all DisplayRecordLI
6nd %f
D6LTr"e1 ?alseI
6/it 8"b
*yer1:
(s+)o/LQ6rror ;cc"red : Q R 6rr.Description1 ,b<riticalI
6nd 8"b
5ri,ate 8"b <o**and9D<lic!LI
KNNN cancel sa,e
D6LTr"e1 ?alseI
6nd 8"b
5ri,ate 8"b ?or*D>oadLI
KNNN center the for*
(e.(o,e L8creen..idth - .idthI 3 21 L8creen.Cei+ht - Cei+htI 3 2
<learTe/tLI
KNNN reset connection
;pen<onLI
KNNN load alreday sa,ed clent data
KNNN and sho the first record
%f R81.8tate O ad8tate;pen Then R81.<loseLI
94
R81.;penLQselect M fro* clientD*aster order by clientDna*e Q1 <n1 ad;penDyna*ic1
ad>oc!;pti*isticI
%f R81.Record<o"nt N 0 Then
R81.(o,e?irstLI
<all DisplayRecordLI
6nd %f
D6LTr"e1 ?alseI
6nd 8"b
5ri,ate 8"b <learTe/tLI
KNNN clear all te/t bo/ in the for*
Di* <tl #s <ontrol
?or 6ach <tl %n (e.<ontrols
%f Type;f <tl %s Te/t)o/ Then
<tl.Te/t O QQ
6nd %f
Ne/t
6nd 8"b
5ri,ate 8"b DisplayRecordLI
KNNN display c"rrent record
<all <learTe/tLI
T/t<o*panyNa*e.Te/t O %%fL%sN"llLR81LQclientDna*eQII O Tr"e1 QQ1 R81LQclientDna*eQII
T/t#ddress1.Te/t O %%fL%sN"llLR81LQ#ddress1QII O Tr"e1 QQ1 R81LQ#ddress1QII
T/t#ddress2.Te/t O %%fL%sN"llLR81LQ#ddress2QII O Tr"e1 QQ1 R81LQ#ddress2QII
9=
>abel1@.<aption O R81.#bsol"te5osition R Q3Q R R81.Record<o"nt
6nd 8"b
5ri,ate 8"b D6L)y$al T1 #s )oolean1 )y$al T2 #s )ooleanI
KNNN enable disable b"ttons
<o**and2.6nabled O T1
<o**and3.6nabled O T1
<o**and4.6nabled O T1
<o**and4.6nabled O T1
<o**and=.6nabled O T1
<o**and@.6nabled O T1
<o**and11.6nabled O T1
<o**andA.6nabled O T2
<o**and9.6nabled O T2
6nd 8"b
9@
EBILLING AND INVOICE SSTE! TEST PLANE
A.1 %NTR;D'<T%;N
A.2 Test 8cope
A.3 Test 8trate+y
A.4 5reconditions
A.4 Test 5riorities
A.= Test Techni:"es
A.@ R;>68 #ND R685;N8%)%>%T%68
A.A <;N<>'8%;N #ND ?'T'R6 6NC#N<6(6NT

9A
%B2""248 #43 I4;*2$% S<.&%1 T%.& P"#4
E.1 I4&-*3/$&2*4
This doc"*ent describes the "ser acceptance test plan for the 6)illin+ and %n,oice 8yste*. The
co*plete test strate+y for the 6)illin+ and %n,oice 8yste* is to perfor* the folloin+ !inds of tests1
in se:"ence:
1. C*1,*4%4& &%.&248 of each co*ponent that *a!es "p the 6)illin+ and %n,oice 8yste*
2. I4&%8-#&2*4 &%.&248 of the 6)illin+ and %n,oice 8yste*1 to ens"re the correct interor!in+ of
its co*ponents
3. V#"23#&2*4 &%.&248 of the 6)illin+ and %n,oice 8yste*1 to ens"re that it or!s correctly in a
pse"do-li,e en,iron*ent
4. U.%- #$$%,&#4$% &%.&248 of the 6)illin+ and %n,oice 8yste*1 to ens"re that its f"nction is
acceptable to its "sers
#cceptance testin+ is the last set of tests to be perfor*ed before the application +oes officially li,e.
E.2 T%.& S$*,%
The scope of the "ser acceptance testin+ co,ers:
$ersion 1 of the 6)illin+ and %n,oice 8yste*
'ser-facin+ f"nctionality defined by a set of "se cases
#d*inistrator-facin+ f"nctionality defined by a set of "se cases
The ai* of the testin+ is to deter*ine ho ell the application *eets its f"nctional re:"ire*ents
fro* the perspecti,e of the "ser1 and to identify any iss"es so they can be resol,ed. #lso1 the testin+
ser,es to co*pile a set of test data and res"lts that can be "sed d"rin+ s"bse:"ent test cycles1 to test
for non-re+ression of the softare in later releases or after the application is in *aintenance.
.or!in+ practices *i+ht ,ary fro* "ser to "ser and are considered o"tside the scope of the testin+.
99
E.' T%.& S&-#&%8<
The basis of "ser acceptance testin+ is that other tests ere co*pleted s"ccessf"lly1 so the
application and its re:"ired infrastr"ct"re are considered to be stable and reliable. #cceptance testin+
concentrates on the application fro* the "ser0s perspecti,e1 that is1 ho the application is "sed and
hether it *eets the necessary :"ality criteria.
<han+e re:"ests ill be sent to the de,elop*ent tea* as the actionable doc"*entation. <han+e
criteria ill be deter*ined by the Test tea* and the De,elop*ent tea* prior to the be+innin+ of
testin+. ?or instance1 criteria *ay incl"de i*pact to desired f"nctionality1 a*o"nt of code i*pacted
by proposed chan+e1 and desi+n re:"ired by proposed chan+e. The tester ill e,al"ate the criteria.
The test lead ill deter*ine <han+e Re:"ired or not. ;nce a b"+ has been deter*ined as <han+e
Re:"ired1 the b"+ report ill be translated into a <han+e Re:"est and passed on to de,elop*ent.
The c"sto*er of the acceptance testin+ is the 8yste* 'sers1 8"per,isor and #d*instrator for
6)illin+ and %n,oice 8yste*. The pro+ress of the acceptance testin+ ill be reported to the
c"sto*er1 to+ether ith any iss"es that are disco,ered and their planned resol"tions. 8i+n-off of the
tests1 and therefore the acceptance of the application1 ill be perfor*ed by the c"sto*er or a selected
representati,e.
E.( P-%$*432&2*4.
The folloin+ ite*s are re:"ired before testin+ can ta!e place:
# co*plete and coherent f"nctional specification of the 6)illin+ and %n,oice 8yste*
e/pressed as "se cases and "sa+e scenarios
# co*plete and ,alidation-tested release of 6)illin+ and %n,oice 8yste*1 deli,ered accordin+
to the deli,ery plan
#n a+reed-"pon proced"re for dealin+ ith any ano*alies that are disco,ered d"rin+ the
testin+ process
100
# set of test specifications describin+ ho each f"nctional area of the 6)illin+ and %n,oice
8yste* is to be acceptance tested
#n i*ple*ented test en,iron*ent for the testin+
8"fficient1 s"itable reso"rces to carry o"t the testin+
#,ailable standards for the acceptance testin+
E.5 T%.& P-2*-2&2%.
D"rin+ testin+ of the 6)illin+ and %n,oice 8yste*1 the folloin+ :"alities ill be tested in order of
priority:
?"nctionalityXhether the re:"ired f"nctions are a,ailable and or!in+ as e/pected
'sabilityXho "ser-friendly and int"iti,e the 6)illin+ and %n,oice 8yste* is
8ec"rityXho ell-protected and +"aranteed corporate and "ser data is
5erfor*anceXhether the response ti*es are ithin acceptable li*its
<"sto*iFationXho strai+htforard it is to "se the application in ne1 "npredicted ays
E.6 T%.& T%$7426/%.
The folloin+ techni:"es ill be applied:
8cripted testsXse:"ences of "ser interactions Lbased on the "se case and "sa+e scenariosI
"sin+ predefined data sets a+ainst predicted res"lts
'nscripted testsXbased on scripted tests1 the tester tries to *odify the scenarios to e/plore
hat-if possibilities
5enetration testsXscripted tests to atte*pt "na"thoriFed entry into the syste*
'sability chec!listsXtests to deter*ine the co*ple/ity of interactions
5erfor*ance statisticsX+eneration of perfor*ance infor*ation to chec! a+ainst desired
perfor*ance criteria
101
E.+ R*"%. #43 R%.,*4.202"2&2%.
The folloin+ roles are defined:
7# lead3test *ana+erXresponsible for plannin+ and ens"rin+ the s*ooth r"nnin+ of the test
process
TesterXcarries o"t the tests accordin+ to the test plan1 and then reports the res"lts
5rod"ct *ana+erXens"res that the tests are carried o"t s"ccessf"lly fro* a "ser perspecti,e
5roject sponsor3clientXacts as *ain sta!eholder1 and ens"res that the needs of the c"sto*er
co**"nity as a hole are considered
Test s"pportXpro,ides technical assistance1 s"ch as test en,iron*ent confi+"ration1 and non-
technical assistance1 s"ch as *ethodolo+ical s"pport
.ee!ly tea* *eetin+s ill be held in,ol,in+ the test *ana+er1 testers1 and prod"ct *ana+ers. #t
these *eetin+s1 the pro+ress of the testin+ process ill be reported1 any iss"es ill be disc"ssed1 and
actions ill be a+reed "pon.

102
CONCLUSION & >UTURE EN?ANCE!ENT
This project as de,eloped to f"lfill "ser and b"siness re:"ire*entE hoe,er there are lots of scope
to i*pro,e the perfor*ance of the e)illin+ and %n,oice 8yste* in the area of "ser interface1 database
perfor*ance1 and :"ery processin+ ti*e. 6tc.
8o there are *any thin+s for f"t"re enhance*ent of this project. The f"t"re enhance*ents that are
possible in the project are as follos.
>in!in+ and inte+ration of any le+acy syste* for acco"ntin+.
%nte+ration ith tra,el a+ent thro"+h .eb 8er,ices
<onnection to third-party ;>#5 applications
6lectronic Data %nterchan+e L6D%I syste* beteen ban!s1 other credit ,erification a+ency
and their ,endors
%n the area of data sec"rity and syste* sec"rity.
5ro,ide *ore online tips and help.
103
BIBLIOGRAPHY
V2./#" B#.2$ 6 - B"#$: B**: 0< S&%;%4 ?*"H4%-
!#.&%-248 V2./#" B#.2$
S*5&9#-% E4824%%-248 0< R*8%- P-%..1#4
999.8**8"%.$*1
104

You might also like