mostrar resultados de consulta en textbox - 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: mostrar resultados de consulta en textbox (/thread-1830.html) |
mostrar resultados de consulta en textbox - alberto-moyano - 28-12-2024 Hola gente, espero hayan tenido buenas fiestas. Siguiendo la sugerencia de Tincho estoy haciendo una actualización en mi aplicación, pasando las consultas al evento data, este es el código Código: Public Sub VListaBIB_Data(Row As Integer, Column As Integer) el evento funciona sin problemas, ahora bien cuando hago click en cualquiera de las filas pretendo que se muestren en los textbox correspondientes los datos de la fila seleccionada, este es el código que escribi Código: Public Sub VListaBIB_RowClick(Row As Integer) Y este es el código que diseña el grid en el evento open del formulario Código: ' Ejecutar las consultas SQL Estoy medio perdido, porque lei en algun lugar a Shordi decir que el evento data no trabaja con filas, alguno tiene idea de por donde vienen los tiros. Saludos RE: mostrar resultados de consulta en textbox - guizans - 29-12-2024 Creo que el problema es el evento VListaBIB_RowClick. Supongo que estas usando un GridView por el evento _Data. Yo lo que hago sería algo así: Código: VListaBIB_Click() Con esto se dispara el evento al hacer click en el GridView. A continuación muevo el puntero del resultado de la base datos a la fila que ha sido seleccionada con: Código: ContenidoBibTotal.Moveto(VListaBIB.Row) y a partir de ahi rellenar todos los textbox. Creo que es algo así. Otra cosa. Yo el evento Data lo relleno de esta forma, me parece más limpia: Código: Public Sub VListaBIB_Data(Row As Integer, Column As Integer) Código: VListaBIB.Rows.Count = ContenidoBibTotal.Count Un saludo. RE: mostrar resultados de consulta en textbox - Harpo - 09-01-2025 Saludos, Seguramente el problema, al cargar los TextBox, esté en el código que se ejecuta entre la carga del GridView, al abrir el formulario, y el evento RowClick. Revisando el código no veo porqué no debería mostrar los datos siempre que el Result ContenidoBibTotal tenga datos, en algún momento debe pasar a ser nulo. Por otro lado, y en mi humilde opinión, yo en el evento RowClick haría la carga de los TextBox directamente desde el Result ContenidoBibTotal, no desde la propiedad Text de la celda, por cómo funciona el control GridView. GridView tiene una clase interna para manejar los datos de las celdas (_GridView_Data) y una clase para las celdas (_GridView_Cell). Y los valores de cada celda los almacena en un objeto Collection ($cCells), donde la clave es Fila-Columna y el valor un _GridView_Data. Cuando se usa el evento Data cargamos la propiedad Data del GridView, que es un _GridView_Data que el control después desecha, no almacena nada en $cCells. Por tanto, en el evento Data el control no almacena los datos para futuros usos, y cuando se le pide el valor de la propiedad Text de una celda vuelve a llamar a ese evento para recuperarlos. Por ejemplo, en el código que propone Guizans, donde crea e inicializa un String[] con los nombres de los campos, está creando e inicializando esa variable para cada celda. Y cuando recupera información de una celda, nueva llamada al evento. Personalmente utilizaría una variable de ámbito superior accesible desde el evento para evitar crear e inicializar una variable tantas veces. Un saludo, Harpo. RE: mostrar resultados de consulta en textbox - alberto-moyano - 10-01-2025 Gracias guizans y Harpo, ya solucioné el tema revisando el comentario de guizans, algo que encontré en la red del compañero Julio y otro tanto reviendo algunos videos de Shordi, llegue a esto que funciona bien (y muy rápido) el evento open contiene esto Código: Mod_Funciones.ConfigurarGridView(VListaBIB) el evento data, quedo así Código: Public Sub VListaBIB_Data(Row As Integer, Column As Integer) el evento click, quedo así Código: Public Sub VListaBIB_Click()' grid en el formulario principal y la función que diseña el grid así Código: ' en el módulo de funciones se muestran los datos en los campos con este código que está en un módulo Código: Public Sub VerBibTeXenVListaBIB() Harpo, voy a intentar entender lo que dices, es demasiado para mí, pero no le escapo al bulto. Gracias y saludos |