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/Codigo/Modulos/Recibos de cliente2/Views/uViewRecibosCliente.pas
2007-06-12 14:12:46 +00:00

174 lines
5.8 KiB
ObjectPascal

unit uViewRecibosCliente;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewGrid, uViewPreview, cxStyles, cxCustomData, cxGraphics,
cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl,
dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider,
dxPSFillPatterns, dxPSEdgePatterns, cxImageComboBox, cxTextEdit, ImgList,
PngImageList, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
dxPSCore, dxPScxCommon, dxPScxGridLnk, ActnList, uDADataTable,
cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid,
cxImage, Grids, DBGrids, uBizRecibosCliente, cxGridCustomPopupMenu,
cxGridPopupMenu, cxCalendar, cxCurrencyEdit;
type
IViewRecibosCliente = interface(IViewGrid)
['{27D0229A-6340-4F03-B97A-7776E9166F2F}']
function GetRecibos: IBizRecibosCliente;
procedure SetRecibos(const Value: IBizRecibosCliente);
property Recibos: IBizRecibosCliente read GetRecibos write SetRecibos;
end;
TfrViewRecibosCliente = class(TfrViewGrid, IViewRecibosCliente)
PngImageList: TPngImageList;
cxStylePagada: TcxStyle;
cxGridPendientes: TcxGridLevel;
cxGridPagados: TcxGridLevel;
cxStyleAbono: TcxStyle;
cxGridViewRecID: TcxGridDBColumn;
cxGridViewID: TcxGridDBColumn;
cxGridViewREFERENCIA: TcxGridDBColumn;
cxGridViewSITUACION: TcxGridDBColumn;
cxGridViewID_FACTURA: TcxGridDBColumn;
cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn;
cxGridViewDESCRIPCION: TcxGridDBColumn;
cxGridViewOBSERVACIONES: TcxGridDBColumn;
cxGridViewIMPORTE: TcxGridDBColumn;
cxGridViewFECHA_FACTURA: TcxGridDBColumn;
cxGridViewFORMA_PAGO_FACTURA: TcxGridDBColumn;
cxGridViewIMPORTE_FACTURA: TcxGridDBColumn;
cxGridViewNOMBRE_CLIENTE: TcxGridDBColumn;
cxGridViewNIF_CIF_CLIENTE: TcxGridDBColumn;
cxGridViewENTIDAD_CLIENTE: TcxGridDBColumn;
cxGridViewSUCURSAL_CLIENTE: TcxGridDBColumn;
cxGridViewDC_CLIENTE: TcxGridDBColumn;
cxGridViewCUENTA_CLIENTE: TcxGridDBColumn;
cxGridViewID_EMPRESA: TcxGridDBColumn;
cxGridViewFECHA_ALTA: TcxGridDBColumn;
cxGridViewFECHA_MODIFICACION: TcxGridDBColumn;
cxGridViewUSUARIO: TcxGridDBColumn;
cxGridViewID_REMESA: TcxGridDBColumn;
cxGridViewREFERENCIA_REMESA: TcxGridDBColumn;
cxGridDevueltos: TcxGridLevel;
procedure cxGridViewICONOCustomDrawCell(Sender: TcxCustomGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
var ADone: Boolean);
procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView;
ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem;
out AStyle: TcxStyle);
procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
protected
FNivelFiltrado : TcxFilterCriteriaItemList;
FRecibos: IBizRecibosCliente;
function GetRecibos: IBizRecibosCliente;
procedure SetRecibos(const Value: IBizRecibosCliente);
procedure FilterChanged(Sender : TObject); override;
public
property Recibos: IBizRecibosCliente read GetRecibos write SetRecibos;
end;
implementation
uses
uDataModuleRecibosCliente, DateUtils;
{$R *.dfm}
{ TfrViewRecibosCliente }
procedure TfrViewRecibosCliente.cxGridActiveTabChanged(Sender: TcxCustomGrid;
ALevel: TcxGridLevel);
begin
inherited;
FreeAndNil(FNivelFiltrado);
FilterChanged(Self);
end;
procedure TfrViewRecibosCliente.cxGridViewICONOCustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
R : TRect;
begin
inherited;
{
R := AViewInfo.ContentBounds;
ACanvas.FillRect(R);
if (Pos('-', AViewInfo.GridRecord.DisplayTexts[cxGridViewIMPORTE_TOTAL.Index]) > 0) then
ACanvas.DrawImage(PngImageList, R.Left, R.Top, 3)
else
ACanvas.DrawImage(PngImageList, R.Left, R.Top, 2);
ADone := True;
}
end;
procedure TfrViewRecibosCliente.cxGridViewStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
var
IndiceCol: Integer;
ASituacion: string;
begin
inherited;
{
if Assigned(ARecord) then
begin
IndiceCol := cxGridViewSITUACION.Index;
ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]);
if ASituacion = SITUACION_PAGADO then
AStyle := cxStylePagada;
IndiceCol := cxGridViewIMPORTE_TOTAL.Index;
if (Pos('-', ARecord.DisplayTexts[IndiceCol]) > 0) then
AStyle := cxStyleAbono;
end;
}
end;
procedure TfrViewRecibosCliente.FilterChanged(Sender: TObject);
var
AItemList: TcxFilterCriteriaItemList;
AItemList2: TcxFilterCriteriaItemList;
begin
inherited;
cxGridView.DataController.Filter.BeginUpdate;
AItemList := cxGridView.DataController.Filter.Root;
AItemList2 := AItemList.AddItemList(fboAnd);
FNivelFiltrado := AItemList2;
case cxGrid.ActiveLevel.Index of
1 : AItemList2.AddItem(cxGridViewSITUACION, foEqual, CTE_PENDIENTE, CTE_PENDIENTE);
2 : AItemList2.AddItem(cxGridViewSITUACION, foEqual, CTE_COBRADO, CTE_COBRADO);
3 : AItemList2.AddItem(cxGridViewSITUACION, foEqual, CTE_DEVUELTO, CTE_DEVUELTO);
end;
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;
function TfrViewRecibosCliente.GetRecibos: IBizRecibosCliente;
begin
Result := FRecibos;
end;
procedure TfrViewRecibosCliente.SetRecibos(const Value: IBizRecibosCliente);
begin
FRecibos := Value;
if Assigned(FRecibos) then
dsDataSource.DataTable := FRecibos.DataTable;
end;
end.