• Domingo 28 de Abril de 2024, 21:57

Autor Tema:  Se Podra Hacer Este Tipo De Form ????  (Leído 1812 veces)

zareth

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Se Podra Hacer Este Tipo De Form ????
« en: Miércoles 7 de Septiembre de 2005, 03:02 »
0
hola gente  :hola:
como estan aki otra vez con una pekeña consulta, les cuento ke tengo un formulario ke kontiene una grilla (datagrid) ke la kargo mediante kodigo, por ser tantos registros demora en mostrarme el formulario, estuve pensando y llege a esto ... se podra hacer ke esa grilla (DATAGRID) solo kargue determinado numero de registros (por ejemplo 100 registros) y ke luego mediante un boton el cual indica siguiente me muestre los otros 100 registros y asi sucesivamente y obiamente tenga otro boton donde me indike anterior (claro esta  :whistling: ), osea es la misma idea ke cuando uno tiene una cuenta de correo no e has percatado ke kuendo abres la bandeja te muestra los primeros 25 y presionas flecha siguiente y muestra el resto "manteniendo el numero de registros a mostrar"  <_< , al final se podra llegar a esto..... algun comentario o a alguien ke se puso esn este dilema... saludos cordiales y a la espera de sus comentarios

z4r3th  :comp:

cee

  • Miembro activo
  • **
  • Mensajes: 40
    • Ver Perfil
    • http://www.parche.tk
Re: Se Podra Hacer Este Tipo De Form ????
« Respuesta #1 en: Miércoles 7 de Septiembre de 2005, 15:56 »
0
si se puede utiliza en tu consulta un count(nombre) por ejemplo y donde dices where count <100 y listo


suerte

Jose Arriagada

  • Miembro MUY activo
  • ***
  • Mensajes: 373
    • Ver Perfil
Re: Se Podra Hacer Este Tipo De Form ????
« Respuesta #2 en: Miércoles 7 de Septiembre de 2005, 18:01 »
0
Si tus registros tienen algun campo que se indice, entonces, si puedes hacerlo, utilizando el primer y ultimo indice obtenido de la primera consulta.
Posteriormente, al presionar "SIGUIENTE", tu consulta comienza desde el indice ULTIMO de la consulta ANTERIOR.

Otra modalidad es, crear una pila de datos que contengan, el primer y ultimo registro, y que el posicionador de la pila, el el contador de botones SIGUIENTE y ANTERIOR.

jimmy007

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Se Podra Hacer Este Tipo De Form ????
« Respuesta #3 en: Jueves 8 de Septiembre de 2005, 06:15 »
0
Lo ke tienes ke hacer es paginar los resultados, depende tambien de ke base de datos uses si usas MySQL con LIMIT paginas, si estas con SQL Server lo puedes hacer con un SP asi:

Código: Text
  1.  
  2. En el ejemplo extraemos un listado de la base de datos Northwind de productos ordenados por categorías, extraemos los campos ID del producto, nombre del producto y nombre de la categoría. El Stored Procedure recibe dos parámetros:
  3.  
  4. - Index, el número de página que queremos mostrar
  5. - NumRegs, el número máximo de registros a mostrar por página.
  6.  
  7. Create Procedure Paginacion_Registros
  8.  
  9. --Número de página a mostrar
  10.  
  11. @index integer
  12. -- Total de resgistros por página
  13.  
  14. @NumRegs integer
  15. As
  16.  
  17. -- Declaramos dos variables que serán los índices mayor
  18. -- y menor del filtro de paginación
  19.  
  20. Declare @Maximo numeric
  21. Declare @Minimo numeric
  22.  
  23. -- Y asignamos los valores que le corresponden a cada página
  24. -- la asignación de los límites se realiza de la siguiente forma:
  25. -- si index = 1 y NumRegs = 10, entonces los registros a mostrar
  26. -- son del 1 al 10, si index = 2, los registros a mostrar son del 11 al 20
  27. -- y asi sucesivamente.
  28.  
  29. Select @Maximo = (@index * @NumRegs)
  30. Select @Minimo = @Maximo - (@NumRegs - 1)
  31.  
  32. -- Creamos la tabla temporal para la paginación,
  33. -- con un campo auto numérico que será el que nos
  34. -- sirva de índice a la hora de extraer los registros.
  35.  
  36. Create Table #tmpListado (
  37. nOrden INT IDENTITY(1,1),
  38. IDProducto numeric,
  39. NombreProducto varchar(40),
  40. NombreCategoria varchar(15)
  41. )
  42.  
  43. -- Insertamos en la tabla temporal directamente del select
  44.  
  45. Insert #tmpListado Select Products.ProductID, Products.ProductName,
  46. Categories.CategoryName
  47. From Products, Categories
  48. Where Products.CategoryID = Categories.CategoryID
  49. order by Categories.CategoryName
  50.  
  51. -- Una vez tenemos los datos en la tabla temporal los extraemos
  52. -- con un select filtrados por los valores de paginación
  53. -- @Maximo y @Minimo
  54.  
  55. Select IDProducto, NombreProducto, NombreCategoria
  56. FROM #tmpListado
  57. WHERE (nOrden BETWEEN @Minimo AND @Maximo)
  58.  
  59. Si pruebas el ejemplo y vas cambiando el valor de index veras como va paginando el Stored Procedure.
  60.  
  61.  
  62.  
---------------------------------------------------------

Tambien puedes paginar desde un recordset, por ejemplo:

Código: Text
  1.  
  2. Este ejemplo utiliza las propiedades AbsolutePage, PageCount y PageSize para mostrar los nombres completos y las fechas de contratación de la tabla Empleados, de cinco en cinco registros.
  3.  
  4. Public Sub AbsolutePageX()
  5.    
  6.    Dim rstEmployees As ADODB.Recordset
  7.    Dim strCnn As String
  8.    Dim strMessage As String
  9.    Dim intPage As Integer
  10.    Dim intPageCount As Integer
  11.    Dim intRecord As Integer
  12.  
  13.    ' Abre un objeto Recordset mediante un cursor del
  14.    ' cliente para la tabla Empleados.
  15.    strCnn = &#34;Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; &#34;
  16.    Set rstEmployees = New ADODB.Recordset
  17.    ' Utiliza el cursor del cliente para activar la propiedad
  18.    ' AbsolutePosition.
  19.    rstEmployees.CursorLocation = adUseClient
  20.    rstEmployees.Open &#34;empleado&#34;, strCnn, , , adCmdTable
  21.    
  22.    ' Muestra los nombres y las fechas de contratación, de cinco
  23.    ' en cinco registros.
  24.    rstEmployees.PageSize = 5
  25.    intPageCount = rstEmployees.PageCount
  26.    For intPage = 1 To intPageCount
  27.       rstEmployees.AbsolutePage = intPage
  28.       strMessage = &#34;&#34;
  29.       For intRecord = 1 To rstEmployees.PageSize
  30.          strMessage = strMessage & _
  31.             rstEmployees!fname & &#34; &#34; & _
  32.             rstEmployees!lname & &#34; &#34; & _
  33.             rstEmployees!hire_date & vbCr
  34.          rstEmployees.MoveNext
  35.          If rstEmployees.EOF Then Exit For
  36.       Next intRecord
  37.       MsgBox strMessage
  38.    Next intPage
  39.    rstEmployees.Close
  40.  
  41. End Sub
  42.  
  43.  

Espero te sirva

Saludos desde México :hola: