Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Como Usar Sorted=true En Un Tableview?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Como Usar Sorted=true En Un Tableview? 
 
buenas,

la idea es aprender como usar sorted, y que al hacer clic en el encabezado de la tabla cuando la flecha cambie de dirección hacia arriba o abajo,
se ordenen los datos incluidos en la actual tabla.

ejemplo de datos a ordenar:

 palabrasx

en la imagen de ejemplo tenemos el objetivo de ordenar por palabras de forma ascendente o descendente, y lo otra forma es por la otra columna que es la cantidad, de 0 a mayor o de mayor a 0

saludos y espero sus comentarios o ejemplos si es que hay alguno.
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
última edición por v3ctor el Domingo, 02 Octobre 2016, 19:15; editado 2 veces 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Usar Short=true En Un Tableview? 
 
v3ctor escribió: [Ver mensaje]
Short=true En Un Tableview

la idea es aprender como usar short


short... o Sorted ?    

 sorted
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Usar Short=true En Un Tableview? 
 
Depende de la fuente de datos que uses, si es una base de datos, con repetir la consulta estableciendo el orden, cláusula "order by", es suficiente. Si la fuente es un array, vale con utilizar la propiedad .sort que tienen los arrays en gambas.

Saludos
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Usar Short=true En Un Tableview? 
 
shordi escribió: [Ver mensaje]
Depende de la fuente de datos que uses, si es una base de datos, con repetir la consulta estableciendo el orden, cláusula "order by", es suficiente. Si la fuente es un array, vale con utilizar la propiedad .sort que tienen los arrays en gambas.

Saludos


uso una colección  
' gambas class file

' Public EsteTexto As String = "Y les dijo: Esto es lo que ha dicho Jehová: Mañana es el santo día de reposo*, el reposo consagrado a Jehová; lo que habéis de cocer, cocedlo hoy, y lo que habéis de cocinar, cocinadlo; y todo lo que os sobrare, guardadlo para mañana."
Public EsteTexto As String

Public Eliminando As String
' Public PalabraAhora As String
Public DerechaLimpia As Boolean
Public IzquierdaLimpia As Boolean
Public Diccionario As New String[][]
' Private LibroElegido As String
Public DicContador As New Collection
Public CaracteresProhibidos As String = "(.);,*:-¡!?¿ "
Public VocalesConTilde As String = "áéíóú"



Public Sub Form_Open()
  
  ArmarTablaPalabras()
  
End

Private Sub ArmarTablaPalabras()
  Dim c As Integer
  
  With tvPalabras
    .Clear
    .Columns.Count = 2
    
    .Columns[c].Title = ("Palabra")
    .Columns[c].Width = 200
    .Columns[c].Background = Color.White
    
    Inc c
      
    .Columns[c].Title = ("Cantidad")
    .Columns[c].Width = 50
    .Columns[c].Background = Color.White
    .Columns[c].Alignment = Align.Center
    
  End With
  
End


Public Sub ProcesarPalabraLimpia(palabraX As String)
  
   Print palabraX
  
   If IsNull(palabraX) Then Return
  
   If DicContador.Exist(String.LCase(palabraX)) = False Then
     DicContador.Add(1, String.LCase(palabraX))
   Else
     DicContador.Add(DicContador[String.LCase(palabraX)] + 1, String.LCase(palabraX))
   Endif
  
End

'

Public Sub btnSalir_Click()

  Me.Close

End

Public Sub btnEjecutar_Click()
  Dim valor As String
  Dim a As Integer
 
  
  Inc Application.Busy
  
  DicContador = New Collection
  
  BuscarTextoElegido(subR1.ObtenerNombreTabla(cbxLibros.Current.Text))
  
    
  Print "DicContador=" & DicContador.Count
  
  tvPalabras.Rows.Count = DicContador.Count
  
  For Each valor In DicContador
     tvPalabras[a, 0].Text = DicContador.Key
     tvPalabras[a, 1].Text = valor
     Inc a
  Next
  
  Dec Application.Busy
  
  
End


Private Sub BuscarTextoElegido(tabla As String)
 Dim ResultadoSql As Result
 Dim TextoAcumulado As String
 Dim sql As String
 
 sql = Subst$("Select texto from '&1'", tabla)
 
 ResultadoSql = FMain.Conexion.Exec(sql)
  
  Do While ResultadoSql.Available
    ' Print ResultadoSql!texto
    TextoAcumulado &= ResultadoSql!texto
    ResultadoSql.MoveNext
  Loop
  
  EsteTexto = TextoAcumulado
  
  Print EsteTexto
'   Print SacarTitulos(EsteTexto)
  SepararPalabras(SacarCaracteres(SacarParentesisRectos(EsteTexto), True))
  
End


Public Sub SacarTitulos(texto As String) As String
  Dim Titulo As String
  Dim inicio, final As Integer
 
'  Print texto
 
  Repeat
      Print "inicio=" & InStr(texto, "- ")
      Print "final=" & InStr(texto, " -")
      
      inicio = InStr(texto, "- ")
      final = InStr(texto, " -")
      Titulo = Mid$(texto, inicio, (final - inicio) + 1)
      Print "Titulo a cortar es=" & Titulo
      texto = Replace$(texto, Titulo, " ")
      ' Print texto
  Until InStr(texto, "[") = 0
  
  Return texto
  
End

Public Sub SacarParentesisRectos(texto As String) As String
  Dim palabraAcortar As String
  Dim inicio, final As Integer
 
 If InStr(texto, "[") = 0 Then Return texto
 
  Repeat
      Print "inicio=" & InStr(texto, "[")
      Print "final=" & InStr(texto, "]")
      
      inicio = InStr(texto, "[")
      final = InStr(texto, "]")
      palabraAcortar = Mid$(texto, inicio, (final - inicio) + 1)
      Print "Palabra a cortar es=" & palabraAcortar
      texto = Replace$(texto, palabraAcortar, " ")
      ' Print texto
  Until InStr(texto, "[") = 0
  
  Return texto
  
End


Public Sub SacarCaracteres(texto As String, contitulo As Boolean) As String
  Dim NuevoTexto As String
  
  If contitulo Then texto = Replace$(texto, "-", " ")
  
  texto = Replace$(texto, ".", " ")
  texto = Replace$(texto, ":", " ")
  texto = Replace$(texto, ",", " ")
  texto = Replace$(texto, ";", " ")
  
  texto = Replace$(texto, "?", " ")
  texto = Replace$(texto, "¿", " ")
  texto = Replace$(texto, "!", " ")
  texto = Replace$(texto, "¡", " ")
  texto = Replace$(texto, "*", " ")
  texto = Replace$(texto, "(", " ")
  texto = Replace$(texto, ")", " ")
  
  texto = Replace$(texto, gb.NewLine, " ")
  
  ' texto = Replace$(texto, "[", " ")
  ' texto = Replace$(texto, "]", " ")
  
  NuevoTexto = texto
  
  Return NuevoTexto
  
End

Public Sub SepararPalabras(texto As String) As String[]
  Dim Palabras As String[]
  Dim palabra As String
  
  Palabras = Split(texto, " ", Null, True)
  
  For Each palabra In Palabras
    Print palabra
    ProcesarPalabraLimpia(palabra)
  Next
  
  Return Palabras
  
End


Public Sub cbxDonde_Click()

  Print cbxDonde.Index

  If cbxDonde.Index = 3 Then
    cbxLibros.Enabled = True
    cbxLibros.List = subR1.ObtenerListaDeTodosLosLibros()
  Else
    cbxLibros.Enabled = False
    cbxLibros.Clear()
  Endif
  

End


este código pretende extraer de un texto x, ya sea de un libro, un versículo o todos los versículos de la base de datos, separar las palabras por los espacios, limpiar cada palabra de caracteres especiales (?¡-_:.,; etc) y contabilizar repeticiones y esos datos lo guarda en una colección.

después se muestra en un tableview
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Usar Short=true En Un Tableview? 
 
vuott escribió: [Ver mensaje]


short... o Sorted ?    



perdón es Sorted  
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Usar Sorted=true En Un Tableview? 
 
v3ctor:

Creo que seria una buena idea reproducir el problema en un ejemplo más simple.
De esta forma se ve más rápidamente un error. A menos que estés mas interesando en un
problema concreto de tu código.

Hemos visto que hay controles "View" que carecen de la posibilidad de ordenar los datos.
Si, podemos ver sorted, pero parece trabajo que debe realizar el programador.

Dice TableView de la propiedad sorted:

Citar:

Sorting the data is not done automatically. It must be done by user code.


A pesar de todo, ahora Benoit ha añadido en la ayuda un código que hace esta función y la puedes usar
para ordenar.

Aunque se muestra para Gridview debe ser valido para TableView.

Propiedad Sorted en controles View

Supongo que Benoit tendrá alguna razón de no añadir esa posibilidad todavía. Esperara un código mejor.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Usar Sorted=true En Un Tableview? 
 
Shell escribió: [Ver mensaje]
pero parece trabajo que debe realizar el programador.

Dice TableView de la propiedad sorted:

Citar:

Sorting the data is not done automatically. It must be done by user code.



Señalo por analogia:
http://www.gambas-it.org/wiki/index..._di_una_colonna
http://www.gambas-it.org/wiki/index..._ad_una_colonna
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Usar Sorted=true En Un Tableview? 
 
He creado un ejemplo "sencillo". No me he detenido a estudiar bien el código de la ayuda.

He creado este TableView. En este caso desordenado. Tengo dos columnas, una de letras
y la otra de números.

 sinordenar

Ordenando por ejemplo por letras en orden descendente queda así:

 ordenadoporlaprimeracolumna

Os subo el ejemplo.

Saludos

OrdenarTableView.tar.gz
Descripción:  
Descargar
Nombre del archivo: OrdenarTableView.tar.gz
Tamaño: 13.17 KB
Descargado: 36 veces
OrdenarTableView.tar.gz
Descripción:  
Descargar
Nombre del archivo: OrdenarTableView.tar.gz
Tamaño: 13.17 KB
Descargado: 36 veces
OrdenarTableView.tar.gz
Descripción:  
Descargar
Nombre del archivo: OrdenarTableView.tar.gz
Tamaño: 13.17 KB
Descargado: 36 veces

 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Usar Sorted=true En Un Tableview? 
 
Como me acuerdo de la ultima "regañina" de Shordi.  
No debemos usar números mágicos, gambas nos ofrece sus constantes.

Public Sub titulos()
  
  With Tabla
    .Columns.Count = 2
    .Rows.Count = 0
    '.Header = 3
    .Header = .Both
    .Columns[0].Title = "Campo1"
    .Columns[0].Width = 150
    .Columns[1].Title = "Campo2"
    .Columns[1].Width = 150
  End With
  
End
 


Lo que le asignamos a Tabla.Header es igual que Tabla.Both

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Lunes, 03 Octobre 2016, 13:40; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Usar Sorted=true En Un Tableview? 
 
Citar:
Como me acuerdo de la ultima "regañina" de Shordi.  


Creo que tengo que conseguir éste libro...
libro-leopoldo-abadia-2014
 




===================
No podemos regresar
 
shordi - 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 Como Hago Para Imprimir Una Tableview Y Gu... jousseph General 8 Martes, 25 Enero 2011, 01:51 Ver último mensaje
Dani26
No hay nuevos mensajes Como Ocultar Una Columna De Un Tableview joseagch Controles/Librerías/Componentes 2 Miercoles, 09 Noviembre 2011, 21:16 Ver último mensaje
joseagch
No hay nuevos mensajes Sorted = True En Gridview imagomundi Controles/Librerías/Componentes 3 Martes, 02 Junio 2015, 09:16 Ver último mensaje
shordi
No hay nuevos mensajes Como Hacer Seleccion Multiple En Tableview... v3ctor General 4 Martes, 16 Agosto 2016, 15:31 Ver último mensaje
v3ctor
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

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