272 lines
9.1 KiB
ObjectPascal
272 lines
9.1 KiB
ObjectPascal
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, uDAInterfaces, TBXDkPanels,
|
||
uViewParametrosCentro, uCustomView, uViewBase, uViewParametrosControlGrid,
|
||
uViewParametrosColeccion, TB2Dock, uBizStock;
|
||
|
||
type
|
||
IViewControlGridStockEDIInventario = interface(IViewGrid)
|
||
['{38BB8BB9-E15D-4D49-970E-14418C4EB1E4}']
|
||
function GetItems: IBizStockEDIInventario;
|
||
procedure SetItems(const Value: IBizStockEDIInventario);
|
||
property Items: IBizStockEDIInventario read GetItems write SetItems;
|
||
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;
|
||
cxStyleEntrada: TcxStyle;
|
||
cxStyleSalida: TcxStyle;
|
||
cxStyleRepositoryInforme: TcxStyleRepository;
|
||
cxStyleContentInforme: TcxStyle;
|
||
cxStyleFooterInforme: TcxStyle;
|
||
cxStyleGroupInforme: TcxStyle;
|
||
cxStyleHeaderInforme: TcxStyle;
|
||
cxStyleSelectionInforme: TcxStyle;
|
||
cxStyleTotales: TcxStyle;
|
||
TBXDockablePanel1: TTBXDockablePanel;
|
||
frViewParametrosColeccion1: TfrViewParametrosColeccion;
|
||
frViewParametrosCentro1: TfrViewParametrosCentro;
|
||
pnlAgrupaciones: TTBXAlignmentPanel;
|
||
TBXButton3: TTBXButton;
|
||
TBXLabel1: TTBXLabel;
|
||
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);
|
||
protected
|
||
FItems : IBizStockEDIInventario;
|
||
function GetItems: IBizStockEDIInventario;
|
||
procedure SetItems(const Value: IBizStockEDIInventario);
|
||
|
||
public
|
||
property Items: IBizStockEDIInventario read GetItems write SetItems;
|
||
procedure Preview; override;
|
||
procedure Print; override;
|
||
constructor Create(AOwner: TComponent); override;
|
||
destructor Destroy; override;
|
||
procedure Refresh;
|
||
end;
|
||
|
||
implementation
|
||
{$R *.dfm}
|
||
|
||
uses
|
||
uViewGridBase;
|
||
|
||
{ TfrViewControlGridResumenVentas }
|
||
|
||
procedure TfrViewControlGridStockEDIInventario.Preview;
|
||
begin
|
||
inherited;
|
||
// dxComponentPrinterLink1.ReportTitle.Text := 'Diferencias con <20>ltimo inventario de colecci<63>n ' + frViewFiltrosStock1.cbColeccion.Text + ' en centro(s) ' + frViewFiltrosStock1.ccbCentro.Text;
|
||
dxComponentPrinterLink1.Preview;
|
||
end;
|
||
|
||
procedure TfrViewControlGridStockEDIInventario.Print;
|
||
begin
|
||
inherited;
|
||
// dxComponentPrinterLink1.ReportTitle.Text := 'Diferencias con <20>ltimo inventario de colecci<63>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;
|
||
FItems := Nil;
|
||
frViewParametrosColeccion1.Refresh;
|
||
frViewParametrosCentro1.Refresh;
|
||
end;
|
||
|
||
procedure TfrViewControlGridStockEDIInventario.SetItems(const Value: IBizStockEDIInventario);
|
||
begin
|
||
FItems := Value;
|
||
if Assigned(FItems) then
|
||
dsDataSource.DataTable := FItems.DataTable;
|
||
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;
|
||
|
||
destructor TfrViewControlGridStockEDIInventario.Destroy;
|
||
begin
|
||
FItems := Nil;
|
||
inherited;
|
||
end;
|
||
|
||
procedure TfrViewControlGridStockEDIInventario.Refresh;
|
||
var
|
||
AColeccionesList : TStringList;
|
||
ACentrosList : TStringList;
|
||
AWhereColeccion : String;
|
||
AWhereCentro : String;
|
||
AWhere : String;
|
||
i : integer;
|
||
begin
|
||
AColeccionesList := Nil;
|
||
ACentrosList := Nil;
|
||
|
||
if Assigned(FItems) then
|
||
Items.DataTable.Active := False;
|
||
AColeccionesList := frViewParametrosColeccion1.ColeccionesSeleccionadas;
|
||
ACentrosList := frViewParametrosCentro1.CentrosSeleccionados;
|
||
|
||
ShowHourglassCursor;
|
||
try
|
||
if Assigned(AColeccionesList) then
|
||
begin
|
||
AWhereColeccion := '';
|
||
if AColeccionesList.Count = 0 then
|
||
begin
|
||
ShowMessage('Debe seleccionar al menos una colecci<63>n en los par<61>metros de la consulta.');
|
||
Exit;
|
||
end
|
||
else begin
|
||
AWhereColeccion := AWhereColeccion + ' COLECCION in (';
|
||
for i := 0 to AColeccionesList.Count - 1 do
|
||
begin
|
||
if i > 0 then
|
||
AWhereColeccion := AWhereColeccion + ', ';
|
||
AWhereColeccion := AWhereColeccion + '''' + AColeccionesList[i] + '''';
|
||
end;
|
||
AWhereColeccion := AWhereColeccion + ')';
|
||
end;
|
||
end;
|
||
|
||
if Assigned(ACentrosList) then
|
||
begin
|
||
AWhereCentro := '';
|
||
if ACentrosList.Count = 0 then
|
||
begin
|
||
ShowMessage('Debe seleccionar al menos un centro en los par<61>metros de la consulta.');
|
||
Exit;
|
||
end
|
||
else begin
|
||
AWhereCentro := AWhereCentro + ' CENTRO in (';
|
||
for i := 0 to ACentrosList.Count - 1 do
|
||
begin
|
||
if i > 0 then
|
||
AWhereCentro := AWhereCentro + ', ';
|
||
AWhereCentro := AWhereCentro + '''' + ACentrosList[i] + '''';
|
||
end;
|
||
AWhereCentro := AWhereCentro + ')';
|
||
end;
|
||
end;
|
||
|
||
AWhere := '';
|
||
if AWhereColeccion <> '' then
|
||
AWhere := AWhere + AWhereColeccion;
|
||
|
||
if AWhereCentro <> '' then
|
||
begin
|
||
if AWhere <> '' then
|
||
AWhere := AWhere + ' AND ';
|
||
AWhere := AWhere + AWhereCentro;
|
||
end;
|
||
|
||
|
||
Items.DataTable.Where.Clear;
|
||
Items.DataTable.Where.AddText(AWhere, False);
|
||
Items.DataTable.Active := True;
|
||
|
||
finally
|
||
HideHourglassCursor;
|
||
FreeAndNIL(AColeccionesList);
|
||
FreeAndNIL(ACentrosList);
|
||
end;
|
||
end;
|
||
|
||
function TfrViewControlGridStockEDIInventario.GetItems: IBizStockEDIInventario;
|
||
begin
|
||
Result := FItems;
|
||
end;
|
||
|
||
end.
|
||
|