"Navegar" Un Tableview Limitando Una Consulta SQL (SOLUCIONADO)


Subject: "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

Last edited by Fenriz07 on Friday, 15 March 2013, 17:00; edited 3 times in total
Subject: 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

Profile PM  
Subject: 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

Subject: 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

Profile PM  
Subject: 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

Last edited by Fenriz07 on Friday, 15 March 2013, 17:00; edited 2 times in total
Subject: 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

Profile PM  

Page 1 of 1


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.1169s (PHP: -20% SQL: 120%)
SQL queries: 25 - Debug Off - GZIP Enabled