{ =============================================================================== 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.