This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
AlonsoYSal_FactuGES/Modulos/Pedidos a proveedor/Cliente/uViewPedidosProveedor.pas
2007-06-21 16:02:50 +00:00

179 lines
6.2 KiB
ObjectPascal

unit uViewPedidosProveedor;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewGrid, uViewPreview, frxClass, frxPreview, cxStyles,
cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB,
cxDBData, ActnList, uDADataTable, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxGrid, uBizPedidosProveedor, StdCtrls, ExtCtrls,
cxLabel, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev,
dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, cxIntlPrintSys3,
dxPSCore, dxPScxCommon, dxPScxGridLnk, cxImage, cxImageComboBox, ImgList,
PngImageList, cxTextEdit, Grids, DBGrids, uViewFiltroBase;
type
IViewPedidosProveedor = interface(IViewGrid)
['{F21DDC5A-0A61-448A-A0B8-F8C82F8524AE}']
function GetPedidosProveedor: IBizPedidosProveedor;
procedure SetPedidosProveedor(const Value: IBizPedidosProveedor);
property PedidosProveedor: IBizPedidosProveedor read GetPedidosProveedor write
SetPedidosProveedor;
end;
TfrViewPedidosProveedor = class(TfrViewGrid, IViewPedidosProveedor)
cxGridDBTableView1: TcxGridDBTableView;
cxGridLevel1: TcxGridLevel;
cxGridLevel2: TcxGridLevel;
cxGridLevel3: TcxGridLevel;
PngImageList: TPngImageList;
cxGridViewCODIGO: TcxGridDBColumn;
cxGridViewREFERENCIA: TcxGridDBColumn;
cxGridViewFECHAPEDIDO: TcxGridDBColumn;
cxGridViewFECHACONFIRMACION: TcxGridDBColumn;
cxGridViewSITUACION: TcxGridDBColumn;
cxGridViewFECHAENTREGA: TcxGridDBColumn;
cxGridViewDIRECCIONCOMPLETA: TcxGridDBColumn;
cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn;
cxGridViewCODIGOALMACEN: TcxGridDBColumn;
cxGridViewCODIGOCONTACTO: TcxGridDBColumn;
cxGridViewNOMBRE: TcxGridDBColumn;
cxGridViewCODIGOMONTAJE: TcxGridDBColumn;
cxGridViewNOMBREALMACEN: TcxGridDBColumn;
cxGridViewNOMBRECLIENTE: TcxGridDBColumn;
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
//Filtros relativos a la vista
procedure AnadirFiltroSituaciones;
procedure AnadirFiltroFechas;
protected
FPedidosProveedor: IBizPedidosProveedor;
function GetPedidosProveedor: IBizPedidosProveedor;
procedure SetPedidosProveedor(const Value: IBizPedidosProveedor);
procedure AnadirOtrosFiltros; override;
public
property PedidosProveedor: IBizPedidosProveedor read GetPedidosProveedor write
SetPedidosProveedor;
end;
var
frViewPedidosProveedor: TfrViewPedidosProveedor;
implementation
uses uDataModulePedidosProveedor, schPedidosProveedorClient_Intf;
{$R *.dfm}
procedure TfrViewPedidosProveedor.AnadirFiltroFechas;
var
Columna: TcxGridDBColumn;
Fecha1, Fecha2: Variant;
FFiltro : TcxFilterCriteriaItemList;
begin
Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue;
Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue;
if not VarIsNull(Fecha1)
and not VarIsNull(Fecha2) then
begin
cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare];
FFiltro := AddFilterGrid(fboAnd);
Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHAPEDIDO');
FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2));
end;
end;
procedure TfrViewPedidosProveedor.AnadirFiltroSituaciones;
var
FFiltro : TcxFilterCriteriaItemList;
begin
FFiltro := AddFilterGrid(fboAnd);
case cxGrid.ActiveLevel.Index of
1 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PENDIENTE, SITUACION_PENDIENTE);
2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PARCIAL, SITUACION_PARCIAL);
3 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_RECIBIDO, SITUACION_RECIBIDO);
end;
end;
procedure TfrViewPedidosProveedor.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
begin
inherited;
RefrescarFiltro;
end;
procedure TfrViewPedidosProveedor.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, 2);
ADone := True;
end;
procedure TfrViewPedidosProveedor.cxGridViewStylesGetContentStyle(Sender:
TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem:
TcxCustomGridTableItem; out AStyle: TcxStyle);
var
IndiceCol: Integer;
ASituacion: string;
begin
{ inherited;
if Assigned(ARecord) then
begin
IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_PresupuestosSITUACION).Index;
ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]);
if ASituacion = SITUACION_ACEPTADO then
AStyle := cxStyleAceptado
else if ASituacion = SITUACION_RECHAZADO then
AStyle := cxStyleRechazado;
end;
}
end;
function TfrViewPedidosProveedor.GetPedidosProveedor: IBizPedidosProveedor;
begin
Result := FPedidosProveedor;
end;
procedure TfrViewPedidosProveedor.AnadirOtrosFiltros;
begin
inherited;
AnadirFiltroSituaciones;
AnadirFiltroFechas;
//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 TfrViewPedidosProveedor.SetPedidosProveedor(const Value: IBizPedidosProveedor);
begin
FPedidosProveedor := Value;
if Assigned(FPedidosProveedor) then
DADataSource.DataTable := FPedidosProveedor.DataTable;
end;
end.