function writeUF_TableRow(&$clsUF, &$clsUTable)
{
    //---------------------------------------------------------------------
    //
    //---------------------------------------------------------------------
    global $gbDev;
    $lTableID = $clsUTable->lKeyID;
    if ($gbDev) {
        $strLinkDebug = '  ' . strLinkDebug_Fields($clsUTable->lKeyID, 'Internal field details', true);
    } else {
        $strLinkDebug = '';
    }
    $bHidden = $clsUTable->bHidden;
    if ($bHidden) {
        $strHideStyle = 'color: #999; font-style: italic; ';
        $strHideLabel = ' (hidden)';
        $strFieldLink = '';
    } else {
        $strHideStyle = $strHideLabel = '';
        $strFieldLink = strLinkView_UFFields($lTableID, 'View fields', true, ' id="fieldView_' . $lTableID . '" ') . ' ';
    }
    $lTableID = $clsUTable->lKeyID;
    if ($clsUTable->bMultiEntry) {
        $strMLabel = 'Multiple-entry';
        if ($clsUTable->bReadOnly) {
            $strMLabel .= ' <i>(read only)</i>';
        }
    } else {
        $strMLabel = 'Single-entry';
    }
    echoT('<tr>
           <td class="enpRpt" style="' . $strHideStyle . '" nowrap>' . "\n" . str_pad($lTableID, 5, '0', STR_PAD_LEFT) . '&nbsp;' . strLinkView_UFTable($lTableID, 'View table record', true, '') . '&nbsp;&nbsp;' . strLinkClone_PTable($lTableID, 'Clone', true) . '
           </td>
           <td class="enpRpt" style="' . $strHideStyle . '">' . "\n" . strLinkEdit_UFTable($lTableID, $clsUF->enumTType, 'Edit table', true, '') . '
           </td>
           <td class="enpRpt" width="30%" style="' . $strHideStyle . '">
              <b>' . nl2br(htmlspecialchars($clsUTable->strUserTableName)) . $strHideLabel . '</b>
           </td>
           <td class="enpRpt" style="text-align: left; ' . $strHideStyle . '" width="25%">' . "\n" . $strMLabel . '
           </td>
           <td class="enpRpt" style="text-align: right; ' . $strHideStyle . '" width="10%">' . "\n" . $strFieldLink . $clsUTable->lNumFields . $strLinkDebug . '
           </td>
           <td class="enpRpt" width="40%" style="' . $strHideStyle . '">' . "\n" . nl2br(htmlspecialchars($clsUTable->strDescription)) . '
           </td>
        </tr>');
}
     $bCP = true;
     $strLinkUTable = '';
 } elseif (!is_null($ut->lCProgAID)) {
     $strPName = '<b>' . htmlspecialchars($ut->strCProgAName) . '</b>';
     $strCPID = str_pad($ut->lCProgAID, 5, '0', STR_PAD_LEFT) . '&nbsp;' . strLinkView_CProgram($ut->lCProgAID, 'View client program', true);
     $strCPE = '-';
     $strCPA = '<b>X</b>';
     $bCP = true;
     $strLinkUTable = '';
 } else {
     $strPName = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-';
     $strCPID = '-';
     $strCPE = '-';
     $strCPA = '-';
     $bCP = false;
     $strLinkUTable = '&nbsp;' . strLinkView_UFTable($ut->lKeyID, 'View table', true);
 }
 echoT('
      <tr class="makeStripe">
         <td class="enpRpt" style="text-align: center; width: 20pt; ' . $strStyleHidden . '">' . ($idx + 1) . '
         </td>
         <td class="enpRpt" style="text-align: left; width: 40pt; ' . $strStyleHidden . '">' . str_pad($ut->lKeyID, 5, '0', STR_PAD_LEFT) . $strLinkUTable . '
         </td>
         <td class="enpRpt" style="text-align: center; width: 20pt; ' . $strStyleHidden . '">' . $strLinkFields . '
         </td>
         <td class="enpRpt" style="text-align: left; width: 100pt; ' . $strStyleHidden . '">' . date('Y-m-d H:i:s', $ut->dteOrigin) . '
         </td>
         <td class="enpRpt" style="text-align: center; width: 50pt; ' . $strStyleHidden . '">' . $ut->strDataTableName . '
         </td>
         <td class="enpRpt" style="text-align: left; width: 160pt; ' . $strStyleHidden . '">' . (!$bCP ? '<b>' : '') . htmlspecialchars($ut->strUserTableName) . (!$bCP ? '</b>' : '') . '
         </td>