Comunidad Gambas-es
Campos claves - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: Bases de Datos (https://gambas-es.org/forum-6.html)
+--- Tema: Campos claves (/thread-1163.html)



Campos claves - Shell - 09-01-2023

Buenas!.

En un ejemplo de base de datos tengo dos tablas, gastos y categorías. Los registros de cada tabla se muestra en su tableView correspondiente.

Hay algunas columnas en ambos tableViews que su ancho están a cero para que no se vea su contenido, estas columnas contiene los campos claves,
donde se encuentran las claves o llaves primarias. El ancho a cero está hecho a drede, mientras no modifiques el diseño no tienes por que ver nada.
( No tienes por que pensar que se ocultaba de esa forma , de principio no tienes ni idea.).

¿ Es la forma tradicional hacerlo así ?. En parte no lo creo ya que puedo mover con el cursor del ratón y ajustar los anchos del tableview y hacerlo visible. ( Como hice ).
Como fui cambiándole el diseño, se llega a ver, como mínimo la última de los gastos. La primera de gastos no tiene por que verse, al igual que la primera de categorías.
( Mientras no toques con el ratón y no sepas que eso existe ). Smile

[Imagen: yXrLysr.png]

Saludos


RE: Campos claves - guizans - 10-01-2023

Hola.

  Se me ocurren dos posibles soluciones.
 Una: hacer una llamada a la base de datos que solo devuelva los datos que vayas a visualizar, con lo cual te evitas el problema.
 Dos: en el evento Data solo mostrar los datos que te interese, algo asi:
Código:
Public Sub GridView1_Data(Row As Integer, Column As Integer)
 
  Dim a As String[] = ["fecha", "cantidad", "precio"]
  resultado.MoveTo(Row)

  GridView1.Data.Text = resultado[a[Column]]
 
End

 Aunque tampoco me voy a arriesgar a decir que es la solución más óptima.

Un saludo.


RE: Campos claves - Shordi - 11-01-2023

Este tema se me presentó muy a menudo en el curro. La visión de las claves en el gridview es incómoda... pero a veces necesaria, sobre todo en la depuración de datos (registros duplicados o campos coincidentes, etc.).

La solución de Guizans es totalmente correcta (aunque yo le añadiría un poco de flexibilidad sustituyendo los nombres de los campos por su posición dentro del Result, que los nombres no son de fiar).

Aplicando la solución de Shell añadí la propiedad "Widths", que es un integer[] con los anchos de las columnas. A le que ponías 0 se ocultaba la columna, si ponías otro número se aplicaba ese ancho y si no ponías nada la columna era de ancho variable.

El tema de la propiedad Widths podéis verlo en la serie de vídeos que subí sobre la extensión de Gridview hace un tiempo... si no me falla la memoria.

Saludos


RE: Campos claves - Shell - 11-01-2023

Uno de los problemas que nos encontramos cuando aprendemos algo en programación, es la extensión del código.
Al principio creía que iba a ser más corta. Cuando lo hace uno mismo, tu lo entiendes, pero cuando es otro  o muchos otros,
es más complicado.

Esta base de datos en concreto que se supone que es para aprender, es realmente compleja, tiene como mil líneas de código.
La documentación del proyecto también es grande todo en inglés (normal, pero esto también se lo tienen que aplicar los que hablan inglés si
un proyecto o libro de programación está en español, ellos también deben traducir. La tarea es la misma para todos ).

En la documentación viene todo detallado, mapeado cada proceso o función. Ya no es que sea la base de datos, está enseñando
a como se debe organizar un proyecto, a como estudiarlo.
 
(11-01-2023, 11:33)Shordi escribió: Aplicando la solución de Shell añadí la propiedad "Widths", que es un integer[] con los anchos de las columnas. A le que ponías 0 se ocultaba la columna, si ponías otro número se aplicaba ese ancho y si no ponías nada la columna era de ancho variable.

No es mi solución, es lo que estoy aprendiendo del manual que os comenté hace unos días.Tiene muchos ejemplos y uno es la
creación de una base de datos. Le modifiqué el diseño, tema de colores, añadí contenedores, etc.

Esta es la documentación original y os recomiendo que conozcáis. Es interesante. Su autor es Gerry Buzolic.

A book by Gerry Buzolic Programming Gambas from Zip
 
Cita:El tema de la propiedad Widths podéis verlo en la serie de vídeos que subí sobre la extensión de Gridview hace un tiempo... si no me falla la memoria.

Estuve viendo desde el principio los videotutoriales. Son muchos y como dije arriba del todo, el código se va complicando y hay que retomarlo.
No es algo fácil y tampoco lo es para el que lo crea, en parte es que requiere mucho tiempo, dedicación, aclaraciones. Pero prometo que volveré
a retomarlo y volver a preguntar..jeje.  Smile

Cuando en su día conocí M$ Access no recuerdo si las tablas mostraban los campos de las claves primarias.
Es que en realidad no es algo que le interese al usuario y por otro lado no queda bien, sobre todo si es para algo profesional.

Saludos


RE: Campos claves - Shordi - 11-01-2023

Cita:Esta base de datos en concreto que se supone que es para aprender, es realmente compleja, tiene como mil líneas de código.
La documentación del proyecto también es grande todo en inglés (normal, pero esto también se lo tienen que aplicar los que hablan inglés si
un proyecto o libro de programación está en español, ellos también deben traducir. La tarea es la misma para todos ).

En la documentación viene todo detallado, mapeado cada proceso o función. Ya no es que sea la base de datos, está enseñando
a como se debe organizar un proyecto, a como estudiarlo.
 
¿De qué base de datos hablas?

Por otro lado mil líneas de código no son nada dentro de un proyecto míminamente sólido. El gbAmp (y lo cito por ser mi último proyecto casi finalizado) tiene casi cinco mil, y el anterior, el Soprano, unas cinco mil quinientas (sin olvidar que esta última versión era la simplificada) y no hablemos de programas serios. Los tres desarrollos principales que hice para mi empresa, Intriga, Gabinete y Shinigami ocupaban 14.343, 14.973 y 21.104 lineas respectivamente. La longitud no es ningún problema si el código está mínimamente bien estructurado y modularizado. Pero cuando empiezas a encontrar funciones de 800 líneas que contienen ifs de 300 y cosas por el estilo... échate a temblar.

Saludos


RE: Campos claves - Shell - 11-01-2023

(11-01-2023, 17:50)Shordi escribió: ¿De qué base de datos hablas?

Te muestro el enlace donde habla del capitulo de bases de datos en Sqlite.

Programming Gambas from Zip/SQLite
 
(11-01-2023, 17:50)Shordi escribió: Por otro lado mil líneas de código no son nada dentro de un proyecto míminamente sólido

En un proyecto para aprendizaje se vuelve algo enrevesado. Repaso las estadísticas del proyecto.

[Imagen: uzxSbfe.png]

Naturalmente que los proyectos suelen tener un montón de líneas, sobre todo si lo requiere.
Es solo que es más complicado a la hora de estudiarlo, planificarlos y quererlos mostrar al resto de la comunidad
si se quiere hacer un videotutorial, son muchas horas de estudio por ambas partes. La planificación y esqueleto
del proyecto se hace necesario. No es cuestión solo de mi proyecto hace esto, es aprender como se ha creado
y que recursos del lenguaje se ha utilizado. Y sobre todo no perderse por el camino.