Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Extraer Fecha En un Edit.- (https://www.clubdelphi.com/foros/showthread.php?t=3898)

UTECYBER 23-09-2003 23:18:50

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.

__cadetill 24-09-2003 00:49:44

Como a mi no me gustan los campos lockup, te explicaré cómo hacerlo con campos calculados :p

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

Julià T. 24-09-2003 01:08:01

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;


La franja horaria es GMT +2. Ahora son las 16:24:05.

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