unit uViewControGridStockEDIInventario; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, cxDropDownEdit, StdCtrls, cxSpinEdit, uViewGrid, cxMemo, cxEditRepositoryItems, uDataModuleStock, uViewFiltrosStock; type IViewControlGridStockEDIInventario = interface(IViewGrid) ['{38BB8BB9-E15D-4D49-970E-14418C4EB1E4}'] end; TfrViewControlGridStockEDIInventario = class(TfrViewGrid, IViewControlGridStockEDIInventario) dxComponentPrinterLink1: TdxGridReportLink; cxEditRepository1: TcxEditRepository; cxEditDia: TcxEditRepositoryTextItem; cxEditImporte: TcxEditRepositoryCurrencyItem; cxGridViewRecID: TcxGridDBColumn; cxGridViewCENTRO: TcxGridDBColumn; cxGridViewCODIGO: TcxGridDBColumn; cxGridViewPRODUCTO: TcxGridDBColumn; cxGridViewTIPO_PRODUCTO: TcxGridDBColumn; cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn; cxGridViewCOLECCION: TcxGridDBColumn; cxGridViewCOLOR: TcxGridDBColumn; cxGridViewI38: TcxGridDBColumn; cxGridViewI40: TcxGridDBColumn; cxGridViewI42: TcxGridDBColumn; cxGridViewI44: TcxGridDBColumn; cxGridViewI46: TcxGridDBColumn; cxGridViewI48: TcxGridDBColumn; cxGridViewTI: TcxGridDBColumn; cxGridViewK38: TcxGridDBColumn; cxGridViewK40: TcxGridDBColumn; cxGridViewK42: TcxGridDBColumn; cxGridViewK44: TcxGridDBColumn; cxGridViewK46: TcxGridDBColumn; cxGridViewK48: TcxGridDBColumn; cxGridViewTK: TcxGridDBColumn; cxGridViewD38: TcxGridDBColumn; cxGridViewD40: TcxGridDBColumn; cxGridViewD42: TcxGridDBColumn; cxGridViewD44: TcxGridDBColumn; cxGridViewD46: TcxGridDBColumn; cxGridViewD48: TcxGridDBColumn; cxGridViewDT: TcxGridDBColumn; frViewFiltrosStock1: TfrViewFiltrosStock; cxStyleEntrada: TcxStyle; cxStyleSalida: TcxStyle; cxStyleRepositoryInforme: TcxStyleRepository; cxStyleContentInforme: TcxStyle; cxStyleFooterInforme: TcxStyle; cxStyleGroupInforme: TcxStyle; cxStyleHeaderInforme: TcxStyle; cxStyleSelectionInforme: TcxStyle; cxStyleTotales: TcxStyle; procedure cxGridViewDTCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure cxGridViewStylesGetContentStyle( Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); procedure cxGridViewI38GetDataText(Sender: TcxCustomGridTableItem; ARecordIndex: Integer; var AText: String); procedure cxGridViewTEStylesGetContentStyle( Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); procedure frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); procedure frViewFiltrosStock1ccbCentroChange(Sender: TObject); protected FNivelFiltrado : TcxFilterCriteriaItemList; procedure FilterChanged(Sender: TObject); override; public procedure Preview; override; procedure Print; override; constructor Create(AOwner: TComponent); override; procedure ShowEmbedded(const AParent : TWinControl); override; procedure Refresh; override; end; implementation {$R *.dfm} uses uViewGridBase; { TfrViewControlGridResumenVentas } procedure TfrViewControlGridStockEDIInventario.Preview; begin inherited; dxComponentPrinterLink1.ReportTitle.Text := 'Diferencias con último inventario de colección ' + frViewFiltrosStock1.cbColeccion.Text + ' en centro(s) ' + frViewFiltrosStock1.ccbCentro.Text; dxComponentPrinterLink1.Preview; end; procedure TfrViewControlGridStockEDIInventario.Print; begin inherited; dxComponentPrinterLink1.ReportTitle.Text := 'Diferencias con último inventario de colección ' + frViewFiltrosStock1.cbColeccion.Text + ' en centro(s) ' + frViewFiltrosStock1.ccbCentro.Text; dxComponentPrinterLink1.Print(True, Nil); end; procedure TfrViewControlGridStockEDIInventario.cxGridViewDTCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin inherited; if not VarIsNull(AViewInfo.Value) then if Pos('-', AViewInfo.Value) > 0 then ACanvas.Canvas.Font.Color := $000000CC; end; constructor TfrViewControlGridStockEDIInventario.Create(AOwner: TComponent); begin inherited; frViewFiltrosStock1.FocusedView := cxGridView; frViewFiltrosStock1.ColeccionColumnIndex := cxGridViewCOLECCION.Index; frViewFiltrosStock1.CentroColumnIndex := cxGridViewCENTRO.Index; end; procedure TfrViewControlGridStockEDIInventario.ShowEmbedded( const AParent: TWinControl); begin inherited; frViewFiltrosStock1.Refresh; end; procedure TfrViewControlGridStockEDIInventario.cxGridViewStylesGetContentStyle( Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); begin inherited; // if Assigned(AItem) then if (AItem.Index = cxGridViewTI.Index) or (AItem.Index = cxGridViewTK.Index) or (AItem.Index = cxGridViewDT.Index) then AStyle := cxStyleTotales; end; procedure TfrViewControlGridStockEDIInventario.cxGridViewI38GetDataText( Sender: TcxCustomGridTableItem; ARecordIndex: Integer; var AText: String); begin inherited; if AText = '0' then AText := ''; end; procedure TfrViewControlGridStockEDIInventario.cxGridViewTEStylesGetContentStyle( Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); begin inherited; AStyle := cxStyleTotales; end; procedure TfrViewControlGridStockEDIInventario.Refresh; begin inherited; frViewFiltrosStock1.Refresh; end; procedure TfrViewControlGridStockEDIInventario.frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); begin inherited; FreeAndNil(FNivelFiltrado); FilterChanged(self); end; procedure TfrViewControlGridStockEDIInventario.FilterChanged(Sender: TObject); var AItemList: TcxFilterCriteriaItemList; i : Integer; begin inherited; cxGridView.DataController.Filter.BeginUpdate; ShowHourglassCursor; try AItemList := cxGridView.DataController.Filter.Root; AItemList.Clear; FNivelFiltrado := AItemList.AddItemList(fboAnd); if (Length(frViewFiltrosStock1.cbColeccion.Text) > 0) and (frViewFiltrosStock1.cbColeccion.Text <> 'Todos') then FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.ColeccionColumnIndex], foEqual, frViewFiltrosStock1.cbColeccion.Text, frViewFiltrosStock1.cbColeccion.Text); if (Length(frViewFiltrosStock1.ccbCentro.Text) > 0) and (Pos('Todos', frViewFiltrosStock1.ccbCentro.Text) = 0) then begin FNivelFiltrado := FNivelFiltrado.AddItemList(fboOr); for i := 0 to frViewFiltrosStock1.ccbCentro.Items.Count - 1 do if frViewFiltrosStock1.ccbCentro.IsChecked(i) then FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.CentroColumnIndex], foEqual, frViewFiltrosStock1.ccbCentro.Items[i], frViewFiltrosStock1.ccbCentro.Items[i]); end; if cxGridView.DataController.Filter.IsEmpty then cxGridView.DataController.Filter.Active := False else cxGridView.DataController.Filter.Active := True; finally cxGridView.DataController.Filter.EndUpdate; HideHourglassCursor; end; end; procedure TfrViewControlGridStockEDIInventario.frViewFiltrosStock1ccbCentroChange( Sender: TObject); begin inherited; FreeAndNil(FNivelFiltrado); FilterChanged(self); end; end.