function loadAttendance(&$lNumARecs, &$aTableRecs)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $setAFieldFun, $loadAFieldFun;
     $ccprog = new mcprograms();
     $lNumARecs = 0;
     $aTableRecs = array();
     // load aTable default fields
     $setAFieldFun($this, $this->lAttendanceTableID);
     $this->setSingleField($this->lAttendanceTableID, 'lActivityDDL', 'Activity', $this->afields);
     $this->cschema->aTableFieldInfo($this->afields, $this->atable->strFieldPrefix);
     $strSelect = $this->strSelectsViaFields($this->afields);
     if ($this->sqlOrderATable == '') {
         $strOrder = ' ' . $this->strATableFNPrefix . '_dteAttendance, ' . $this->strATableFNPrefix . '_lKeyID ';
     } else {
         $strOrder = $this->sqlOrderATable;
     }
     $ccprog->buildCProgDDLSql($this->afields, $strDDLInner, $strDDLSelect, $lCntDDLFields, $ddlConsolidated);
     if ($strDDLSelect != '') {
         $strDDLSelect = ', ' . $strDDLSelect;
     }
     $sqlStr = "SELECT\n            {$strSelect}\n            {$strDDLSelect},\n\n            " . $this->strATableFNPrefix . "_lOriginID, " . $this->strATableFNPrefix . "_lLastUpdateID,\n\n            UNIX_TIMESTAMP(" . $this->strATableFNPrefix . "_dteOrigin)     AS dteOrigin,\n            UNIX_TIMESTAMP(" . $this->strATableFNPrefix . "_dteLastUpdate) AS dteLastUpdate,\n            uc.us_strFirstName AS strUCFName, uc.us_strLastName AS strUCLName,\n            ul.us_strFirstName AS strULFName, ul.us_strLastName AS strULLName\n\n         FROM {$this->strAttendanceTable}\n            {$strDDLInner}\n            INNER JOIN admin_users   AS uc ON uc.us_lKeyID=" . $this->strATableFNPrefix . "_lOriginID\n            INNER JOIN admin_users   AS ul ON ul.us_lKeyID=" . $this->strATableFNPrefix . "_lLastUpdateID\n\n         WHERE NOT " . $this->strATableFNPrefix . "_bRetired {$this->sqlWhereATable}\n         ORDER BY {$strOrder}";
     $query = $this->db->query($sqlStr);
     $lNumARecs = $query->num_rows();
     if ($lNumARecs > 0) {
         $idx = 0;
         foreach ($query->result() as $row) {
             $aTableRecs[$idx] = new stdClass();
             $arec =& $aTableRecs[$idx];
             $arec->lActivityDDL = (int) $row->lActivityDDL;
             $arec->lKeyID = (int) $row->lKeyID;
             $arec->lClient = (int) $row->lForeignKey;
             $arec->bRetired = (bool) $row->bRetired;
             $arec->lEnrollID = (int) $row->lEnrollID;
             $arec->dteMysqlAttendance = $row->dteAttendance;
             $arec->dteAttendance = dteMySQLDate2Unix($arec->dteMysqlAttendance);
             $arec->dDuration = (double) $row->dDuration;
             $arec->strCaseNotes = $row->strCaseNotes;
             $arec->lOriginID = (int) $row->lOriginID;
             $arec->lLastUpdateID = (int) $row->lLastUpdateID;
             $arec->dteOrigin = (int) $row->dteOrigin;
             $arec->dteLastUpdate = (int) $row->dteLastUpdate;
             $arec->ucstrFName = $row->strUCFName;
             $arec->ucstrLName = $row->strUCLName;
             $arec->ulstrFName = $row->strULFName;
             $arec->ulstrLName = $row->strULLName;
             // load the ddl values
             if ($lCntDDLFields > 0) {
                 foreach ($ddlConsolidated as $d) {
                     $strFN = $d->strFieldNameUser;
                     $arec->{$strFN} = $row->{$strFN};
                 }
             }
             // custom attendance fields
             $loadAFieldFun($arec, $row);
             ++$idx;
         }
     }
 }