Manage
The manage step provides data management functionality for your application and/or process. Below is the code for Manage(): ' ' Manage() ' ' Populates table and perform a simple query ' Sub Manage() Dim quantity As Integer Dim price, total As Double Dim itemnumb, custnumb, ordrnumb, custname As String Dim isOrderFound, isItemFound As Boolean Console.WriteLine("MANAGE")
' populate the tables with data Add_CustomerMaster_Records() Add_CustomerOrders_Records() Add_OrderItems_Records() Add_ItemMaster_Records() ' perform a query: ' list customer name and total amount per order ' name total ' @@@@@@@@@@@@@ $xx.xx ' for each order in the CustomerOrders table ' fetch order number ' fetch customer number ' fetch name from CustomerMaster table based on customer number ' for each order item in OrderItems table ' fetch item quantity ' fetch item number ' fetch item price from ItemMaster table based on item number ' next ' next Console.WriteLine(ControlChars.NewLine + ControlChars.Tab + "Query Results") Try ' get the first order isOrderFound = recordCustOrdr.First() While (isOrderFound) ' for each order in the CustomerOrders table ' fetch order number ordrnumb = recordCustOrdr.GetFieldAsString(2) ' fetch customer number custnumb = recordCustOrdr.GetFieldAsString(3) ' fetch name from CustomerMaster table based on customer number recordCustMast.Clear() recordCustMast.SetFieldAsString(0, custnumb) If (recordCustMast.Find(FIND_MODE.EQ) <> True) Then Continue While End If custname = recordCustMast.GetFieldAsString(4) ' fetch item price from OrderItems table recordOrdrItem.Clear() recordOrdrItem.SetFieldAsString(2, ordrnumb) ' define a recordset to scan only items applicable to Me order recordOrdrItem.RecordSetOn(6) isItemFound = recordOrdrItem.First() total = 0 While (isItemFound) ' for each order item in OrderItems table ' fetch item quantity quantity = recordOrdrItem.GetFieldAsSigned(1) ' fetch item number itemnumb = recordOrdrItem.GetFieldAsString(3) ' fetch item price from ItemMaster table based on item number recordItemMast.Clear() recordItemMast.SetFieldAsString(2, itemnumb) recordItemMast.Find(FIND_MODE.EQ) price = recordItemMast.GetFieldAsFloat(1) ' calculate order total total += (price * quantity) isItemFound = recordOrdrItem.Next() End While recordOrdrItem.RecordSetOff() ' output data to stdout Console.WriteLine(ControlChars.Tab + ControlChars.Tab + "{0,-20}{1,-8}", custname, total)
' read next order If (recordCustOrdr.Next() <> True) Then isOrderFound = False End If End While Catch E As CTException Handle_Exception(E) End Try End Sub ' ' Add_CustomerMaster_Records() ' ' This function adds records to table CustomerMaster from an ' array of strings ' Public Structure CUSTOMER_DATA ' struct members Public number, zipcode, state, rating, name, address, city As String ' struct constructor Public Sub New(ByVal number As String, ByVal zipcode As String, ByVal state As String, ByVal rating As String, ByVal name As String, ByVal address As String, ByVal city As String) Me.number = number Me.zipcode = zipcode Me.state = state Me.rating = rating Me.name = name Me.address = address Me.city = city End Sub End Structure Sub Add_CustomerMaster_Records() Dim data(3) As CUSTOMER_DATA data(0) = New CUSTOMER_DATA("1000", "92867", "CA", "1", "Bryan Williams", "2999 Regency", "Orange")
data(1) = New CUSTOMER_DATA("1001", "61434", "CT", "1", "Michael Jordan", "13 Main", "Harford")
data(2) = New CUSTOMER_DATA("1002", "73677", "GA", "1", "Joshua Brown", "4356 Cambridge", "Atlanta")
data(3) = New CUSTOMER_DATA("1003", "10034", "MO", "1", "Keyon Dooling", "19771 Park Avenue", "Columbia")
Dim nRecords As Integer = data.Length Delete_Records(recordCustMast) Console.WriteLine(ControlChars.Tab + "Add records in table CustomerMaster...") Try Dim i As Integer For i = 0 To nRecords - 1 recordCustMast.Clear() ' populate record buffer with data recordCustMast.SetFieldAsString(0, data(i).number) recordCustMast.SetFieldAsString(1, data(i).zipcode) recordCustMast.SetFieldAsString(2, data(i).state) recordCustMast.SetFieldAsString(3, data(i).rating) recordCustMast.SetFieldAsString(4, data(i).name) recordCustMast.SetFieldAsString(5, data(i).address) recordCustMast.SetFieldAsString(6, data(i).city) ' add record recordCustMast.Write() Next Catch E As CTException Handle_Exception(E) End Try End Sub ' ' Add_CustomerOrders_Records() ' ' This function adds records to table CustomerOrders from an ' array of strings ' Public Structure ORDER_DATA ' struct members Public orderdate, promisedate, ordernum, customernum As String ' struct constructor Public Sub New(ByVal orderdate As String, ByVal promisedate As String, ByVal ordernum As String, ByVal customernum As String) Me.orderdate = orderdate Me.promisedate = promisedate Me.ordernum = ordernum Me.customernum = customernum End Sub End Structure Sub Add_CustomerOrders_Records() Dim data(1) As ORDER_DATA data(0) = New ORDER_DATA("09/01/2002", "09/05/2002", "1", "1001")
data(1) = New ORDER_DATA("09/02/2002", "09/06/2002", "2", "1002")
Dim nRecords As Integer = data.Length Dim orderdate As CTDate = New CTDate() Dim promisedate As CTDate = New CTDate() Delete_Records(recordCustOrdr) Console.WriteLine(ControlChars.Tab + "Add records in table CustomerOrders...") Try Dim i As Integer For i = 0 To nRecords - 1 recordCustOrdr.Clear() orderdate.StringToDate(data(i).orderdate, DATE_TYPE.MDCY_DATE) promisedate.StringToDate(data(i).promisedate, DATE_TYPE.MDCY_DATE) ' populate record buffer with data recordCustOrdr.SetFieldAsDate(0, orderdate) recordCustOrdr.SetFieldAsDate(1, promisedate) recordCustOrdr.SetFieldAsString(2, data(i).ordernum) recordCustOrdr.SetFieldAsString(3, data(i).customernum) ' add record recordCustOrdr.Write() Next Catch E As CTException Handle_Exception(E) End Try End Sub ' ' Add_OrderItems_Records() ' ' This function adds records to table OrderItems from an ' array of strings ' Public Structure ORDERITEM_DATA ' struct members Public sequencenum, quantity As Integer Public ordernum, itemnum As String ' struct constructor Public Sub New(ByVal sequencenum As Integer, ByVal quantity As Integer, ByVal ordernum As String, ByVal itemnum As String) Me.sequencenum = sequencenum Me.quantity = quantity Me.ordernum = ordernum Me.itemnum = itemnum End Sub End Structure Sub Add_OrderItems_Records() Dim data(3) As ORDERITEM_DATA data(0) = New ORDERITEM_DATA(1, 2, "1", "1") data(1) = New ORDERITEM_DATA(2, 1, "1", "2") data(2) = New ORDERITEM_DATA(3, 1, "1", "3") data(3) = New ORDERITEM_DATA(1, 3, "2", "3") Dim nRecords As Integer = data.Length Delete_Records(recordOrdrItem) Console.WriteLine(ControlChars.Tab + "Add records in table OrderItems...") Try Dim i As Integer For i = 0 To nRecords - 1 recordOrdrItem.Clear() ' populate record buffer with data recordOrdrItem.SetFieldAsSigned(0, data(i).sequencenum) recordOrdrItem.SetFieldAsSigned(1, data(i).quantity) recordOrdrItem.SetFieldAsString(2, data(i).ordernum) recordOrdrItem.SetFieldAsString(3, data(i).itemnum) ' add record recordOrdrItem.Write() Next Catch E As CTException Handle_Exception(E) End Try End Sub ' ' Add_ItemMaster_Records() ' ' This function adds records to table ItemMaster from an ' array of strings ' Public Structure ITEM_DATA ' struct members Public weight As Integer Public price As CTMoney Public itemnum, description As String ' struct constructor Public Sub New(ByVal weight As Integer, ByVal price As CTMoney, ByVal itemnum As String, ByVal description As String) Me.weight = weight Me.price = price Me.itemnum = itemnum Me.description = description End Sub End Structure Sub Add_ItemMaster_Records() Dim data(3) As ITEM_DATA Data(0) = New ITEM_DATA(10, 1995, "1", "Hammer") Data(1) = New ITEM_DATA(3, 999, "2", "Wrench") Data(2) = New ITEM_DATA(4, 1659, "3", "Saw") Data(3) = New ITEM_DATA(1, 398, "4", "Pliers") Dim nRecords As Integer = Data.Length Delete_Records(recordItemMast) Console.WriteLine(ControlChars.Tab + "Add records in table ItemMaster...") Try Dim i As Integer For i = 0 To nRecords - 1 recordItemMast.Clear() ' populate record buffer with data recordItemMast.SetFieldAsSigned(0, Data(i).weight) recordItemMast.SetFieldAsMoney(1, Data(i).price) recordItemMast.SetFieldAsString(2, Data(i).itemnum) recordItemMast.SetFieldAsString(3, Data(i).description) ' add record recordItemMast.Write() Next Catch E As CTException Handle_Exception(E) End Try End Sub ' ' Delete_Records() ' ' This function deletes all the records in the table ' Sub Delete_Records(ByVal record As CTRecord) Dim found As Boolean Console.WriteLine(ControlChars.Tab + "Delete records...") Try ' read first record found = record.First() While (found) ' while records are found ' delete record record.Delete() ' read next record found = record.Next() End While Catch E As CTException Handle_Exception(E) End Try End Sub |
|||