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, cxImageComboBox, uViewFiltroBase; type IViewPedidosMontaje = interface(IViewGrid) ['{E6A3B3B7-7663-46D6-9B84-7B689D9B2461}'] function GetCodigoMontaje: Integer; procedure SetCodigoMontaje(const Value: Integer); property CodigoMontaje: Integer read GetCodigoMontaje write SetCodigoMontaje; function GetPedidosMontaje: IBizPedidosMontaje; procedure SetPedidosMontaje(const Value: IBizPedidosMontaje); property PedidosMontaje: IBizPedidosMontaje read GetPedidosMontaje write SetPedidosMontaje; 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; actRecibirPedido: TAction; ToolButton3: TToolButton; PngImageList2: TPngImageList; cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn; procedure cxGridViewCODIGOCustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure actAnadirExecute(Sender: TObject); procedure actModificarExecute(Sender: TObject); procedure actEliminarExecute(Sender: TObject); procedure actEliminarUpdate(Sender: TObject); procedure actModificarUpdate(Sender: TObject); protected FCodigoMontaje: Integer; FPedidosMontaje: IBizPedidosMontaje; function GetCodigoMontaje: Integer; procedure SetCodigoMontaje(const Value: Integer); function GetPedidosMontaje: IBizPedidosMontaje; procedure SetPedidosMontaje(const Value: IBizPedidosMontaje); public property PedidosMontaje: IBizPedidosMontaje read GetPedidosMontaje write SetPedidosMontaje; property CodigoMontaje: Integer read GetCodigoMontaje write SetCodigoMontaje; end; var frViewPedidosMontaje: TfrViewPedidosMontaje; implementation uses uDataModuleMontajes; {$R *.dfm} { TfrViewPedidosMontaje } { ******************************* TfrViewPedidosMontaje ******************************* } function TfrViewPedidosMontaje.GetPedidosMontaje: IBizPedidosMontaje; begin Result := FPedidosMontaje; end; procedure TfrViewPedidosMontaje.SetPedidosMontaje(const Value: IBizPedidosMontaje); begin FPedidosMontaje := Value; if Assigned(FPedidosMontaje) then DADataSource.DataTable := FPedidosMontaje.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 FPedidosMontaje.AnadirPedido(CodigoMontaje); Self.RefreshGrid; Self.SyncFocusedRecordsFromDataSet; end; procedure TfrViewPedidosMontaje.actModificarExecute(Sender: TObject); begin Self.SyncFocusedRecordsFromGrid; FPedidosMontaje.Show; Self.RefreshGrid; Self.SyncFocusedRecordsFromDataSet; end; procedure TfrViewPedidosMontaje.actEliminarExecute(Sender: TObject); begin Self.SyncFocusedRecordsFromGrid; try FPedidosMontaje.Delete; FPedidosMontaje.DataTable.ApplyUpdates; finally Self.RefreshGrid; Self.SyncFocusedRecordsFromDataSet; end; end; function TfrViewPedidosMontaje.GetCodigoMontaje: Integer; begin Result := FCodigoMontaje; end; procedure TfrViewPedidosMontaje.SetCodigoMontaje(const Value: Integer); begin FCodigoMontaje := Value; end; procedure TfrViewPedidosMontaje.actEliminarUpdate(Sender: TObject); begin inherited; if Assigned(DADataSource.DataTable) then (Sender as TAction).Enabled := (not DADataSource.DataTable.IsEmpty) else (Sender as TAction).Enabled := False; end; procedure TfrViewPedidosMontaje.actModificarUpdate(Sender: TObject); begin inherited; if Assigned(DADataSource.DataTable) then (Sender as TAction).Enabled := (not DADataSource.DataTable.IsEmpty) else (Sender as TAction).Enabled := False; end; end.