function add($id, $nombre, $copiarde = false)
 {
     $copiarde = setNoMenorQueCero($copiarde);
     $xP = new cCreditos_tipoconvenio();
     if ($copiarde > 0) {
         $xP->setData($xP->query()->initByID($copiarde));
     }
     $xP->idcreditos_tipoconvenio($id);
     $xP->tipo_convenio($id);
     $xP->descripcion_tipoconvenio($nombre);
     $xP->descripcion_completa($nombre);
     $id = $xP->query()->insert()->save();
     if ($id === false) {
         $this->mMessages .= "ERROR\tError al agregar el Producto {$id} con nombre {$nombre}, clonado de {$copiarde} \r\n";
     } else {
         $this->mMessages .= "OK\tAgregado el Producto {$id} con nombre {$nombre}, clonado de {$copiarde} \r\n";
     }
     return $id === false ? false : true;
 }
} else {
    if ($action == MQL_MOD) {
        //iniciar
        $clave = parametro($xTabla->getKey(), null, MQL_INT);
        if ($clave != null) {
            $xTabla->setData($xTabla->query()->initByID($clave));
            $xTabla->setData($_REQUEST);
            $xTabla->query()->update()->save($clave);
        }
    } else {
    }
}
$xFRM = new cHForm("frmcreditos_tipoconvenio", "../frmcreditos/creditos.productos.frm.php?id={$clave}&tema={$opcion}&action={$step}");
//setLog("../frmcreditos/creditos.productos.frm.php?action=$step");
$xFRM->addSubmit();
$xFRM->OHidden("idcreditos_tipoconvenio", $xTabla->idcreditos_tipoconvenio()->v(), "TR.Clave");
$xFRM->OHidden("tipo_convenio", $xTabla->tipo_convenio()->v(), "TR.Clave");
$xTxt = new cHText();
switch ($opcion) {
    case "contablecapital":
        $xTxt->addEvent("jsKeyAction(event, this)", "onkeyup");
        $xTxt->setProperty("list", "listadocuentas");
        $xTxt->setProperty("autocomplete", "off");
        $xFRM->addFootElement("<datalist id='listadocuentas'></datalist>");
        $xFRM->addFootElement("<input type='hidden' id='idcuenta' />");
        $xFRM->addHElem($xTxt->get("contable_cartera_vigente", $xTabla->contable_cartera_vigente()->v(), "TR.Cuenta Contable para Capital de Cartera vigente"));
        $xFRM->addHElem($xTxt->get("contable_cartera_vencida", $xTabla->contable_cartera_vencida()->v(), "TR.Cuenta Contable para Capital de Cartera vencida"));
        $xFRM->addHElem($xTxt->get("capital_vencido_normal", $xTabla->capital_vencido_normal()->v(), "TR.capital vencido normal"));
        $xFRM->addHElem($xTxt->get("capital_vencido_reestructurado", $xTabla->capital_vencido_reestructurado()->v(), "TR.capital vencido reestructurado"));
        $xFRM->addHElem($xTxt->get("capital_vencido_renovado", $xTabla->capital_vencido_renovado()->v(), "TR.capital vencido renovado"));
        $xFRM->addHElem($xTxt->get("capital_vigente_normal", $xTabla->capital_vigente_normal()->v(), "TR.capital vigente normal"));