ProGestion/Modulos/Obras/Cliente/uViewTrabajosObra.pas
2007-06-21 16:12:43 +00:00

181 lines
6.5 KiB
ObjectPascal

{
===============================================================================
Copyright (©) 2006. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versión: 22-05-2006
Versión actual: 1.0.0
Fecha versión actual: 22-05-2006
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
===============================================================================
}
unit uViewTrabajosObra;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewGrid, ComCtrls, ToolWin, StdCtrls, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev,
dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, dxPSCore,
dxPScxCommon, dxPScxGridLnk, uDADataTable, ActnList, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, cxGroupBox, cxRadioGroup, cxDBEdit,
cxSpinEdit, cxContainer, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalc,
cxLabel, dxLayoutControl, uBizObra, uViewBase, uCustomView,
uViewPresupuestosBase, ImgList, PngImageList;
type
IViewTrabajosObra = interface(IViewBase)
['{87DE9081-B5B7-4F73-B806-FB3FFC8582A4}']
function GetPresupuestos: IBizPresupuestosObra;
procedure SetPresupuestos(const Value: IBizPresupuestosObra);
property Presupuestos: IBizPresupuestosObra read GetPresupuestos write SetPresupuestos;
end;
TfrViewTrabajosObra = class(TfrViewBase, IViewTrabajosObra)
ActionList1: TActionList;
actEditar: TAction;
actEliminar: TAction;
actEliminarTodo: TAction;
actAnadir: TAction;
DADataSource: TDADataSource;
cxStyleRepository1: TcxStyleRepository;
cxStyleEven: TcxStyle;
cxStyleOdd: TcxStyle;
cxStyleSelection: TcxStyle;
dxPSEngineController1: TdxPSEngineController;
dxComponentPrinter: TdxComponentPrinter;
dxComponentPrinterLink: TdxGridReportLink;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton4: TToolButton;
ToolButton3: TToolButton;
ToolButton5: TToolButton;
frViewTrabajos: TfrViewPresupuestosBase;
PngImageList: TPngImageList;
procedure CustomViewCreate(Sender: TObject);
procedure CustomViewDestroy(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
procedure actEliminarTodoExecute(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
procedure actEliminarTodoUpdate(Sender: TObject);
procedure actEditarUpdate(Sender: TObject);
private
FPresupuestos: IBizPresupuestosObra;
FViewTrabajosObra: IViewGrid;
function GetPresupuestos: IBizPresupuestosObra;
procedure SetPresupuestos(const Value: IBizPresupuestosObra);
function GetGridView(ViewGrid: IViewGrid): TcxCustomGridView;
public
property Presupuestos: IBizPresupuestosObra read GetPresupuestos write SetPresupuestos;
end;
var
frViewTrabajosObra: TfrViewTrabajosObra;
implementation
{$R *.dfm}
uses LiteralesObras, schObrasClient_Intf;
{ TfrViewTrabajosObra }
function TfrViewTrabajosObra.GetPresupuestos: IBizPresupuestosObra;
begin
Result := FPresupuestos;
end;
procedure TfrViewTrabajosObra.SetPresupuestos(const Value: IBizPresupuestosObra);
begin
FPresupuestos := Value;
if Assigned(FPresupuestos) then
DADataSource.DataTable := FPresupuestos.DataTable
else
DADataSource.DataTable := Nil;
end;
procedure TfrViewTrabajosObra.CustomViewCreate(Sender: TObject);
var
ColumnaClase: TcxGridDBColumn;
begin
inherited;
FViewTrabajosObra := frViewTrabajos;
ColumnaClase := (GetGridView(FViewTrabajosObra) as TcxGridDBTableView).GetColumnByFieldName(fld_PresupuestosObraCLASE);
with GetGridView(FViewTrabajosObra).DataController.Filter do
begin
BeginUpdate;
Clear;
Root.AddItem(ColumnaClase, foEqual, CLASE_TRABAJO, CLASE_TRABAJO);
EndUpdate;
end;
end;
procedure TfrViewTrabajosObra.actEliminarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := ((GetGridView(FViewTrabajosObra).DataController.FocusedRowIndex <> -1) AND (GetGridView(FViewTrabajosObra).DataController.FilteredRecordCount > 0));
end;
procedure TfrViewTrabajosObra.actEliminarTodoUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := ((GetGridView(FViewTrabajosObra).DataController.FocusedRowIndex <> -1) AND (GetGridView(FViewTrabajosObra).DataController.FilteredRecordCount > 0));
end;
function TfrViewTrabajosObra.GetGridView(ViewGrid: IViewGrid): TcxCustomGridView;
begin
if (ViewGrid.Grid.ViewCount > 0)
then Result := ViewGrid.Grid.ActiveView
else raise Exception.Create('El grid no tiene vistas');
end;
procedure TfrViewTrabajosObra.actEliminarExecute(Sender: TObject);
begin
inherited;
if (MessageDlg(msgLitBorrarPO, mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
GetGridView(FViewTrabajosObra).DataController.DeleteSelection;
end;
procedure TfrViewTrabajosObra.actEliminarTodoExecute(Sender: TObject);
var
i: Integer;
begin
if (MessageDlg(msgLitBorrarTPO, mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
for i:=0 to GetGridView(FViewTrabajosObra).DataController.FilteredRecordCount - 1 do
GetGridView(FViewTrabajosObra).DataController.DeleteSelection;
end;
procedure TfrViewTrabajosObra.CustomViewDestroy(Sender: TObject);
begin
FViewTrabajosObra := Nil;
inherited;
end;
procedure TfrViewTrabajosObra.actEditarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := ((GetGridView(FViewTrabajosObra).DataController.FocusedRowIndex <> -1) AND (GetGridView(FViewTrabajosObra).DataController.FilteredRecordCount > 0));
end;
end.