{ =============================================================================== Copyright (©) 2007. 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: 03-04-2007 Versión actual: 1.0.0 Fecha versión actual: 03-04-2007 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- =============================================================================== } unit TablaProcedencias; interface uses //Generales SysUtils, Classes, Controls, IBSQL, cxGridDBTableView, cxCustomData, DB, //Particulares //Aplicacion Framework, StrFunc, Entidades, Constantes, BaseDatos; type TDatosProcedencia = class(TObjeto) protected procedure ObtenerDatos; override; procedure AssignTo(Dest: TPersistent); override; public Codigo : Integer; Descripcion : String; constructor Create(Codigo : Integer); end; TdmTablaProcedencias = class(TDataModule) private procedure IniciarSQL; public sqlInsertar : TStrings; sqlModificar : TStrings; sqlConsultar : TStrings; sqlEliminar : TStrings; constructor Create (AOwner : TComponent); override; destructor Destroy; override; procedure InicializarGridProcedencias(var vGrid: TcxGridDBTableView); function darProcedencias: TStrings; function darContadorProcedencias: Integer; end; var dmTablaProcedencias : TdmTablaProcedencias; implementation {$R *.DFM} uses Literales; constructor TdmTablaProcedencias.Create (AOwner : TComponent); begin inherited; sqlInsertar := TStringList.Create; sqlModificar := TStringList.Create; sqlConsultar := TStringList.Create; sqlEliminar := TStringList.Create; IniciarSQL; end; destructor TdmTablaProcedencias.Destroy; begin sqlInsertar.Free; sqlModificar.Free; sqlConsultar.Free; sqlEliminar.Free; inherited; end; procedure TdmTablaProcedencias.IniciarSQL; begin with sqlInsertar do begin Add('insert into PROCEDENCIAS (CODIGO, DESCRIPCION)'); Add('values (:CODIGO, UPPER(:DESCRIPCION))'); end; with sqlModificar do begin Add('update PROCEDENCIAS set '); Add('DESCRIPCION = UPPER(:DESCRIPCION) '); Add('where CODIGO = :CODIGO'); end; with sqlEliminar do begin Add('delete from PROCEDENCIAS '); Add('where CODIGO = :CODIGO'); end; with sqlConsultar do begin Add('select CODIGO, DESCRIPCION '); Add('from PROCEDENCIAS '); Add('order by DESCRIPCION'); end; end; procedure TdmTablaProcedencias.InicializarGridProcedencias(var vGrid: TcxGridDBTableView); var Columna : TcxGridDBColumn; begin with vGrid do begin ClearItems; OptionsView.Footer := True; {Columna CODIGO} Columna := CreateColumn; Columna.DataBinding.FieldName := 'CODIGO'; Columna.Caption := 'Código procedencia'; Columna.Visible := False; {Columna DESCRIPCION} Columna := CreateColumn; Columna.DataBinding.FieldName := 'DESCRIPCION'; Columna.Caption := 'Descripcines de procedencia'; Columna.SortOrder := soAscending; with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do try try BeginUpdate; Column := Columna; FieldName := Columna.DataBinding.FieldName; Format := 'Total: 0 descripciones de procedencia'; Kind := skCount; finally EndUpdate; end; except DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1); end; end; end; function TdmTablaProcedencias.darProcedencias: TStrings; var oSQL : TIBSQL; Lista : TStringList; begin oSQL := TIBSQL.Create(Self); Lista := TStringList.Create; with oSQL do begin Database := dmBaseDatos.BD; Transaction := dmBaseDatos.Transaccion; SQL.Add('select DESCRIPCION from PROCEDENCIAS order by DESCRIPCION'); try Prepare; ExecQuery; while not EOF do begin Lista.Append(Fields[0].AsString); Next; end; result := Lista; finally Close; Transaction := NIL; Free; end; end; end; function TdmTablaProcedencias.darContadorProcedencias: Integer; var oSQL : TIBSQL; begin oSQL := TIBSQL.Create(Self); with oSQL do begin Database := dmBaseDatos.BD; Transaction := dmBaseDatos.Transaccion; SQL.Add('select MAX(CODIGO) from PROCEDENCIAS'); try Prepare; ExecQuery; if not EOF then Result := (Fields[0].AsInteger + 1) else Result := 0; finally Close; Transaction := NIL; Free; end; end; end; { TDatosProcedencia } procedure TDatosProcedencia.AssignTo(Dest: TPersistent); begin inherited; // end; constructor TDatosProcedencia.Create(Codigo: Integer); begin inherited Create; Self.Codigo := Codigo; ObtenerDatos; end; procedure TDatosProcedencia.ObtenerDatos; var oSQL : TIBSQL; begin oSQL := TIBSQL.Create(nil); with oSQL do begin Database := dmBaseDatos.BD; Transaction := dmBaseDatos.Transaccion; SQL.Add('select * from PROCEDENCIAS '); SQL.Add('where CODIGO = :CODIGO'); try ParamByName('CODIGO').AsInteger := Codigo; Prepare; ExecQuery; if (RecordCount > 0) then Descripcion := FieldByName('DESCRIPCION').AsString else begin raise Exception.Create(msgDatosNoExisteProcedencia); end; finally Close; Transaction := NIL; Free; end; end; end; end.