AbetoDesign_FactuGES2/Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.pas

181 lines
5.9 KiB
ObjectPascal
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit uViewHistoricoMovimientos;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, frxClass, frxPreview, cxStyles,
cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB,
cxDBData, ActnList, uDADataTable, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxGrid, StdCtrls, ExtCtrls, cxLabel, dxPSGlbl, dxPSUtl,
dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, cxImage,
cxImageComboBox, ImgList, PngImageList, cxTextEdit, Grids, DBGrids, cxDBLookupComboBox,
cxButtonEdit, cxGridCustomPopupMenu, cxGridPopupMenu, uViewGrid,
uBizHistoricoMovimientos, uBizAlmacenes, cxSpinEdit, uViewFiltroBase, TB2Item, TBX,
TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, cxCurrencyEdit, uDAInterfaces,
uCustomView, uViewBase;
type
IViewHistoricoMovimientos = interface(IViewGrid)
['{1E8F901C-F013-42E0-88B7-0D9DA2919A01}']
function GetHistoricoMovimientos: IBizHistoricoMovimientos;
procedure SetHistoricoMovimientos(const Value: IBizHistoricoMovimientos);
property HistoricoMovimientos: IBizHistoricoMovimientos read GetHistoricoMovimientos write SetHistoricoMovimientos;
function GetAlmacenes: IBizAlmacen;
procedure SetAlmacenes(const Value: IBizAlmacen);
property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes;
end;
TfrViewHistoricoMovimientos = class(TfrViewGrid, IViewHistoricoMovimientos)
cxGridDBTableView1: TcxGridDBTableView;
PngImageList: TPngImageList;
cxStyleEntrada: TcxStyle;
cxGridViewDESCRIPCION: TcxGridDBColumn;
cxGridViewREFERENCIA: TcxGridDBColumn;
cxGridViewFAMILIA: TcxGridDBColumn;
cxGridViewNOMBRE_ALMACEN: TcxGridDBColumn;
cxGridViewID_ALMACEN: TcxGridDBColumn;
cxGridViewFECHA: TcxGridDBColumn;
cxGridViewCANTIDAD: TcxGridDBColumn;
cxGridViewREFERENCIA_PROV: TcxGridDBColumn;
cxGridViewTIPO_MOVIMIENTO: TcxGridDBColumn;
cxGridViewCAUSA: TcxGridDBColumn;
cxStyleSalida: TcxStyle;
procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView;
ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out
AStyle: TcxStyle);
private
//Filtros relativos a la vista
procedure AnadirFiltroAlmacenes;
protected
FAlmacenes: IBizAlmacen;
FHistoricoMovimientos: IBizHistoricoMovimientos;
function GetAlmacenes: IBizAlmacen;
procedure SetAlmacenes(const Value: IBizAlmacen);
function GetHistoricoMovimientos: IBizHistoricoMovimientos;
procedure SetHistoricoMovimientos(const Value: IBizHistoricoMovimientos);
procedure AnadirOtrosFiltros; override;
public
property HistoricoMovimientos: IBizHistoricoMovimientos read GetHistoricoMovimientos write SetHistoricoMovimientos;
destructor Destroy; override;
end;
implementation
{$R *.dfm}
uses uDataModuleHistoricoMovimientos, schHistoricoMovimientosClient_Intf;
procedure TfrViewHistoricoMovimientos.AnadirFiltroAlmacenes;
var
FFiltro : TcxFilterCriteriaItemList;
CodigoAlmacen: String;
begin
FFiltro := AddFilterGrid(fboAnd);
CodigoAlmacen := IntToStr(cxGrid.Levels.Items[cxGrid.ActiveLevel.Index].Tag);
if CodigoAlmacen <> '-1' then
begin
FFiltro.AddItem(cxGridViewID_ALMACEN, foEqual, CodigoAlmacen, CodigoAlmacen);
cxGridViewNOMBRE_ALMACEN.Visible := False;
end
else
cxGridViewNOMBRE_ALMACEN.Visible := True;
end;
procedure TfrViewHistoricoMovimientos.AnadirOtrosFiltros;
begin
inherited;
AnadirFiltroAlmacenes;
//Finalmente activamos el filtro si tenemos algo
if cxGridView.DataController.Filter.IsEmpty
then cxGridView.DataController.Filter.Active := False
else cxGridView.DataController.Filter.Active := True;
cxGrid.ActiveLevel.GridView := cxGridView;
end;
procedure TfrViewHistoricoMovimientos.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
begin
inherited;
RefrescarFiltro;
end;
procedure TfrViewHistoricoMovimientos.cxGridViewStylesGetContentStyle(Sender:
TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem:
TcxCustomGridTableItem; out AStyle: TcxStyle);
var
IndiceCol: Integer;
ACantidad: Variant;
begin
inherited;
if Assigned(ARecord) then
begin
IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_HistoricoMovimientosCANTIDAD).Index;
ACantidad := ARecord.DisplayTexts[IndiceCol];
if (ACantidad < 0) then
AStyle := cxStyleSalida
else
AStyle := cxStyleEntrada;
end;
end;
destructor TfrViewHistoricoMovimientos.Destroy;
begin
FAlmacenes := Nil;
FHistoricoMovimientos := Nil;
inherited;
end;
function TfrViewHistoricoMovimientos.GetAlmacenes: IBizAlmacen;
begin
Result := FAlmacenes;
end;
function TfrViewHistoricoMovimientos.GetHistoricoMovimientos: IBizHistoricoMovimientos;
begin
Result := FHistoricoMovimientos;
end;
procedure TfrViewHistoricoMovimientos.SetAlmacenes(const Value: IBizAlmacen);
var
Nivel: TcxGridLevel;
begin
FAlmacenes := Value;
if Assigned(FAlmacenes) then
begin
if not FAlmacenes.DataTable.Active then
FAlmacenes.DataTable.Active := True;
FAlmacenes.First;
while not FAlmacenes.EOF do
begin
Nivel := cxGrid.Levels.Add;
Nivel.Caption := FAlmacenes.NOMBRE;
Nivel.Tag := FAlmacenes.ID;
FAlmacenes.Next;
end;
end;
end;
procedure TfrViewHistoricoMovimientos.SetHistoricoMovimientos(const Value: IBizHistoricoMovimientos);
begin
FHistoricoMovimientos := Value;
if Assigned(FHistoricoMovimientos) then
dsDataSource.DataTable := FHistoricoMovimientos.DataTable
else
dsDataSource.DataTable := Nil;
end;
end.