Download - Advanced Vision Application in 3 Tiers
![Page 1: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/1.jpg)
Advanced Vision Application in 3 Tiers
![Page 2: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/2.jpg)
Vb app.exe
Vb app.exe
web page?
Bus Object 1
Bus Object 2
Bus Object 3
Business layer
ActiveX DLL (COM DLL)
Presentation Layer Data Layer
ActiveX DLL (COM DLL)
Data Object 1
Data Object 2
Data Object 3
Three Tier Logical Model
![Page 3: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/3.jpg)
Presentation Services provides the interface to the end user of the system
Business Services
takes care of business logic or business tasks, validation and computations.
Data Servicesprovides the capability and security required to retrieve, insert, update and delete data that is required by the business service
![Page 4: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/4.jpg)
UML (Unified Modeling Language) -- a graphical language for visualizing, specifying, constructing, and documenting software systems. A class diagram shows
•all the classes in your application•what tier each class is in •the relationships between the classes.
UML Class Diagram
Order Order
Method1()Method2()<Get>Property 1<Get>Property 2<Let>Property 3
Order ClassOrder Class (Expanded)
![Page 5: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/5.jpg)
Sample Class Diagram
![Page 6: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/6.jpg)
Designing 3 Tier Systems
Most Important Guidelines
Presentation layer
•should not contain any information or names that directly relate to the data source or data schema.
•should not require a reference to ADO library
•should not contain any business logic
Business layer
•should contain all calculations and validation.
•should not query the database directly
•should not communicate directly with the user
Data layer
•should not contain business logic
•should not communicate directly with the user
![Page 7: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/7.jpg)
User Services Business Services Data Services
<<Form>>frmPatient
<<Class Module>>clsPatient
<<Class Module>>clsInsurance
<<Class Module>>clsPatientData
<<Class Module>>clsInsuranceData
![Page 8: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/8.jpg)
Name Data Type Description
City string patient’s city
FirstName string patient’s first name
Insurance Code Integer patient’s insurance code
LastName string patient’s last name
Patient Number integer patient’s ID number
Phone string patients’s phone
Policy Number string patient’s policy number
State string patient’s state
ZipCode string patient’s zip code
Properties
clsPatient
![Page 9: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/9.jpg)
Name Description Return Value Arguments
Absolute Position Returns position in recordset
Integer None
Add adds a new patient record
None None
CancelUpdate Cancels a new record
None None
Delete deletes a record None None
Filter Filters data boolean FieldName:string
Searchvalue:string
MoveFirst Moves to first record
none none
MoveNext Moves to next record
none none
MoveLast Moves to last record
none none
MovePrevious moves to previous record
none none
Methods
clsPatient
![Page 10: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/10.jpg)
Name Description Arguments
PropertyChange Notification that a property value has changed
propertyname:string
Events
clsPatient
Name Description Return Value Arguments
RecordCount returns count of records
integer none
Save saves updates none none
ShowAllRecords removes filters none none
Sort sorts the records none SortString:string
Methods
![Page 11: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/11.jpg)
clsInsurance
Name Data Type Description
none
Properties
Name Description Return Value Arguments
GetInsuranceList Fills an array with the codes and names of the insurance companies
None None
NumberOfInsuranceCompanies Returns the number of companies in list
List():Variant List():Variant
Methods
![Page 12: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/12.jpg)
Name Description Arguments
none
Events
clsInsurance
![Page 13: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/13.jpg)
Name Data Type Description
City string patient’s city
FirstName string patient’s first name
Insurance Code Integer patient’s insurance code
LastName string patient’s last name
Patient Number integer patient’s ID number
Phone string patients’s phone
Policy Number string patient’s policy number
State string patient’s state
ZipCode string patient’s zip code
Properties
clsPatientData
![Page 14: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/14.jpg)
Name Description Return Value
Arguments
Absolute Position Returns position in recordset
Integer None
Add adds a new patient record None None
CancelUpdate Cancels a new record None None
Filter Filters data boolean FieldName:string
MoveFirst Moves to first record none Searchvalue:string
MoveNext Moves to next record none
MoveLast Moves to last record none none
MovePrevious moves to previous record none none
RecordCount returns count of records integer none
MethodsclsPatientData
![Page 15: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/15.jpg)
Name Description Arguments
DataChange Notification that data for the patient record has changed
none
Events
clsPatientData
Name Description Return Value
Arguments
Save saves updates none none
ShowAllRecords removes filters none none
Sort sorts the records none SortString:string
MoveLast Moves to last record none none
MovePrevious moves to previous record none none
Methods
![Page 16: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/16.jpg)
Name Data Type Description
InsuranceRecords Recordset Holds Recordset of Insurance Companies
Properties
clsInsuranceData
Name Description Return Value Arguments
RecordCount Returns number of records Integer None
Methods
Name Description Arguments
none
Events
![Page 17: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/17.jpg)
Form Load
Required Tasks•Create connection•Create patient recordset•Create insurance recordset
•Set Connection String•Open the Connection •Open Patient Recordset•Open Insurance Recordset •Fill Insurance Combo box •Close Insurance Recordset
•Set Sort Order •Set Form Values
•DisplayRecordCount
![Page 18: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/18.jpg)
Form Load
Presentation Business Data
AVB.mdb
1. Create clsPatient object
1. Create clsPatientData object
1. Create Conn2. Create Patient
RecordSet3. Set Conn
String4. Open Conn5. Open Patient
Recordset6. Move First
clsPatient Class_InitializeclsPatientData Class_InitializeSet mobjPatient = New
clsPatient
2. UpdateProperties 1. Properties return values of current record
![Page 19: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/19.jpg)
Form Load
Required Tasks•Create connection - DONE•Create patient recordset- DONE•Create insurance recordset
•Set Connection String - DONE•Open the Connection- DONE •Open Patient Recordset - DONE•Open Insurance Recordset •Fill Insurance Combo box •Close Insurance Recordset
•Set Sort Order •Set Form Values
•DisplayRecordCount
![Page 20: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/20.jpg)
Form Load
Presentation Business Data
AVB.mdb
1. Create clsInsurance object
1. Create clsInsuranceData object
1. Create Conn2. Create
Insurance RecordSet
3. Set Conn String
4. Open Conn5. Open
Insurance Recordset
clsInsurance Class_Initialize
clsInsuranceData Class_InitializeSet mobjInsurance = New
clsInsurance
![Page 21: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/21.jpg)
Form Load
Required Tasks•Create connection - DONE•Create patient recordset- DONE•Create insurance recordset-DONE
•Set Connection String - DONE•Open the Connection- DONE •Open Patient Recordset - DONE•Open Insurance Recordset - DONE •Fill Insurance Combo box •Close Insurance Recordset
•Set Sort Order •Set Form Values
•DisplayRecordCount
![Page 22: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/22.jpg)
Form Load
Presentation Business Data
AVB.mdb
1. Call GetInsurance List Method, Pass the array Ins to hold list
1. Calls GetRows method of clsInsuranceData.
InsuranceRecords
2. Sets ByRef array equal to result of GetRows
1. Returns Insurance Recordset
clsInsurance GetInsuranceList Method
clsInsuranceData InsuranceRecords PropertymobjInsurance.
GetInsuranceList Ins
2. Fill combobox with contents of Ins Array
![Page 23: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/23.jpg)
Form Load
Required Tasks•Create connection - DONE•Create patient recordset- DONE•Create insurance recordset-DONE
•Set Connection String - DONE•Open the Connection- DONE •Open Patient Recordset - DONE•Open Insurance Recordset - DONE •Fill Insurance Combo box - DONE
•Close Insurance Recordset
•Set Sort Order •Set Form Values
•DisplayRecordCount
![Page 24: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/24.jpg)
Form Load
Presentation Business Data
AVB.mdb
1. Terminate Insurance Object
1. Set mobjInsData = Nothing
1. Close Insurance Recordset
2. Close Conn3. Terminate
Insurance Recordset
4. Terminate Connection
clsInsurance Class_Terminate
clsInsuranceData Class_TerminateSet mobjInsurance
= Nothing
![Page 25: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/25.jpg)
Form Load
Required Tasks•Create connection - DONE•Create patient recordset- DONE•Create insurance recordset-DONE
•Set Connection String - DONE•Open the Connection- DONE •Open Patient Recordset - DONE•Open Insurance Recordset - DONE •Fill Insurance Combo box - DONE
•Close Insurance Recordset- DONE
•Set Sort Order •Set Form Values
•DisplayRecordCount
![Page 26: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/26.jpg)
Form Load
Presentation Business Data
AVB.mdb
1. Calls Sort Method of clsPatient
1. Calls Sort Method of clsPatientData
1. Selects Field Name based on string that is passed
2. Calls sort method of patient recordset
3. Raises DataChange Event
clsPatient.SortclsPatientData.SortmobjPatient.Sort "Patient
Number"
1. UpdatesProperties
2. Raises Property Change Event
mobjPatientData_DataChange()
1. Properties return values of current record
1. Assigns Form Values
mobjPatient_PropertyChange
![Page 27: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/27.jpg)
Form Load
Required Tasks•Create connection - DONE•Create patient recordset- DONE•Create insurance recordset-DONE
•Set Connection String - DONE•Open the Connection- DONE •Open Patient Recordset - DONE•Open Insurance Recordset - DONE •Fill Insurance Combo box - DONE
•Close Insurance Recordset- DONE
•Set Sort Order- DONE•Set Form Values- DONE
•DisplayRecordCount
![Page 28: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/28.jpg)
Form Load
Presentation Business Data
AVB.mdb
1. Calls absolute position method of mobjPatient
1. Calls clsPatientData.AbsolutePosition
1. mrsPatient.AbsolutePosition
clsPatient.AbsolutePositionclsPatientData.AbsolutePosition
mobjPatient.AbsolutePosition
1. Calls RecordCount Method of mobjPatient
mobjPatient.RecordCount
1. Calls clsPatientData.RecordCount
clsPatient.RecordCount
1. mrsPatient. RecordCount
clsPatientData.RecordCount
![Page 29: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/29.jpg)
Form Load
Required Tasks•Create connection - DONE•Create patient recordset- DONE•Create insurance recordset-DONE
•Set Connection String - DONE•Open the Connection- DONE •Open Patient Recordset - DONE•Open Insurance Recordset - DONE •Fill Insurance Combo box - DONE
•Close Insurance Recordset- DONE
•Set Sort Order- DONE•Set Form Values- DONE
•DisplayRecordCount- DONE
![Page 30: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/30.jpg)
MoveLast
Required Tasks•mrsPatient.MoveLast•DisplayRecordCount•Set Form Elements
![Page 31: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/31.jpg)
MoveLast
Presentation Business Data
AVB.mdb
1. Calls clsPatientData.MoveLast
clsPatient.MoveLast
1. mrsPatient.MoveLast
2. Raise DataChange Event
clsPatientData.MoveLast
1. Calls MoveLast method of mobjPatient
mobjPatient.MoveLast
1. UpdatesProperties
2. Raises Property Change Event
mobjPatientData_DataChange()
1. Properties return values of current record
1. Assigns Form Values
mobjPatient_PropertyChange
![Page 32: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/32.jpg)
Delete
Required Tasks•Create Command object•Set Connection String•Set Command String•Execute Command•Requery Recordset•Check to see if deleted last record•Update form elements
![Page 33: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/33.jpg)
Delete
Presentation Business Data
AVB.mdb
1. Calls clsPatientData.Delete (passes Patient ID)
clsPatient.Delete
1. Calls Delete method of mobjPatient
mobjPatient.Delete
1. UpdatesProperties
2. Raises Property Change Event
mobjPatientData_DataChange()
1. Properties return values of current record
1. Assigns Form Values
mobjPatient_PropertyChange
1. Creates Command
2. Sets Conn3. Sets Command
Text4. Executes5. Requeries6. Raises
DataChange Event
clsPatientData.Delete
![Page 34: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/34.jpg)
Form Unload
Required Tasks•Close Patient RecordSet•Close Connection•Set Recordset = nothing•Set Connection = nothing
![Page 35: Advanced Vision Application in 3 Tiers](https://reader035.vdocuments.site/reader035/viewer/2022062322/56814fa3550346895dbd608d/html5/thumbnails/35.jpg)
Form Unload
Presentation Business Data
AVB.mdb
1. Set mobjPatientData= Nothing
clsPatient Class_Terminate
1. Set mobjPatient to Nothing
Set mobjPatient = Nothing
1. Close Recordset2. Close Conn3. Set RS = nothing4. Set Conn =
nothing
clsPatientData class_Terminate