unit uViewPedidosMontaje; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, ActnList, Menus, cxGridBandedTableView, cxGridDBBandedTableView, uBizPedidosMontaje, JvComponent, JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk, ComCtrls, ToolWin; type IViewPedidosMontaje = interface(IViewGrid) ['{E6A3B3B7-7663-46D6-9B84-7B689D9B2461}'] function GetMontajes: IBizPedidosMontaje; procedure SetMontajes(const Value: IBizPedidosMontaje); property Montajes: IBizPedidosMontaje read GetMontajes write SetMontajes; end; TfrViewPedidosMontaje = class(TfrViewGrid, IViewPedidosMontaje) PngImageList: TPngImageList; cxGridViewRecID: TcxGridDBColumn; cxGridViewCODIGOEMPRESA: TcxGridDBColumn; cxGridViewCODIGO: TcxGridDBColumn; cxGridViewFECHAALTA: TcxGridDBColumn; cxGridViewUSUARIO: TcxGridDBColumn; cxGridViewFECHACONFIRMACION: TcxGridDBColumn; cxGridViewFECHAENTREGA: TcxGridDBColumn; cxGridViewSITUACION: TcxGridDBColumn; cxGridViewREFERENCIA: TcxGridDBColumn; cxGridViewNOMBRE: TcxGridDBColumn; ToolBar1: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; ToolButton4: TToolButton; actAnadir: TAction; actModificar: TAction; actEliminar: TAction; procedure cxGridViewCODIGOCustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure actAnadirExecute(Sender: TObject); procedure actModificarExecute(Sender: TObject); procedure actEliminarExecute(Sender: TObject); protected FMontajes: IBizPedidosMontaje; function GetMontajes: IBizPedidosMontaje; procedure SetMontajes(const Value: IBizPedidosMontaje); public property Montajes: IBizPedidosMontaje read GetMontajes write SetMontajes; end; var frViewPedidosMontaje: TfrViewPedidosMontaje; implementation uses uDataModuleMontajes; {$R *.dfm} { TfrViewPedidosMontaje } { ******************************* TfrViewPedidosMontaje ******************************* } function TfrViewPedidosMontaje.GetMontajes: IBizPedidosMontaje; begin Result := FMontajes; end; procedure TfrViewPedidosMontaje.SetMontajes(const Value: IBizPedidosMontaje); begin FMontajes := Value; if Assigned(FMontajes) then DADataSource.DataTable := FMontajes.DataTable; end; procedure TfrViewPedidosMontaje.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, 0); ADone := True; end; procedure TfrViewPedidosMontaje.actAnadirExecute(Sender: TObject); begin FMontajes.AnadirPedido; Self.RefreshGrid; Self.SyncFocusedRecordsFromDataSet; end; procedure TfrViewPedidosMontaje.actModificarExecute(Sender: TObject); begin Self.SyncFocusedRecordsFromGrid; FMontajes.Show; Self.RefreshGrid; Self.SyncFocusedRecordsFromDataSet; end; procedure TfrViewPedidosMontaje.actEliminarExecute(Sender: TObject); begin Self.SyncFocusedRecordsFromGrid; try FMontajes.Delete; FMontajes.DataTable.ApplyUpdates; finally Self.RefreshGrid; Self.SyncFocusedRecordsFromDataSet; end; end; end.