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/Presupuestos/Cliente/uViewPresupuestos.pas
2007-06-21 15:59:26 +00:00

152 lines
5.3 KiB
ObjectPascal

unit uViewPresupuestos;
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, uBizPresupuestosCliente, StdCtrls, ExtCtrls,
cxLabel, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev,
dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, cxIntlPrintSys3,
dxPSCore, dxPScxCommon, dxPScxGridLnk, cxImage, cxImageComboBox, ImgList,
PngImageList, cxTextEdit, Grids, DBGrids;
type
IViewPresupuestos = interface(IViewGrid)
['{8C0A5647-E0E7-40CD-80EC-88DD46383368}']
function GetPresupuestos: IBizPresupuestos;
procedure SetPresupuestos(const Value: IBizPresupuestos);
property Presupuestos: IBizPresupuestos read GetPresupuestos write
SetPresupuestos;
end;
TfrViewPresupuestos = class(TfrViewGrid, IViewPresupuestos)
cxGridDBTableView1: TcxGridDBTableView;
cxGridLevel1: TcxGridLevel;
cxGridLevel2: TcxGridLevel;
cxGridLevel3: TcxGridLevel;
cxGridViewCODIGO: TcxGridDBColumn;
cxGridViewICONO: TcxGridDBColumn;
cxGridViewFECHAPRESUPUESTO: TcxGridDBColumn;
cxGridViewIMPORTETOTAL: TcxGridDBColumn;
cxGridViewNOMBRE: TcxGridDBColumn;
cxGridViewREFERENCIA: TcxGridDBColumn;
cxGridViewSITUACION: TcxGridDBColumn;
cxGridViewVIGENCIAPRESUPUESTO: TcxGridDBColumn;
PngImageList: TPngImageList;
cxStyleRechazado: TcxStyle;
cxStyleAceptado: TcxStyle;
cxGridViewTIPO: TcxGridDBColumn;
cxGridViewALBARAN: TcxGridDBColumn;
cxGridViewOPCION: 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);
protected
FNivelFiltrado : TcxFilterCriteriaItemList;
FPresupuestos: IBizPresupuestos;
function GetPresupuestos: IBizPresupuestos;
procedure SetPresupuestos(const Value: IBizPresupuestos);
procedure FilterChanged(Sender : TObject); override;
public
property Presupuestos: IBizPresupuestos read GetPresupuestos write
SetPresupuestos;
end;
var
frViewPresupuestos: TfrViewPresupuestos;
implementation
uses uDataModulePresupuestos, schPresupuestosClient_Intf;
{$R *.dfm}
procedure TfrViewPresupuestos.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
begin
inherited;
FreeAndNil(FNivelFiltrado);
FilterChanged(self);
end;
procedure TfrViewPresupuestos.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 TfrViewPresupuestos.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;
procedure TfrViewPresupuestos.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, SITUACION_PENDIENTE, SITUACION_PENDIENTE);
2 : AItemList2.AddItem(cxGridViewSITUACION, foEqual, SITUACION_ACEPTADO, SITUACION_ACEPTADO);
3 : AItemList2.AddItem(cxGridViewSITUACION, foEqual, SITUACION_RECHAZADO, SITUACION_RECHAZADO);
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 TfrViewPresupuestos.GetPresupuestos: IBizPresupuestos;
begin
Result := FPresupuestos;
end;
procedure TfrViewPresupuestos.SetPresupuestos(const Value: IBizPresupuestos);
begin
FPresupuestos := Value;
if Assigned(FPresupuestos) then
DADataSource.DataTable := FPresupuestos.DataTable;
end;
end.