This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
LuisLeon_FactuGES/Modulos/Inventario/Views/uViewInventario.pas
2007-06-11 15:35:41 +00:00

223 lines
7.2 KiB
ObjectPascal

unit uViewInventario;
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, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk, cxImage,
cxImageComboBox, ImgList, PngImageList, cxTextEdit, Grids, DBGrids, cxDBLookupComboBox,
cxButtonEdit, cxGridCustomPopupMenu, cxGridPopupMenu, uViewGrid,
uBizInventario, uAlmacenesController;
type
IViewInventario = interface(IViewGrid)
['{4BAE6CBE-4CBB-4103-B85E-80BE5310723A}']
function GetInventario: IBizInventario;
procedure SetInventario(const Value: IBizInventario);
property Inventario: IBizInventario read GetInventario write SetInventario;
end;
TfrViewInventario = class(TfrViewGrid, IViewInventario)
cxGridDBTableView1: TcxGridDBTableView;
PngImageList: TPngImageList;
cxStyleArticuloReservado: TcxStyle;
cxGridViewRecID: TcxGridDBColumn;
cxGridViewID: TcxGridDBColumn;
cxGridViewID_ALMACEN: TcxGridDBColumn;
cxGridViewID_ARTICULO: TcxGridDBColumn;
cxGridViewCANTIDAD: TcxGridDBColumn;
cxGridViewID_PEDIDO_PROVEEDOR: TcxGridDBColumn;
cxGridViewID_PEDIDO_CLIENTE: TcxGridDBColumn;
cxGridViewREFERENCIA_PED_CLI: TcxGridDBColumn;
cxGridViewDESCRIPCION: TcxGridDBColumn;
cxGridViewID_EMPRESA: TcxGridDBColumn;
cxGridViewREFERENCIA_CLIENTE: TcxGridDBColumn;
cxGridViewFAMILIA: TcxGridDBColumn;
cxGridViewALMACEN: TcxGridDBColumn;
cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn;
// procedure SelectionChanged(Sender: TcxCustomGridTableView); override;
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);
private
FAlmacenesController : IAlmacenesController;
protected
FNivelFiltrado : TcxFilterCriteriaItemList;
FInventario: IBizInventario;
function GetInventario: IBizInventario;
procedure SetInventario(const Value: IBizInventario);
procedure FilterChanged(Sender : TObject); override;
public
property Inventario: IBizInventario read GetInventario write SetInventario;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
uses uDataModuleInventario, schInventarioClient_Intf, uBizAlmacenes;
//, uDBSelectionList, uBizAlmacenes, uDataModuleAlmacenes;
{$R *.dfm}
constructor TfrViewInventario.Create(AOwner: TComponent);
begin
inherited;
// Self.MultiSelection := True;
FAlmacenesController := TAlmacenesController.Create;
end;
procedure TfrViewInventario.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
begin
inherited;
FreeAndNil(FNivelFiltrado);
FilterChanged(self);
end;
{procedure TfrViewInventario.cxGridViewCODIGOCustomDrawCell(Sender:
TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo:
TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
R: TRect;
begin
inherited;
R := AViewInfo.ContentBounds;
ACanvas.FillRect(R);
if Length(AViewInfo.Text) = 0 then
ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0)
else
ACanvas.DrawImage(PngImageList, R.Left, R.Top, 1);
ADone := True;
end;}
procedure TfrViewInventario.cxGridViewStylesGetContentStyle(Sender:
TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem:
TcxCustomGridTableItem; out AStyle: TcxStyle);
var
IndiceCol: Integer;
AMontaje: string;
begin
inherited;
{
if Assigned(ARecord) then
begin
IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_ARTICULOSREFERENCIAMONTAJE).Index;
AMontaje := VarToStr(ARecord.DisplayTexts[IndiceCol]);
if (Length(AMontaje) > 0) then
AStyle := cxStyleArticuloReservado;
end;
}
end;
destructor TfrViewInventario.Destroy;
begin
FAlmacenesController := Nil;
FInventario := Nil;
inherited;
end;
function TfrViewInventario.GetInventario: IBizInventario;
begin
Result := FInventario;
end;
procedure TfrViewInventario.SetInventario(const Value: IBizInventario);
var
Nivel: TcxGridLevel;
i: Integer;
AAlmacenes : IBizAlmacen;
begin
FInventario := Value;
if Assigned(FInventario) then
begin
dsDataSource.DataTable := FInventario.DataTable;
try
if Assigned(FAlmacenesController) then
begin
AAlmacenes := FAlmacenesController.BuscarTodos;
AAlmacenes.DataTable.Active := True;
AAlmacenes.First;
while not AAlmacenes.EOF do
begin
Nivel := cxGrid.Levels.Add;
Nivel.Caption := AAlmacenes.NOMBRE;
Nivel.Tag := AAlmacenes.ID;
AAlmacenes.Next;
end;
end;
finally
AAlmacenes := Nil;
end;
end;
end;
{procedure TfrViewInventario.SelectionChanged(Sender: TcxCustomGridTableView);
var
ABookmark : Pointer;
i, pos: Integer;
begin
inherited;
pos := (Sender as TcxGridDBTableView).GetColumnByFieldName('ID').Index;
if FInventario <> NIL then
begin
FInventario.DataTable.DisableControls;
ABookmark := FInventario.DataTable.GetBookMark;
(FInventario as ISelectedRowList).SelectedRows.Clear;
for i:=0 to Sender.Controller.SelectedRecordCount-1 do
begin
FInventario.DataTable.Locate('ID', Sender.Controller.SelectedRecords[i].Values[pos],[]);
(FInventario as ISelectedRowList).SelectedRows.CurrentRowSelected := True;
end;
(FInventario as ISelectedRowList).SelectedRows.Count;
FInventario.DataTable.GotoBookmark(ABookmark);
FInventario.DataTable.FreeBookmark(ABookmark);
FInventario.DataTable.EnableControls;
end;
end;
}
procedure TfrViewInventario.FilterChanged(Sender: TObject);
var
AItemList: TcxFilterCriteriaItemList;
AItemList2: TcxFilterCriteriaItemList;
CodigoAlmacen: String;
begin
inherited;
cxGridView.DataController.Filter.BeginUpdate;
AItemList := cxGridView.DataController.Filter.Root;
AItemList2 := AItemList.AddItemList(fboAnd);
FNivelFiltrado := AItemList2;
CodigoAlmacen := IntToStr(cxGrid.Levels.Items[cxGrid.ActiveLevel.Index].Tag);
if CodigoAlmacen <> '-1' then
AItemList2.AddItem(cxGridViewID_ALMACEN, foEqual, CodigoAlmacen, CodigoAlmacen);
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;
end.