Hi all,
I'm looking to build a dashboard screen that will show my staff's stats, and refresh every so often. However, in building my test screen, I'm already seeing a huge drain on resources through pulling multiple XResultSetSearches.
Here's my code for just one staff member below. If I go along this path, I'll be running about 60 XResultSet searches every refresh.
Does anyone have any ideas on how I could streamline this, before I develop the report much further?
Thanks!
#include "sbasic_include.sbas"
var vButtonOn as int
var vRSHandle as int
var vNoOfRecords as int
var vLoop as int
var vMTDRange as string
var vPDCRange as string
vMTDRange = MonthStart + ".." + @serverdate()
vPDCRange = (@serverdate()+1) + ".." + MonthEnd
if rCol1 <>""
{
rColName1 = @xlookup(@FN, rCol1,"Staff Screen!StaffRef", "StaffName")
rColDaily1 = rColTarget1 / Days
// ===============
// Figure Out MTD
// ===============
vRSHandle = @XResultSetSearch(@FN, "Debtors!Payments", 0, 2, "!PmtColl=" + rCol1, "!PmtDate=" + vMTDRange)
if(vRSHandle > -1)
{
rColMTD1 = 0
vNoOfRecords = @XResultSetTotal(vRSHandle)
for vLoop = 1 to vNoOfRecords
XResultSetCurrentPosition(vRSHandle, vLoop)
rColMTD1 = rColMTD1 + @tomoney(@XResultSetValue(vRSHandle, "PmtComHere")) + @tomoney(@XResultSetValue(vRSHandle, "PmtComDir"))
next
XResultSetClose(vRSHandle)
}
// ===============
// Figure Out PDC
// ===============
vRSHandle = @XResultSetSearch(@FN, "Debtors!Payments", 0, 2, "!PmtColl=" + rCol1, "!PmtDate=" + vPDCrange)
if(vRSHandle > -1)
{
rColPDC1 = 0
vNoOfRecords = @XResultSetTotal(vRSHandle)
for vLoop = 1 to vNoOfRecords
XResultSetCurrentPosition(vRSHandle, vLoop)
rColPDC1 = rColPDC1 + @tomoney(@XResultSetValue(vRSHandle, "PmtComHere")) + @tomoney(@XResultSetValue(vRSHandle, "PmtComDir"))
next
XResultSetClose(vRSHandle)
}
}