https://foro.gambas-es.org/viewtopic.php?f=1&t=5002&p=29003#p29003
-----------------------------------
shordi
Sabado, 28 Noviembre 2015, 12:57

Re: Evento Data, Colorear Celdas Y Ver Texto
-----------------------------------
Ayer me tocó repatearme dos centros comerciales enteros. Pero no problem, yo, bien entrenado marido, me llevo mi ebook en el bolsillo y según entramos busco una cafetería, me pido un cafelito y me sumerjo en, por ejemplo, cómo va a salir Anita Blake del embrollo en que se ha metido, prisionera de un paralítico sicópata que tiene a sus órdenes una malvada sacerdotisa Vudú que ha fabricado un monstruo a base de piezas de cadáveres, humanos y animales, y dos matones a sueldo, sin contar que según consiga salir de ahí, la espera un maestro vampiro que la quiere esclavizar. ¡Que me echen Blackfridays a mí!

[quote] ha usado "::"..algo no muy común[/quote] El uso de los : no es tan raro (échale un ojo al /etc/passwd y otros ficheros del sistema) :: quiere decir que hay un campo vacío entre medias. Sin embargo, para los .csv, siempre hay que dar una opción al usuario para que teclee el campo separador. Los más habituales , ; y \t . Pero puede ser cualquiera, dependiendo del origen. Es también muy habitual el uso de comillas dobles para encerrar los campos, además del separador. Este uso puede ser completo, es decir todos los campos van entrecomillados o parcial, que sólo entrecomilla los campos de texto. Eso es una ayuda. Si usas la coma, por ejemplo, en las direcciones es muy frecuente que haya comas, entrecomillando el campo te ahorras las confusiones.
Como todos los problemas cuando profundizas, es complejo. Yo, creo, nunca he hecho en producción un gridview sobre un CSV, aunque ahora que ha salido el tema no te digo que no lo implemente alguna que otra vez, sobre todo como vista previa a su paso a la base de datos. Algo así como hace el Calc de LibreOffice cuando le pides que abra un .csv Primero te da las opciones y luego lo carga a su formato.

[quote]¿ Qué método sueles usar con en el evento Data del Gridview ?.[/quote]
Pues, básicamente, el que he mostrado más arriba. El evento Data, no debe ser muy complejo, porque se ejecuta muchas veces y lo pagas en velocidad. No debe contener nada que no afecte directamente al contenido de las celdas.
Este es el evento data "estandar" que utilizo (donde $rs es el Result que contiene los datos):
[code linenumbers=false syntax=gambas] 
Public Sub parrilla_data(row As Integer, col As Integer)
   
    Dim cad As String
    
    If Not $rs Or Me.Row > $rs.count - 1 Then Return
    $rs.MoveTo(Row)
    Select Case $rs.Fields[col].type
        Case gb.Date
            Try cad = Format($rs[$rs.Fields[col].name], "dd-mm-yyyy")
        Case gb.Boolean
            cad = IIf($rs[$rs.Fields[col].name], "SI", "NO")
        Case Else 
            cad = CStr($rs[$rs.Fields[Col].Name])
    End Select
    Me.Data.Text = cad
    Me.Data.Foreground = $forecolor
    If $alternate And (Row Mod 2) <> 0 Then
       Me.Data.Background = $lighter
    Else 
       Me.Data.Background = $bgcolor
    Endif
    If $fila = row Then
         Me.Data.Font.bold = True
    Else
        Me.Data.Font.bold = False
    Endif
    If $columna = col And $fila = row Then 
         Me.Data.background = $selectedcolor
    Endif
    
End[/code]
Como ves, símplemente hago un ligero formateo (si es fecha, si es boolean, etc.) y el pongo los colores que la aplicación maneja, añadiendo negrita a la fila actual.
Para todo lo demás tengo una función que "Formatea" el gridview, asignando los títulos de columna, los anchos, etc. y que sólo se llama cuando es necesario (al abrir, al recargar los datos del Result, etc.)
Tienes ese código en aquellos "[url=http://foro.gambas-es.org/viewtopic.php?f=5&t=4220]Controles enganchados" que subí hace unos meses (y que tengo que actualizar porque me parece recordar que los que hay subidos tenían muchos fallos)


