unit uEditorCuentasEspeciales; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent, JvNavigationPane, uViewCuentasEspeciales, uBizCuentasEspeciales, ActnList, DBActns, uViewGrid, Menus, uDataModuleBase, ImgList, PngImageList, TB2Dock, TB2Toolbar, TBX, TB2Item, StdActns, TB2ExtItems, TBXExtItems, TB2MRU, DB, uDADataTable, JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, JvAppStorage, JvAppRegistryStorage, JvFormPlacement, ExtCtrls, uCustomView, uViewBase, uViewBarraSeleccion, pngimage, uIEditorCuentasEspeciales, uEditorGridBase, JvComponentBase, uViewGridBase, uCuentasEspecialesController, JvExComCtrls, JvStatusBar, uDAInterfaces, dxGDIPlusClasses; type TfEditorCuentasEspeciales = class(TfEditorGridBase, IEditorCuentasEspeciales) frViewCuentasEspeciales1: TfrViewCuentasEspeciales; procedure FormShow(Sender: TObject); private FCuentasEspeciales: IBizCuentaEspecial; FController : ICuentasEspecialesController; protected function GetCuentasEspeciales: IBizCuentaEspecial; procedure SetCuentasEspeciales(const Value: IBizCuentaEspecial); function GetController : ICuentasEspecialesController; virtual; procedure SetController (const Value : ICuentasEspecialesController); virtual; procedure NuevoInterno; override; procedure EliminarInterno; override; procedure ModificarInterno; override; procedure DuplicarInterno; override; public procedure PonerTitulos(const ATitulo: string = ''); override; property CuentasEspeciales: IBizCuentaEspecial read GetCuentasEspeciales write SetCuentasEspeciales; property Controller : ICuentasEspecialesController read GetController write SetController; constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; implementation uses uCustomEditor, uDataModuleUsuarios, // uEditorCuentaEspecial, uEditorDBBase, uFactuGES_App, cxGrid, cxGridCustomTableView; //, uListaCuentasEspeciales; {$R *.dfm} { ****************************** TfEditorCuentasEspeciales ******************************* } procedure TfEditorCuentasEspeciales.FormShow(Sender: TObject); begin inherited; if not Assigned(ViewGrid) then raise Exception.Create('No hay ninguna vista asignada'); if not Assigned(CuentasEspeciales) then raise Exception.Create('No hay ningún CuentaEspecial asignado'); CuentasEspeciales.DataTable.Active := True; ViewGrid.GotoFirst; //Para que coja el ancho automático actAnchoAuto.Execute; end; function TfEditorCuentasEspeciales.GetCuentasEspeciales: IBizCuentaEspecial; begin Result := FCuentasEspeciales; end; function TfEditorCuentasEspeciales.GetController: ICuentasEspecialesController; begin Result := FController; end; procedure TfEditorCuentasEspeciales.ModificarInterno; begin inherited; FController.Ver(CuentasEspeciales); end; procedure TfEditorCuentasEspeciales.NuevoInterno; begin inherited; FController.Anadir(CuentasEspeciales); FController.Ver(CuentasEspeciales); end; procedure TfEditorCuentasEspeciales.PonerTitulos(const ATitulo: string); var FTitulo : String; begin FTitulo := 'Lista de CuentasEspeciales '; // + AppFactuGES.EmpresaActiva.NOMBRE; inherited PonerTitulos(FTitulo); end; procedure TfEditorCuentasEspeciales.SetCuentasEspeciales(const Value: IBizCuentaEspecial); begin FCuentasEspeciales := Value; dsDataTable.DataTable := FCuentasEspeciales.DataTable; if Assigned(ViewGrid) then (ViewGrid as IViewCuentasEspeciales).CuentasEspeciales := CuentasEspeciales; end; procedure TfEditorCuentasEspeciales.SetController(const Value: ICuentasEspecialesController); begin FController := Value; end; destructor TfEditorCuentasEspeciales.Destroy; begin FCuentasEspeciales := NIL; inherited; end; procedure TfEditorCuentasEspeciales.DuplicarInterno; {var ACuentaEspecial : IBizCuentaEspecial;} begin { inherited; ACuentaEspecial := FController.Duplicar(CuentasEspeciales); try FController.Ver(ACuentaEspecial); finally actRefrescar.Execute; end; } end; procedure TfEditorCuentasEspeciales.EliminarInterno; begin if (Application.MessageBox('¿Desea borrar este almacén?', 'Atención', MB_YESNO) = IDYES) then begin inherited; //Para que en el caso de no poderse realizar la operación se refresquen //los datos y no nos permita eliminar un registro a la segunda if not FController.Eliminar(CuentasEspeciales) then actRefrescar.Execute; end; end; constructor TfEditorCuentasEspeciales.Create(AOwner: TComponent); begin inherited; ViewGrid := frViewCuentasEspeciales1; //CreateView(TfrViewCuentasEspeciales) as IViewCuentasEspeciales; end; end.