497 lines
14 KiB
ObjectPascal
497 lines
14 KiB
ObjectPascal
|
|
{
|
|||
|
|
===============================================================================
|
|||
|
|
Copyright (<EFBFBD>) 2005. Rodax Software.
|
|||
|
|
===============================================================================
|
|||
|
|
Los contenidos de este fichero son propiedad de Rodax Software titular del
|
|||
|
|
copyright. Este fichero s<EFBFBD>lo podr<EFBFBD> ser copiado, distribuido y utilizado,
|
|||
|
|
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
|
|||
|
|
acuerdo con los t<EFBFBD>rminos y condiciones establecidas en el acuerdo/contrato
|
|||
|
|
bajo el que se suministra.
|
|||
|
|
-----------------------------------------------------------------------------
|
|||
|
|
Web: www.rodax-software.com
|
|||
|
|
===============================================================================
|
|||
|
|
Fecha primera versi<EFBFBD>n: 08-06-2005
|
|||
|
|
Versi<EFBFBD>n actual: 1.0.0
|
|||
|
|
Fecha versi<EFBFBD>n actual: 08-06-2005
|
|||
|
|
===============================================================================
|
|||
|
|
Modificaciones:
|
|||
|
|
|
|||
|
|
Fecha Comentarios
|
|||
|
|
---------------------------------------------------------------------------
|
|||
|
|
===============================================================================
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
unit TablaObras;
|
|||
|
|
|
|||
|
|
interface
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
//Generales
|
|||
|
|
SysUtils, Classes, Controls, IBSQL, cxGridDBTableView, cxCustomData, DB,
|
|||
|
|
//Particulares
|
|||
|
|
|
|||
|
|
//Aplicacion
|
|||
|
|
Framework, StrFunc, Entidades, Constantes, BaseDatos,
|
|||
|
|
|
|||
|
|
//Contador
|
|||
|
|
Contadores, RdxGestorContadores;
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
TTipoListaObras = (tsoAbiertas, tsoCerradas, tsoTodas);
|
|||
|
|
|
|||
|
|
TDatosObra = class(TObjeto)
|
|||
|
|
public
|
|||
|
|
CodigoContrato : String;
|
|||
|
|
FechaAlta : String;
|
|||
|
|
Usuario : String;
|
|||
|
|
CodigoDocumento : String;
|
|||
|
|
FechaFin : String;
|
|||
|
|
Nombre : String;
|
|||
|
|
Calle : String;
|
|||
|
|
Numero : String;
|
|||
|
|
Piso : String;
|
|||
|
|
CodigoPostal : String;
|
|||
|
|
Poblacion : String;
|
|||
|
|
Provincia : String;
|
|||
|
|
Telefono1 : String;
|
|||
|
|
Telefono2 : String;
|
|||
|
|
Movil1 : String;
|
|||
|
|
Movil2 : String;
|
|||
|
|
Fax : String;
|
|||
|
|
//Correo : String;
|
|||
|
|
PersonaContacto : String;
|
|||
|
|
UltimoCambio : String;
|
|||
|
|
|
|||
|
|
constructor Create; overload;
|
|||
|
|
constructor Create(CodigoObra : String); overload;
|
|||
|
|
procedure ObtenerDatos; override;
|
|||
|
|
destructor Destroy; override;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
TListaObras = class(TListaObjetos)
|
|||
|
|
private
|
|||
|
|
FSituacion : TTipoListaObras;
|
|||
|
|
function GetObra(Index: Integer): TDatosObra;
|
|||
|
|
protected
|
|||
|
|
procedure ObtenerLista; override;
|
|||
|
|
public
|
|||
|
|
constructor Create; overload; override;
|
|||
|
|
constructor Create(Situacion : TTipoListaObras); overload;
|
|||
|
|
destructor Destroy; override;
|
|||
|
|
property Obras[Index: Integer] : TDatosObra read GetObra;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
TdmTablaObras = class(TDataModule)
|
|||
|
|
private
|
|||
|
|
procedure IniciarSQL;
|
|||
|
|
public
|
|||
|
|
sqlModificar : TStrings;
|
|||
|
|
sqlEliminar : TStrings;
|
|||
|
|
sqlConsultar : TStrings;
|
|||
|
|
sqlGrid : TStrings;
|
|||
|
|
|
|||
|
|
constructor Create (AOwner : TComponent); override;
|
|||
|
|
destructor Destroy; override;
|
|||
|
|
procedure InicializarGridObras(var vGrid: TcxGridDBTableView);
|
|||
|
|
function CrearObra(CodigoContrato: Variant): Boolean;
|
|||
|
|
function AbrirObra(Codigo: Variant): Boolean;
|
|||
|
|
function CerrarObra(Codigo: Variant; Fecha: TDateTime): Boolean;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
var
|
|||
|
|
dmTablaObras: TdmTablaObras;
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
|
|||
|
|
{$R *.DFM}
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
IBErrorCodes, IB, Literales, Mensajes, Excepciones;
|
|||
|
|
|
|||
|
|
constructor TdmTablaObras.Create (AOwner : TComponent);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
sqlModificar := TStringList.Create;
|
|||
|
|
sqlEliminar := TStringList.Create;
|
|||
|
|
sqlConsultar := TStringList.Create;
|
|||
|
|
sqlGrid := TStringList.Create;
|
|||
|
|
IniciarSQL;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
destructor TdmTablaObras.Destroy;
|
|||
|
|
begin
|
|||
|
|
sqlModificar.Free;
|
|||
|
|
sqlEliminar.Free;
|
|||
|
|
sqlConsultar.Free;
|
|||
|
|
sqlGrid.Free;
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TdmTablaObras.IniciarSQL;
|
|||
|
|
begin
|
|||
|
|
with sqlConsultar do
|
|||
|
|
begin
|
|||
|
|
Add('select OBR.CODIGOCONTRATO, OBR.FECHAALTA, OBR.USUARIO, OBR.CODIGODOCUMENTO, ');
|
|||
|
|
Add('OBR.FECHAFIN, CON.NOMBRE AS NOMBRE, CON.CALLE || '' '' || CON.NUMERO ');
|
|||
|
|
Add('|| '' '' || CON.PISO AS DIR1, ');
|
|||
|
|
Add('CON.CODIGOPOSTAL ||'' '' || CON.POBLACION || '' '' || CON.PROVINCIA AS DIR2, ');
|
|||
|
|
Add('CON.TELEFONO1 AS TELF, OBR.OBSERVACIONES, OBR.ULTIMOCAMBIO ');
|
|||
|
|
Add('from OBRAS OBR, CONTRATOSCLIENTE CON ');
|
|||
|
|
Add('where OBR.CODIGOCONTRATO = :CODIGOCONTRATO AND ');
|
|||
|
|
Add('CON.CODIGO = OBR.CODIGOCONTRATO');
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with sqlModificar do
|
|||
|
|
begin
|
|||
|
|
Add('update OBRAS set');
|
|||
|
|
Add('FECHAFIN = :FECHAFIN,');
|
|||
|
|
Add('OBSERVACIONES = :OBSERVACIONES,');
|
|||
|
|
Add('CODIGODOCUMENTO = :CODIGODOCUMENTO,');
|
|||
|
|
Add('ULTIMOCAMBIO = :ULTIMOCAMBIO');
|
|||
|
|
Add('where CODIGOCONTRATO = :CODIGOCONTRATO');
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with sqlEliminar do
|
|||
|
|
begin
|
|||
|
|
Add('delete from OBRAS');
|
|||
|
|
Add('where CODIGOCONTRATO = :CODIGOCONTRATO');
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with sqlGrid do
|
|||
|
|
begin
|
|||
|
|
Add('select OBR.CODIGOCONTRATO, OBR.FECHAALTA, OBR.USUARIO, OBR.CODIGODOCUMENTO, ');
|
|||
|
|
Add('OBR.FECHAFIN, CON.NOMBRE AS NOMBRE, CON.CALLE || '' '' || CON.NUMERO ');
|
|||
|
|
Add('|| '' '' || CON.PISO AS DIR1, ');
|
|||
|
|
Add('CON.CODIGOPOSTAL ||'' '' || CON.POBLACION || '' '' || CON.PROVINCIA AS DIR2, ');
|
|||
|
|
Add('CON.TELEFONO1 AS TELF, OBR.OBSERVACIONES, OBR.ULTIMOCAMBIO ');
|
|||
|
|
Add('from OBRAS OBR, CONTRATOSCLIENTE CON ');
|
|||
|
|
Add('where CON.CODIGO = OBR.CODIGOCONTRATO');
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TdmTablaObras.InicializarGridObras (var vGrid: TcxGridDBTableView);
|
|||
|
|
var
|
|||
|
|
Columna : TcxGridDBColumn;
|
|||
|
|
begin
|
|||
|
|
with vGrid do begin
|
|||
|
|
OptionsView.Footer := True;
|
|||
|
|
|
|||
|
|
{Columna CODIGOCONTRATO}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'CODIGOCONTRATO';
|
|||
|
|
Columna.Caption := 'Contrato';
|
|||
|
|
Columna.Width := tamColCodigo;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
|
|||
|
|
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
|
|||
|
|
try
|
|||
|
|
try
|
|||
|
|
BeginUpdate;
|
|||
|
|
Column := Columna;
|
|||
|
|
FieldName := Columna.DataBinding.FieldName;
|
|||
|
|
Format := 'Total: 0 obras';
|
|||
|
|
Kind := skCount;
|
|||
|
|
finally
|
|||
|
|
EndUpdate;
|
|||
|
|
end;
|
|||
|
|
except
|
|||
|
|
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
{Columna FECHAALTA}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'FECHAALTA';
|
|||
|
|
Columna.Caption := 'Inicio obra';
|
|||
|
|
Columna.Width := tamColFecha;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
Columna.SortOrder := soDescending;
|
|||
|
|
{Columna NOMBRE}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'NOMBRE';
|
|||
|
|
Columna.Caption := 'Nombre';
|
|||
|
|
Columna.Width := tamColNombre;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
Columna.SortOrder := soAscending;
|
|||
|
|
{Columna TELEFONO}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'TELF';
|
|||
|
|
Columna.Caption := 'Tel<65>fono';
|
|||
|
|
Columna.Width := tamColTelefono;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
{Columna FECHAFIN}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'FECHAFIN';
|
|||
|
|
Columna.Caption := 'Fin de obra';
|
|||
|
|
Columna.Width := tamColFecha;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
{ TDatosObra }
|
|||
|
|
|
|||
|
|
constructor TDatosObra.Create(CodigoObra: String);
|
|||
|
|
begin
|
|||
|
|
inherited Create;
|
|||
|
|
CodigoContrato := CodigoObra;
|
|||
|
|
// Recuperar los datos
|
|||
|
|
ObtenerDatos;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
constructor TDatosObra.Create;
|
|||
|
|
begin
|
|||
|
|
inherited Create;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
destructor TDatosObra.Destroy;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TDatosObra.ObtenerDatos;
|
|||
|
|
var
|
|||
|
|
oSQL : TIBSQL;
|
|||
|
|
begin
|
|||
|
|
if EsCadenaVacia(CodigoContrato) and EsCadenaVacia(Nombre) then
|
|||
|
|
raise Exception.Create(msgObrFaltaObr);
|
|||
|
|
|
|||
|
|
oSQL := TIBSQL.Create(NIL);
|
|||
|
|
with oSQL do
|
|||
|
|
begin
|
|||
|
|
Database := dmBaseDatos.BD;
|
|||
|
|
Transaction := dmBaseDatos.Transaccion;
|
|||
|
|
SQL.Add('select CODIGOCONTRATO, OBR.FECHAALTA as FECHAALTA, OBR.USUARIO as USUARIO, OBR.CODIGODOCUMENTO as CODIGODOCUMENTO, ');
|
|||
|
|
SQL.Add('OBR.FECHAFIN as FECHAFIN, CON.NOMBRE AS NOMBRE, CON.CALLE as CALLE, CON.NUMERO as NUMERO, ');
|
|||
|
|
SQL.Add('CON.PISO AS PISO, CON.CODIGOPOSTAL AS CODIGOPOSTAL, CON.POBLACION AS POBLACION, ');
|
|||
|
|
SQL.Add('CON.PROVINCIA AS PROVINCIA, CON.TELEFONO1 AS TELEFONO1, ');
|
|||
|
|
SQL.Add('CON.TELEFONO2 AS TELEFONO2, CON.MOVIL1 as MOVIL1, CON.MOVIL2 AS MOVIL2, CON.FAX AS FAX, ');
|
|||
|
|
SQL.Add('CON.PERSONACONTACTO AS PERSONACONTACTO, ');
|
|||
|
|
SQL.Add('OBR.OBSERVACIONES AS OBSERVACIONES, OBR.ULTIMOCAMBIO AS ULTIMOCAMBIO');
|
|||
|
|
SQL.Add('from OBRAS OBR, CONTRATOSCLIENTE CON ');
|
|||
|
|
SQL.Add('where CON.CODIGO = OBR.CODIGOCONTRATO ');
|
|||
|
|
|
|||
|
|
// SQL.Add('select CODIGOCONTRATO, FECHAALTA, USUARIO, CODIGODOCUMENTO,');
|
|||
|
|
// SQL.Add('FECHAFIN, OBSERVACIONES, ULTIMOCAMBIO'); //NOMBRE, CALLE, NUMERO, PISO, CODIGOPOSTAL,');
|
|||
|
|
// SQL.Add('POBLACION, PROVINCIA, PERSONACONTACTO, TELEFONO1,');
|
|||
|
|
// SQL.Add('TELEFONO2, MOVIL1, MOVIL2, FAX, CORREO');
|
|||
|
|
// SQL.Add('from OBRAS');
|
|||
|
|
|
|||
|
|
if (not EsCadenaVacia(CodigoContrato)) then
|
|||
|
|
begin
|
|||
|
|
SQL.Add('AND OBR.CODIGOCONTRATO = :CODIGOCONTRATO');
|
|||
|
|
ParamByName('CODIGOCONTRATO').AsString := CodigoContrato;
|
|||
|
|
end;
|
|||
|
|
{ else begin
|
|||
|
|
SQL.Add('where NOMBRE = :NOMBRE');
|
|||
|
|
ParamByName('NOMBRE').AsString := Nombre;
|
|||
|
|
end;}
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
Prepare;
|
|||
|
|
ExecQuery;
|
|||
|
|
|
|||
|
|
// Compruebo si se han recuperado datos
|
|||
|
|
if (RecordCount > 0) then
|
|||
|
|
begin
|
|||
|
|
CodigoContrato := FieldByName('CODIGOCONTRATO').AsString;
|
|||
|
|
FechaAlta := FieldByName('FECHAALTA').AsString;
|
|||
|
|
Usuario := FieldByName('USUARIO').AsString;
|
|||
|
|
CodigoDocumento := FieldByName('CODIGODOCUMENTO').AsString;
|
|||
|
|
FechaFin := FieldByName('FECHAFIN').AsString;
|
|||
|
|
UltimoCambio := FieldByName('ULTIMOCAMBIO').AsString;
|
|||
|
|
|
|||
|
|
Nombre := FieldByName('NOMBRE').AsString;
|
|||
|
|
Calle := FieldByName('CALLE').AsString;
|
|||
|
|
Numero := FieldByName('NUMERO').AsString;
|
|||
|
|
Piso := FieldByName('PISO').AsString;
|
|||
|
|
CodigoPostal := FieldByName('CODIGOPOSTAL').AsString;
|
|||
|
|
Poblacion := FieldByName('POBLACION').AsString;
|
|||
|
|
Provincia := FieldByName('PROVINCIA').AsString;
|
|||
|
|
Telefono1 := FieldByName('TELEFONO1').AsString;
|
|||
|
|
Telefono2 := FieldByName('TELEFONO2').AsString;
|
|||
|
|
Movil1 := FieldByName('MOVIL1').AsString;
|
|||
|
|
Movil2 := FieldByName('MOVIL2').AsString;
|
|||
|
|
Fax := FieldByName('FAX').AsString;
|
|||
|
|
//Correo := FieldByName('CORREO').AsString;
|
|||
|
|
PersonaContacto := FieldByName('PERSONACONTACTO').AsString;
|
|||
|
|
end;
|
|||
|
|
finally
|
|||
|
|
Close;
|
|||
|
|
Transaction := NIL;
|
|||
|
|
Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TdmTablaObras.CrearObra(CodigoContrato: Variant): Boolean;
|
|||
|
|
var
|
|||
|
|
oSQL : TIBSQL;
|
|||
|
|
Contador : String;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
|
|||
|
|
if EsCadenaVacia(CodigoContrato) then
|
|||
|
|
Exit;
|
|||
|
|
|
|||
|
|
oSQL := TIBSQL.Create(Self);
|
|||
|
|
with oSQL do
|
|||
|
|
begin
|
|||
|
|
Database := dmBaseDatos.BD;
|
|||
|
|
Transaction := dmBaseDatos.Transaccion;
|
|||
|
|
|
|||
|
|
SQL.Add('insert into obras');
|
|||
|
|
SQL.Add('(CODIGOCONTRATO, FECHAALTA, USUARIO, CODIGODOCUMENTO)');
|
|||
|
|
SQL.Add('select CODIGO, :FECHAALTA, :USUARIO, CODIGODOCUMENTO');
|
|||
|
|
SQL.Add('from CONTRATOSCLIENTE');
|
|||
|
|
SQL.Add('where CODIGO = :CODIGOCONTRATO');
|
|||
|
|
|
|||
|
|
ParamByName('CODIGOCONTRATO').AsString := CodigoContrato;
|
|||
|
|
ParamByName('FECHAALTA').AsDateTime := dmBaseDatos.DarFecha;
|
|||
|
|
ParamByName('USUARIO').AsString := dmBaseDatos.Usuario;
|
|||
|
|
try
|
|||
|
|
Prepare;
|
|||
|
|
ExecQuery;
|
|||
|
|
Result := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do begin
|
|||
|
|
if E.IBErrorCode = isc_unique_key_violation
|
|||
|
|
then VerMensajeFmt(msgObrErrAnadir,[CodigoContrato])
|
|||
|
|
else TratarExcepcion(E);
|
|||
|
|
Close;
|
|||
|
|
Transaction := NIL;
|
|||
|
|
Free;
|
|||
|
|
end;
|
|||
|
|
else
|
|||
|
|
begin
|
|||
|
|
Close;
|
|||
|
|
Transaction := NIL;
|
|||
|
|
Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TdmTablaObras.AbrirObra(Codigo: Variant): Boolean;
|
|||
|
|
var
|
|||
|
|
oSQL : TIBSQL;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
|
|||
|
|
if esCadenaVacia(Codigo) then
|
|||
|
|
exit;
|
|||
|
|
|
|||
|
|
oSQL := TIBSQL.Create(Self);
|
|||
|
|
with oSQL do
|
|||
|
|
begin
|
|||
|
|
Database := dmBaseDatos.BD;
|
|||
|
|
Transaction := dmBaseDatos.Transaccion;
|
|||
|
|
SQL.Add('update OBRAS ');
|
|||
|
|
SQL.Add('set FECHAFIN = Null ');
|
|||
|
|
SQL.Add('where CODIGOCONTRATO = :CODIGOCONTRATO');
|
|||
|
|
try
|
|||
|
|
ParamByName('CODIGOCONTRATO').AsString := Codigo;
|
|||
|
|
Prepare;
|
|||
|
|
ExecQuery;
|
|||
|
|
Result := True;
|
|||
|
|
finally
|
|||
|
|
Close;
|
|||
|
|
Transaction := NIL;
|
|||
|
|
Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TdmTablaObras.CerrarObra(Codigo: Variant; Fecha: TDateTime): Boolean;
|
|||
|
|
var
|
|||
|
|
oSQL : TIBSQL;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
|
|||
|
|
if esCadenaVacia(Codigo) then
|
|||
|
|
exit;
|
|||
|
|
|
|||
|
|
oSQL := TIBSQL.Create(Self);
|
|||
|
|
with oSQL do
|
|||
|
|
begin
|
|||
|
|
Database := dmBaseDatos.BD;
|
|||
|
|
Transaction := dmBaseDatos.Transaccion;
|
|||
|
|
SQL.Add('update OBRAS ');
|
|||
|
|
SQL.Add('set FECHAFIN = :FECHA ');
|
|||
|
|
SQL.Add('where CODIGOCONTRATO = :CODIGOCONTRATO');
|
|||
|
|
try
|
|||
|
|
ParamByName('CODIGOCONTRATO').AsString := Codigo;
|
|||
|
|
ParamByName('FECHA').AsDateTime := Fecha;
|
|||
|
|
Prepare;
|
|||
|
|
ExecQuery;
|
|||
|
|
Result := True;
|
|||
|
|
finally
|
|||
|
|
Close;
|
|||
|
|
Transaction := NIL;
|
|||
|
|
Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
{ TListaObras }
|
|||
|
|
|
|||
|
|
constructor TListaObras.Create;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
FSituacion := tsoTodas;
|
|||
|
|
ObtenerLista;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
constructor TListaObras.Create(Situacion: TTipoListaObras);
|
|||
|
|
begin
|
|||
|
|
inherited Create;
|
|||
|
|
FSituacion := Situacion;
|
|||
|
|
ObtenerLista;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
destructor TListaObras.Destroy;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TListaObras.GetObra(Index: Integer): TDatosObra;
|
|||
|
|
begin
|
|||
|
|
Result := TDatosObra(FLista.Items[Index]);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TListaObras.ObtenerLista;
|
|||
|
|
var
|
|||
|
|
oSQL : TIBSQL;
|
|||
|
|
Obra : TDatosObra;
|
|||
|
|
begin
|
|||
|
|
oSQL := TIBSQL.Create(nil);
|
|||
|
|
with oSQL do
|
|||
|
|
begin
|
|||
|
|
Database := dmBaseDatos.BD;
|
|||
|
|
Transaction := dmBaseDatos.Transaccion;
|
|||
|
|
SQL.Add('select CODIGOCONTRATO ');
|
|||
|
|
SQL.Add('from OBRAS');
|
|||
|
|
case FSituacion of
|
|||
|
|
tsoAbiertas : SQL.Add('where FECHAFIN is null ');
|
|||
|
|
tsoCerradas : SQL.Add('where FECHAFIN is not null ');
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
SQL.Add('order by FECHAALTA desc');
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
Prepare;
|
|||
|
|
ExecQuery;
|
|||
|
|
while not EOF do begin
|
|||
|
|
Obra := TDatosObra.Create(FieldByName('CODIGOCONTRATO').AsString);
|
|||
|
|
FLista.Add(Obra);
|
|||
|
|
Next;
|
|||
|
|
end;
|
|||
|
|
finally
|
|||
|
|
Close;
|
|||
|
|
Transaction := NIL;
|
|||
|
|
Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end.
|