Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-01-2010
Avatar de JoysticK
JoysticK JoysticK is offline
Miembro
 
Registrado: abr 2004
Posts: 68
Poder: 21
JoysticK Va por buen camino
Unhappy Utilizar plantillas Excel...

Hola, tengo una duda con algo que tengo en mente voy a explicaros a ver si alguno le veis solucion....


Por un lado quiero tener un archivo de excel con ciertas celdas que deben ser rellenadas automaticamente con los datos de una base de datos (utilizo firebird) la idea es poner en las celdas que quiera algun dato algo como "CAMPOAuto.Logica.TClientes.Empresa.AsString" esto lo pondria dentro de una celda de excel, despues abriria ese fichero con delphi recorreria x filas y x columnas mirando si el contenido de la celda donde este posicionado empieza por "CampoAuto." y si es asi, miraria que campo es el que tengo que insertar aqui, es este caso seria "Logica.TClientes.Empresa.AsString", esa es la teoria ahora lo que no se es como acceder al valor de "Logica.TClientes.Empresa.AsString" dado que hasta este punto lo esto tratando como un string y lo que yo quiero es el valor, como si de un puntero se tratara...

¿ me he explicado bien o alguien se ha perdido ?
__________________
Borland Delphi XE2 // Interbase Server
Responder Con Cita
  #2  
Antiguo 20-01-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por JoysticK Ver Mensaje
...esa es la teoria ahora lo que no se es como acceder al valor de "Logica.TClientes.Empresa.AsString" dado que hasta este punto lo esto tratando como un string y lo que yo quiero es el valor, como si de un puntero se tratara...
Te has explicado bastante bien y además la idea me parece buena.
Creo que todo depende de las posibilidades que tengas de acceder a las clases de la lógica y a sus propiedades.

En mi caso (modelo de lógica/persistencia), se puede acceder a una clase y a sus propiedades a partir de una string; En tu caso dependerá de cómo esté implementada la clase Cliente y el resto pertenecientes a tu lógica.

No se si me he explicado bien.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 20-01-2010
Avatar de JoysticK
JoysticK JoysticK is offline
Miembro
 
Registrado: abr 2004
Posts: 68
Poder: 21
JoysticK Va por buen camino
Gracias Neftali por responder, aunque la verdad no he comprendido mucho, te doy mas datos...

en "Logica.TClientesEmpresa.AsString"

Logica es un Data Module, TCliente un ClientDataSet y Empresa uno de sus campos, ahora lo que no se es como acceder al contenido de ese campo partiendo de esa string...

Código:
Cadena : String;
Cadena :=  'Logica.TClientesEmpresa.AsString';
ShowMessage( Cadena ); --> "Logica.TClientesEmpresa.AsString" 
ShowMessage( Logica.TClientesEmpresa.AsString ); --> "EMPRESAS DEL SUR S.L."
__________________
Borland Delphi XE2 // Interbase Server
Responder Con Cita
  #4  
Antiguo 21-01-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por JoysticK Ver Mensaje
Gracias Neftali por responder, aunque la verdad no he comprendido mucho, te doy mas datos...
Ok. Fallo mío. Al ver el código y los nombres, pensé que estabas utilizando algun sistema de Lógica de negcio, Persistencia o similar.... Nada, ni caso a lo que te he dicho.

Código Delphi [-]
  Cadena :=  'Logica.TClientesEmpresa.AsString';

En tu caso tal vez sea más sencillo.

Puedes buscar los formularios de la aplicación haciendo un recorrido por la variables Screen:

Código Delphi [-]
  for i := 0 to (Screen.FormCount - 1) do begin
    if (Screen.CustomForms[i] is TForm) then begin
      DM := TForm(Screen.Forms[i]);
      MessageDlg('Encontrado el formulario: ' + DM.Name, mtInformation, [mbOK], 0);

Creo que con eso no puedes llegar a un TDataModule, que basta con que lo cambies por un TForm.

Una vez que accedas al formulario, puedes hacer algo similar para acceder a los componentes (entre ellos los campos), utilizando:

Código Delphi [-]
  for i := 0 to (Screen.FormCount - 1) do begin
    if (Screen.CustomForms[i] is TForm) then begin
      DM := TForm(Screen.Forms[i]);
      MessageDlg('Encontrado el formulario: ' + DM.Name, mtInformation, [mbOK], 0);

      // Buscar el campo
      comp := DM.FindComponent('TClienteEmpresa');
      if Assigned(comp) then begin
        MessageDlg('Sí encontrado el campo en el formulario: ' + DM.Name, mtInformation, [mbOK], 0);
      end
      else begin
        MessageDlg('No encontrado el campo en el formulario: ' + DM.Name, mtInformation, [mbOK], 0);
      end;
    end;
  end;

Con esto, teniendo "Logica.TClienteEmpresa", suponiendo que Logica sea un formulario (no un datamodule), podrías acceder al TField Empresa.

Para acceder cómo "AsString", sólo se me ocurre que hagas un CASE con las varias posibilidades segun el tipo de campo.

Espero haberme explicado bien.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



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
plantillas aspnet cmm07 Varios 1 23-08-2008 20:23:08
Plantillas de Diseño jostrix PHP 1 17-10-2004 10:28:21
Realizar plantillas acrophet Varios 6 18-08-2004 18:04:14
Intraweb y las Plantillas Brewster Internet 4 20-04-2004 18:32:26
plantillas de excel sledgehammer Impresión 1 21-10-2003 13:23:32


La franja horaria es GMT +2. Ahora son las 16:50:22.


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