git-svn-id: https://192.168.0.254/svn/Proyectos.EstudioCarnicero_ProGestion/trunk@4 1b8572a8-2d6b-b84e-8c90-20ed86fa4eca
305 lines
12 KiB
ObjectPascal
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.
|