unit uEditorComisiones; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent, JvNavigationPane, uViewComisiones, uBizComisiones, 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, uIEditorComisiones, uEditorGridBase, JvComponentBase, uViewGridBase, uComisionesController, JvExComCtrls, JvStatusBar; type TfEditorComisiones = class(TfEditorGridBase, IEditorComisiones) N4: TMenuItem; Volcaradisco1: TMenuItem; TBXSubmenuItem2: TTBXSubmenuItem; TBXItem38: TTBXItem; procedure FormShow(Sender: TObject); private FComisiones: IBizComisiones; FController : IComisionesController; protected function GetComisiones: IBizComisiones; procedure SetComisiones(const Value: IBizComisiones); function GetController : IComisionesController; virtual; procedure SetController (const Value : IComisionesController); virtual; procedure NuevoInterno; override; procedure EliminarInterno; override; procedure ModificarInterno; override; procedure PrevisualizarInterno; override; procedure ImprimirInterno; override; //Si queremos crear otra vista para el editor heredado solo tendriamos que //sobreescribir este metodo procedure AsignarVista; virtual; public procedure PonerTitulos(const ATitulo: string = ''); override; property Comisiones: IBizComisiones read GetComisiones write SetComisiones; property Controller : IComisionesController read GetController write SetController; constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; implementation uses uCustomEditor, uDataModuleComisiones, uDataModuleUsuarios, //uEditorRemesaCliente, uEditorDBBase, cxGrid, cxGridCustomTableView; //, uListaComisiones; {$R *.dfm} { ****************************** TfEditorComisiones ******************************* } procedure TfEditorComisiones.FormShow(Sender: TObject); begin inherited; if not Assigned(ViewGrid) then raise Exception.Create('No hay ninguna vista asignada'); if not Assigned(Comisiones) then raise Exception.Create('No hay ningún RemesaCliente asignado'); Comisiones.DataTable.Active := True; ViewGrid.GotoFirst; end; function TfEditorComisiones.GetComisiones: IBizComisiones; begin Result := FComisiones; end; procedure TfEditorComisiones.ImprimirInterno; begin // inherited; if (Application.MessageBox('¿Desea previsualizar la liquidación de comisiones sin desglosar?', 'Atención', MB_YESNO) = IDYES) then FController.Print(Comisiones, False) else FController.Print(Comisiones, True); end; function TfEditorComisiones.GetController: IComisionesController; begin Result := FController; end; procedure TfEditorComisiones.ModificarInterno; begin inherited; FController.Ver(Comisiones); end; procedure TfEditorComisiones.NuevoInterno; begin inherited; FController.Anadir(Comisiones); FController.Ver(Comisiones); end; procedure TfEditorComisiones.PonerTitulos(const ATitulo: string); var FTitulo : String; begin FTitulo := 'Lista de liquidaciones de comisiones - ' + dmUsuarios.EmpresaActual.NOMBRE; inherited PonerTitulos(FTitulo); end; procedure TfEditorComisiones.PrevisualizarInterno; begin // inherited; if (Application.MessageBox('¿Desea previsualizar la liquidación de comisiones sin desglosar?', 'Atención', MB_YESNO) = IDYES) then FController.Preview(Comisiones, False) else FController.Preview(Comisiones, True); end; procedure TfEditorComisiones.SetComisiones(const Value: IBizComisiones); begin FComisiones := Value; dsDataTable.DataTable := FComisiones.DataTable; if Assigned(ViewGrid) then (ViewGrid as IViewComisiones).Comisiones := Comisiones; end; procedure TfEditorComisiones.SetController(const Value: IComisionesController); begin FController := Value; end; destructor TfEditorComisiones.Destroy; begin FComisiones := NIL; FController := NIl; inherited; end; procedure TfEditorComisiones.EliminarInterno; begin if (Application.MessageBox('¿Desea borrar esta liquidación de comisiones?', '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(Comisiones) then actRefrescar.Execute; end; end; procedure TfEditorComisiones.AsignarVista; begin ViewGrid := CreateView(TfrViewComisiones) as IViewComisiones; end; constructor TfEditorComisiones.Create(AOwner: TComponent); begin inherited; AsignarVista; end; end.