unit uEditorDiario; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent, JvNavigationPane, uViewDiario, uBizAsientos, 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, uIEditorDiario, uEditorGridBase, JvComponentBase, uViewGridBase, uAsientosController, JvExComCtrls, JvStatusBar, uDAInterfaces, uViewEpigrafes, uBizDiario; type TfEditorDiario = class(TfEditorGridBase, IEditorDiario) frViewDiario1: TfrViewDiario; procedure FormShow(Sender: TObject); private FDiario: IBizDiario; FController : IAsientosController; protected function GetDiario: IBizDiario; procedure SetDiario(const Value: IBizDiario); function GetController : IAsientosController; virtual; procedure SetController (const Value : IAsientosController); virtual; procedure NuevoInterno; override; procedure EliminarInterno; override; procedure ModificarInterno; override; procedure DuplicarInterno; override; public procedure PonerTitulos(const ATitulo: string = ''); override; property Diario: IBizDiario read GetDiario write SetDiario; property Controller : IAsientosController read GetController write SetController; constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; implementation uses uCustomEditor, uDataModuleUsuarios, // uEditorEpigrafe, uEditorDBBase, uFactuGES_App, cxGrid, cxGridCustomTableView; //, uListaAsientos; {$R *.dfm} { ****************************** TfEditorAsientos ******************************* } procedure TfEditorDiario.FormShow(Sender: TObject); begin inherited; if not Assigned(ViewGrid) then raise Exception.Create('No hay ninguna vista asignada'); if not Assigned(Diario) then raise Exception.Create('No hay ningún Diario asignado'); Diario.DataTable.Active := True; ViewGrid.GotoFirst; end; function TfEditorDiario.GetDiario: IBizDiario; begin Result := FDiario; end; function TfEditorDiario.GetController: IAsientosController; begin Result := FController; end; procedure TfEditorDiario.ModificarInterno; begin inherited; FController.Ver(FController.Buscar(Diario.ID_ASIENTO)); end; procedure TfEditorDiario.NuevoInterno; begin inherited; FController.Ver(FController.Anadir); end; procedure TfEditorDiario.PonerTitulos(const ATitulo: string); var FTitulo : String; begin FTitulo := 'Lista de Asientos - ' + AppFactuGES.EmpresaActiva.NOMBRE + ' - ' + AppFactuGES.EjercicioActivo.NOMBRE; inherited PonerTitulos(FTitulo); end; procedure TfEditorDiario.SetDiario(const Value: IBizDiario); begin FDiario := Value; dsDataTable.DataTable := FDiario.DataTable; if Assigned(ViewGrid) then (ViewGrid as IViewDiario).Diario := Diario; end; procedure TfEditorDiario.SetController(const Value: IAsientosController); begin FController := Value; end; destructor TfEditorDiario.Destroy; begin FDiario := NIL; inherited; end; procedure TfEditorDiario.DuplicarInterno; var AEpigrafe : IBizAsiento; begin AppFactuGES.ShowCapado; { inherited; AEpigrafe := FController.Duplicar(Asientos); try FController.Ver(AEpigrafe); finally actRefrescar.Execute; end; } end; procedure TfEditorDiario.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(Asientos) then actRefrescar.Execute; end; } end; constructor TfEditorDiario.Create(AOwner: TComponent); begin inherited; ViewGrid := frViewDiario1; //CreateView(TfrViewAsientos) as IViewAsientos; end; end.