Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #2  
Antiguo 08-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
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
TabsheetNames            articulos, proveedores, ventas

sqlarticulos             select codigoArticulo, descripcion  from articulos
sqlproveedores           select codigoprov, nombre  from proveedores where %s
sqlventas                select codigoVenta, codigo Articulo from ventas where %s
Para guardar los nombres de los tabsheet, te puedes ayudar del CommaText de un StringList

Se supone que cada tabsheet tendrá un Query asociado al grid, y guardamos el sql de cada uno de esas querys.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 08-12-2006
vladimirbp vladimirbp is offline
Miembro
 
Registrado: oct 2006
Posts: 13
Poder: 0
vladimirbp Va por buen camino
tendrás por ahi algun ejemplito??, suponiendo que ya tengo el PageControl con sus TabSheets, el ADOQuery y el DataSource.

gracias

Cita:
Empezado por Lepe
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
Responder Con Cita
  #4  
Antiguo 09-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
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:
Código Delphi [-]

uses UFrameBase;

procedure TForm1.Form1Create(....);
var frame :TFrameBase;
begin
   frame := TFrameBase.Create(Self);
   with frame do
   begin 
      top := 10;
      left:= 10;
      parent := TabSheet1;
      Query1.sql.text := 'select * FROM ARTICULOS';
      Query1.Open;
      DBGrid.RebuildColumns;
   end;
end;

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 09-12-2006
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 23
AzidRain Va camino a la fama
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)
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #6  
Antiguo 11-12-2006
vladimirbp vladimirbp is offline
Miembro
 
Registrado: oct 2006
Posts: 13
Poder: 0
vladimirbp Va por buen camino
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:
Empezado por AzidRain
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)
Responder Con Cita
  #7  
Antiguo 11-12-2006
vladimirbp vladimirbp is offline
Miembro
 
Registrado: oct 2006
Posts: 13
Poder: 0
vladimirbp Va por buen camino
gracias, lepe. Lo voy a intentar...

saludos


Cita:
Empezado por Lepe
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:

Código Delphi [-]

uses UFrameBase;

procedure TForm1.Form1Create(....);
var frame :TFrameBase;
begin
frame := TFrameBase.Create(Self);
with frame do
begin
top := 10;
left:= 10;
parent := TabSheet1;
Query1.sql.text := 'select * FROM ARTICULOS';
Query1.Open;
DBGrid.RebuildColumns;
end;
end;





Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
problema al crear tabsheet Choclito Varios 10 08-04-2006 19:00:48
TabSheet REHome OOP 4 03-12-2004 05:33:23
TabSheet ramonibk Varios 3 23-09-2004 12:47:07
Crear TabSheet en Runtime previamente diseñado cacuna Varios 4 22-09-2004 06:52:10
Como Crear un TabSheet en Tiemo de Ejecucion Michel OOP 1 08-08-2003 00:43:32


La franja horaria es GMT +2. Ahora son las 06:55:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi