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

305 lines
12 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 uViewPresupuestosObra;
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, Menus;
type
IViewPresupuestosObra = interface(IViewBase)
['{C160D191-B5A5-484A-B8EA-80CD533C3E77}']
function GetPresupuestos: IBizPresupuestosObra;
procedure SetPresupuestos(const Value: IBizPresupuestosObra);
property Presupuestos: IBizPresupuestosObra read GetPresupuestos write SetPresupuestos;
end;
TfrViewPresupuestosObra = class(TfrViewBase, IViewPresupuestosObra)
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton4: TToolButton;
ToolButton3: TToolButton;
ToolButton5: TToolButton;
ActionList1: TActionList;
actEditarPreObr: TAction;
actEliminarPreObr: TAction;
actEliminarTodoPreObr: TAction;
actAnadirPreObr: TAction;
DADataSourcePreObr: TDADataSource;
cxStyleRepository1: TcxStyleRepository;
cxStyleEven: TcxStyle;
cxStyleOdd: TcxStyle;
cxStyleSelection: TcxStyle;
dxPSEngineController1: TdxPSEngineController;
dxComponentPrinter: TdxComponentPrinter;
dxComponentPrinterLink: TdxGridReportLink;
ToolBar2: TToolBar;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
DADataSourcePreDec: TDADataSource;
actEliminarPreDec: TAction;
actEliminarTodoPreDec: TAction;
actAnadirPreDec: TAction;
actEditarPreDec: TAction;
PngImageList: TPngImageList;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Item1: TdxLayoutItem;
dxLayoutControl1Item2: TdxLayoutItem;
dxLayoutControl1Item3: TdxLayoutItem;
frViewPresupuestosPreDec: TfrViewPresupuestosBase;
dxLayoutControl1Group1: TdxLayoutGroup;
dxLayoutControl1Group2: TdxLayoutGroup;
MenuPreObr: TPopupMenu;
Modificar1: TMenuItem;
Duplicar1: TMenuItem;
Eliminar1: TMenuItem;
N1: TMenuItem;
Nuevo1: TMenuItem;
MenuPreDec: TPopupMenu;
MenuItem1: TMenuItem;
MenuItem2: TMenuItem;
MenuItem3: TMenuItem;
MenuItem4: TMenuItem;
MenuItem5: TMenuItem;
dxLayoutControl1Item4: TdxLayoutItem;
frViewPresupuestosPreObr: TfrViewPresupuestosBase;
procedure CustomViewCreate(Sender: TObject);
procedure CustomViewDestroy(Sender: TObject);
procedure actEliminarPreObrExecute(Sender: TObject);
procedure actEliminarPreDecExecute(Sender: TObject);
procedure actEliminarTodoPreObrExecute(Sender: TObject);
procedure actEliminarTodoPreDecExecute(Sender: TObject);
procedure actEliminarPreObrUpdate(Sender: TObject);
procedure actEliminarTodoPreObrUpdate(Sender: TObject);
procedure actEliminarPreDecUpdate(Sender: TObject);
procedure actEliminarTodoPreDecUpdate(Sender: TObject);
procedure actEditarPreDecUpdate(Sender: TObject);
procedure actEditarPreObrUpdate(Sender: TObject);
procedure frViewPresupuestosPreDeccxGridViewCellDblClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure frViewPresupuestosPreObrcxGridViewCellDblClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
private
FPresupuestos: IBizPresupuestosObra;
FViewPresupuestosObra: IViewGrid;
FViewPresupuestosDecoracion: IViewGrid;
function GetPresupuestos: IBizPresupuestosObra;
procedure SetPresupuestos(const Value: IBizPresupuestosObra);
function GetGridView(ViewGrid: IViewGrid): TcxCustomGridView;
public
property Presupuestos: IBizPresupuestosObra read GetPresupuestos write SetPresupuestos;
end;
var
frViewPresupuestosObra: TfrViewPresupuestosObra;
implementation
{$R *.dfm}
uses LiteralesObras, schObrasClient_Intf;
{ TfrViewPresupuestosObra }
function TfrViewPresupuestosObra.GetPresupuestos: IBizPresupuestosObra;
begin
Result := FPresupuestos;
end;
procedure TfrViewPresupuestosObra.SetPresupuestos(const Value: IBizPresupuestosObra);
begin
FPresupuestos := Value;
if Assigned(FPresupuestos) then
begin
DADataSourcePreObr.DataTable := FPresupuestos.DataTable;
DADataSourcePreDec.DataTable := FPresupuestos.DataTable;
end
else
begin
DADataSourcePreObr.DataTable := Nil;
DADataSourcePreDec.DataTable := Nil;
end;
end;
procedure TfrViewPresupuestosObra.CustomViewCreate(Sender: TObject);
var
ColumnaClase: TcxGridDBColumn;
ColumnaTipo: TcxGridDBColumn;
begin
inherited;
FViewPresupuestosObra := frViewPresupuestosPreObr;
FViewPresupuestosDecoracion := frViewPresupuestosPreDec;
ColumnaClase := (GetGridView(FViewPresupuestosObra) as TcxGridDBTableView).GetColumnByFieldName(fld_PresupuestosObraCLASE);
ColumnaTipo := (GetGridView(FViewPresupuestosObra) as TcxGridDBTableView).GetColumnByFieldName(fld_PresupuestosObraTIPO);
with GetGridView(FViewPresupuestosObra).DataController.Filter do
begin
BeginUpdate;
Clear;
Root.AddItem(ColumnaClase, foEqual, CLASE_PRESUPUESTO, CLASE_PRESUPUESTO);
Root.AddItem(ColumnaTipo, foEqual, TIPO_OBRA, TIPO_OBRA);
EndUpdate;
Active := True;
end;
ColumnaClase := (GetGridView(FViewPresupuestosDecoracion) as TcxGridDBTableView).GetColumnByFieldName(fld_PresupuestosObraCLASE);
ColumnaTipo := (GetGridView(FViewPresupuestosDecoracion) as TcxGridDBTableView).GetColumnByFieldName(fld_PresupuestosObraTIPO);
with GetGridView(FViewPresupuestosDecoracion).DataController.Filter do
begin
BeginUpdate;
Clear;
Root.AddItem(ColumnaClase, foEqual, CLASE_PRESUPUESTO, CLASE_PRESUPUESTO);
Root.AddItem(ColumnaTipo, foEqual, TIPO_DECORACION, TIPO_DECORACION);
EndUpdate;
Active := True;
end;
end;
procedure TfrViewPresupuestosObra.actEliminarPreObrUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := ((GetGridView(FViewPresupuestosObra).DataController.FocusedRowIndex <> -1) AND (GetGridView(FViewPresupuestosObra).DataController.FilteredRecordCount > 0));
end;
procedure TfrViewPresupuestosObra.actEliminarTodoPreObrUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := ((GetGridView(FViewPresupuestosObra).DataController.FocusedRowIndex <> -1) AND (GetGridView(FViewPresupuestosObra).DataController.FilteredRecordCount > 0));
end;
procedure TfrViewPresupuestosObra.actEliminarPreDecUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := ((GetGridView(FViewPresupuestosDecoracion).DataController.FocusedRowIndex <> -1) AND (GetGridView(FViewPresupuestosDecoracion).DataController.FilteredRecordCount > 0));
end;
procedure TfrViewPresupuestosObra.actEliminarTodoPreDecUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := ((GetGridView(FViewPresupuestosDecoracion).DataController.FocusedRowIndex <> -1) AND (GetGridView(FViewPresupuestosDecoracion).DataController.FilteredRecordCount > 0));
end;
function TfrViewPresupuestosObra.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 TfrViewPresupuestosObra.actEliminarPreObrExecute(Sender: TObject);
begin
inherited;
if (MessageDlg(msgLitBorrarPO, mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
GetGridView(FViewPresupuestosObra).DataController.DeleteSelection;
end;
procedure TfrViewPresupuestosObra.actEliminarPreDecExecute(Sender: TObject);
begin
inherited;
if (MessageDlg(msgLitBorrarPD, mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
GetGridView(FViewPresupuestosDecoracion).DataController.DeleteSelection;
end;
procedure TfrViewPresupuestosObra.actEliminarTodoPreObrExecute(Sender: TObject);
var
i: Integer;
begin
if (MessageDlg(msgLitBorrarTPO, mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
for i:=0 to GetGridView(FViewPresupuestosObra).DataController.FilteredRecordCount - 1 do
GetGridView(FViewPresupuestosObra).DataController.DeleteSelection;
end;
procedure TfrViewPresupuestosObra.actEliminarTodoPreDecExecute(Sender: TObject);
var
i: Integer;
begin
if (MessageDlg(msgLitBorrarTPD, mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
for i:=0 to GetGridView(FViewPresupuestosDecoracion).DataController.FilteredRecordCount - 1 do
GetGridView(FViewPresupuestosDecoracion).DataController.DeleteSelection;
end;
procedure TfrViewPresupuestosObra.CustomViewDestroy(Sender: TObject);
begin
FViewPresupuestosObra := Nil;
FViewPresupuestosDecoracion := Nil;
inherited;
end;
procedure TfrViewPresupuestosObra.actEditarPreDecUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := ((GetGridView(FViewPresupuestosDecoracion).DataController.FocusedRowIndex <> -1) AND (GetGridView(FViewPresupuestosDecoracion).DataController.FilteredRecordCount > 0));
end;
procedure TfrViewPresupuestosObra.actEditarPreObrUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := ((GetGridView(FViewPresupuestosObra).DataController.FocusedRowIndex <> -1) AND (GetGridView(FViewPresupuestosObra).DataController.FilteredRecordCount > 0));
end;
procedure TfrViewPresupuestosObra.frViewPresupuestosPreDeccxGridViewCellDblClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
actEditarPreDec.Execute;
end;
procedure TfrViewPresupuestosObra.frViewPresupuestosPreObrcxGridViewCellDblClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
actEditarPreObr.Execute;
end;
end.