The DataEngine.BeforeResultSetRetrieved script allows you to perform any necessary tasks just before the result set is retrieved from the database.

You can access the running report object through the global variable Report.

Parameters
A reference to the Stonefield Query Application object and the SQL statement Stonefield Query created for the report.

Return Value
True if the result set retrieval should continue or False if not.

Example
Suppose a report needs an additional calculation done before the result set is retrieved from the database. The result of this calculation could be stored in a property of the Application object that a Select script for a table uses.

Visual FoxPro

lparameters toApplication as SQApplication, tcSelect
local loDatabase as Database, lcSelect, llReturn
loDatabase = toApplication.DataEngine.Databases.GetMainDatabase()
lcSelect = 'select TAXRATE from CONSTANTS'
llReturn = not empty(loDatabase.ExecuteSQLStatement(lcSelect, ;
  '', 'CONSTANTS'))
if llReturn
  toApplication.AddProperty('TaxRate', CONSTANTS.TAXRATE)
endif
return llReturn

VBScript

function Main(Application, SelectStatement)
dim Database, XMLDOM
set Database = Application.DataEngine.Databases.GetMainDatabase()
SelectStmt = "select TAXRATE from CONSTANTS"
Results = Database.ExecuteSQLStatement(SelectStmt)
set XMLDOM = createobject("MSXML.DOMDocument")
XMLDOM.ASync = False
XMLDOM.LoadXML(Results)
TaxRate = XMLDOM.selectSingleNode("/DataSet/_resultset/taxrate").Text
Application.AddProperty("TaxRate", TaxRate)
Main = True
end function

JavaScript

function Main(Application, SelectStatement) {
var Database, SelectStmt, Results, XMLDOM, TaxRate ;
Database = Application.DataEngine.Databases.GetMainDatabase() ;
SelectStmt = 'select TAXRATE from CONSTANTS' ;
Results = Database.ExecuteSQLStatement(SelectStmt) ;
XMLDOM = new ActiveXObject('MSXML.DOMDocument') ;
XMLDOM.ASync = false ;
XMLDOM.LoadXML(Results) ;
TaxRate = XMLDOM.selectSingleNode('/DataSet/_resultset/taxrate').Text ;
Application.AddProperty('TaxRate', TaxRate) ;
return true ;
}

C#

The method in this script must be named DataEngine_BeforeResultSetRetrieved.

public static bool DataEngine_BeforeResultSetRetrieved(SFQApplication sfqApplication, string selectStatement)
{	
  bool result = false;

  Database database = sfqApplication.DataEngine.Databases.GetMainDatabase();
  string selectStmt = "select TAXRATE from CONSTANTS";

  string resultSet = database.ExecuteSQLStatement(selectStmt);

  XmlDocument doc = new XmlDocument();
  doc.LoadXml(resultSet);

  XmlNode node = doc.SelectSingleNode("/DataSet/_resultset/@taxrate");

  if (node != null)
  {
    string taxRate = node.Value;
    sfqApplication.AddProperty("TaxRate", taxRate);

    result = true;
  }

  return result;
}

VB.NET

The method in this script must be named DataEngine_BeforeResultSetRetrieved.

public shared function DataEngine_BeforeResultSetRetrieved(sfqApplication as SFQApplication, selectStatement as string) as Boolean

  Dim result As Boolean = False

  Dim database As Database = sfqApplication.DataEngine.Databases.GetMainDatabase()
  Dim selectStmt As String = "select TAXRATE from CONSTANTS"

  Dim resultSet As String = database.ExecuteSQLStatement(selectStmt)

  Dim doc As XmlDocument = New XmlDocument()
  doc.LoadXml(resultSet)

  Dim node As XmlNode = doc.SelectSingleNode("/DataSet/_resultset/@taxrate")

  If (Not node Is Nothing) Then
    Dim taxRate As String = node.Value
    sfqApplication.AddProperty("TaxRate", taxRate)

    result = True
  End If

  Return result

End Function

See also

DataEngine Object | DataEngine.AfterResultSetRetrieved | Scripts