Stonefield Query can use "user-defined" functions in various places, such as report fields. A user-defined function (UDF) is code that does something when it's called. UDFs allow you to do just about anything you wish, including:
To create a UDF, create a text file called REPPROCS.PRG in the directory where Stonefield Query's data files are stored. Edit this file using any text editor (not a word processor, such as Microsoft Word, which stores binary files, but an editor such as Notepad that stores text files). This file can contain as many UDFs as you wish. Each UDF should start with "FUNCTION" followed by the UDF name and any parameters (in parentheses), and end with "RETURN" or "RETURN <variable or expression>."
Here's an example of a UDF. This function determines the commission for a sale based on a complex formula: if the sale amount is over $1,000, the commission is 12%; between $500 and $1,000, it's 10%; between $100 and $500, it's 8%; and there's no commission for sales less than $100.
function CalculateCommission(SaleAmount)
do case
case SaleAmount >= 1000
Commission = SaleAmount * 0.12
case SaleAmount >= 500 and SaleAmount < 1000
Commission = SaleAmount * 0.10
case SaleAmount >= 100 and SaleAmount < 500
Commission = SaleAmount * 0.08
otherwise
Commission = 0
endcase
return CommissionTo use this UDF in a commission report, create a new report and add the desired fields, including the sale amount field. Click the Formula button in Step 2 to display the Formula Editor. Type a name for the formula, such as "Commission Amount," and enter the following for the formula's expression:
CalculateCommission(SALES.AMOUNT)
(SALES.AMOUNT is the name of the field in this example that contains the sale amount.)
Turn on the Show 1000 separator and Display $ settings, and set Decimals to 2. Click OK to close the Formula Editor. The formula appears in the Available Fields list. Add it to the Selected list. When you run the report, it shows the commission calculation for each sale.