FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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; |
#2
|
||||
|
||||
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:
Y un ejemplo de llamada
Saludos y person si no entendi bien |
|
|
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 |
|