Ver Mensaje Individual
  #3  
Antiguo 27-01-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola scigliano, bien venido a Club Delphi .

Coincido con olbeup en que no está muy claro tu planteo...

Lo que interpreté es que hay dos campos en juego, uno que indica si posee fecha de fin de contrato (llamémosle "FIN_CONTRATO") y otro (llamémosle "FECHA") que, de estar el anterior en verdadero, almacena la fecha del mismo y en caso contrario deberá tener el valor NULL.

Si es así, yo haría por ejemplo:
Código Delphi [-]
// ( La propiedad EditMask es configurable desde el Object Inspector,
//  si previamente has creado los campos persistentes )
procedure TForm1.FormCreate(Sender: TObject);
begin
  DataSet.FieldByName('FECHA').EditMask:= '00/00/0000;1; ';
end;

// Evento OnDataChange del TDataSource asociado,
// aprovechado para activar/desactivar acciones sobre campo "FECHA"
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
  // ( DBEdit1: DataSource=DataSource1 / DataField="FECHA" )
  DBEdit1.Enabled:= Boolean(DataSet.FieldByName('FIN_CONTRATO').AsInteger);
  Button1.Enabled:= DBEdit1.Enabled;
end;

// Pone el campo "FECHA" en NULL
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Boolean(DataSet.FieldByName('FIN_CONTRATO').AsInteger) then
  begin
    DataSet.Edit;
    DataSet.FieldByName('FECHA').Clear;
    DataSet.Post;
  end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita