Method
Sums up totals for selected fields.
Category
Tables
Syntax
Sub CalcSums(ByVal hTable As Long, ByVal hRec As Long, ByVal
FieldNoArray As Variant)
hTable
The handle to the table.
hRec
The handle to the record buffer in which sums are to be placed.
FieldNoArray
The array containing the numbers of the fields that are to be added
up.
Example
' Case "CalcSums"
'Calculates the sum of the Amount field for Customers
CF1.OpenTable hTable, 21
hRecord = CF1.AllocRec(hTable)
'Get a key! Assign Keys to array
KeyArray = Array("Customer No.", "Posting Date", "Currency Code")
KeyArrayNo = CF1.FieldNoArray(hTable, KeyArray)
CF1.SetCurrentKey hTable, KeyArrayNo
' we want a sum for this field
KeyArray = Array("Amount")
KeyArrayNo = CF1.FieldNoArray(hTable, KeyArray)
CF1.CalcSums hTable, hRecord, KeyArrayNo
logWr "Calsums gives: " + Str(CF1.GetFieldData(hTable, hRecord, CF1.FieldNo(hTable, "Amount")))
Comments
CalcSums adds up totals for specified fields (columns) in a table.
The function operates only on those records that meet the
conditions specified in any filters that are associated with the
table handle.
All of the fields listed in FieldNoArray must be designated in the current key as SumIndexFields. If any of them do not meet this criteria, an exception is raised. To retrieve a list of the SumIndexFields for a given key, call KeySumFields.
A SumIndexField is a special C/SIDE feature that permits speedy access of numeric totals, even in tables that contain many thousands of records.
For more information about SumIndexFields, see the Application Designer's Guide.