Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
"Navegar" Un Tableview Limitando Una Consulta SQL (SOLUCIONADO)
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje "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:
screenshot_from_2013_03_14_14_23_10
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 
Fenriz07 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
Fenriz07 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: "Navegar" Un Tableview Limitando Una Consulta SQL (SOLUCIONADO) 
 
jguardon escribió: [Ver mensaje]
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 
Fenriz07 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: "Navegar" Un Tableview Limitando Una Consulta SQL (SOLUCIONADO) 
 
Fenriz07 escribió: [Ver mensaje]

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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Un Detalle Con El Insert Into Gambas Value... jousseph Bases de Datos 5 Domingo, 04 Noviembre 2012, 20:58 Ver último mensaje
Shell
No hay nuevos mensajes Consulta "query" SQL [SOLUCIONADO] jguardon Bases de Datos 13 Sabado, 06 Abril 2013, 20:45 Ver último mensaje
shordi
No hay nuevos mensajes Obtener Numeros Casuales Desde Los File-de... vuott Aplicaciones/Fragmentos de Código 1 Sabado, 31 Octobre 2015, 20:27 Ver último mensaje
shordi
No hay nuevos mensajes Ejecutar Archivos Audio MP3 Con La Clase &... vuott Aplicaciones/Fragmentos de Código 5 Lunes, 02 Diciembre 2019, 13:28 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron