Tecsitel_FactuGES2/Source/Modulos/Referencias/Views/uEditorReferencias.pas
2008-10-07 15:20:08 +00:00

170 lines
5.4 KiB
ObjectPascal

{
===============================================================================
Copyright (©) 2006. 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: 22-05-2006
Versión actual: 1.0.0
Fecha versión actual: 22-05-2006
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
===============================================================================
}
unit uEditorReferencias;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
uIEditorReferencias, uBizReferencias, uReferenciasController, DB, uDADataTable,
ActnList, Grids, DBGrids, StdCtrls, ComCtrls, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, cxTextEdit, uDAInterfaces;
type
TfEditorReferencias = class(TForm, IEditorReferencias)
ActionList1: TActionList;
dsReferencias: TDADataSource;
actAceptar: TAction;
actCancelar: TAction;
bAceptar: TButton;
bCancelar: TButton;
actCerrar: TAction;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Label1: TLabel;
ListaReferencias: TcxGrid;
ListaReferenciasView: TcxGridDBTableView;
ListaReferenciasViewCODIGO: TcxGridDBColumn;
ListaReferenciasViewDESCRIPCION: TcxGridDBColumn;
ListaReferenciasViewVALOR: TcxGridDBColumn;
ListaReferenciasLevel: TcxGridLevel;
procedure FormShow(Sender: TObject);
procedure actAceptarExecute(Sender: TObject);
procedure actCancelarExecute(Sender: TObject);
procedure actCerrarExecute(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure ListaReferenciasViewVALORPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
protected
FReferencias: IBizReferencia;
FController: IReferenciasController;
function GetReferencias: IBizReferencia;
procedure SetReferencias(const Value: IBizReferencia);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Referencias: IBizReferencia read GetReferencias write SetReferencias;
end;
implementation
{$R *.dfm}
{ TfEditorReferencias }
uses
uDialogUtils, Dialogs, uDataTableUtils;
function TfEditorReferencias.GetReferencias: IBizReferencia;
begin
Result := FReferencias;
end;
procedure TfEditorReferencias.ListaReferenciasViewVALORPropertiesValidate(
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
begin
// Showmessage('Validar'); No es necesario porque si no pone número lo pone el servidor
end;
procedure TfEditorReferencias.SetReferencias(const Value: IBizReferencia);
begin
FReferencias := Value;
dsReferencias.DataTable := FReferencias.DataTable;
dsReferencias.DataTable.Open;
end;
constructor TfEditorReferencias.Create(AOwner: TComponent);
begin
inherited;
FController := TReferenciasController.Create;
end;
destructor TfEditorReferencias.Destroy;
begin
FReferencias := NIL;
FController := NIL;
inherited;
end;
procedure TfEditorReferencias.actAceptarExecute(Sender: TObject);
begin
try
if (Referencias.DataTable.State in dsEditModes) then
Referencias.DataTable.Post;
Referencias.DataTable.ApplyUpdates;
except
on E : Exception do begin
Referencias.DataTable.CancelUpdates;
ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E);
Exit;
end;
end;
actCerrar.Execute;
end;
procedure TfEditorReferencias.actCancelarExecute(Sender: TObject);
begin
Referencias.DataTable.CancelUpdates;
actCerrar.Execute;
end;
procedure TfEditorReferencias.actCerrarExecute(Sender: TObject);
begin
Close;
end;
procedure TfEditorReferencias.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
Respuesta: Integer;
begin
Respuesta := IDNO;
if (DataTableModified(dsReferencias.DataTable)) then
Respuesta := ShowConfirmMessage('Atención', 'Se han producido cambios',
'¿Desea guardar los cambios que se han producido antes de cerrar?',
[TDlgButton_SI, TDlgButton_NO, TDlgButton_CANCELAR]);
case Respuesta of
IDYES : actAceptar.Execute;
IDNO : actCancelar.Execute;
else CanClose := False;
end;
end;
procedure TfEditorReferencias.FormShow(Sender: TObject);
begin
if not FReferencias.DataTable.Active then
FReferencias.DataTable.Active := true;
ListaReferencias.SetFocus;
ListaReferenciasView.DataController.GotoFirst;
end;
end.