Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

TableEdit: Ejemplo De Uso

TableEdit: Ejemplo De Uso
Artículo
Responder citando    Descargar mensaje  
Mensaje TableEdit: Ejemplo De Uso 
 
He subido un video-tutorial del uso del control TableEdit que tenéis en la granja de Gambas.
En él os muestro partiendo desde cero cómo:

-Añadirlo a vuestros proyectos
-Usarlo con su comportamiento por defecto
-Ampliar los tipos de controles que utiliza para campos en concreto
-Establecer depuraciones en los datos introducidos
-Cancelar la grabación de la celda por defecto.

Dura media hora más o menos, pero si descontáis los tartamudeos, vacilaciones, pausas, errores, estornudos, accidentes, repeticiones y equivocaciones, se os quedará en minuto y medio más o menos.

     


Link




 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Miercoles, 17 May 2017, 10:32 ]
 


TableEdit: Ejemplo De Uso
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: TableEdit: Ejemplo De Uso 
 
+1 Shordi.

Este tipo de videos en general son muy útiles para comprender como se gestionan las bases de datos y en particular este vendra muy bien a los usuarios noveles que quieran usar bases de datos en sus programas.
He aprendido que el botón de compilar sirve para que aparezca el icono de la clase.

Me parece útil dejar en el hilo es que es siempre conveniente usar como nombres de campos todo en minúsculas que sean caracteres ASCII y sin espacios ni puntos. para mantener una compatibilidad entre distintos motores de bases de datos y para no confundirse al escribir el código, ya que es una fuente de errores, como te paso a ti varias veces en el video   .
Si luego se quiere tener el nombre del campo en el grid con la primera letra en mayúscula, se puede hacer mediante
'...
  For n = 0 To tbE1.Result.fields.Count - 1
    strTitle = String.UCaseFirst(tbE1.Result.Fields[n].name)
    tbE1.Columns[n].title = strTitle
  Next
'...
 


Luego para no repetir, en este caso, las comunidades se puede hacer un IF en el bucle.
  Dim strText as String
 '....
  While r.Available
    strText=r!comunidad
    if ar.Find(strText) > -1 then ' Para evitar repeticiones en caso que la tabla no las tenga.
    ar.Add(strText)
    Endif
    r.MoveNext
  Wend
'...
 


Saludos.



 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Miercoles, 17 May 2017, 13:35 ]
Responder citando    Descargar mensaje  
Mensaje Re: TableEdit: Ejemplo De Uso 
 
En mis bases de datos simpre uso minúsculas. El tema era que quería que el control quedase con los nombres bonitos sin tener que hacer tejemanejes de estos, que confunden aún más al novato y alargan el vídeo. Por tanto puse los nombres con mayúscula en la tabla viajes y la falta de costumbre y demás ocasionó los errores que se ven.

Eso y no manta y novato que soy haciendo vídeos, claro...      



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Miercoles, 17 May 2017, 17:45 ]
Responder citando    Descargar mensaje  
Mensaje Re: TableEdit: Ejemplo De Uso 
 
Shordi:

Muy buen videotutorial. +1

Tincho:

Citar:
Me parece útil dejar en el hilo es que es siempre conveniente usar como nombres de campos todo en minúsculas que sean caracteres ASCII y sin espacios ni puntos. para mantener una compatibilidad entre distintos motores de bases de datos y para no confundirse al escribir el código, ya que es una fuente de errores, como te paso a ti varias veces en el video   .

Buen apunte.

tbE1.Columns[n].title = strTitle

Para el tema de las traducciones, hay que tener en cuenta, que no es buena idea usar el nombre del campo como nombre de la columna, porque no se va  a traducir al cambiar el idioma.



 
última edición por jsbsan el Miercoles, 17 May 2017, 20:29; editado 1 vez 
jsbsan - Ver perfil del usuario Enviar mensaje privado  
jsbsan [ Miercoles, 17 May 2017, 20:29 ]
Responder citando    Descargar mensaje  
Mensaje Re: TableEdit: Ejemplo De Uso 
 
jsbsan escribió:  
...Para el tema de las traducciones, hay que tener en cuenta, que no es buena idea usar el nombre del campo como nombre de la columna, porque no se va  a traducir al cambiar el idioma.

Si, es verdad, yo vengo usando el siguiente "método" para los programas que usan bases.
Partiendo de que las tablas y por lo tanto sus campos serán invariables para un programa dado, lo que hago es colocar una función en el módulo de inicio del programa donde agrego a una matriz de texto los nombres de los campos de la tabla, entonces el campo 0=stxTitles[0] ... n=stxTitles[n].
Este titulo del campo esta agregado de esta manera:
Nota: La matriz es de tres dimensiones de la forma ["tabla-o-vista", "nombre-del-campo", ("Titulo-traducible")]. De esta manera las consultas SQL las tablas y las vistas son siempre las mismas, solo varia el texto que se "ve" en los Gridwiews u otros sitios, por ejemplo los formularios de edición de datos.

Private Function LoadTitles() '' La carga de títulos de esta manera permite luego traducir la aplicación mas fácilmente. Si se usa un método con archivo de texto estos textos no pueden traducirse.

  stxTitles.Add(["contacts", "contactindx", ("Índice")])
  stxTitles.Add(["contacts", "contactname", ("Nombre")])
  '...
  stxTitles.Add(["countries", "countryindx", ("Índice")])
  stxTitles.Add(["countries", "countryname", ("País")])
  '...
  stxTitles.Add(["groups", "groupindx", ("Índice")])
  stxTitles.Add(["groups", "groupname", ("Grupo")])
  '...
  stxTitles.Add(["provinces", "provinceindx", ("Índice")])
  stxTitles.Add(["provinces", "provincename", ("Provincia")])
  '...
  stxTitles.Add(["roles", "roleindx", ("Índice")])
  stxTitles.Add(["roles", "rolename", ("Rol")])
  '...
  stxTitles.Add(["sections", "sectionindx", ("Índice")])
  stxTitles.Add(["sections", "sectionname", ("División")])
  '...
  stxTitles.Add(["view_contacts", "contactindx", ("Índice")])
  stxTitles.Add(["view_contacts", "contactname", ("Nombre")])

End
 


Luego el el programa cuando se quiera poner el nombre del campo tal o cual, solo basta con extraerlo de la matriz stxTitles.

En github deje un ejemplo de un programa agenda de contactos en donde aplico dicho método:
https://github.com/belmotek/tocontac

Saludos.



 
última edición por tincho el Miercoles, 17 May 2017, 20:50; editado 1 vez 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Miercoles, 17 May 2017, 20:48 ]
Responder citando    Descargar mensaje  
Mensaje Re: TableEdit: Ejemplo De Uso 
 
jsbsan escribió:  
Shordi:

Muy buen videotutorial. +1

Tincho:

Citar:
Me parece útil dejar en el hilo es que es siempre conveniente usar como nombres de campos todo en minúsculas que sean caracteres ASCII y sin espacios ni puntos. para mantener una compatibilidad entre distintos motores de bases de datos y para no confundirse al escribir el código, ya que es una fuente de errores, como te paso a ti varias veces en el video   .

Buen apunte.

tbE1.Columns[n].title = strTitle

Para el tema de las traducciones, hay que tener en cuenta, que no es buena idea usar el nombre del campo como nombre de la columna, porque no se va  a traducir al cambiar el idioma.

¿Es que se traducen los nombres de campos o de controles?
No creo. Eso te hunde una base de datos en un instante.
Que se traduzcan literales es una cosa, pero los nombres son nombres... Creo (Nunca he visto el resultado de una traducción)



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Miercoles, 17 May 2017, 20:49 ]
Responder citando    Descargar mensaje  
Mensaje Re: TableEdit: Ejemplo De Uso 
 
shordi escribió:  
¿Es que se traducen los nombres de campos o de controles?

El planteo es traducir los "Títulos" asociados a los campos no sus nombres. Por títulos de los campos se entiende que es el texto que se ve en las columnas de los gridviews o en las labels de los formularios de edición. Es decir de los controles.

Saludos.



 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Jueves, 18 May 2017, 10:49 ]
Responder citando    Descargar mensaje  
Mensaje Re: TableEdit: Ejemplo De Uso 
 
Shordi:

Citar:
¿Es que se traducen los nombres de campos o de controles?

A lo que me refiero es lo que explica Tincho:
Citar:
Por títulos de los campos se entiende que es el texto que se ve en las columnas de los gridviews o en las labels de los formularios de edición.


Las consultas a la base de datos, ni los nombres de los campos de la base de datos, no entran en la conversión en las traducciones.

Tincho:
Citar:
La matriz es de tres dimensiones de la forma ["tabla-o-vista", "nombre-del-campo", ("Titulo-traducible")]

Interesante método... me lo tengo que ver con tranquilidad.



 
última edición por jsbsan el Jueves, 18 May 2017, 11:28; editado 2 veces 
jsbsan - Ver perfil del usuario Enviar mensaje privado  
jsbsan [ Jueves, 18 May 2017, 11:25 ]
Responder citando    Descargar mensaje  
Mensaje Re: TableEdit: Ejemplo De Uso 
 
Citar:
El planteo es traducir los "Títulos" asociados a los campos no sus nombres. Por títulos de los campos se entiende que es el texto que se ve en las columnas de los gridviews o en las labels de los formularios de edición. Es decir de los controles.


En los controles dbGrid, dbgridfilter, etc. añadí una propiedad Titles as String[] que solucionaba el tema. Más simple que una tridimensional, creo.
En este control no lo he añadido.

Saludos

   



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Jueves, 18 May 2017, 11:54 ]
Responder citando    Descargar mensaje  
Mensaje Re: TableEdit: Ejemplo De Uso 
 
jsbsan escribió:  
Tincho:
Citar:
La matriz es de tres dimensiones de la forma ["tabla-o-vista", "nombre-del-campo", ("Titulo-traducible")

Interesante método... me lo tengo que ver con tranquilidad.

Es bastante práctico la verdad, ademas permite expandir las dimensiones de la matriz si es necesario agregar mas parámetros, como por ejemplo el tooltip del campo.
Si te interesa verlo en funcionamiento échale un vistazo al programa Tocontac.

Saludos.



 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Jueves, 18 May 2017, 12:23 ]
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