Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-04-2015
sorianolloret sorianolloret is offline
Registrado
NULL
 
Registrado: abr 2015
Posts: 5
Poder: 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
  #2  
Antiguo 15-04-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Buenas sorianolloret

Creo que no entendi nada, solamente se me ocurre que si son varios años, guardar algo como esto en tu tabla:

"01/01/2000 - 01/01/2015"

Eso lo podrias hacer masomenos asi:

Código Delphi [-]
interface

  function ConcatDates(DateFrom, DateTo: TDate): string; overload;
  function ConcatDates(DateFrom, DateTo: string): string; overload;

implementation

function ConcatDates(DateFrom, DateTo: TDate): string;
begin
  Result := ConcatDates(DateToStr(DateFrom), DateToStr(DateTo));
end;

function ConcatDates(DateFrom, DateTo: string): string;
begin
  Result := Format('%s - %s', [DateFrom, DateTo]);
end;

Y un ejemplo de llamada

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
    DateFrom, DateTo: TDate;
    sDateFrom, sDateTo: string;
begin
    DateFrom := EncodeDate(2000, 1, 1);
    DateTo := EncodeDate(2015, 1, 1);
    sDateFrom := '01/01/2000';
    sDateTo := '01/01/2015';

    ShowMessageFmt('Mandando dates: %s', [ConcatDates(DateFrom, DateTo)]);
    ShowMessageFmt('Mandando strings: %s', [ConcatDates(sDateFrom, sDateTo)]);
end;

Saludos y person si no entendi bien
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Añadir registro en tabla firebird si la tabla está vacia jafera Firebird e Interbase 19 22-08-2012 11:59:35
Campos concatenados en MySQL cmfab Varios 2 24-01-2011 19:28:52
capturar datos sin duplicarlos cristiano Tablas planas 2 14-11-2007 07:38:41
Recorrer Tabla, contar registro repetidos y escribir totales en otra Tabla Lucas_diaz1810 Conexión con bases de datos 1 25-12-2006 13:04:34
Consulta con like y campos concatenados camc79 SQL 6 22-05-2004 16:18:58


La franja horaria es GMT +2. Ahora son las 14:41:38.


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