$mGridKeyField = "idcreditos_tipoconvenio";
//Nombre del Campo Unico
$mGridKeyEdit = false;
//Es editable el Campo
$mGridTable = "creditos_tipoconvenio";
//Nombre de la tabla
$mGridSQL = "idcreditos_tipoconvenio, descripcion_tipoconvenio, capital_vencido_renovado, capital_vencido_reestructurado, capital_vencido_normal, capital_vigente_renovado, capital_vigente_reestructurado, capital_vigente_normal, interes_vencido_renovado, interes_vencido_reestructurado, interes_vencido_normal, interes_vigente_renovado, interes_vigente_reestructurado, interes_vigente_normal, interes_cobrado, moratorio_cobrado";
$mGridWhere = "";
//layout: [Campo] => Titulo, Editable, Tamaño
$mGridProp = array();
//Obtiene el Grid de la Tabla de general_description
if ($mGridTable != "") {
    $xTs = new cTableStructure($mGridTable);
    $xAF = explode(",", $mGridSQL);
    foreach ($xAF as $key => $value) {
        $DField = $xTs->getInfoField(trim($value));
        $mGridProp[$DField["campo"]] = $DField["titulo"] . ",true," . $DField["longitud"];
    }
    unset($xAF, $key, $value);
}
//===========================================================================================================
$_SESSION["grid"]->SetSqlSelect($mGridSQL, $mGridTable, $mGridWhere);
$_SESSION["grid"]->SetUniqueDatabaseColumn($mGridKeyField, $mGridKeyEdit);
$_SESSION["grid"]->SetTitleName($mGridTitulo);
$_SESSION["grid"]->SetEditModeAdd(false);
$_SESSION["grid"]->SetDatabaseColumnEditable("descripcion_tipoconvenio", false);
$_SESSION["grid"]->SetDatabaseColumnName("descripcion_tipoconvenio", "Tipo de Convenio");
//interes_vencido_renovado, interes_vencido_reestructurado, interes_vencido_normal, interes_vigente_renovado, interes_vigente_reestructurado, interes_vigente_normal
$_SESSION["grid"]->SetDatabaseColumnName("interes_cobrado", "Interes Cobrado");
$_SESSION["grid"]->SetDatabaseColumnName("moratorio_cobrado", "Moratorios Cobrados");
$_SESSION["grid"]->SetDatabaseColumnName("capital_vencido_normal", "Capital Vigente");
 function compileFromSQL($sql)
 {
     $arrWithTilde = array("varchar" => "varchar", "date" => "date", "text" => "text", "tinytext" => "tinytext", "enum" => "enum", "blob" => "blob", "string" => "string", "longtext" => "longtext", "datetime" => "datetime", "time" => "time");
     $arrTypesPHP = array("enum" => "string", "varchar" => "string", "tinytext" => "string", "float" => "float", "decimal" => "float", "int" => "integer", "integer" => "integer", "text" => "string", "longtext" => "string", "blob" => "string", "tinyint" => "integer", "datetime" => "string", "date" => "string", "time" => "string");
     $arrTypesNum = array("float" => "float", "decimal" => "float", "int" => "integer", "integer" => "integer", "tinyint" => "integer");
     //$IniMvtos		= strpos($texto_contrato, "---");
     $this->addCSS("../css/xml.css", "print");
     $this->addCSS("../css/xml.css", "screen");
     $this->getCampos($sql);
     //obtener info del field
     foreach ($this->mAFieldN as $clave => $valor) {
         //propiedades extras
         $mNumFormat = "";
         $mAlin = "ALIGN='CENTER'";
         $xTInfo = new cTableStructure($this->mAFieldD[$clave]);
         $IField = $xTInfo->getInfoField($valor);
         $FTipo = strtolower(trim($IField["tipo"]));
         $FNombre = $IField["campo"];
         if ($arrTypesPHP[$FTipo] == "float") {
             $mNumFormat = "NUMBERFORMATEX='2'";
         }
         if (isset($arrTypesNum[$FTipo])) {
             $mAlin = "ALIGN='LEFT'";
         }
         /**/
         $this->mAGrpField[] = "<COL  TYPE='FIELD' {$mAlin}  CELLCLASS='FIELDS' {$mNumFormat} >" . $this->mAFieldT[$clave] . "</COL>\r\n";
         $this->mAGrpTit[] = "<COL ALIGN='CENTER'  CELLCLASS='GROUP_HEADER' >" . strtoupper($this->mAFieldT[$clave]) . "</COL>\r\n";
     }
 }