{ =============================================================================== Copyright (©) 2005. Rodax Software. =============================================================================== Los contenidos de este fichero son propiedad de Rodax Software titular del copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, en su totalidad o en parte, con el permiso escrito de Rodax Software, o de acuerdo con los términos y condiciones establecidas en el acuerdo/contrato bajo el que se suministra. ----------------------------------------------------------------------------- Web: www.rodax-software.com =============================================================================== Fecha primera versión: 08-06-2005 Versión actual: 1.0.0 Fecha versión actual: 08-06-2005 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- =============================================================================== } unit TablaObrasInstaladores; interface uses //Generales SysUtils, Classes, Controls, IBSQL, cxGridDBTableView, cxCustomData, DB, //Particulares Contnrs, cxCurrencyEdit, //Aplicacion Framework, StrFunc, Entidades, Constantes, BaseDatos, //Contador Contadores, RdxGestorContadores; type TDatosObraInstalador = class(TObjeto) public CodigoContrato : String; CodigoInstalador : String; FechaAlta : String; Usuario : String; Nombre : String; Descripcion : String; Precio : Double; constructor Create; overload; constructor Create(CodigoObra, CodigoInstalador : String); overload; procedure ObtenerDatos; override; destructor Destroy; override; end; type TdmTablaObrasInstaladores = class(TDataModule) private procedure IniciarSQL; public sqlInsertar : TStrings; sqlModificar : TStrings; sqlConsultar : TStrings; sqlEliminar : TStrings; sqlGrid : TStrings; constructor Create (AOwner : TComponent); override; destructor Destroy; override; procedure InicializarGrid(var vGrid: TcxGridDBTableView); end; var dmTablaObrasInstaladores: TdmTablaObrasInstaladores; implementation {$R *.DFM} uses IBErrorCodes, IB, Literales, Mensajes, Excepciones; constructor TdmTablaObrasInstaladores.Create (AOwner : TComponent); begin inherited; sqlInsertar := TStringList.Create; sqlModificar := TStringList.Create; sqlConsultar := TStringList.Create; sqlEliminar := TStringList.Create; sqlGrid := TStringList.Create; IniciarSQL; end; destructor TdmTablaObrasInstaladores.Destroy; begin sqlInsertar.Free; sqlModificar.Free; sqlConsultar.Free; sqlEliminar.Free; sqlGrid.Free; inherited; end; procedure TdmTablaObrasInstaladores.InicializarGrid(var vGrid: TcxGridDBTableView); var Columna : TcxGridDBColumn; begin with vGrid do begin OptionsView.Footer := True; {Columna CODIGOCONTRATO} Columna := CreateColumn; Columna.DataBinding.FieldName := 'CODIGOCONTRATO'; Columna.Caption := 'Código contrato'; Columna.Width := tamColCodigo; Columna.Options.Filtering := False; Columna.Visible := False; {Columna CODIGOINSTALADOR} Columna := CreateColumn; Columna.DataBinding.FieldName := 'CODIGOINSTALADOR'; Columna.Caption := 'Código'; Columna.Width := tamColCodigo; Columna.Options.Filtering := False; Columna.Visible := False; {Columna NOMBRE} Columna := CreateColumn; Columna.DataBinding.FieldName := 'NOMBRE'; Columna.Caption := 'Nombre'; Columna.Width := tamColCorreo; Columna.Options.Filtering := False; Columna.SortOrder := soAscending; {Columna DESCRIPCION} Columna := CreateColumn; Columna.DataBinding.FieldName := 'DESCRIPCION'; Columna.Caption := 'Trabajo'; Columna.Width := tamColNombre; Columna.Options.Filtering := False; {Columna PRECIO} Columna := CreateColumn; Columna.DataBinding.FieldName := 'PRECIO'; Columna.Caption := 'Precio'; Columna.Width := tamColImporte; Columna.Options.Filtering := False; Columna.PropertiesClassName := 'TcxCurrencyEditProperties'; with TcxCurrencyEditProperties(Columna.Properties) do begin DisplayFormat := DISPLAY_EUROS2; EditFormat := EDIT_EUROS2; end; with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do try try BeginUpdate; Column := Columna; FieldName := Columna.DataBinding.FieldName; Format := 'Total: #,0.00# €'; Kind := skSum; finally EndUpdate; end; except DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1); end; end; end; procedure TdmTablaObrasInstaladores.IniciarSQL; begin with sqlInsertar do begin Add('INSERT INTO OBRASINSTALADORES ('); Add('CODIGOCONTRATO, CODIGOINSTALADOR, FECHAALTA, '); Add('USUARIO, NOMBRE, DESCRIPCION, PRECIO)'); Add('VALUES (:CODIGOCONTRATO, :CODIGOINSTALADOR,'); Add(':FECHAALTA, :USUARIO, :NOMBRE, :DESCRIPCION,'); Add(':PRECIO)'); end; with sqlModificar do begin Add('UPDATE OBRASINSTALADORES SET'); Add('NOMBRE = :NOMBRE,'); Add('DESCRIPCION = :DESCRIPCION,'); Add('PRECIO = :PRECIO'); Add('WHERE (CODIGOCONTRATO = :CODIGOCONTRATO) AND '); Add('(CODIGOINSTALADOR = :CODIGOINSTALADOR)'); end; with sqlEliminar do begin Add('delete from OBRASINSTALADORES '); Add('WHERE (CODIGOCONTRATO = :CODIGOCONTRATO) AND '); Add('(CODIGOINSTALADOR = :CODIGOINSTALADOR)'); end; with sqlConsultar do begin Add('select CODIGOCONTRATO, CODIGOINSTALADOR, FECHAALTA, USUARIO,'); Add('NOMBRE, DESCRIPCION, PRECIO'); Add('from OBRASINSTALADORES'); Add('WHERE (CODIGOCONTRATO = :CODIGOCONTRATO) AND '); Add('(CODIGOINSTALADOR = :CODIGOINSTALADOR)'); end; with sqlGrid do begin Add('select CODIGOCONTRATO, CODIGOINSTALADOR, FECHAALTA, USUARIO,'); Add('NOMBRE, DESCRIPCION, PRECIO'); Add('from OBRASINSTALADORES'); Add('WHERE (CODIGOCONTRATO = :CODIGOCONTRATO)'); end; end; { TDatosObraInstalador } constructor TDatosObraInstalador.Create(CodigoObra, CodigoInstalador: String); begin inherited Create; CodigoContrato := CodigoObra; CodigoInstalador := CodigoInstalador; // Recuperar los datos ObtenerDatos; end; constructor TDatosObraInstalador.Create; begin inherited Create; end; destructor TDatosObraInstalador.Destroy; begin inherited; end; procedure TDatosObraInstalador.ObtenerDatos; var oSQL : TIBSQL; begin if EsCadenaVacia(CodigoContrato) and EsCadenaVacia(CodigoInstalador) then raise Exception.Create(msgObrFaltaObr); oSQL := TIBSQL.Create(NIL); with oSQL do begin Database := dmBaseDatos.BD; Transaction := dmBaseDatos.Transaccion; SQL.Add('select CODIGOCONTRATO, CODIGOINSTALADOR, FECHAALTA, USUARIO,'); SQL.Add('NOMBRE, DESCRIPCION, PRECIO'); SQL.Add('from OBRASINSTALADORES'); SQL.Add('where CODIGOCONTRATO = :CODIGOCONTRATO'); SQL.Add('where CODIGOINSTALADOR = :CODIGOINSTALADOR'); ParamByName('CODIGOCONTRATO').AsString := CodigoContrato; ParamByName('CODIGOINSTALADOR').AsString := CodigoInstalador; try Prepare; ExecQuery; // Compruebo si se han recuperado datos if (RecordCount > 0) then begin CodigoContrato := FieldByName('CODIGOCONTRATO').AsString; CodigoInstalador := FieldByName('CODIGOINSTALADOR').AsString; FechaAlta := FieldByName('FECHAALTA').AsString; Usuario := FieldByName('USUARIO').AsString; Nombre := FieldByName('NOMBRE').AsString; Descripcion := FieldByName('DESCRIPCION').AsString; Precio := FieldByName('PRECIO').AsFloat; end; finally Close; Transaction := NIL; Free; end; end; end; end.