Ver Mensaje Individual
  #1  
Antiguo 15-04-2015
sorianolloret sorianolloret is offline
Registrado
NULL
 
Registrado: abr 2015
Posts: 5
Reputación: 0
sorianolloret Va por buen camino
Recorrer Una Tabla Calendario Y Añadir Los Años Concatenados Sin Duplicarlos

Buenas tengo el siguiente codigo en un boton calcular datos, el cual recorre una tabla calendario, busca las condiciones para esa fecha en una tabla condiciones, y actualiza una tabla resultado parcial segun los calculos hechos. los registros de la tabla resultado parcial ya estan previamente creados segun las difentes condiciones para cada empleado con los campos a cero.
El problema es que necesito si la fecha a calcular abarca varios años los concatene en la tabla resultado parcial campo año, segun idcondiciones, pero sin duplicar los años.
los años los tengo y guardo como string.
este codigo funciona pero solo almacena el ultimo año valido para cada condicion.
la tabla calculoresultadoparcial es:
si la fecha de baja es null lo controlo asignando eventualmente la fecha de hoy.
COMO PODRIA CONCATENAR LOS AÑOS + ; EN UNA VARIALBLE STRING HE IR ELIMINANDO DE LA MISMA LOS DUPLICADOS?
unit calculoresultadoparcial;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.DBCtrls, Vcl.Grids,
Vcl.DBGrids, Data.DB, Data.Win.ADODB, Vcl.StdCtrls, Vcl.ComCtrls,Math;

type
Tfrmcalculoparcial = class(TForm)
Panel2: TPanel;
Panel7: TPanel;
Panel8: TPanel;
Panel9: TPanel;
DBNavigator3: TDBNavigator;
DBGrid3: TDBGrid;
RadioGroup1: TRadioGroup;
Panel10: TPanel;
Label2: TLabel;
Label3: TLabel;
DateTimePickerdesde: TDateTimePicker;
DateTimePickerhasta: TDateTimePicker;
btnresultadoparcial: TButton;
Panel11: TPanel;
DBNavigator4: TDBNavigator;
DBGrid4: TDBGrid;
ADOConnectionEmpleados: TADOConnection;
DataSourceEmpleados: TDataSource;
ADODataSetEmpleados: TADODataSet;
Panel1: TPanel;
Panel3: TPanel;
DBGrid1: TDBGrid;
Panel12: TPanel;
DBGrid5: TDBGrid;
Panel4: TPanel;
DBNavigator1: TDBNavigator;
Panel5: TPanel;
DBGrid2: TDBGrid;
Panel6: TPanel;
DBNavigator2: TDBNavigator;
DataSourceCalendario: TDataSource;
ADODataSetCalendario: TADODataSet;
ADOConnectionCalendario: TADOConnection;
DataSourceCondiciones: TDataSource;
ADODataSetCondiciones: TADODataSet;
ADOConnectionCondiciones: TADOConnection;
ADOConnectionresultadoparcial: TADOConnection;
DataSourceresultadoparcial: TDataSource;
ADODataSetresultadoparcial: TADODataSet;
btncalcular: TButton;
DBGrid6: TDBGrid;
DBNavigatorcondiciones: TDBNavigator;
DataSourceconvenio: TDataSource;
ADOConnectionconvenio: TADOConnection;
ADODataSetconvenio: TADODataSet;
btnira: TButton;
DateTimePickerira: TDateTimePicker;
procedure FormShow(Sender: TObject);
procedure btncalcularClick(Sender: TObject);
procedure btnresultadoparcialClick(Sender: TObject);
procedure btniraClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmcalculoparcial: Tfrmcalculoparcial;

implementation

{$R *.dfm}

uses tipodiatrabajado, tipodialibre, tipodebaja, tipodevacaciones, convenio,
progreso;

procedure Tfrmcalculoparcial.btncalcularClick(Sender: TObject);
var
año:integer;
fechacondicioninicio,fechacondicionfinal:string;
fechadesde, fechahasta:Tdate;
diasaño, diastrabajados, diaslibrados, vacacionesdisfrutadas, correspondenlibres:integer;
diassueltossinagrupar, diassueltossinagruparañoanterior, acumuladoañoanterior:integer;
vacacionesnodisfrutadas, correspondenvacaciones, lunestrabajados, martestrabajados:integer;
miercolestrabajados, juevestrabajados, viernestrabajados, sabadostrabajados:integer;
domingostrabajados, lunesnotrabajados, martesnotrabajados:integer;
miercolesnotrabajados, juevesnotrabajados, viernesnotrabajados, sabadosnotrabajados:integer;
diaslibresporconvenio, diasdebaja:integer;
añocerrado, ENCONTRADO:boolean;
CONDICION:INTEGER;
DNI:STRING;
añadiraño:boolean;
contadorfechascalculas:integer;
begin
año:=0;
añadiraño:=true;
adodatasetcalendario.Close;
adodatasetcalendario.Open;
ADODATASETRESULTADOPARCIAL.Close;
ADODATASETRESULTADOPARCIAL.Open;


fechacondicioninicio:=datetostr(datetimepickerdesde.Date);
fechacondicionfinal:=DATETOSTR(datetimepickerhasta.Date);
adodatasetcalendario.First;
DNI:=ADODATASETEMPLEADOS.FieldByName('DNI').Value;

ADODATASETRESULTADOPARCIAL.Close;
ADODATASETRESULTADOPARCIAL.OPEN;

ADODATASETRESULTADOPARCIAL.Edit;
ADODATASETRESULTADOPARCIAL.First;
adodatasetcalendario.locate('DNI;FECHA',Vararrayof([DNI, FECHACONDICIONINICIO]),[loCaseInsensitive, loPartialKey]);


frmprogreso.ProgressBarprogreso.Max:=trunc(DateTimePickerhasta.Date)-trunc(DateTimePickerdesde.Date);
while ((not adodatasetcalendario.Eof) and ((adodatasetcalendario.FieldByName('FECHA').AsDateTime)<=(STRTODATE(fechacondicionfinal)))) do
begin


frmprogreso.ProgressBarprogreso.StepIt;
adodatasetcalendario.Edit;
CONDICION:=ADODATASETCALENDARIO.FieldByName('IDCONDICIONES').Value;
ADODATASETCONDICIONES.First;

adodatasetcondiciones.Locate('IDCONDICIONES',CONDICION, []);




ADODATASETRESULTADOPARCIAL.Edit;
CONDICION:=ADODATASETCALENDARIO.FieldByName('IDCONDICIONES').Value;
ADODATASETRESULTADOPARCIAL.Locate('IDCONDICIONES',CONDICION,[]);
ADODATASETRESULTADOPARCIAL.Edit;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='LUNES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('TOTAL LUNES').value:=adodatasetresultadoparcial.FieldByName('TOTAL LUNES').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='MARTES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('TOTAL MARTES').value:=adodatasetresultadoparcial.FieldByName('TOTAL MARTES').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='MIERCOLES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('TOTAL MIERCOLES').value:=adodatasetresultadoparcial.FieldByName('TOTAL MIERCOLES').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='JUEVES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('TOTAL JUEVES').value:=adodatasetresultadoparcial.FieldByName('TOTAL JUEVES').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='VIERNES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('TOTAL VIERNES').value:=adodatasetresultadoparcial.FieldByName('TOTAL VIERNES').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='SABADO' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('TOTAL SABADOS').value:=adodatasetresultadoparcial.FieldByName('TOTAL SABADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='DOMINGO' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('TOTAL DOMINGOS').value:=adodatasetresultadoparcial.FieldByName('TOTAL DOMINGOS').value+1;
END;

ADODATASETRESULTADOPARCIAL.FieldByName('DIAS AÑO').Value:=365;
if ADODATASETCALENDARIO.FieldByName('BISIESTRO').VALUE=TRUE then
BEGIN
ADODATASETRESULTADOPARCIAL.FieldByName('DIAS AÑO').Value:=366;
END;
//**** AQUI ES DONDE TENGO EL PROBLEMA ***************
ADODATASETRESULTADOPARCIAL.FieldByName('AÑO').Value:=ADODATASETCALENDARIO.FieldByName('AÑO').VALUE;
//************

FRMTIPODIATRABAJADO.ADODataSettipodiatrabajado.First;
while NOT FRMTIPODIATRABAJADO.ADODataSettipodiatrabajado.EOF do
BEGIN
if ADODATASETCALENDARIO.FieldByName('TIPO DIA').Value=FRMTIPODIATRABAJADO.ADODataSettipodiatrabajado.FieldByName('DIATRABAJADO').VALUE then
BEGIN
ADODATASETRESULTADOPARCIAL.FieldByName('DIAS TRABAJADOS').Value:=ADODATASETRESULTADOPARCIAL.FieldByName('DIAS TRABAJADOS').Value +1;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='LUNES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('LUNES TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('LUNES TRABAJADOS').value+1;
END;
//**BORRADO NO CABE EN ESTE MENSAJE, CALCULO HASTA DOMINGOS
END;
FRMTIPODIATRABAJADO.ADODataSettipodiatrabajado.Next;
END;
FRMTIPODIALIBRE.ADODataSettipodialibre.First;
while NOT FRMTIPODIAlibre.ADODataSettipodialibre.EOF do
BEGIN
if ADODATASETCALENDARIO.FieldByName('TIPO DIA').Value=FRMTIPODIAlibre.ADODataSettipodialibre.FieldByName('DIAlibre').VALUE then
BEGIN
ADODATASETRESULTADOPARCIAL.FieldByName('DIAS LIBRADOS').Value:=ADODATASETRESULTADOPARCIAL.FieldByName('DIAS LIBRADOS').Value +1;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='LUNES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('LUNES NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('LUNES NO TRABAJADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='MARTES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('MARTES NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('MARTES NO TRABAJADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='MIERCOLES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('MIERCOLES NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('MIERCOLES NO TRABAJADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='JUEVES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('JUEVES NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('JUEVES NO TRABAJADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='VIERNES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('VIERNES NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('VIERNES NO TRABAJADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='SABADO' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('SABADOS NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('SABADOS NO TRABAJADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='DOMINGO' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('DOMINGOS NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('DOMINGOS NO TRABAJADOS').value+1;
END;
END;
FRMTIPODIALIBRE.ADODataSettipodiaLIBRE.Next;
END;
FRMTIPODEVACACIONES.ADODataSetTIPODEVACACIONES.First;
while NOT FRMTIPODEvacaciones.ADODataSettipoDEvacaciones.EOF do
BEGIN
if ADODATASETCALENDARIO.FieldByName('TIPO DIA').Value=FRMTIPODEvacaciones.ADODataSettipoDEVACACIONES.FieldByName('DIAVACACIONES').VALUE then
BEGIN
ADODATASETRESULTADOPARCIAL.FieldByName('VACACIONES DISFRUTADAS').Value:=ADODATASETRESULTADOPARCIAL.FieldByName('VACACIONES DISFRUTADAS').Value +1;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='LUNES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('LUNES NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('LUNES NO TRABAJADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='MARTES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('MARTES NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('MARTES NO TRABAJADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='MIERCOLES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('MIERCOLES NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('MIERCOLES NO TRABAJADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='JUEVES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('JUEVES NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('JUEVES NO TRABAJADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='VIERNES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('VIERNES NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('VIERNES NO TRABAJADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='SABADO' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('SABADOS NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('SABADOS NO TRABAJADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='DOMINGO' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('DOMINGOS NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('DOMINGOS NO TRABAJADOS').value+1;
END;
END;

FRMTIPODEvacaciones.ADODataSettipoDEvacaciones.Next;
END;

FRMTIPODEBAJA.ADODataSettipoDEBAJA.First;
while NOT FRMTIPODEBAJA.ADODataSettipoDEBAJA.EOF do
BEGIN
if ADODATASETCALENDARIO.FieldByName('TIPO DIA').Value=FRMTIPODEBAJA.ADODataSettipoDEBAJA.FieldByName('DIABAJA').VALUE then
BEGIN
ADODATASETRESULTADOPARCIAL.FieldByName('DIAS DE BAJA').Value:=ADODATASETRESULTADOPARCIAL.FieldByName('DIAS DE BAJA').Value +1;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='LUNES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('LUNES NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('LUNES NO TRABAJADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='MARTES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('MARTES NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('MARTES NO TRABAJADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='MIERCOLES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('MIERCOLES NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('MIERCOLES NO TRABAJADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='JUEVES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('JUEVES NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('JUEVES NO TRABAJADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='VIERNES' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('VIERNES NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('VIERNES NO TRABAJADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='SABADO' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('SABADOS NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('SABADOS NO TRABAJADOS').value+1;
END;
if ADODATASETCALENDARIO.FieldByName('DIASEMANA').VALUE='DOMINGO' then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
adodatasetresultadoparcial.FieldByName('DOMINGOS NO TRABAJADOS').value:=adodatasetresultadoparcial.FieldByName('DOMINGOS NO TRABAJADOS').value+1;
END;
END;

FRMTIPODEBAJA.ADODataSettipoDEBAJA.Next;
ADODataSetConvenio.First;
while NOT ADODataSetConvenio.Eof do
BEGIN
if ADODATASETCALENDARIO.FieldByName('FECHA').Value=ADODataSetConvenio.FieldByName('FECHA').Value then
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
ADODATASETRESULTADOPARCIAL.FieldByName('DIAS LIBRES POR CONVENIO').Value:=ADODATASETRESULTADOPARCIAL.FieldByName('DIAS LIBRES POR CONVENIO').Value+ADODataSetConvenio.FieldByName('FACTOR').VALUE;
END;
ADODataSetConvenio.Next;
END;





ADODATASETCALENDARIO.Next;
END;
ADODATASETRESULTADOPARCIAL.Edit;
if ADODATASETRESULTADOPARCIAL.FieldByName('IDCONDICIONES').Value>0 then
BEGIN
ADODATASETRESULTADOPARCIAL.FieldByName('TOTAL DIAS DE ALTA').Value:=ADODATASETRESULTADOPARCIAL.FieldByName('TOTAL DIAS DE ALTA').Value+1;
END
ELSE
BEGIN
ADODATASETRESULTADOPARCIAL.FieldByName('TOTAL DIAS DE ALTA').Value:=0;
END;

end;
ADODATASETRESULTADOPARCIAL.Post;
ADODATASETRESULTADOPARCIAL.Edit;





ADODATASETRESULTADOPARCIAL.First;
while NOT ADODATASETresultadoparcial.Eof do
BEGIN
ADODATASETRESULTADOPARCIAL.Edit;
condicion:=ADODATASETRESULTADOPARCIAL.FieldByName('IDCONDICIONES').Value;
ADODATASETRESULTADOPARCIAL.Edit;
ADODATASETcondiciones.Locate('IDCONDICIONES',CONDICION,[]);
ADODATASETRESULTADOPARCIAL.Edit;
if ADODATASETCONDICIONES.FieldByName('DIASTRABAJA').IsNull then
BEGIN
ADODATASETRESULTADOPARCIAL.FieldByName('CORRESPONDEN LIBRES').Value:=0;
END
ELSE
BEGIN
ADODATASETRESULTADOPARCIAL.FieldByName('CORRESPONDEN LIBRES').Value:=ROUNDTO((ADODATASETRESULTADOPARCIAL.FieldByName('DIAS TRABAJADOS').Value)/ADODATASETCONDICIONES.FieldByName('DIASTRABAJA').Value,-2);
END;
ADODATASETRESULTADOPARCIAL.Edit;
if ADODATASETCONDICIONES.FieldByName('DIASTRABAJA').IsNull then
BEGIN
ADODATASETRESULTADOPARCIAL.FieldByName('DIAS SUELTOS SIN AGRUPAR').Value:=0;
END
ELSE
BEGIN
ADODATASETRESULTADOPARCIAL.FieldByName('DIAS SUELTOS SIN AGRUPAR').Value:=(ADODATASETRESULTADOPARCIAL.FieldByName('DIAS TRABAJADOS').Value) MOD (ADODATASETCONDICIONES.FieldByName('DIASTRABAJA').Value);
END;

ADODATASETRESULTADOPARCIAL.Edit;
if ADODATASETCONDICIONES.FieldByName('DIASTRABAJA').IsNull then
BEGIN
ADODATASETRESULTADOPARCIAL.FieldByName('CORRESPONDEN VACACIONES').Value:=0;
END
ELSE
BEGIN
if ADODATASETRESULTADOPARCIAL.FieldByName('IDCONDICIONES').Value>0 then
BEGIN
ADODATASETRESULTADOPARCIAL.FieldByName('CORRESPONDEN VACACIONES').AsCurrency:=roundto((ADODATASETRESULTADOPARCIAL.FieldByName('TOTAL DIAS DE ALTA').Value*ADODATASETCONDICIONES.FieldByName('VACACIONES ANUALES').Value) / 365,-2);
END
ELSE
BEGIN
ADODATASETRESULTADOPARCIAL.FieldByName('CORRESPONDEN VACACIONES').Value:=0;
END;
END;

ADODATASETRESULTADOPARCIAL.Edit;
if ADODATASETCONDICIONES.FieldByName('DIASTRABAJA').IsNull then
BEGIN
ADODATASETRESULTADOPARCIAL.FieldByName('VACACIONES NO DISFRUTADAS').Value:=0;
END
ELSE
BEGIN
// ADODATASETRESULTADOPARCIAL.FieldByName('VACACIONES NO DISFRUTADAS').AsCurrency:=(ADODATASETRESULTADOPARCIAL.FieldByName('TOTAL DIAS DE ALTA').Value*ADODATASETCONDICIONES.FieldByName('VACACIONES ANUALES').Value) / 365;
END;
if adodatasetresultadoparcial.FieldByName('IDCONDICIONES').Value>0 then
BEGIN
ADODATASETRESULTADOPARCIAL.FieldByName('VACACIONES NO DISFRUTADAS').AsCurrency:=roundto(ADODATASETRESULTADOPARCIAL.FieldByName('CORRESPONDEN VACACIONES').ASCURRENCY-ADODATASETRESULTADOPARCIAL.FieldByName('VACACIONES DISFRUTADAS').Value,-2);
END
ELSE
BEGIN
adodatasetresultadoparcial.FieldByName('VACACIONES NO DISFRUTADAS').Value:=0;
END;
ADODATASETRESULTADOPARCIAL.Post;
ADODATASETRESULTADOPARCIAL.Next;
ADODATASETCALENDARIO.First;
frmprogreso.ProgressBarprogreso.StepIt;
END;


end;
Responder Con Cita