//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> Constructor por Defecto. </summary> /// /// <remarks> . </remarks> /// /////////////////////////////////////////////////////////////////////////////////////////////////////// public ENPersona() { this.dni = ""; this.clave = ""; this.nombre = ""; this.apellidos = ""; this.email = ""; this.telefono = ""; this.direccion = ""; this.ccc = ""; this.provincia = -1; this.poblacion = ""; this.perfil = kPerfil.pNinguno; this.imgData = null; dsPersonas = new DataSet(); this.fecha = System.DateTime.Today; this.sexo = ""; }
//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> Método virtual. Obtiene el número de filas como resultado de una consulta. Realiza una consulta a la Base de Datos con los /// criterios de búsqueda seleccionados y obtiene la cantidad de filas afectadas. Este método /// se usa como preparación para la fucnionalidad de paginación, permitiendo ajustar los componentes /// visuales.</summary> /// /// <remarks> . </remarks> /// /// <exception cref="CADException">Se recoge cuando existe algún problema en el CADPersona</exception> /// <exception cref="ENException">Se lanza si se ha recogido una CADException.</exception> /// /// <param name="nif"> NIF que identifica a a la persona. </param> /// <param name="nombre"> Nombre o Apellido. Si se usa "" no se tendrá en cuenta en la búsqueda</param> /// <param name="email"> Correo electrónico. Si se usa "" no se tendrá en cuenta en la búsqueda</param> /// <param name="perfil"> Perfil. Entero que representa el perfil. Si su valor es -1, no se tiene en cuenta en la búsqueda. </param> /// /// <returns>Entero que representa el número de filas de la consulta. </returns> //////////////////////////////////////////////////////////////////////////////////////////////////// virtual public int obtenerTamanyoConsulta(string nif, string nombre, string email, kPerfil perfil) { CADPersona cad = new CADPersona(); DataSet dsD = new DataSet(); int tam = 0; try { dsD = cad.BD_obtenerTamanyo(nif, nombre, email, (int)perfil); tam = Convert.ToInt32(dsD.Tables["Total"].Rows[0]["total"]); } catch (CADException cex) { throw new ENException(cex.Mensaje); } return(tam); }
//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// Sobrecargado (1). Método virtual Obtener personas. Obtiene un DataView generado desde una /// DataSet con el resultado de la consulta y que queda preparado para ser mostrado en la parte /// visual. /// </summary> /// /// /// <remarks> EL DataTable obtenido por el método <see cref="ObtenerVistaPersona">ObtenerVistaPersona</see>, se trasforma a DataView /// y se devuelve a la vista. . </remarks> /// /// <exception cref="CADException"> Se recoge cuando existe algún problema en el CADPersona. </exception> /// <exception cref="ENException"> Se lanza si se ha recogido una CADException o si el /// /// <param name="nif"> NIF que identifica a a la persona. </param> /// <param name="nombre"> Nombre o Apellido. Si se usa "" no se tendrá en cuenta en la /// búsqueda. </param> /// <param name="email"> Correo electrónico. Si se usa "" no se tendrá en cuenta en la /// búsqueda. </param> /// <param name="perfil"> Perfil. Entero que representa el perfil. Si su valor es -1, no se /// tiene en cuenta en la búsqueda. </param> /// <param name="desde"> Valor entero que representa el registro desde el cual se obtendrán los datos. </param> /// <param name="cantidad"> Valor entero que representa cuantos registros como máximo debemos obtener apartir de 'desde'. </param> /// /// <returns> . </returns> /// /// Datase está vacío. </exception> //////////////////////////////////////////////////////////////////////////////////////////////////// virtual public DataView obtenerPersonas(string nif, string nombre, string email, kPerfil perfil, int desde, int cantidad) { CADPersona cad = new CADPersona(); DataView dvPersonas = new DataView(); ArrayList contenedor = new ArrayList(); DataSet dsRes = new DataSet(); try { dsRes = cad.BD_obtenerPersonas(nif, nombre, email, (int)perfil, desde, cantidad); if (dsRes.Tables.Count > 0) { dvPersonas = (ObtenerVistaPersonas(dsRes)).DefaultView; dsPersonas = dsRes.Copy(); } else { throw new ENException("DataSet vacío", 0); } } catch (CADException cex) { throw new ENException(cex.Mensaje); } return(dvPersonas); }
//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> Event handler. Called by btnBuscar for click events. </summary> /// /// <remarks> . </remarks> /// /// <param name="sender"> Source of the event. </param> /// <param name="e"> Event information. </param> //////////////////////////////////////////////////////////////////////////////////////////////////// private void btnBuscar_Click(object sender, EventArgs e) { MetodoBusqueda = btnBuscar_Click; DataView dvResultado = new DataView(); kPerfil p = (kPerfil)cbPerfilBuscar.SelectedIndex - 1; try { if (Paginar) { // Obtenemos el tamaño de la consulta TOTAL_registros = administrador.obtenerTamanyoConsulta(mtbNIFBuscar.Text, tbNombreBuscar.Text, tbEmailBuscar.Text, p); // Si el total de filas es inferior al número de resgistros por página, se desactiva la paginación if (TOTAL_registros <= MIN_PAGINA_registros) { throw new Exception("Excepción de paginación"); } else { // Si el total de filas obtenidas es menos que el registro que estabamos mostrando -> actualizamos el registro actual if (esDesbordamientoPagina(ACTUAL_registro)) { ACTUAL_registro = TOTAL_registros - (TOTAL_registros % PAGINA_registros) + 1; } else if (esUltimaPagina(ACTUAL_registro)) { btnPaginaSiguiente.Visible = false; btnPaginaUltima.Visible = false; } else { btnPaginaSiguiente.Visible = true; btnPaginaUltima.Visible = true; } MensajePaginacion(etInfoPAG, getNumPaginaActual(ACTUAL_registro), getNumPaginasTotales()); dvResultado = administrador.obtenerPersonas(mtbNIFBuscar.Text, tbNombreBuscar.Text, tbEmailBuscar.Text, p, ACTUAL_registro, PAGINA_registros); } } else { dvResultado = administrador.obtenerPersonas(mtbNIFBuscar.Text, tbNombreBuscar.Text, tbEmailBuscar.Text, p); TOTAL_registros = dvResultado.Table.Rows.Count; if (TOTAL_registros <= MIN_PAGINA_registros) { chkPaginacion.Enabled = false; } else { chkPaginacion.Enabled = true; } } dgvPersonas.DataSource = dvResultado; if (dvResultado.Count > 0) { darFormatoDataGrid(); } gbInfoCON.Visible = true; if (dvResultado.Count == 0) { dgvPersonas.Visible = false; } else { dgvPersonas.Visible = true; } if (dvResultado.Count == 1) { MensajeSistema(etInfoCON, "Se ha obtenido 1 resultado.", kMensajeSistema.mCORRECTO); } else { MensajeSistema(etInfoCON, "Se han obtenido " + dvResultado.Count + " resultados.", kMensajeSistema.mCORRECTO); } } catch (ENException enex) { if (enex.Tipo != -1) { MensajeSistema(etInfoCON, enex.Message, kMensajeSistema.mADVERTENCIA); } else { MensajeSistema(etInfoCON, enex.Message, kMensajeSistema.mERROR); } gbInfoCON.Visible = true; } catch (Exception ex) { chkPaginacion.Checked = false; chkPaginacion_CheckedChanged((CheckBox)chkPaginacion, null); MensajeSistema(etInfoCON, "Se ha desactivado la paginación debido a que sólo hay 1 página", kMensajeSistema.mADVERTENCIA); chkPaginacion.Enabled = false; } }