Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 24-09-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 27
__cadetill Va por buen camino
Como a mi no me gustan los campos lockup, te explicaré cómo hacerlo con campos calculados

Seleccionas el Dataset de Detalle Facturas y le haces doble clic. En la pantalla que saldrá, haz clic con el botón derecho y escoge Add All Fields. Ahora acabas de crear los TFields de la tabla en cuestión (los campos persistentes).

Vuelve a hacer clic con el botón derecho y escoge Add New Field (o algo así, lo estoy poniendo de memoria). Te aparecerá una pantalla. En ella deves poner el nombre del nuevo campo, así como el tipo y la longitud.

Ahora biene la diferencia al crear un campo calculado o loockup. Verás que tienes un radio group para escoger el tipo de campo (Data, Calculated, loockup).
Los campos Data son aquellos campos que se encuentran definidos físicamente en la tabla de la base de datos.
Si sigues queriendo campos loockup, marca la opción de éste e informa las 4 variables de acontinuación (tabla de referencia, campo de referencia, ....) y ya lo tendrás
Si lo quieres como calculado, selecciona la opción de éste y acepta la pantalla.
Con loockup ya has terminado el tabajo, pero con los calculados, tendrás que programar el evento OnClacFields del DataSet para extraer la información de la descripción del artículo con algo como

Código:
var
  Q : TQuery; // o los componentes que utilices (IBX, ....)
begin
   Q := TQuery.Create(Self);
   try
      Q.Database := TTable(Dataset).Database;
      Q.SQL.Text := 'select descripcion from articulos ' +
             'where codigo = ' + QuotedStr(TablaCodigo.AsString);
      Q.Open;
      if Q.Fields[0].IsNull then
         TablaDescripcion.AsString := ''
      else
         TablaDescripcion.AsString := Q.Fields[0].AsString;
   finally
      FreeAndNil(Q);
   end;
end;
he supuesto que el codigo del articulo (campo Codigo) es alfanumerico (de ahi el QuotedStr) y que el campo calculado que has creado se llama Descripcion

Como ves, da más trabajo el realizar campos calculados, pero como he dicho antes, a mi me gustan más ya que, en un momento dado que quieras, puedes desactivarlos (con una propiedad del Dataset) o cambiar su comportamiento,.....

Para el tema de la fecha, puedes informar el evento OnNewRecord del Dataset y poner algo como....

Código:
procedure TDataModule1.TablaNewRecord(Dataset: TDataset);
begin
   TablaCampoFecha.AsDateTime := Date;
end;
Bueno, espero te sirva

PD: lo he puesto todo de memoria, por lo que seguramente habrá algun error
Responder Con Cita
 



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


La franja horaria es GMT +2. Ahora son las 13:31:04.


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