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/Albaranes de cliente/Views/uViewAlbaranesCliente.pas
2007-06-11 17:36:55 +00:00

160 lines
5.9 KiB
ObjectPascal

unit uViewAlbaranesCliente;
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,
uBizAlbaranesCliente;
type
IViewAlbaranesCliente = interface(IViewGrid)
['{C0B0D9D9-2E0E-4CA5-88C8-B8C71CFAD59B}']
function GetAlbaranes: IBizAlbaranCliente;
procedure SetAlbaranes(const Value: IBizAlbaranCliente);
property Albaranes: IBizAlbaranCliente read GetAlbaranes write SetAlbaranes;
end;
TfrViewAlbaranesCliente = class(TfrViewGrid, IViewAlbaranesCliente)
PngImageList: TPngImageList;
cxGridViewID: TcxGridDBColumn;
cxGridViewREF_FACTURA: TcxGridDBColumn;
cxGridViewREFERENCIA: TcxGridDBColumn;
cxGridViewFECHA_ALBARAN: TcxGridDBColumn;
cxGridViewINCIDENCIAS_ACTIVAS: TcxGridDBColumn;
cxGridViewNOMBRE: TcxGridDBColumn;
cxGridViewSITUACION: TcxGridDBColumn;
cxGridViewCALLE: TcxGridDBColumn;
cxGridViewCODIGO_POSTAL: TcxGridDBColumn;
cxGridViewPOBLACION: TcxGridDBColumn;
cxGridViewPROVINCIA: TcxGridDBColumn;
cxGridViewPERSONA_CONTACTO: TcxGridDBColumn;
cxGridViewTELEFONO: TcxGridDBColumn;
cxGridViewFECHA_ENVIO: TcxGridDBColumn;
cxGridViewFECHA_RECEPCION: TcxGridDBColumn;
cxGridViewREF_PEDIDO: TcxGridDBColumn;
cxGridViewNOMBRE_ALMACEN: TcxGridDBColumn;
cxGridLevelPendientes: TcxGridLevel;
cxGridLevelEnviados: TcxGridLevel;
cxGridLevelServidos: TcxGridLevel;
cxGridLevelProximosAEnviar: TcxGridLevel;
cxStyleProximosAEnviar: TcxStyle;
cxStylePENDIENTES: TcxStyle;
cxStyleENVIADOS: 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;
FAlbaranes: IBizAlbaranCliente;
function GetAlbaranes: IBizAlbaranCliente;
procedure SetAlbaranes(const Value: IBizAlbaranCliente);
procedure FilterChanged(Sender : TObject); override;
public
property Albaranes: IBizAlbaranCliente read GetAlbaranes write SetAlbaranes;
end;
implementation
uses SysUtils, variants, windows, uDataModuleAlbaranesCliente, schAlbaranesClienteClient_Intf;
{$R *.dfm}
procedure TfrViewAlbaranesCliente.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
begin
inherited;
FreeAndNil(FNivelFiltrado);
FilterChanged(self);
end;
procedure TfrViewAlbaranesCliente.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 TfrViewAlbaranesCliente.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_AlbaranesClienteSITUACION).Index;
ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]);
if ASituacion = SITUACION_ALBARAN_PENDIENTE then
AStyle := cxStylePENDIENTES
else if ASituacion = SITUACION_ALBARAN_ENVIADO then
AStyle := cxStyleENVIADOS
else if ASituacion = SITUACION_ALBARAN_SERVIDO then
AStyle := cxStyleSERVIDOS;
end;
end;
procedure TfrViewAlbaranesCliente.FilterChanged(Sender: TObject);
var
AItemList: TcxFilterCriteriaItemList;
AItemList2: TcxFilterCriteriaItemList;
begin
inherited;
cxGridView.DataController.Filter.BeginUpdate;
try
AItemList := cxGridView.DataController.Filter.Root;
AItemList2 := AItemList.AddItemList(fboAnd);
FNivelFiltrado := AItemList2;
case cxGrid.ActiveLevel.Index of
1 : AItemList2.AddItem(cxGridViewSITUACION, foEqual, SITUACION_ALBARAN_PENDIENTE, SITUACION_ALBARAN_PENDIENTE);
2 : AItemList2.AddItem(cxGridViewSITUACION, foEqual, SITUACION_ALBARAN_ENVIADO, SITUACION_ALBARAN_ENVIADO);
3 : AItemList2.AddItem(cxGridViewSITUACION, foEqual, SITUACION_ALBARAN_SERVIDO, SITUACION_ALBARAN_SERVIDO);
4 : begin
AItemList2.BoolOperatorKind := fboAnd;
AItemList2.AddItem(cxGridViewSITUACION, foEqual, SITUACION_ALBARAN_PENDIENTE, SITUACION_ALBARAN_PENDIENTE);
AItemList2.AddItem(cxGridViewFECHA_ALBARAN, foGreaterEqual, Date, 'A ENVIAR');
end;
end;
cxGridView.DataController.Filter.Active := not cxGridView.DataController.Filter.IsEmpty;
finally
cxGridView.DataController.Filter.EndUpdate;
cxGrid.ActiveLevel.GridView := cxGridView;
end;
end;
function TfrViewAlbaranesCliente.GetAlbaranes: IBizAlbaranCliente;
begin
Result := FAlbaranes;
end;
procedure TfrViewAlbaranesCliente.SetAlbaranes(const Value: IBizAlbaranCliente);
begin
FAlbaranes := Value;
if Assigned(FAlbaranes) then
dsDataSource.DataTable := FAlbaranes.DataTable;
end;
end.