unit uViewPedidosProveedor; 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, uBizPedidosProveedor, 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 IViewPedidosProveedor = interface(IViewGrid) ['{F21DDC5A-0A61-448A-A0B8-F8C82F8524AE}'] function GetPedidosProveedor: IBizPedidosProveedor; procedure SetPedidosProveedor(const Value: IBizPedidosProveedor); property PedidosProveedor: IBizPedidosProveedor read GetPedidosProveedor write SetPedidosProveedor; end; TfrViewPedidosProveedor = class(TfrViewGrid, IViewPedidosProveedor) cxGridDBTableView1: TcxGridDBTableView; cxGridLevel1: TcxGridLevel; cxGridLevel2: TcxGridLevel; cxGridLevel3: TcxGridLevel; PngImageList: TPngImageList; cxGridViewCODIGO: TcxGridDBColumn; cxGridViewREFERENCIA: TcxGridDBColumn; cxGridViewFECHAPEDIDO: TcxGridDBColumn; cxGridViewFECHACONFIRMACION: TcxGridDBColumn; cxGridViewSITUACION: TcxGridDBColumn; cxGridViewFECHAENTREGA: TcxGridDBColumn; cxGridViewDIRECCIONCOMPLETA: TcxGridDBColumn; cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn; cxGridViewCODIGOALMACEN: TcxGridDBColumn; cxGridViewCODIGOCONTACTO: TcxGridDBColumn; cxGridViewNOMBRE: TcxGridDBColumn; cxGridViewCODIGOMONTAJE: TcxGridDBColumn; cxGridViewNOMBREALMACEN: TcxGridDBColumn; cxGridViewNOMBRECLIENTE: 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 FNivelFiltrado : TcxFilterCriteriaItemList; FPedidosProveedor: IBizPedidosProveedor; function GetPedidosProveedor: IBizPedidosProveedor; procedure SetPedidosProveedor(const Value: IBizPedidosProveedor); procedure FilterChanged(Sender : TObject); override; public property PedidosProveedor: IBizPedidosProveedor read GetPedidosProveedor write SetPedidosProveedor; end; var frViewPedidosProveedor: TfrViewPedidosProveedor; implementation uses uDataModulePedidosProveedor, schPedidosProveedorClient_Intf; {$R *.dfm} procedure TfrViewPedidosProveedor.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); begin inherited; FreeAndNil(FNivelFiltrado); FilterChanged(self); end; procedure TfrViewPedidosProveedor.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 TfrViewPedidosProveedor.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; procedure TfrViewPedidosProveedor.FilterChanged(Sender: TObject); var AItemList: TcxFilterCriteriaItemList; AItemList2: TcxFilterCriteriaItemList; begin inherited; cxGridView.DataController.Filter.BeginUpdate; AItemList := cxGridView.DataController.Filter.Root; AItemList2 := AItemList.AddItemList(fboAnd); FNivelFiltrado := AItemList2; case cxGrid.ActiveLevel.Index of 1 : AItemList2.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PENDIENTE, SITUACION_PENDIENTE); 2 : AItemList2.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PARCIAL, SITUACION_PARCIAL); 3 : AItemList2.AddItem(cxGridViewSITUACION, foEqual, SITUACION_RECIBIDO, SITUACION_RECIBIDO); end; AItemList := AItemList2; if cxGridView.DataController.Filter.IsEmpty then cxGridView.DataController.Filter.Active := False else cxGridView.DataController.Filter.Active := True; cxGridView.DataController.Filter.EndUpdate; cxGrid.ActiveLevel.GridView := cxGridView; end; function TfrViewPedidosProveedor.GetPedidosProveedor: IBizPedidosProveedor; begin Result := FPedidosProveedor; end; procedure TfrViewPedidosProveedor.SetPedidosProveedor(const Value: IBizPedidosProveedor); begin FPedidosProveedor := Value; if Assigned(FPedidosProveedor) then DADataSource.DataTable := FPedidosProveedor.DataTable; end; end.