![]() |
Documentación GVHIDRA 3.1.5
|
Definición en la línea 50 del archivo gvHidraForm_DB.php.
addConstante | ( | $ | nombre, |
$ | valor | ||
) |
Funcin encargada de almacenar constantes que se aaden al DBResult que se muestra en un panel. Es importante tener en cuenta que no se pueden aadir constantes en consultas con el operador SQL DISTINCT afectando a todo la tupla.
nombre | nombre que se le da a la constante |
valor | valor que va a tomar la constante |
Definición en la línea 981 del archivo gvHidraForm_DB.php.
{ //La cadena que tiene que guardar es del tipo '$valor' as "$nombre" if(isset($nombre)&&isset($valor)) $this->str_SelectConstantes.= ", "." '$valor' as \"$nombre\""; }//Fin de addConstante
addList | ( | $ | objLista | ) |
Funcin encargada de indicar a Negocio que existe una definicin de una nueva Lista
obj_lista | objetivo de tipo gvHidraList. |
Reimplementado de gvHidraForm.
Definición en la línea 942 del archivo gvHidraForm_DB.php.
{ $nombreClase = get_class($this); if(!is_object($objLista)) { IgepSession::borraPanel($nombreClase); throw new Exception('Error: Problema al adjuntar la lista '.$objLista->getName()); } if($nombreClase=='') { IgepSession::borraPanel($nombreClase); throw new Exception('Error: Problema al adjuntar la lista '.$objLista->getName().'. Antes de definir las listas debe llamar al constructor de gvHidraForm_DB.'); } if(!$objLista->hayDSN()) $objLista->setDSN($this->getDSN()); //Almacenamos la lista en la estructura interna y en los datos por defecto. $this->v_listas[$objLista->getName()] = $objLista; $resultadoLista = $objLista->construyeLista($this->getDefaultData()); $this->addDefaultData($objLista->getName(), $resultadoLista); //Guardamos la informacion de la lista en la estructura dataTypes. $this->v_descCamposPanel[$objLista->getName()]['multiple'] = $objLista->getMultiple(); $this->v_descCamposPanel[$objLista->getName()]['radio'] = $objLista->getRadio(); $this->v_descCamposPanel[$objLista->getName()]['size'] = $objLista->getSize(); //En el caso de los datalles puede darse el caso de que no pasemos por phrame (refreshDetail), y que no ejecutemos el perform. Por eso lo metemos en la SESSION. $datosPreInsertados = IgepSession::dameVariable($nombreClase,'v_preInsercionDatos'); $datosPreInsertados[$objLista->getName()]=$resultadoLista; IgepSession::guardaVariable($nombreClase,'v_preInsercionDatos',$datosPreInsertados); }//Fin de addList
addMatching | ( | $ | campoTpl, |
$ | campoBD, | ||
$ | tablaBD | ||
) |
Funcin encargada de indicar a Negocio la correspondencia de los campos de la TPL con los campos de la BD. En principio slo deben de indicarse los campos que se almacenarn en la BD.
Reimplementado en gvHidraTreePattern.
Definición en la línea 919 del archivo gvHidraForm_DB.php.
{ //Comprobamos que la tabla est en nuestra lista de tablas if(!in_array($tablaBD,$this->v_nombreTablas)) { IgepSession::borraPanel(get_class($this)); throw new Exception('Error de Programacin: Se ha definido un Matchig que contiene la tabla '.$tablaBD.' de la BD. Esta tabla no est en la lista de tablas de la clase. Compruebe que la definicin de las SELECT est antes que el matching'); } //Comprobamos que exista una referencia a ese campo en una SELECT /* $cond1 = strpos($this->str_select,$campoTpl); $cond2 = strpos($this->str_selectEditar,$campoTpl); if (($cond1===false) and ($cond2===false)) throw new Exception("Error de Programacin: Ha incluido el campo $campoTpl que no tiene ninguna referencia en las SELECT de la clase. Compruebe que la definicin de tablas est antes que el matching"); */ $this->matching[$campoTpl] = array('campo'=>$campoBD,'tabla'=>$tablaBD); }//Fin de addMatching
calcularSecuencia | ( | $ | tabla, |
$ | campoSecuencia, | ||
$ | camposDependientes, | ||
$ | valorInicial = 1 |
||
) |
Este mtodo calcula una secuencia compuesta por varios campos de la misma tabla.
tabla | string nombre de la tabla de la BD |
campoSecuencia | string campo del que se quiere obtener la secuencia |
camposDependientes | array contiene el nombre de los campos de los cuales va a depender la secuencia y sus valores. Estructura [nombreBD] = valor |
valorInicial | integer Fija el valor inicial que devuelve calcularSecuencia en el caso de que no exstan tuplas en la tabla el valor por defecto es 1 |
Definición en la línea 892 del archivo gvHidraForm_DB.php.
{ $res = $this->obj_conexion->calcularSecuencia($tabla,$campoSecuencia,$camposDependientes, $valorInicial); if($this->obj_errorNegocio->hayError()) { $this->showMensaje('IGEP-12',$this->obj_errorNegocio->getDescErrorDB()); $this->obj_errorNegocio->limpiarError(); return -1; } else { if (($res=='')||($res==null)||(!isset($res))) return $valorInicial; else return ($res); } }//Fin de funcion calcularSecuencia
calcularSecuenciaBD | ( | $ | nombreSecuencia | ) |
Este mtodo devuelve el valor de una secuencia programada en la base de datos para la conexin del panel
nombreSecuencia | string nombre de la secuencia en la BD |
Definición en la línea 872 del archivo gvHidraForm_DB.php.
{ $res = $this->obj_conexion->calcularSecuenciaBD($nombreSecuencia); if($this->obj_errorNegocio->hayError()) { $this->showMensaje('IGEP-12',$this->obj_errorNegocio->getDescErrorDB()); $this->obj_errorNegocio->limpiarError(); return -1; } else return $res; }
consultar | ( | $ | str_consulta, |
$ | tipo = NULL |
||
) |
Funcin que realiza una consulta a la Base de datos con la conexin actual Es la funcin que el programador debe gastar para realizar una consulta SQL
string | que contiene la consulta. |
array | vector que indica si queremos convertir los datos |
Definición en la línea 997 del archivo gvHidraForm_DB.php.
{ if(!isset($this->obj_errorNegocio)){ global $g_error; $g_error = new IgepError(); $this->obj_errorNegocio = & $g_error; } if (!is_null($tipo)) { if (!array_key_exists('DATATYPES',$tipo)) { // se supone que las columnas son las del panel $tipo['DATATYPES'] = $this->v_descCamposPanel; } } $res = $this->obj_conexion->consultar($str_consulta,$tipo); if($this->obj_errorNegocio->hayError()){ //La consulta es erronea. $this->obj_errorNegocio->setMsjError($this->obj_mensaje =new IgepMensaje()); return -1; } return $res; }
createArrayCRUD | ( | $ | m_datosTpl | ) | [private] |
Definición en la línea 1085 del archivo gvHidraForm_DB.php.
{ //Creamos matriz de datos adaptada para las operaciones if(count($m_datosTpl)==0) return array(); $m_datos = array(); foreach($m_datosTpl as $index =>$row){ foreach($row as $field => $value){ //Comprobamos si el campo tiene matchig if(isset($this->matching[$field])){ $tipo = ($this->v_descCamposPanel[$field]['tipo']==''? TIPO_CARACTER: $this->v_descCamposPanel[$field]['tipo']); $this->obj_conexion->prepararOperacion($value,$tipo); //Construimos el array agrupando por tablas $m_datos[$this->matching[$field]['tabla']][$index][$this->matching[$field]['campo']] = $value; } } } return $m_datos; }
getChangeFilterPostInsert | ( | ) | [private] |
Definición en la línea 588 del archivo gvHidraForm_DB.php.
{
return $this->changeFilterPostInsert;
}
getConnection | ( | ) |
Devuelve el objeto conexin al que se est conectado.
public
Definición en la línea 248 del archivo gvHidraForm_DB.php.
{ return $this->obj_conexion; }//Fin de getConnection
getDSN | ( | ) |
Definición en la línea 235 del archivo gvHidraForm_DB.php.
{ if(!empty($this->_dsnInterno)) return $this->_dsnInterno; else return ''; }
getFilterForEdit | ( | ) |
Permite obtener el filtro actual que se est utilizando sobre la EditQuery.
Devuelve la construccin que ha realizado el FW tras ejecutarse la accion buscar. Es el WHERE que obtiene los registros que se muestran en ese momento en el panel EditQuery
none |
Definición en la línea 629 del archivo gvHidraForm_DB.php.
{
return $this->str_whereFiltroEdicion;
}
getFilterForSearch | ( | ) |
Permite obtener el filtro actual que se est utilizando sobre la SearchQuery.
Devuelve la construccin que ha realizado el FW tras ejecutarse la accion buscar. Es el WHERE que obtiene los registros que se muestran en ese momento en el panel SearhQuery
none |
Definición en la línea 602 del archivo gvHidraForm_DB.php.
{
return $this->str_whereFiltro;
}
getTipoConsulta | ( | ) |
Mtodo que sirve para obtener el tipo de consulta del panel. Las posibilidades son: (0) Se contruye la Where igualando los campos a los valores. (1) Se construye con like y comodines para cada campo. (2) Por defecto, se contruye con like slo si el usuario ha especificado comodines.
Definición en la línea 1080 del archivo gvHidraForm_DB.php.
{
return $this->int_tipoConsulta;
}
gvHidraForm_DB | ( | $ | dsn = '' , |
$ | nombreTablas = null |
||
) |
constructor. Generar a partir de los parmetros que se le pasen una conexin a al base de datos y un array de manejadores de tablas (una por cada una de las que mantenga el panel hijo).
Definición en la línea 186 del archivo gvHidraForm_DB.php.
{ //Contiene la coleccion de tablas que mantiene: //Generalmente una. Tambin pueden ser varias o ninguna. if(is_array($nombreTablas)) $this->v_nombreTablas= $nombreTablas; elseif($nombreTablas!==null) $this->v_nombreTablas = array($nombreTablas); //Guardamos la referencia del dsn principal $this->_dsnInterno = $dsn; //Guardamos la referencia al tipo de consulta $this->int_tipoConsulta = ConfigFramework::getConfig()->getQueryMode(); //Creamos la instancia de IgepSmarty que controla el Js $this->obj_IgSmarty = new IgepSmarty(); //Generamos la instancia completa $this->regenerarInstancia($dsn); }//Fin de constructor
limpiarInstancia | ( | ) |
Mtodo que limpia de variables inncesarias el objeto actual antes de guardarlo en la SESSION private
Reimplementado de gvHidraForm.
Definición en la línea 856 del archivo gvHidraForm_DB.php.
{ //Esta funcin se encargar de liberar de carga la instancia de la clase antes de ponerla en la SESSION parent::limpiarInstancia(); unset($this->obj_conexion->obj_conexion); unset($this->obj_conexion->obj_errorConexion); unset($this->v_tablas); unset($this->str_SelectConstantes); }
operar | ( | $ | str_operacion | ) |
Funcin que realiza una operacin SQL en la Base de datos con la conexin actual Es la funcin que el programador debe gastar para realizar una operacin SQL
string | que contiene la operacin a realizar. |
Definición en la línea 1025 del archivo gvHidraForm_DB.php.
{ if(!isset($this->obj_errorNegocio)){ global $g_error; $g_error = new IgepError(); $this->obj_errorNegocio = & $g_error; } $this->obj_conexion->operar($str_operacion); if($this->obj_errorNegocio->hayError()){ //La consulta es erronea. $this->obj_errorNegocio->setMsjError($this->obj_mensaje =new IgepMensaje()); return -1; } return 0; }
postBorrar | ( | ) |
Este mtodo es el mtodo abstracto que ofrece Igep para realizar operaciones una vez realiza la accin de borrar. Todo lo que se realice en este evento est incluido en la TRANSACTION por lo que podr cancelarse la operacin. Su utilizacin pude ser:
IMPORTANTE:: Si se quiere interrumpir la ejecucin del borrado, el programador debe utilizar el mtodo setError para indicar que se ha producido un error.
Definición en la línea 813 del archivo gvHidraForm_DB.php.
{
return 0;
}
postInsertar | ( | $ | objDatos | ) |
Este mtodo es el mtodo abstracto que ofrece Igep para realizar operaciones una vez realiza la accin de insertar. Todo lo que se realice en este evento est incluido en la TRANSACTION por lo que podr cancelarse la operacin. Su utilizacin pude ser:
IMPORTANTE:: Si se quiere interrumpir la ejecucin de la Insercion, el programador debe utilizar el mtodo setError para indicar que se ha producido un error.
Definición en la línea 661 del archivo gvHidraForm_DB.php.
{
return 0;
}
postModificar | ( | $ | m_datos | ) |
Este mtodo es el mtodo abstracto que ofrece Igep para realizar operaciones una vez realiza la accin de modificar. Todo lo que se realice en este evento est incluido en la TRANSACTION por lo que podr cancelarse la operacin. Su utilizacin pude ser:
IMPORTANTE:: Si se quiere interrumpir la ejecucin de la modificacin, el programador debe utilizar el mtodo setError para indicar que se ha producido un error.
Definición en la línea 757 del archivo gvHidraForm_DB.php.
{
return 0;
}
prepareDataSource | ( | ) | [final] |
Mtodo que construye la SQL que se lanzara posteriormente para obtener los datos
Reimplementado de gvHidraForm.
Definición en la línea 284 del archivo gvHidraForm_DB.php.
{ //Si no tiene consulta, ya hemos ejecutado el preBuscar y acabamos //Sino, si el retorno es distinto de 0 tambien acabamos if((empty($this->str_select))) { return 0; } $m_datosFW = $this->comunica->getAllTuplas(); //Creamos matriz de datos preparados para realizar la Query $m_datos = array(); if(is_array($m_datosFW) and count($m_datosFW)>0) { $this->obj_conexion->prepararOperacion($m_datosFW,$this->v_descCamposPanel); $undiacritic = array(); foreach($m_datosFW as $index => $row){ foreach($row as $field => $value){ if(isset($this->matching[$field])){ $campo = $this->matching[$field]['campo']; $tabla = $this->matching[$field]['tabla']; //Comprobamos que el valor sea distinto de vacio para poder darle valor if($value!='') { $m_datos[$index][$tabla.'.'.$campo] = $value; //Si el tipo es string es anyadimos el undiacritic (empty($this->v_descCamposPanel[$field]) or $this->v_descCamposPanel[$field]['tipo']==TIPO_CARACTER)? $undiacritic[$tabla.'.'.$campo] = true: $undiacritic[$tabla.'.'.$campo] = false; } } } } } $str_where = ''; if (isset($m_datos)) { $tipo = $this->getTipoConsulta(); foreach($m_datos as $v_datos) { $str_where = $this->obj_conexion->construirWhereBusqueda($v_datos,$undiacritic,$str_where,$tipo); }//Fin de foreach } //Mezclamos las dos partes de la where $str_where = $this->obj_conexion->combinarWhere(array($str_where,$this->str_where,$this->str_whereAdicional)); $this->str_whereAdicional = ''; //Almacenamos la ltima where realizada $this->str_whereFiltro = $str_where; //Si tenemos constantes se las concatenamos a la SELECT if($this->str_SelectConstantes!=''){ $posFrom = strpos(strtolower($this->str_select),' from'); $this->str_select = substr_replace($this->str_select,$this->str_SelectConstantes,$posFrom,0); } }
prepareDataSourceDetails | ( | $ | detail, |
$ | masterData | ||
) | [final] |
Mtodo que se encarga de preparar la fuente de datos de un detalle
object | detail referencia a la CM que se quiere recargar |
array | masterData matriz de datos del maestro |
Reimplementado de gvHidraForm.
Definición en la línea 361 del archivo gvHidraForm_DB.php.
{ if(!empty($detail->str_select)){ $v_datos = array(); foreach ($this->v_hijos[$this->panelDetalleActivo] as $padre => $hijo){ $filapadre = array_keys($masterData); $tablahijo = $detail->matching[$hijo]['tabla']; $campohijo = $detail->matching[$hijo]['campo']; $campoConsultaHijo= $tablahijo.".".$campohijo; //Si es una lista le asignamos el valor del seleccionado if(is_array($masterData[$filapadre[0]][$padre])) $value = $masterData[$filapadre[0]][$padre]['seleccionado']; else $value = $masterData[$filapadre[0]][$padre]; //Lo guardamos en datos por defecto del detalle $detail->addDefaultData($hijo,$value); //Fijamos el valor $this->obj_conexion->prepararOperacion($value,$detail->v_descCamposPanel[$hijo]['tipo']); $v_datos[$campoConsultaHijo] = $value; } //Componemos la WHERE de la consulta. $str_where = $this->obj_conexion->construirWhere($v_datos,''); //Cuando no hay datos para el where dara error $str_where = $this->obj_conexion->combinarWhere(array($str_where,$detail->str_where)); $detail->str_whereFiltro = $str_where; } }
prepareDataSourceEdit | ( | ) | [final] |
Reimplementado de gvHidraForm.
Definición en la línea 412 del archivo gvHidraForm_DB.php.
{ if(empty($this->str_selectEditar)) return 0; $m_datosTpl = $this->comunica->getAlltuplas(); $hayCamposClave = count($this->v_pkForSearchQuery); $str_where = ''; //OJO: Transformar datos de formato FW a formato BD foreach($m_datosTpl as $indice=>$v_datos) { //Si hay campos clave solo crearemos el Where sobre los campos selecionados if($hayCamposClave>0) { $v_datosCP = array(); foreach($this->v_pkForSearchQuery as $campoTpl){ $campoBD = $this->matching[$campoTpl]['tabla'].'.'.$this->matching[$campoTpl]['campo']; //Controlamos que el campo que aadimos no sea vacio, en principio no es necesario, pero por si acaso if($v_datos[$campoTpl]!=''){ $this->obj_conexion->prepararOperacion($v_datos[$campoTpl],$this->v_descCamposPanel[$campoTpl]['tipo']); $v_datosCP[$campoBD] = $v_datos[$campoTpl]; } } $str_where = $this->obj_conexion->construirWhere($v_datosCP,$str_where); } else{ //Sino, crearemos el Where sobre todos los campos con matching $v_tupla = array(); foreach($v_datos as $campoTpl=>$value){ if(isset($this->matching[$campoTpl])){ $campoBD = $this->matching[$campoTpl]['tabla'].'.'.$this->matching[$campoTpl]['campo']; //Controlamos que el campo que aadimos no sea vacio if($value!=''){ $this->obj_conexion->prepararOperacion($v_datos[$campoTpl],$this->v_descCamposPanel[$campoTpl]['tipo']); $v_tupla[$campoBD] = $v_datos[$campoTpl]; } } } $str_where = $this->obj_conexion->construirWhere($v_tupla,$str_where); } } $str_where = $this->obj_conexion->combinarWhere(array("($str_where)",$this->str_whereEditar)); if($this->str_orderByEditar!='') $orderBy = ' ORDER BY '.$this->str_orderByEditar; $this->str_whereFiltroEdicion = $str_where.$orderBy; return 0; }
processDelete | ( | ) |
Reimplementado de gvHidraForm.
Definición en la línea 817 del archivo gvHidraForm_DB.php.
{ $this->obj_conexion->empezarTransaccion(); $m_datosTpl = $this->comunica->getAllTuplas(); $m_datos = $this->createArrayCRUD($m_datosTpl); //Si tenemos una tabla de mantenimiento if(isset($this->v_tablas)){ foreach($this->v_tablas as $tabla) { if(is_array($m_datos[$tabla->getTabla()])) { foreach ($m_datos[$tabla->getTabla()] as $v_datos) $tabla->borrar($v_datos); } } } //Lanzamos el postBorrar si no ha habido errores $errores = $this->obj_errorNegocio->hayError(); $retorno = 0; if(!$errores){ $this->comunica->reset(); $comunicaUsuario = new IgepComunicaUsuario($this->comunica,$this->v_preInsercionDatos,$this->v_listas); $retorno = $this->postBorrar($comunicaUsuario); } //Comprobacin de errores $errores = $this->obj_errorNegocio->hayError(); //Cancelamos la transaccion si hay errores o el return es -1 if($errores or $retorno==-1){ $this->obj_conexion->acabarTransaccion(1); return -1; } else { $this->obj_conexion->acabarTransaccion(0); return $retorno; } }
processInsert | ( | ) |
Mtodo encargado de realizar los INSERTs private
Reimplementado de gvHidraForm.
Definición en la línea 669 del archivo gvHidraForm_DB.php.
{ /*Empezamos la transaccin*/ $this->obj_conexion->empezarTransaccion(); $m_datosTpl = $this->comunica->getAllTuplas(); //Creamos matriz de datos adaptada para la insercion $m_datos = $this->createArrayCRUD($m_datosTpl); //Si tiene una tabla de mantenimiento if(!empty($this->v_tablas)){ foreach($this->v_tablas as $tabla) { $tabla->insertar($m_datos[$tabla->getTabla()]); } } //Realizamos la operacin de Post-Insercin si no hay errores. $errores = $this->obj_errorNegocio->hayError(); if(!$errores) { // Antes del postInsertar cambiamos el filtro de busqueda // Si el programador quiere, puede volver a poner el mismo en el postInsertar $hayInsercion = $this->comunica->hayDatos('insertar'); if($hayInsercion and !isset($this->str_nombrePadre)) { $tuplas = $m_datosTpl; $nuevasTuplas = ''; //Cambiamos el filtro tras insertar a no ser que el programador haya indicado lo contrario. if($this->getChangeFilterPostInsert()==true){ IgepDebug::setDebug(DEBUG_IGEP,'PostInsert: el FW cambia el filtro de bsqueda para que slo muestre los nuevos registros'); foreach($tuplas as $tupla){ //Renombramos la tupla para que aada el nombre de la tabla if(count($this->v_pkForEditQuery)) { foreach($this->v_pkForEditQuery as $campo) { $campoBD = $this->matching[$campo]['tabla'].'.'.$this->matching[$campo]['campo']; $this->obj_conexion->prepararOperacion($tupla[$campo],$this->v_descCamposPanel[$campo]['tipo']); $tuplaRenombrada[$campoBD]=$tupla[$campo]; } } else{ foreach($tupla as $campo=>$valor) { if (isset($this->matching[$campo])) { $campoBD = $this->matching[$campo]['tabla'].'.'.$this->matching[$campo]['campo']; $this->obj_conexion->prepararOperacion($valor,$this->v_descCamposPanel[$campo]['tipo']); $tuplaRenombrada[$campoBD]=$valor; } } } $unaTupla = $this->obj_conexion->construirWhere($tuplaRenombrada,''); if ($nuevasTuplas!='') $nuevasTuplas.=' OR '; $nuevasTuplas.= $unaTupla; } if($this->str_where!='') $wherePanel = $this->str_where.' AND '; $this->str_whereFiltro = ' WHERE '.$wherePanel.' ('.$nuevasTuplas.')'; } } $this->comunica->reset(); $comunicaUsuario = new IgepComunicaUsuario($this->comunica,$this->v_preInsercionDatos,$this->v_listas); $retorno = $this->postInsertar($comunicaUsuario); } /*Comprobacin de errores*/ $errores = $this->obj_errorNegocio->hayError(); //Cancelamos la transaccion si hay errores o el return es -1 if($errores or $retorno==-1){ $this->obj_conexion->acabarTransaccion(1); return -1; } else{ $this->obj_conexion->acabarTransaccion(0); return $retorno; } }
processUpdate | ( | ) |
proceso de actualizacion de los datos
Reimplementado de gvHidraForm.
Definición en la línea 764 del archivo gvHidraForm_DB.php.
{ /*Empezamos transaccin*/ $this->obj_conexion->empezarTransaccion(); //Si tenemos tabla de mantenimiento $m_datosTpl = $this->comunica->getAllTuplas(); $m_datosAntiguosTpl = $this->comunica->getAllTuplasAntiguas(); //Creamos matriz de datos adaptada para la insercion $m_datos = $this->createArrayCRUD($m_datosTpl); $m_datosant = $this->createArrayCRUD($m_datosAntiguosTpl); if(isset($this->v_tablas)){ foreach($this->v_tablas as $tabla) { if(is_array($m_datos[$tabla->getTabla()])) { foreach($m_datos[$tabla->getTabla()] as $indice => $v_datos) { $tabla->actualizar($v_datos, $m_datosant[$tabla->getTabla()][$indice]); } } } } //Lanzamos el postModificar si no ha habido errores $errores = $this->obj_errorNegocio->hayError(); if(!$errores){ $this->comunica->reset(); $comunicaUsuario = new IgepComunicaUsuario($this->comunica,$this->v_preInsercionDatos,$this->v_listas); $retorno = $this->postModificar($comunicaUsuario); } /*Comprobacin de errores*/ $errores = $this->obj_errorNegocio->hayError(); //Cancelamos la transaccion si hay errores o el return es -1 if($errores or $retorno==-1){ $this->obj_conexion->acabarTransaccion(1); return -1; } else { $this->obj_conexion->acabarTransaccion(0); return $retorno; } }
recoverData | ( | ) | [final] |
Mtodo que lanza la consulta SQL y retorna los datos
Reimplementado de gvHidraForm.
Definición en la línea 340 del archivo gvHidraForm_DB.php.
{ //Si tiene consulta la lanza if(!empty($this->str_select)){ //Aadimos el Order By if (isset($this->str_orderBy)) $orden = ' ORDER BY '.$this->str_orderBy; $str_where = $this->str_whereFiltro; //Aadimos el lmite de la consulta $limite = $this->obj_conexion->construirLimite($str_where,$this->int_limiteConsulta); //Realizamos la Consulta $consultaActual = $this->str_select.$str_where.$orden.$limite; $res = $this->obj_conexion->consultar($consultaActual); //Antes de transformar los datos comprobamos que no hay error de BD if($res!=-1) $this->obj_conexion->transform_BD2FW($res,$this->v_descCamposPanel); return $res; } else return array(); }
recoverDataDetail | ( | ) | [final] |
Mtodo que lanza la consulta SQL y retorna los datos del detalle
Reimplementado de gvHidraForm.
Definición en la línea 394 del archivo gvHidraForm_DB.php.
{ //Si tiene consulta la lanza if(!empty($this->str_select)){ //dejo el ordeby de momento if (isset($this->str_orderBy)) $orden = ' ORDER BY '.$this->str_orderBy; $str_where = $this->str_whereFiltro; //OJO: hay que transformar res a formato FW de formato BD $res = $this->obj_conexion->consultar($this->str_select.$str_where.$orden); //Antes de transformar los datos comprobamos que no hay error de BD if($res!=-1) $this->obj_conexion->transform_BD2FW($res,$this->v_descCamposPanel); return $res; } else return array(); }
recoverDataEdit | ( | ) | [final] |
Reimplementado de gvHidraForm.
Definición en la línea 457 del archivo gvHidraForm_DB.php.
{ if(!empty($this->str_selectEditar)){ $consultaActual = $this->str_selectEditar.$this->str_whereFiltroEdicion; $res = $this->obj_conexion->consultar($consultaActual); //Antes de transformar los datos comprobamos que no hay error de BD if($res!=-1) $this->obj_conexion->transform_BD2FW($res,$this->v_descCamposPanel); return $res; } return array(); }
regenerarInstancia | ( | $ | dsn = '' | ) |
Reimplementado en gvHidraTreePattern.
Definición en la línea 204 del archivo gvHidraForm_DB.php.
{ //Recuperamos la instancia de la clase Error. Si no existe (caso en el que venimos de Views), lo creamos global $g_error; //#NVI#VIEWS#: Cuando quietemos del views las llamadas a Negocio quitamos este if if(!isset($g_error)) $g_error = new IgepError(); $this->obj_errorNegocio = & $g_error; if($dsn=='') $dsn=$this->getDSN(); //Como es una instancia de una clase hija creamos la conexin. if($dsn!='') $this->obj_conexion = new IgepConexion($dsn); //Comprobacin de errores de la conexion. if($this->obj_errorNegocio->hayError()){ $v_descError = $this->obj_errorNegocio->getDescErrorDB(); $mensajeError = new IgepMensaje('IGEP-6',$v_descError); IgepSession::guardaVariable('principal','obj_mensaje',$mensajeError); return; } //Si es un form de mantenimiento, creamos las clases de persistencia if(count($this->v_nombreTablas)>0){ $i=0; foreach($this->v_nombreTablas as $tabla) { $this->v_tablas[$i] = new IgepPersistencia($this->obj_conexion->getPEARConnection(),$tabla); ++$i; } } //Creamos la instancia de IgepComunicacion $this->comunica = new IgepComunicacion($this->v_descCamposPanel); }
setFilterForEdit | ( | $ | newFilter | ) |
Permite cambiar el filtro actual que se est utilizando sobre la EditQuery.
Fija el WHERE que se utilizar para refrescar los datos del panel EditQuery
newFilter | string |
Definición en la línea 642 del archivo gvHidraForm_DB.php.
{ $this->str_whereFiltroEdicion = $newFilter; }
setFilterForSearch | ( | $ | newFilter | ) |
Permite cambiar el filtro actual que se est utilizando sobre la SearchQuery.
Fija el WHERE que se utilizar para refrescar los datos del panel SearhQuery
newFilter | string |
Definición en la línea 615 del archivo gvHidraForm_DB.php.
{ $this->str_whereFiltro = $newFilter; }
setLimiteConsulta | ( | $ | int_limite | ) |
Funcin que debe utilizar el programador para indicar el lmite de registros que se pueden recuperar de la base de datos con una consulta. Por defecto IGEP tiene un lmite de 100.
integer | nmero que indica el lmite. |
Definición en la línea 1047 del archivo gvHidraForm_DB.php.
{ $this->int_limiteConsulta = $int_limite; }
setOrderByForEditQuery | ( | $ | query | ) |
Permite especificar la clausula 'ORDER BY' de la query consulta del CRUD de gvHidra que se lanza en la accin editar (paso de tabular a registro en patrn T-R)
String | $query | Clusula 'ORDER BY' de sentencia SQL |
Definición en la línea 525 del archivo gvHidraForm_DB.php.
{ $this->str_orderByEditar = $query; }
setOrderByForSearchQuery | ( | $ | query | ) |
Permite especificar la clausula 'ORDER BY' de la query consulta del CRUD de gvHidra que se lanza en la accin buscar.
String | $query | Clusula 'ORDER BY' de sentencia SQL |
Definición en la línea 495 del archivo gvHidraForm_DB.php.
{ $this->str_orderBy = $query; }
setParametrosBusqueda | ( | $ | str_where | ) |
Este mtodo almacenar una cadena que luego se anexar a la WHERE de la consulta a ejecutar. En esa cadena se pueden incluir condiciones especiales como aadir un EXISTS si cierto campo del panel de busqueda est a true.
string | str_where contiene la cadena que se quiere concatenar a la WHERE de la consulta |
Definición en la línea 263 del archivo gvHidraForm_DB.php.
{ $this->setSearchParameters($str_where); }
setPKForQueries | ( | $ | fieldsForSearchQuery, |
$ | fieldsForEditQuery = array() |
||
) |
Permite especificar la PK de las dos queries que se pueden definir en el FW. El primer parametro permite definir la PK para el el searchMode. El segundo corresponde con el editMode.
array | $fieldsForSearchQuery | Campos que componen la clave primaria en la query del searchMode |
array | $fieldsForEditQuery | Opcional. Campos que componen la clave primaria en la query del editMode |
Definición en la línea 537 del archivo gvHidraForm_DB.php.
{ //pk searchQuery foreach($fieldsForSearchQuery as $campoTpl) { if(!isset($this->matching[$campoTpl])) { IgepSession::borraPanel(get_class($this)); throw new Exception('Error setPKForQueries: Param1 - Todos los campos claves tienen que tener matching'); } array_push($this->v_pkForSearchQuery,$campoTpl); } //Comprobamos que existe el PK para SearchQuery if(count($this->v_pkForSearchQuery)==0) { IgepSession::borraPanel(get_class($this)); throw new Exception('Error setPKForQueries: Debe haber introducido la PK para el SearchMode previamente'); } //pk editQuery if(count($fieldsForEditQuery)>0) { foreach($fieldsForEditQuery as $campoTpl) { if(!isset($this->matching[$campoTpl])) { IgepSession::borraPanel(get_class($this)); throw new Exception('Error setPKForQueries: Param2 - Todos los campos claves tienen que tener matching'); } array_push($this->v_pkForEditQuery,$campoTpl); } } }
setSearchParameters | ( | $ | str_where | ) |
Este mtodo almacenar una cadena que luego se anexar a la WHERE de la consulta a ejecutar. En esa cadena se pueden incluir condiciones especiales como aadir un EXISTS si cierto campo del panel de busqueda est a true.
string | str_where contiene la cadena que se quiere concatenar a la WHERE de la consulta |
Definición en la línea 274 del archivo gvHidraForm_DB.php.
{ if(trim($str_where)!='') $this->str_whereAdicional = $str_where; }
setSelectForEditQuery | ( | $ | query | ) |
Permite especificar la cabecera de la query consulta del CRUD de gvHidra que se lanza en la accin editar (paso de tabular a registro en patrn T-R)
String | $query | Cabecera de sentencia SQL |
Definición en la línea 505 del archivo gvHidraForm_DB.php.
{ $this->str_selectEditar = $query; }
setSelectForSearchQuery | ( | $ | query | ) |
Permite especificar la cabecera de la query consulta del CRUD de gvHidra que se lanza en la accin buscar.
String | $query | Cabecera de sentencia SQL |
Definición en la línea 475 del archivo gvHidraForm_DB.php.
{ $this->str_select = $query; }
setTipoConsulta | ( | $ | valorTipoConsulta | ) |
Mtodo que sirve para fijar el tipo de consulta del panel. Siempre se descartan maysculas y marcas diacrticas. Las posibilidades son: (0) Se contruye la Where igualando los campos a los valores. (1) Se construye con like y comodines para cada campo. (2) Por defecto, se contruye con like slo si el usuario ha especificado comodines.
integer | $valorTipoConsulta | Entero entre 0 y 2 que indica el tipo deseado. |
Definición en la línea 1060 del archivo gvHidraForm_DB.php.
{ if(($valorTipoConsulta>-1) and ($valorTipoConsulta<3)) $this->int_tipoConsulta = $valorTipoConsulta; else { $nombreClaseActual = get_class($this); IgepSession::borraPanel($nombreClaseActual); throw new Exception('Error en el constructor de la clase '.$nombreClaseActual.'. El valor del tipo de consulta debe encontrarse entre [0-2]'); } }
setWhereForEditQuery | ( | $ | query | ) |
Permite especificar la clausula 'WHERE' de la query consulta del CRUD de gvHidra que se lanza en la accin editar (paso de tabular a registro en patrn T-R)
String | $query | Clusula 'WHERE' de sentencia SQL |
Definición en la línea 515 del archivo gvHidraForm_DB.php.
{ $this->str_whereEditar = $query; }
setWhereForSearchQuery | ( | $ | query | ) |
Permite especificar la clausula 'WHERE' de la query consulta del CRUD de gvHidra que se lanza en la accin buscar.
String | $query | Clusula 'WHERE' de sentencia SQL |
Definición en la línea 485 del archivo gvHidraForm_DB.php.
{ $this->str_where = $query; }
showOnlyNewRecordsAfterInsert | ( | $ | value | ) |
Indica si el filtro se debe regenerar tras una insercion. Tras insertar una tupla, para evitar que dicha tupla no aparezca en el filtro previo, se elimina dicho filtro y se crea uno nuevo que apunta a la nueva tupla insertada (a travs de su PK o todos sus campos).
Puede haber casos en los que nos interese que este comportamiento no se produzca. Con este mtodo podemos cambiar el comportamiento por defecto. Los valores que admite son:
-Con valor true, despues de insertar solo se vera la nueva tupla insertada. Valor por defecto -Con valor false no modifica el filtro, por lo que se recarga el panel con el filtro previo.
boolean | value |
Definición en la línea 583 del archivo gvHidraForm_DB.php.
{ $this->changeFilterPostInsert = $value; }
$changeFilterPostInsert = true [private] |
Definición en la línea 180 del archivo gvHidraForm_DB.php.
$int_limiteConsulta = 100 |
Definición en la línea 138 del archivo gvHidraForm_DB.php.
integer $int_tipoConsulta |
Variable interna que permite modificar el tipoConsulta general de un panel. Los valores posibles son: (0) Se construye la Where igualando los campos a los valores. (1) Se construye con like y comodines para cada campo. (2) Por defecto, se contruye con like slo si el usuario ha especificado comodines. (3) Se contruye con like, case unsensitive y sin considerar las marcas diacrticas (no distingue acentos, ,..). private
Definición en la línea 177 del archivo gvHidraForm_DB.php.
array $matching |
Variable que controla el match-in entre las tpl y la bd private
Definición en la línea 93 del archivo gvHidraForm_DB.php.
$obj_conexion |
Definición en la línea 58 del archivo gvHidraForm_DB.php.
$str_orderBy |
Definición en la línea 86 del archivo gvHidraForm_DB.php.
string $str_orderByEditar |
Esta variable contiene el ORDER BY que se aplicar al segundo panel de edicin.
Definición en la línea 117 del archivo gvHidraForm_DB.php.
$str_select |
Definición en la línea 79 del archivo gvHidraForm_DB.php.
$str_SelectConstantes |
Definición en la línea 145 del archivo gvHidraForm_DB.php.
string $str_selectEditar |
Esta variable contiene la SELECT que se aplicar al segundo panel de edicin.
Definición en la línea 105 del archivo gvHidraForm_DB.php.
string $str_where |
Esta variable contiene la WHERE que se aplicar a la Select de bsqueda
Definición en la línea 99 del archivo gvHidraForm_DB.php.
$str_whereAdicional |
Definición en la línea 166 del archivo gvHidraForm_DB.php.
string $str_whereEditar |
Esta variable contiene la WHERE que se aplicar al segundo panel de edicin.
Definición en la línea 111 del archivo gvHidraForm_DB.php.
string $str_whereFiltro |
String donde se almacena el filtro de la Where de Busqueda. Es importante porque este filtro se mantiene hasta que se vuelva a realizar otra busqueda private
Definición en la línea 124 del archivo gvHidraForm_DB.php.
string $str_whereFiltroEdicion |
String donde se almacena el filtro de la Where de la seleccin (3 pestaas en el panel lis). Es importante porque este filtro se mantiene hasta que se vuelva a realizar otra edicion private
Definición en la línea 131 del archivo gvHidraForm_DB.php.
$v_nombreTablas |
Definición en la línea 65 del archivo gvHidraForm_DB.php.
$v_pkForEditQuery = array() [private] |
Definición en la línea 159 del archivo gvHidraForm_DB.php.
$v_pkForSearchQuery = array() [private] |
Definición en la línea 152 del archivo gvHidraForm_DB.php.
$v_tablas |
Definición en la línea 72 del archivo gvHidraForm_DB.php.