Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 09-08-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 27
__cadetill Va por buen camino
para cómo crear campos calculados te remito a este hilo

http://www.clubdelphi.com/foros/show...&threadid=2819

Y un ejemplo....

yo tengo una tabla de detalle factura en el que guardo Cantidad e Importe. Este Importe, supongamos que es unitario y, quiero saber el Total de esa linea de factura. Pues bien, en lugar de crear un campo físico en la Tabla, creo un campo calculado como explico en el hilo que te comento al cual le llamo Total y, programo el evento OnCalcFields de mi Dataset de la siguiente manera

Código:
  Tabla1.FieldByName('Total').AsFloat := 
        Tabla1.FieldByName('Cantidad').AsFloat * 
        Tabla1.FieldByName('Importe').AsFloat
Esto es una operacion sencilla, pero podrias hacer otras cosas como, por ejemplo, la tabla de clientes tiene un campo que es el codigo de la moneda de ese cliente, y queremos saber las descripcion que esta en la tabla monedas. Pues podemos crear un campo calculado que se llame DescripcionMoneda y en el OnCalcFields poner.....

Código:
var 
  // miramos la descripcion mediante una Query
  if Tabla1.FieldByName('Id_Moneda').AsInteger <> 0 then begin
    Quer1.SQL.Text := 'select * from Monedas where ID = ' +
              Tabla1.FieldByName('ID_Moneda').AsString;
    Query.Open;
    if not Query.Fields[0].IsNull then
      Tabla1.FieldByName('DescripcionMoneda').AsString :=
                Query.FieldByName('Descripcion').AsString
    else
      Tabla1.FieldByName('DescripcionMoneda').AsString := '';
  end else 
    Tabla1.FieldByName('DescripcionMoneda').AsString := '';
Espero que te sirvan los ejemplos
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 01:24:25.


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