Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-09-2003
UTECYBER UTECYBER is offline
Miembro
 
Registrado: ago 2003
Posts: 60
Poder: 21
UTECYBER Va por buen camino
Extraer Fecha En un Edit.-

Saludos.-

Estoy Elaborando Una Factura Con la relacion Master/Detalle.
Tengo mis tablas /Cliente/Producto/FacturaCabecera/FacturaDetalle.-Elabore la relacion de las tablas. Hasta ahi estoy bien
Pero quiero crear un campo Luckop LLamado (Descripcion) que lo quiero relacionar con mi tabla producto. Sin necesidad de Tener el campo Descripcion En mi Factura Detalle, Y quiero que dicho campo este en un DBgrid que me representa la factura Detalle....


Otro Parte.-
Pero Necesito que cuando yo genere el proceso de factura, en el edit del campo fecha me genere la fecha actual y me la traiga. Sin necesidad de yo escribirla. Es decir que se genere Automaticamente.

Atte. Utecyber
Al parecer estoy incrementando mi sabiduria en delphi. Gracias a esta pagina tan importante.
Responder Con Cita
  #2  
Antiguo 24-09-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__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
  #3  
Antiguo 24-09-2003
Julià T. Julià T. is offline
Miembro
 
Registrado: may 2003
Ubicación: en el teclado
Posts: 314
Poder: 21
Julià T. Va por buen camino
para hacer el lookop entre tablas que creeo que qieres hacer ( que en la tabla detalle, se enlace con un a tercera tabla con un campo común entre ambas y que aparezca un campo de la tercera correspondiente al registro común)

Para ello debes agregar un nuevo campo y definirlo como el siguiente:

-Nombre: alguno se te ocurrirá
-Type: en tu caso de descripción será string
-tamaño: el que haga falta
-Field Type: Lookup
-Dataset: El de la tercera tabla (producto)
-Key Fileds: El campo común de la tabla detalle
-Lookup keys: El campo común de latercera tabla (producto)
-Result Field: El campo descripción de la tercera tabla (producto)

para el campo de fecha

Campofecha.value:=now;
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


La franja horaria es GMT +2. Ahora son las 15:28:04.


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