![]() |
Crear TabSheet...
Que tal?
Tengo un Page Control que contendrá desde 1 hasta N TabSheets, estos TabSheets tendrán un DBGrid. Como se puede crear estos TabSheets en tiempo de ejecución?, y a su vez sus respectivos DBGrids?? gracias y saludos VB |
Eso que quieres hacer viene en la ayuda de Delphi...me pregunto 2 cosas
1.- Los grids son identicos? Es decir contendran las mismas columnas (posiblemente no los mismos datos) Cual es tu idea o que piensas hacer... |
gracias por responder...
Cada TabSheet tendrá un solo DBGrid, pero el numero de columnas de cada grid puede variar.
Tengo pensado hacer Catálogos parametrizables, de tal manera que si tengo un catálogo de articulos en una pestaña, en otra pestaña podria tener que proveedores me venden ese artículo, en otra pestaña podría tener los costos, precios de venta, margenes de utilidad, etc. por sucursal. saludos P.D. revisaré la ayuda de Delphi, pero no están demás unos Tips de los expertos. :o) Cita:
|
¿qué ganas con tener N-tabsheets?
Si cambias de tabsheet, ocultas la anterior, así que...¿no podrías utilizar un solo DBGrid? 5 DBgrids, con sus respectivas consultas y datos en memoria, consume recursos. Usando una consulta y los datos, solo tendrías que guardar la sentencia sql de artículos (un string) y reutilizas el Query y el DBGrid. Por otra parte, mezclar temas distintos en una sola ventana puede llegar a ser engorroso para el usuario. Yo pondría botones con proveedores, otro con costes, otro con ventas, etc, al pulsar el botón abres la ventana de cada uno de ellos. Saludos |
que tal?
lo que pasa es que lo quiero hacer lo mas parametrizable posible, para que los cambios que haga se reflejen sin necesidad de recompilar y estar enviando el EXE a todas las sucursales. Todos los parametros los guardaría en tablas. lo de poner varias pestañas con los datos que mencioné es porque así me lo pidió el cliente. Ni modo, al cliente lo que pida. Por lo pronto ya logré crear TabSheets en tiempo de ejecución, falta crear un DBGrid para cada TabSheet. saludos Cita:
|
Ahh, vale, vale, si el cliente lo pide se hace y punto (ya me ha pasado jejej).
Crear el DBgrid es exactamente lo mismo. Crear, asignar el padre (parent) que será el tabsheet, asignar el el datasource y por último hacer un grid.RebuildColumns (esto hace que tome de la base de datos la definición de cada columna, con el displayWith (ancho de cada columna, formato para mostrar cada columna, etc). En principio, tampoco hace falta llamar a Rebuildcolumns, creo que se hace internamente, aunque a mí me gusta hacerlo de forma explícita. Si dentro de cada TabSheet va lo mismo, es decir, un grid, un par de botones, etc. Yo te aconsejaría hacer un Frame, en él pones el grid, los botones que te haga falta y alguna que otra rutina que necesites. Después de crear el TabSheet, creas dentro una instancia de ese frame. Así quizás puedas tener más facilidad de trabajo. Saludos |
Para hacerlo parametrizable, yo guardaría algo así en la Base de datos, (supongo que es más o menos lo que has hecho) quizás te aporte algo:
Tabla de configuración: Código:
Name Valor Se supone que cada tabsheet tendrá un Query asociado al grid, y guardamos el sql de cada uno de esas querys. Saludos |
tendrás por ahi algun ejemplito??, suponiendo que ya tengo el PageControl con sus TabSheets, el ADOQuery y el DataSource.
gracias :D Cita:
|
Como te dije es más fácil crear un componente en ejecución (el frame) que 3 componentes.
En delphi, file -> new -> frame ahora dentro colocas el grid, el datasource, el query y los enlazas todos. Obviamente no funciona porque falta asignar el sql, pero eso creo que es lo de menos ¿no? Guarda como FrameBase (el Frame en sí, como si fuera un Form) y como UFrameBase el .pas Si lo vas a usar en el Form1, haces esto:
Saludos |
Según veo como lo quiere tu cliente es que empieza siempre en la primera pestaña, luego de algún registro que esté consultado puede obtener detalles del mismo en las otras pestañas.
No entiendo tu concepto de "parametrizables", como lo planteas el número de tablas (y pestañas) que vas a utilizar es fijo (artículos,proveedores, ventas) por lo que no veo caso ir creando en tiempo de ejecución los querys y pestañas. De acuerdo a como lo quiere tu cliente, necesitas efectivamente las tres tablas pero como ya vimos que dos de ellas son detalle de la primera,podrías usar un enfoque "Maestro-Detalle" y hacer los enlaces correspondientes. De forma que cada vez que cambias de artículo los otros querys se actualizan en automático con la información pertinente. Ahora bien, no siempre se puede esto porque implica cargar las tablas completas...miles de registros a veces. Entonces si se va a ejecutar el query cada vez que se quiere accesar a los detalles es exactamente el mismo caso de poner las pestañas previamente con sus grids dentro y unicamente ejecutar el query de cada grid de detalle cuando el cliente haga click en la pestaña por primera vez. La secuencia sugerida podria ser: 1.- El cliente abre la ventana y se le muestran los artículos (la ventana tiene las tres pestañas) 2.- El cliente hace click en proveedores para ver los que venden ese artículo 3.- La aplicación verifica si se seleccionó un artículo distinto y si no está ya abierto el query de proveedores...en su caso lo abre (con el parametro que corresponda) 4.-Se muestra el grid con los proveedores. 5.- Se repite 3 y 4 para las otras pestañas de detalle si el cliente las usa. 6.-Si el cliente cambia de artículo, cerrar los otros querys (ya no corresponden al artículo) |
gracias, lepe. Lo voy a intentar...
saludos Cita:
|
AzidRain
manejo el concepto de parametrizable ya que esa misma pantalla de articulos la podré reutilizar para crear otros catalogos que tambien podrían llevar 1 o mas pestañas. Los parametros los guardaré en tablas y los cargaré al iniciar mi aplicación. Por ejemplo: SQL del catalogo, orden, botones que estaran visibles o invisibles segun el usuario, etc. Cita:
|
La franja horaria es GMT +2. Ahora son las 12:39:06. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi