6. Juni 2007 07:44
6. Juni 2007 08:15
CALCSUMS (Record)
Use this function to calculate the total of a column of SumIndexFields in a C/SIDE table. Using parameters, you can tell the system exactly which fields to calculate.
[Ok :=] Record.CALCSUMS (Field1, [Field2],...)
Ok
Data type: boolean
If you omit this optional return value and if one of the fields is not a SumIndexField, a run-time error occurs. If you include a return value, the system assumes you will handle any errors.
Record
Data type: record
The record that contains the SumIndexFields you want to calculate.
Field1, Field2, ...
Data type: decimal
One or more decimal fields, which are defined as SumIndexFields, in the current key.
Comments
Use this function to total columns in a table. This function operates only on records that meet the conditions of any filters associated with the record.
Example
This example shows how to use the CALCSUMS function.
"Cust. Ledger Entry".SETCURRENTKEY("Customer No.","Date");
"Cust. Ledger Entry".SETRANGE("Customer No.", 'AAA 1050');
"Cust. Ledger Entry".SETRANGE("Date", 010196D, 123196D);
"Cust. Ledger Entry".CALCSUMS("Amount");
The first line selects a key. The second and third lines set filters for the fields Customer No. and Date in the Cust. Ledger Entry record so the total is only calculated within the specified range. The CALCSUMS function then finds the net change in account AAA 1050 for 1996. The Amount field will show the result of the calculation.
6. Juni 2007 08:17
//Filter setzen
Record.SETRANGE(...); oder Record.SETFILTER(...); // sofern notwendig
Variable := 0;
IF Record.FINDFIRST THEN REPEAT
Variable += Record.Feld; // steht für Variable := Variable + Record.Feld;
UNTIL Record.NEXT = 0;
6. Juni 2007 08:40
//Filter setzen
Record.SETRANGE(...); oder Record.SETFILTER(...); // sofern notwendig
Variable := 0;
IF Record.FINDSET(FALSE, FALSE) THEN REPEAT
Variable += Record.Feld; // steht für Variable := Variable + Record.Feld;
UNTIL Record.NEXT = 0;
6. Juni 2007 08:47
stryk hat geschrieben:FINDFIRST sollte nur dann verwendetet werden, wenn auch nur der erste Datensatz verwendet wird. Sobald ein Result-Set (= Mehrzahl von Datensätzen) bearbeitet wird, dann sollte der FINDSET oder u.U. noch der alte FIND('-') benutzt werden ...
6. Juni 2007 08:52
6. Juni 2007 09:12
stryk hat geschrieben:Ja, ich weiß, diese Haarspaltereien sind nervig .
6. Juni 2007 09:13
6. Juni 2007 09:26
6. Juni 2007 11:03
mikka hat geschrieben:Finde ich gar nicht,
gerade durch solche Diskussionen können alle beteiligten (bzw. Forenmitglieder) etwas lernen!
Gruß Mikka