git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/tags/1.0.9@15 c93665c3-c93d-084d-9b98-7d5f4a9c3376
149 lines
5.3 KiB
ObjectPascal
149 lines
5.3 KiB
ObjectPascal
unit uViewPedidosCliente;
|
|
|
|
interface
|
|
|
|
uses
|
|
uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter,
|
|
cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn,
|
|
dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
|
|
dxPSEdgePatterns, cxImageComboBox, ImgList, Controls, PngImageList,
|
|
cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
|
|
cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGridLnk,
|
|
uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, Classes,
|
|
cxGrid,
|
|
uBizPedidosCliente, cxCurrencyEdit;
|
|
|
|
type
|
|
IViewPedidosCliente = interface(IViewGrid)
|
|
['{96821714-55CF-4BC1-A0C1-16E027B2EF16}']
|
|
function GetPedidos: IBizPedidoCliente;
|
|
procedure SetPedidos(const Value: IBizPedidoCliente);
|
|
property Pedidos: IBizPedidoCliente read GetPedidos write SetPedidos;
|
|
end;
|
|
|
|
TfrViewPedidosCliente = class(TfrViewGrid, IViewPedidosCliente)
|
|
cxGridDBTableView1: TcxGridDBTableView;
|
|
PngImageList: TPngImageList;
|
|
cxGridViewID: TcxGridDBColumn;
|
|
cxGridViewREFERENCIA: TcxGridDBColumn;
|
|
cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn;
|
|
cxGridViewNOMBRE: TcxGridDBColumn;
|
|
cxGridViewSITUACION: TcxGridDBColumn;
|
|
cxGridViewFECHA_PEDIDO: TcxGridDBColumn;
|
|
cxGridViewCALLE: TcxGridDBColumn;
|
|
cxGridViewCODIGO_POSTAL: TcxGridDBColumn;
|
|
cxGridViewPOBLACION: TcxGridDBColumn;
|
|
cxGridViewPROVINCIA: TcxGridDBColumn;
|
|
cxGridViewPERSONA_CONTACTO: TcxGridDBColumn;
|
|
cxGridViewTELEFONO: TcxGridDBColumn;
|
|
cxGridViewIMPORTE_TOTAL: TcxGridDBColumn;
|
|
cxGridLevelPendientes: TcxGridLevel;
|
|
cxGridLevelEnProceso: TcxGridLevel;
|
|
cxGridLevelServidor: TcxGridLevel;
|
|
cxStylePENDIENTES: TcxStyle;
|
|
cxStyleENPROCESO: TcxStyle;
|
|
cxStyleSERVIDOS: TcxStyle;
|
|
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);
|
|
protected
|
|
FNivelFiltrado : TcxFilterCriteriaItemList;
|
|
FPedidos: IBizPedidoCliente;
|
|
function GetPedidos: IBizPedidoCliente;
|
|
procedure SetPedidos(const Value: IBizPedidoCliente);
|
|
procedure FilterChanged(Sender : TObject); override;
|
|
public
|
|
property Pedidos: IBizPedidoCliente read GetPedidos write SetPedidos;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses SysUtils, variants, windows, uDataModulePedidosCliente, schPedidosClienteClient_Intf;
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TfrViewPedidosCliente.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
|
|
begin
|
|
inherited;
|
|
FreeAndNil(FNivelFiltrado);
|
|
FilterChanged(self);
|
|
end;
|
|
|
|
procedure TfrViewPedidosCliente.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 TfrViewPedidosCliente.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_PedidosClienteSITUACION).Index;
|
|
ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]);
|
|
if ASituacion = SITUACION_PEDIDO_PENDIENTE then
|
|
AStyle := cxStylePENDIENTES
|
|
else if ASituacion = SITUACION_PEDIDO_ENPROCESO then
|
|
AStyle := cxStyleENPROCESO
|
|
else if ASituacion = SITUACION_PEDIDO_SERVIDO then
|
|
AStyle := cxStyleSERVIDOS;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrViewPedidosCliente.FilterChanged(Sender: TObject);
|
|
var
|
|
AItemList: TcxFilterCriteriaItemList;
|
|
ANuevoItemList: TcxFilterCriteriaItemList;
|
|
begin
|
|
inherited;
|
|
|
|
cxGridView.DataController.Filter.BeginUpdate;
|
|
try
|
|
AItemList := cxGridView.DataController.Filter.Root;
|
|
ANuevoItemList := AItemList.AddItemList(fboAnd);
|
|
FNivelFiltrado := ANuevoItemList;
|
|
|
|
case cxGrid.ActiveLevel.Index of
|
|
1 : ANuevoItemList.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_PENDIENTE, SITUACION_PEDIDO_PENDIENTE);
|
|
2 : ANuevoItemList.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_ENPROCESO, SITUACION_PEDIDO_ENPROCESO);
|
|
3 : ANuevoItemList.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_SERVIDO, SITUACION_PEDIDO_SERVIDO);
|
|
end;
|
|
cxGridView.DataController.Filter.Active := not cxGridView.DataController.Filter.IsEmpty;
|
|
finally
|
|
cxGridView.DataController.Filter.EndUpdate;
|
|
cxGrid.ActiveLevel.GridView := cxGridView;
|
|
end;
|
|
end;
|
|
|
|
function TfrViewPedidosCliente.GetPedidos: IBizPedidoCliente;
|
|
begin
|
|
Result := FPedidos;
|
|
end;
|
|
|
|
procedure TfrViewPedidosCliente.SetPedidos(const Value: IBizPedidoCliente);
|
|
begin
|
|
FPedidos := Value;
|
|
if Assigned(FPedidos) then
|
|
dsDataSource.DataTable := FPedidos.DataTable;
|
|
end;
|
|
|
|
end.
|