|
Página 1 de 1
|
"Navegar" Un Tableview Limitando Una Consulta SQL (SOLUCIONADO)
Autor |
Mensaje |
Fenriz07
Programador
Registrado: Agosto 2010
Mensajes: 118
Edad: 32 Ubicación:
|
"Navegar" Un Tableview Limitando Una Consulta SQL (SOLUCIONADO)
Saludos, actualmente estoy desarrollando un programita para la gestión de inventario, pero se con claridad que el inventario sobrepasa los 1000 registros. Entonces para que el usuario vea el inventario, lo cargo en un tableview asi:
Entonces me parece brusco, cargar todo el inventario en un tableview, asi que se me ocurrio la idea, de solo mostrar 20 o 50 articulos por la consulta, y tener 2 flechas para poder navegar la consulta e ir actualizando el tableview con otros 20 0 50 articulos. Teneis una pista de como hacer esto? Gracias.
E aqui mi codigo:
Public Sub cargariventario()
Dim i As Integer
rs = cn.Exec("select * from iventario order by nombre_m")
tiv.Clear
tiv.Rows.Count = rs.Count
For i = 0 To (rs.Count - 1)
'color de fondo'
tiv[i, 0].background = IIf(SwColor, Color.Pink, Color.Green)
tiv[i, 1].background = IIf(SwColor, Color.Pink, Color.Green)
tiv[i, 2].background = IIf(SwColor, Color.Pink, Color.Green)
tiv[i, 3].background = IIf(SwColor, Color.Pink, Color.Green)
SwColor = Not swcolor
'fin de color de fondo'
tiv[i, 0].Text = rs["codigo"]
tiv[i, 1].Text = rs["nombre_m"]
tiv[i, 2].Text = rs["presentacion_m"]
tiv[i, 3].Text = rs["cantidadm"]
rs.Movenext
Next
End
última edición por Fenriz07 el Viernes, 15 Marzo 2013, 17:00; editado 3 veces
|
#1 Jueves, 14 Marzo 2013, 20:17 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: "Navegar" Un Tableview Limitando Una Consulta SQL
No hay ningún problema en cargar miles, incluso decenas de miles de registros en un gridview o tableview siempre que lo hagas mediante el evento _Data() del control.
La razón es que el evento data sólo carga los registros que se pueden visualizar en ese momento en la superficie visible del gridview, es decir, va cargando dinámicamente según sea necesario, pero a una velocidad increíble. Hay bastante información en los foros sobre cómo hacerlo.
Por otra parte, esto sería inviable si lo haces como veo en tu ejemplo, mediante iteración y escritura directa en cada celda, porque sería lento y penoso.
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#2 Jueves, 14 Marzo 2013, 20:37 |
|
|
Fenriz07
Programador
Registrado: Agosto 2010
Mensajes: 118
Edad: 32 Ubicación:
|
Re: "Navegar" Un Tableview Limitando Una Consulta SQL
Gracias por tu respuesta :D, aplicare el metodo _Data(), pero, este tableview, es solo para mostrar, no es para insertar datos... yo lo que deseo es hacer una especia de navegador al tableview, que solo muestre 20,50 o 100 articulos, y que abajo del tableview, esten 2 botones con una flecha a la derecha y otra a la izq, y por ejemplo cuando le den a la flecha de la derecha muestre los siguentes, 20, 50 0 100 articulos. Me explico bien? c
|
#3 Jueves, 14 Marzo 2013, 20:42 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: "Navegar" Un Tableview Limitando Una Consulta SQL
Lo que tu dices es "paginación" de resultados.
Te muestro un ejemplo de uso real del evento data. El control 'cv' que verás en el código es en realidad un gridview.
https://dfhlog.googlecode.com/svn/branches/dfhlog1.1/FLog.class
En el mismo código, verás que los resultados están paginados, calculando el número de páginas a partir del número total de registros dividido por el número de registros de cada página. En base a esos cálculos se compone la sentencia sql usando la cláusula LIMIT x, y
Busca información en manuales de sql para entender su funcionamiento y estudia mi código. Si tienes dudas, pregunta.
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#4 Jueves, 14 Marzo 2013, 21:06 |
|
|
Fenriz07
Programador
Registrado: Agosto 2010
Mensajes: 118
Edad: 32 Ubicación:
|
Re: "Navegar" Un Tableview Limitando Una Consulta SQL (SOLUCIONADO)
Lo que tu dices es "paginación" de resultados.
Te muestro un ejemplo de uso real del evento data. El control 'cv' que verás en el código es en realidad un gridview.
https://dfhlog.googlecode.com/svn/branches/dfhlog1.1/FLog.class
En el mismo código, verás que los resultados están paginados, calculando el número de páginas a partir del número total de registros dividido por el número de registros de cada página. En base a esos cálculos se compone la sentencia sql usando la cláusula LIMIT x, y
Busca información en manuales de sql para entender su funcionamiento y estudia mi código. Si tienes dudas, pregunta.
Saludos
Muchisimas gracias, tu codificacion es una maraviilla
Por cierto, ¿como haces para llamar a la conexion de la base datos sin hacer referencia en ella en cada formulario?
Yo en todos mis formularios escribo la conexion en el evento Form_Open(). Saludos
última edición por Fenriz07 el Viernes, 15 Marzo 2013, 17:00; editado 2 veces
|
#5 Viernes, 15 Marzo 2013, 16:50 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: "Navegar" Un Tableview Limitando Una Consulta SQL (SOLUCIONADO)
Muchisimas gracias, tu codificacion es una maraviilla
Por cierto, ¿como haces para llamar a la conexion de la base datos sin hacer referencia en ella en cada formulario?
Yo en todos mis formularios escribo la conexion en el evento Form_Open(). Saludos
No, mi codificación no era una maravilla entonces. De eso hace al menos 2 años y en ese tiempo algo habré aprendido, espero...
La llamada a la conexión también se hace en el form open:
IF dbLog.connDB(FMain.ini["Log/File"]) THEN RETURN
hres = dbLog.cnLog.Exec("SELECT * FROM log")
dblog es un módulo donde está la rutina de conexión y la función dblog.conn() devuelve false cuando tiene éxito, quedando abierta la conexión. En caso contrario, sale del procedimiento.
FMain.ini["Log/File"] es el parámetro que le paso a la función de conexión, que no es más que una ruta al fichero de bd sqlite que está guardada en un registro del fichero de configuración (ver la clase Settings).
En la segunda línea, asigno un objeto result con el resultado de la consulta que devuelve el método Exec. Y eso es todo, a partir de ahí, para lo que me interesa, uso el evento data del gridview pasándole el objeto hres.
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#6 Sabado, 16 Marzo 2013, 00:11 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|