unit uViewInformeBase; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Forms, Dialogs, uViewBase, TBXDkPanels, StdCtrls, ComCtrls, TB2Dock, uViewAgrupaciones, uCustomView, uViewColumnas, ImgList, PngImageList, ActnList, uViewInformeBaseGrid, uBizInformes, uViewSumarios, uViewInformeBaseParametros, uViewFiltros, cxStyles, Controls; type IViewInformeBase = interface(IViewBase) ['{D716BE6B-1F41-4825-9385-0231D2AEF819}'] function GetModificable: Boolean; procedure SetModificable(const Value: Boolean); property Modificable : Boolean read GetModificable write SetModificable; function GetInforme: IBizInforme; procedure SetInforme(const Value: IBizInforme); property Informe: IBizInforme read GetInforme write SetInforme; function GetOnViewChanged : TNotifyEvent; procedure SetOnViewChanged(const Value : TNotifyEvent); property OnViewChanged: TNotifyEvent read GetOnViewChanged write SetOnViewChanged; end; TfrViewInformeBase = class(TfrViewBase, IViewInformeBase) TBXMultiDock1: TTBXMultiDock; pnlParametros: TTBXDockablePanel; TBXAlignmentPanel2: TTBXAlignmentPanel; TBXLink1: TTBXLink; TBXLink5: TTBXLink; TBXLink2: TTBXLink; pcParametros: TPageControl; TabSheet5: TTabSheet; tsColumnas: TTabSheet; tsAgrupacion: TTabSheet; pnlTareas: TTBXDockablePanel; TBXPageScroller1: TTBXPageScroller; TBXAlignmentPanel1: TTBXAlignmentPanel; bFiltros: TTBXLink; bSumarios: TTBXLink; pcTareas: TPageControl; tsSumarios: TTabSheet; tsFiltros: TTabSheet; frViewColumnas1: TfrViewColumnas; frViewAgrupaciones1: TfrViewAgrupaciones; SmallImages: TPngImageList; LargeImages: TPngImageList; EditorActionList: TActionList; actAgrupaciones: TAction; actColumnas: TAction; actSumarios: TAction; actFiltros: TAction; frViewSumarios1: TfrViewSumarios; actRefrescar: TAction; frViewFiltros1: TfrViewFiltros; TBXMultiDock2: TTBXMultiDock; pnlIntervaloFechas: TTBXDockablePanel; TBXAlignmentPanel3: TTBXAlignmentPanel; bRefrescar: TButton; procedure actColumnasExecute(Sender: TObject); procedure actSumariosExecute(Sender: TObject); procedure actFiltrosExecute(Sender: TObject); procedure actAgrupacionesExecute(Sender: TObject); private procedure ComprobarPrivilegios; protected FInforme : IBizInforme; FOnViewChanged : TNotifyEvent; FModificable : Boolean; procedure ActivarTarea (const ATarea : Integer); virtual; function GetInforme: IBizInforme; virtual; procedure SetInforme(const Value: IBizInforme); virtual; function GetOnViewChanged : TNotifyEvent; virtual; procedure SetOnViewChanged(const Value : TNotifyEvent); virtual; function GetModificable: Boolean; virtual; procedure SetModificable(const Value: Boolean); virtual; public property Modificable : Boolean read GetModificable write SetModificable; property OnViewChanged: TNotifyEvent read GetOnViewChanged write SetOnViewChanged; property Informe: IBizInforme read GetInforme write SetInforme; constructor Create(AOwner: TComponent); override; end; implementation {$R *.dfm} uses uDataModuleUsuarios; const COLUMNAS = 1; AGRUPACIONES = 2; SUMARIOS = 3; FILTROS = 4; procedure TfrViewInformeBase.actColumnasExecute(Sender: TObject); begin inherited; ActivarTarea(COLUMNAS); frViewColumnas1.Refresh; end; procedure TfrViewInformeBase.ActivarTarea(const ATarea: Integer); begin case ATarea of COLUMNAS : pcParametros.ActivePage := tsColumnas; AGRUPACIONES : pcParametros.ActivePage := tsAgrupacion; SUMARIOS : pcTareas.ActivePage := tsSumarios; FILTROS : pcTareas.ActivePage := tsFiltros; end; end; function TfrViewInformeBase.GetInforme: IBizInforme; begin Result := FInforme; end; procedure TfrViewInformeBase.SetInforme(const Value: IBizInforme); begin FInforme := Value; frViewColumnas1.Refresh; frViewAgrupaciones1.Refresh; ComprobarPrivilegios; // żEs modificable el InformeBase? // Self.Modificable := FInformeBase.EsModificable; end; procedure TfrViewInformeBase.actSumariosExecute(Sender: TObject); begin inherited; ActivarTarea(SUMARIOS); frViewSumarios1.Refresh; end; procedure TfrViewInformeBase.actFiltrosExecute(Sender: TObject); begin inherited; ActivarTarea(FILTROS); frViewFiltros1.Refresh; end; procedure TfrViewInformeBase.actAgrupacionesExecute(Sender: TObject); begin inherited; ActivarTarea(AGRUPACIONES); frViewAgrupaciones1.Refresh; end; function TfrViewInformeBase.GetOnViewChanged: TNotifyEvent; begin Result := FOnViewChanged; end; procedure TfrViewInformeBase.SetOnViewChanged(const Value: TNotifyEvent); begin FOnViewChanged := Value; end; procedure TfrViewInformeBase.ComprobarPrivilegios; begin if not dmUsuarios.EsAdministrador then TBXMultiDock1.Visible := False; end; constructor TfrViewInformeBase.Create(AOwner: TComponent); begin inherited; FModificable := False; pcParametros.ActivePage := tsColumnas; pcTareas.ActivePage := tsSumarios; FOnViewChanged := nil; end; function TfrViewInformeBase.GetModificable: Boolean; begin Result := FModificable; end; procedure TfrViewInformeBase.SetModificable(const Value: Boolean); begin FModificable := Value; frViewColumnas1.Modificable := FModificable; frViewAgrupaciones1.Modificable := FModificable; end; end.