![]() |
Documentación GVHIDRA 3.1.5
|
Métodos públicos | |
__construct ($dsn='') | |
regenerarInstancia ($dsn='') | |
perform ($actionMapping, $actionForm) | |
buildQuery () | |
refreshSearch () | |
addMatching ($campoTpl, $campoBD, $tablaBD) | |
Campos de datos | |
$obj_arbol | |
Métodos protegidos | |
addArbol ($arbol) |
Definición en la línea 44 del archivo gvHidraTreePattern.php.
__construct | ( | $ | dsn = '' | ) |
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 58 del archivo gvHidraTreePattern.php.
{ //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
addArbol | ( | $ | arbol | ) | [protected] |
Mtodo encargado de incorporar un componente IgepArbol a una ventana Igep
IgepArbol | $arbol | Instancia de la clase IgepArbol que se quiere insertar en la ventana public |
Definición en la línea 246 del archivo gvHidraTreePattern.php.
{ $nombreClase = get_class($this); if(!IgepSession::dameVariable($nombreClase,'obj_arbol')){ $arbol->generaXML($nombreClase); $this->obj_arbol = $arbol; } else $this->obj_arbol = IgepSession::dameVariable($nombreClase,'obj_arbol'); }
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 de gvHidraForm_DB.
Definición en la línea 267 del archivo gvHidraTreePattern.php.
{ IgepSession::borraPanel(get_class($this)); throw new Exception('Error de Programacin: no es posible mantener campos en una clase manejadora del patrn rbol.'); }//Fin de addMatching
buildQuery | ( | ) |
Mtodo que inicializa las variables para realizar la consulta correspondiente al panel de filtro. Genera la Where a partir de los parmetros introducidos y modifica el filtro activo.
private
Reimplementado de gvHidraForm.
Definición en la línea 196 del archivo gvHidraTreePattern.php.
{ if(isset($_REQUEST['menuActv'])) IgepSession::guardaVariable('global','menuActv',$_REQUEST['menuActv']); if(empty($this->comunica)) $this->comunica = new IgepComunicacion($this->v_descCamposPanel); $this->comunica->setOperacion('buscar'); $this->comunica->construirArrayBuscar(); //Comprobamos si tiene el parmetro str_select. Si no lo tiene ejecutamos refreshEmptySearch $comunicaUsuario = new IgepComunicaUsuario($this->comunica,$this->v_preInsercionDatos,$this->v_listas); //Ejecutamos la funcin preBuscar donde el usuario puede cargar ciertas cosas. $valido = $this->preBuscar($comunicaUsuario); //Como no tiene consulta, acabamos. return $valido; }
perform | ( | $ | actionMapping, |
$ | actionForm | ||
) |
Mtodo que SIEMPRE se lanza cuando venimos desde phrame y que es el encargado de realizar la unin entre Igep y el controlador (phrame). Este mtodo comprueba cual es la accin a ejecutar y lanza las operaciones pertinentes. Estas acciones pueden ser acciones genricas en cuyo caso aparecern en el codigo de este mtodo como entradas del switch principal; o pueden ser acciones particulares del panel hijo, en cuyo caso debern incorporarse al sobreescribiendo el mtodo comportamientosParticulares en la clase hija. La forma que proporciona phrame para que le indiquemos la direccin de destino son los objetos de la clase actionForward. Por esta razn este mtodo recoger estos objetos y los devolver a phrame; quien se encargar de redirigir al navegador hasta la URL adecuada. Estos objetos actionForward se obtienen a partir del parmetro $actionMapping (que se encarga de leer el valor del mappings.php de la aplicacin).
IMPORTANTE: Este mtodo SIEMPRE almacena en la SESSION el objeto panel actual, por ello no es necesario que nosotros lo almacenemos previamente si venimos de phrame. private
Reimplementado de gvHidraForm.
Definición en la línea 106 del archivo gvHidraTreePattern.php.
{ //Recogemos la accion y le quitamos el prefijo que nos viene de la ventana $str_accion = $actionForm->get('action'); if(strpos($str_accion,'__')>0) { $auxiliar = explode('__',$str_accion); $str_accion = $auxiliar[1]; } $nombreClaseActual = get_class($this); //Debug:Indicamos que la accion a ejecutar IgepDebug::setDebug(DEBUG_IGEP,'gvHidraForm_DB: ejecutamos accin '.$str_accion.' de la clase Manejadora '.$nombreClaseActual); //Cargamos el mapping dentro de comunicacin para darle acceso al mismo al usuario $this->comunica->setMapping($actionMapping); switch ($str_accion) { //Accin genrica de Igep que se lanzar cuando se quiera incluir en un panel de bsqueda una lista desplegable cargada desde BD case 'iniciarVentana': $retorno = $this->initWindow(); if($retorno==0) $actionForward = $actionMapping->get('gvHidraSuccess'); else{ if(is_object($retorno)) $actionForward = $retorno; else $actionForward = $actionMapping->get('gvHidraError'); } break; case 'abrirRamaArbol': $this->obj_arbol->abrirRamaArbol(); $actionForward = $actionMapping->get('gvHidraSuccess'); break; case 'cancelarArbol': $this->obj_arbol->cancelarArbol(); unset($this->obj_arbol); $actionForward = $actionMapping->get('gvHidraSuccess'); break; //Accin que normalmente se dispara desde los paneles de filtro. Comprueba si la busqueda tiene parmetros y lanza la SELECT q se encuentra en el parmetro str_select case 'buscar': //Como volvemos a buscar, borramos el filtro anterior. $resultado = $this->buildQuery(); if(is_numeric($resultado) and $resultado==0){ $resultado = $this->refreshSearch(); //Si todo ha funcionado correctamente if(is_numeric($resultado) and $resultado===0){ //TODO: Toni Evento FocusChanged. //$this->obj_IgSmarty->addScriptLoad(IgepSmarty::getJsLanzarFocusChanged(),'IGEP'); $actionForward = $actionMapping->get('gvHidraSuccess'); } //Si el programador indica una accin concreta elseif(is_object($resultado)) $actionForward = $resultado; //Si la consulta no ha devuelto datos else $actionForward = $actionMapping->get('gvHidraError'); } else{ if(!is_object($resultado)){ $actionForward = new ActionForward('gvHidraValidationError'); $actionForward->put('IGEPclaseManejadora',$nombreClaseActual); } else $actionForward = $resultado; } break; //Accin que elimina el contenido de la ltima consulta y de la ltima edicin case 'cancelarTodo': unset($this->str_whereFiltro); unset($this->str_whereFiltroEdicion); unset($this->obj_ultimaConsulta); unset($this->obj_ultimaEdicion); //Si se trata de un maestro (tiene paneles dependientes unset a todos los hijos) $actionForward = $actionMapping->get('gvHidraSuccess'); break; }//Fin switch $this->limpiarInstancia(); //Guardamos el panel en la SESSION IgepSession::guardaPanel($nombreClaseActual,$this); //Marcamos el nombre del PANEL como panel visitado IgepSession::_marcarPanelVisitado($nombreClaseActual); return $actionForward; }// Fin de perform
refreshSearch | ( | ) |
Mtodo encargado de realizar las consultas que se almacenan en el obj_ultimaConsulta private
Definición en la línea 215 del archivo gvHidraTreePattern.php.
{ //Como no tiene consulta limpiamos la variable resultado $this->obj_ultimaConsulta = array(); $comunicaUsuario = new IgepComunicaUsuario($this->comunica,$this->v_preInsercionDatos,$this->v_listas); $res = 0; //Pasamos a guardamos los datos q hemos obtenido de la consulta //Si no hay ningun error ejecutamos el postBuscar if(!PEAR::isError($this->obj_ultimaConsulta)){ $this->comunica->setOperacion('postConsultar'); $this->comunica->setArrayOperacion($this->obj_ultimaConsulta); $res = $this->postBuscar($comunicaUsuario); } if(PEAR::isError($this->obj_ultimaConsulta) or $this->obj_errorNegocio->hayError()){ //La consulta es erronea. $mensajeError[0] = 'La consulta SQL ha producido un error. Consulte con el Administrador de la aplicacin.'; $this->showMensaje('IGEP-15',$mensajeError); return -1; } return $res; }// Fin de buscar
regenerarInstancia | ( | $ | dsn = '' | ) |
Reimplementado de gvHidraForm_DB.
Definición en la línea 69 del archivo gvHidraTreePattern.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. $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; } //Creamos la instancia de IgepComunicacion $this->comunica = new IgepComunicacion($this->v_descCamposPanel); }
$obj_arbol |
Definición en la línea 52 del archivo gvHidraTreePattern.php.