unit uViewPresupuestos; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewGrid, uViewPreview, frxClass, frxPreview, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, uBizPresupuestosCliente, StdCtrls, ExtCtrls, cxLabel, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk, cxImage, cxImageComboBox, ImgList, PngImageList, cxTextEdit, Grids, DBGrids; type IViewPresupuestos = interface(IViewGrid) ['{8C0A5647-E0E7-40CD-80EC-88DD46383368}'] function GetPresupuestos: IBizPresupuestos; procedure SetPresupuestos(const Value: IBizPresupuestos); property Presupuestos: IBizPresupuestos read GetPresupuestos write SetPresupuestos; end; TfrViewPresupuestos = class(TfrViewGrid, IViewPresupuestos) cxGridDBTableView1: TcxGridDBTableView; cxGridLevel1: TcxGridLevel; cxGridLevel2: TcxGridLevel; cxGridLevel3: TcxGridLevel; cxGridViewCODIGO: TcxGridDBColumn; cxGridViewICONO: TcxGridDBColumn; cxGridViewFECHAPRESUPUESTO: TcxGridDBColumn; cxGridViewIMPORTETOTAL: TcxGridDBColumn; cxGridViewNOMBRE: TcxGridDBColumn; cxGridViewREFERENCIA: TcxGridDBColumn; cxGridViewSITUACION: TcxGridDBColumn; cxGridViewVIGENCIAPRESUPUESTO: TcxGridDBColumn; PngImageList: TPngImageList; cxStyleRechazado: TcxStyle; cxStyleAceptado: TcxStyle; cxGridViewTIPO: TcxGridDBColumn; procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); procedure cxGridViewCODIGOCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); protected FPresupuestos: IBizPresupuestos; function GetPresupuestos: IBizPresupuestos; procedure SetPresupuestos(const Value: IBizPresupuestos); public property Presupuestos: IBizPresupuestos read GetPresupuestos write SetPresupuestos; end; var frViewPresupuestos: TfrViewPresupuestos; implementation uses uDataModulePresupuestos, schPresupuestosClient_Intf; {$R *.dfm} procedure TfrViewPresupuestos.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); var AItemList: TcxFilterCriteriaItemList; begin inherited; cxGridView.DataController.Filter.BeginUpdate; cxGridView.DataController.Filter.Clear; case ALevel.Index of 1 : cxGridView.DataController.Filter.Root.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PENDIENTE, SITUACION_PENDIENTE); 2 : cxGridView.DataController.Filter.Root.AddItem(cxGridViewSITUACION, foEqual, SITUACION_ACEPTADO, SITUACION_ACEPTADO); 3 : cxGridView.DataController.Filter.Root.AddItem(cxGridViewSITUACION, foEqual, SITUACION_RECHAZADO, SITUACION_RECHAZADO); end; if not cxGridView.DataController.Filter.IsEmpty then cxGridView.DataController.Filter.Active := True; cxGridView.DataController.Filter.EndUpdate; ALevel.GridView := cxGridView; end; procedure TfrViewPresupuestos.cxGridViewCODIGOCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); var R: TRect; begin inherited; R := AViewInfo.ContentBounds; ACanvas.FillRect(R); ACanvas.DrawImage(PngImageList, R.Left, R.Top, 2); ADone := True; end; procedure TfrViewPresupuestos.cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); var IndiceCol: Integer; ASituacion: string; begin inherited; if Assigned(ARecord) then begin IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_PresupuestosSITUACION).Index; ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]); if ASituacion = SITUACION_ACEPTADO then AStyle := cxStyleAceptado else if ASituacion = SITUACION_RECHAZADO then AStyle := cxStyleRechazado; end; end; function TfrViewPresupuestos.GetPresupuestos: IBizPresupuestos; begin Result := FPresupuestos; end; procedure TfrViewPresupuestos.SetPresupuestos(const Value: IBizPresupuestos); begin FPresupuestos := Value; if Assigned(FPresupuestos) then DADataSource.DataTable := FPresupuestos.DataTable; end; end.