unit uEditorInformeBase; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uBizInformes, schInformesClient_Intf, uViewInformeBase, JvExComCtrls, JvStatusBar, pngimage; type IEditorInformeBase = interface(IEditorDBItem) ['{E8DB0818-75F8-4575-A30E-25B6599A757F}'] function GetInforme: IBizInforme; procedure SetInforme(const Value: IBizInforme); property Informe: IBizInforme read GetInforme write SetInforme; end; TfEditorInformeBase = class(TfEditorDBItem, IEditorInformeBase) actPropiedades: TAction; TBXSeparatorItem14: TTBXSeparatorItem; tbxiPropiedades: TTBXItem; tbxiPropiedades2: TTBXItem; procedure actPropiedadesExecute(Sender: TObject); procedure actGuardarCerrarUpdate(Sender: TObject); procedure actGuardarUpdate(Sender: TObject); procedure actPrevisualizarExecute(Sender: TObject); procedure actImprimirExecute(Sender: TObject); procedure actEliminarExecute(Sender: TObject); protected FInforme : IBizInforme; FViewInforme : IViewInformeBase; function GetInforme: IBizInforme; virtual; procedure SetInforme(const Value: IBizInforme); virtual; // function GetModified: Boolean; override; procedure RellenarCabeceraInforme; virtual; public procedure PonerTitulos(const ATitulo: string = ''); override; property Informe: IBizInforme read GetInforme write SetInforme; end; implementation uses uEditorDBBase, uEditorBase, uDataModuleUsuarios, uFormPropiedadesInforme; {$R *.dfm} { TfEditorControlBase } function TfEditorInformeBase.GetInforme: IBizInforme; begin Result := FInforme; end; procedure TfEditorInformeBase.SetInforme(const Value: IBizInforme); begin FInforme := Value; dsDataTable.DataTable := FInforme.DataTable; // if Assigned(FViewInforme) then // FViewInforme.Informe := FInforme; end; procedure TfEditorInformeBase.actPropiedadesExecute(Sender: TObject); begin inherited; with TfrPropiedadesInforme.Create(NIL) do try Nombre := FInforme.NOMBRE; Descripcion := FInforme.DESCRIPCION; Modificable := True; //FInforme.EsModificable; Icono := FInforme.ICONO; if (ShowModal = mrOK) then begin FInforme.DataTable.Edit; FInforme.NOMBRE := Nombre; FInforme.DESCRIPCION := Descripcion; FInforme.ICONO := Icono; if Modificable then FInforme.MODIFICABLE := 'S' else FInforme.MODIFICABLE := 'N'; end; finally Free; ActualizarEstadoEditor; // FViewInforme.Modificable := FInforme.EsModificable; end; end; { function TfEditorInformeBase.GetModified: Boolean; begin Result := inherited GetModified and (Assigned(FInforme) and FInforme.EsModificable); end; } procedure TfEditorInformeBase.PonerTitulos(const ATitulo: string); var FTitulo : String; begin FTitulo := ATitulo; if (FTitulo = '') and Assigned(FInforme) then begin if FInforme.EsNuevo then FTitulo := 'Nuevo informe' + ' - ' + FInforme.NOMBRE else FTitulo := 'Informe ' + ' - ' + FInforme.NOMBRE; end; inherited PonerTitulos(FTitulo); Self.Caption := FTitulo + ' (' + dmUsuarios.EmpresaActual.NOMBRE + ')'; end; procedure TfEditorInformeBase.actGuardarCerrarUpdate(Sender: TObject); begin inherited; // (Sender as TAction).Enabled := Assigned(FInforme) and (FInforme.EsModificable); end; procedure TfEditorInformeBase.actGuardarUpdate(Sender: TObject); begin inherited; // (Sender as TAction).Enabled := Assigned(FInforme) and (FInforme.EsModificable); end; procedure TfEditorInformeBase.actPrevisualizarExecute(Sender: TObject); begin RellenarCabeceraInforme; inherited; end; procedure TfEditorInformeBase.RellenarCabeceraInforme; begin inherited; // end; procedure TfEditorInformeBase.actImprimirExecute(Sender: TObject); begin RellenarCabeceraInforme; inherited; end; procedure TfEditorInformeBase.actEliminarExecute(Sender: TObject); begin { if not FInforme.EsModificable then ShowMessage('Este control no se puede eliminar') else inherited } end; end.