How to Calculate Running Totals in a BROWSE Command (102890)



The information in this article applies to:

  • Microsoft Visual FoxPro for Windows 3.0
  • Microsoft FoxPro for Windows 2.5
  • Microsoft FoxPro for MS-DOS 2.0
  • Microsoft FoxPro for MS-DOS 2.5

This article was previously published under Q102890

SUMMARY

You can display running totals from database fields, or running totals for a particular control break, by using calculated fields in a BROWSE command.

The following example uses the CUSTOMER database and displays the running total of year-to-date purchases (YTDPURCH field) using the file and field names in FoxPro 2.x:
   SELECT 0
   USE CUSTOMER
   BROWSE FIELDS CNO, YTDPURCH, RUNNINGYTD=RUNNINGSUM()
 
   PROCEDURE RUNNINGSUM
   m.saverec = RECNO()
   GO TOP
   SUM YTDPURCH WHILE RECNO() <= m.saverec TO m.total
   GO m.saverec
   RETURN m.total
				
The same concept can also be applied to display running totals for a particular control break. For example, if we wanted to calculate the running total of year-to-date purchases by company number (CNO), and have an index tag on CNO, the following code could be used:
   SELECT 0
   USE CUSTOMER
   SET ORDER TO TAG CNO
   BROWSE FIELDS CNO, YTDPURCH, RUNNINGSUM = CNOTOT(CNO)
 
   FUNCTION CNOTOT
   PARAMETERS mkey
   m.saverec = RECNO()
   SEEK mkey
   SUM YTDPURCH WHILE CNO=mkey .AND. RECNO()<=m.saverec to m.total
   GO m.saverec
   RETURN m.total
				

Modification Type:MajorLast Reviewed:12/3/2003
Keywords:KB102890