Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Como Usar Sorted=true En Un Tableview?

Como Usar Sorted=true En Un Tableview?
Artículo
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.



 
última edición por v3ctor el Domingo, 02 Octobre 2016, 19:15; editado 2 veces 
v3ctor - Ver perfil del usuario Enviar mensaje privado  
v3ctor [ Domingo, 02 Octobre 2016, 17:04 ]
 


Como Usar Sorted=true En Un Tableview?
Comentarios
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 usuario Enviar mensaje privado  
vuott [ Domingo, 02 Octobre 2016, 17:49 ]
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



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Domingo, 02 Octobre 2016, 18:32 ]
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



 
v3ctor - Ver perfil del usuario Enviar mensaje privado  
v3ctor [ Domingo, 02 Octobre 2016, 18:48 ]
Responder citando    Descargar mensaje  
Mensaje Re: Como Usar Short=true En Un Tableview? 
 
vuott escribió: [Ver mensaje]


short... o Sorted ?    



perdón es Sorted  



 
v3ctor - Ver perfil del usuario Enviar mensaje privado  
v3ctor [ Domingo, 02 Octobre 2016, 18:54 ]
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



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Lunes, 03 Octobre 2016, 12:40 ]
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 usuario Enviar mensaje privado  
vuott [ Lunes, 03 Octobre 2016, 13:04 ]
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: 39 veces
OrdenarTableView.tar.gz
Descripción:  
Descargar
Nombre del archivo: OrdenarTableView.tar.gz
Tamaño: 13.17 KB
Descargado: 39 veces
OrdenarTableView.tar.gz
Descripción:  
Descargar
Nombre del archivo: OrdenarTableView.tar.gz
Tamaño: 13.17 KB
Descargado: 39 veces




 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Lunes, 03 Octobre 2016, 13:25 ]
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



 
última edición por Shell el Lunes, 03 Octobre 2016, 13:40; editado 1 vez 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Lunes, 03 Octobre 2016, 13:39 ]
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



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Lunes, 03 Octobre 2016, 17:58 ]
Mostrar mensajes anteriores:    
 
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


 



 

cron