Goyo
24-05-2007, 20:15:17
Necesito saber como sumar dias a una fecha dada, para ello estoy utilizando 3 DBEdit de una tabla de Paradox, la idea es que cuando yo escriba la fecha con un DBDateTimeEditEh1 (DBEdit1) y sumar dias (DBEdit2) y como resultado me de otra fecha ya sumando los dias (DBEdit3).
DBDateTimeEditEh1 es un componente de la libreria EhLib que se asigna directamente a campo de mi Tabla TbEmpleados
Los campos son de tipo String:
FInicioLicencia : String : 10
FTerminoLicencia : String : 10
TotalDiasLicencia: Integer
el codigo que tengo es este:
procedure TFormLicencias.TotaldiasLicenciaChange(Sender: TObject);
begin
TerminaLicencia.Text:= FormatDateTime('dd/mm/yyyy', StrToDate(DBDateTimeEditEh1.Text) + StrToInt(TotaldiasLicencia.Text));
end;
de hecho al principio si lo hacia, pero ahora cuando ejecuto mi Aplicacion me manda el siguiente mensaje de error: (si le pongo como comentario a esta linea:
// TerminaLicencia.Text:= FormatDateTime('dd/mm/yyyy', StrToDate(DBDateTimeEditEh1.Text) + StrToInt(TotaldiasLicencia.Text));
se ejecuta bien mi aplicacion.
Project PlantillaCAPASEG.exe raised exception class EConvertError with message " / / 'is not a valid date'.
y le vuelvo a pulsar ejecutar y me envia el siguiente error:
Exception EConvertError in module PlantillaCAPASEG.exe at 0000872A ' / / 'is not a valid date'
La idea que tengo es que cuando yo capture todos los datos de los empleados estos se graben casi todos los campos (exepto FInicioLicencia, FTerminoLicencia, TotalDiasLicencia), para que cuando yo entre a dar Licencias (Permisos en el trabajo por X numero de dias), y utilizar un CheckBox al activar se activen los campos solicitados) y en el campo Estatus: sea igual a L (Licencia), A (Activo).
procedure TFormLicencias.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
begin
// DBDateTimeEditEh1.Enabled:=True;
TotaldiasLicencia.Enabled:=True;
IniciaLicencia.Enabled:=True;
TerminaLicencia.Enabled:=True;
dm.TbEmpleados.FieldByName('Estatus').AsString:= 'L';
end
else
begin
dm.TbEmpleados.FieldByName('Estatus').AsString:= 'A';
Totaldiaslicencia.Text:='';
IniciaLicencia.Text:='';
TerminaLicencia.Text:='';
end;
end;
de momento saludos y gracias por su atencion.
DBDateTimeEditEh1 es un componente de la libreria EhLib que se asigna directamente a campo de mi Tabla TbEmpleados
Los campos son de tipo String:
FInicioLicencia : String : 10
FTerminoLicencia : String : 10
TotalDiasLicencia: Integer
el codigo que tengo es este:
procedure TFormLicencias.TotaldiasLicenciaChange(Sender: TObject);
begin
TerminaLicencia.Text:= FormatDateTime('dd/mm/yyyy', StrToDate(DBDateTimeEditEh1.Text) + StrToInt(TotaldiasLicencia.Text));
end;
de hecho al principio si lo hacia, pero ahora cuando ejecuto mi Aplicacion me manda el siguiente mensaje de error: (si le pongo como comentario a esta linea:
// TerminaLicencia.Text:= FormatDateTime('dd/mm/yyyy', StrToDate(DBDateTimeEditEh1.Text) + StrToInt(TotaldiasLicencia.Text));
se ejecuta bien mi aplicacion.
Project PlantillaCAPASEG.exe raised exception class EConvertError with message " / / 'is not a valid date'.
y le vuelvo a pulsar ejecutar y me envia el siguiente error:
Exception EConvertError in module PlantillaCAPASEG.exe at 0000872A ' / / 'is not a valid date'
La idea que tengo es que cuando yo capture todos los datos de los empleados estos se graben casi todos los campos (exepto FInicioLicencia, FTerminoLicencia, TotalDiasLicencia), para que cuando yo entre a dar Licencias (Permisos en el trabajo por X numero de dias), y utilizar un CheckBox al activar se activen los campos solicitados) y en el campo Estatus: sea igual a L (Licencia), A (Activo).
procedure TFormLicencias.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
begin
// DBDateTimeEditEh1.Enabled:=True;
TotaldiasLicencia.Enabled:=True;
IniciaLicencia.Enabled:=True;
TerminaLicencia.Enabled:=True;
dm.TbEmpleados.FieldByName('Estatus').AsString:= 'L';
end
else
begin
dm.TbEmpleados.FieldByName('Estatus').AsString:= 'A';
Totaldiaslicencia.Text:='';
IniciaLicencia.Text:='';
TerminaLicencia.Text:='';
end;
end;
de momento saludos y gracias por su atencion.