ConstruccionesCNJ_FactuGES/Modulos/Presupuestos/Views/uViewPresupuestos.pas
2007-06-21 15:50:59 +00:00

164 lines
5.9 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, StdCtrls, ExtCtrls, cxLabel, dxPSGlbl, dxPSUtl,
dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk,
cxImage, cxImageComboBox, ImgList, PngImageList, cxTextEdit, Grids, DBGrids,
cxGridCustomPopupMenu, cxGridPopupMenu, uBizPresupuestos, cxCalendar,
cxCurrencyEdit;
type
IViewPresupuestos = interface(IViewGrid)
['{8C0A5647-E0E7-40CD-80EC-88DD46383368}']
function GetPresupuestos: IBizPresupuesto;
procedure SetPresupuestos(const Value: IBizPresupuesto);
property Presupuestos: IBizPresupuesto read GetPresupuestos write SetPresupuestos;
end;
TfrViewPresupuestos = class(TfrViewGrid, IViewPresupuestos)
cxGridLevelPendientes: TcxGridLevel;
cxGridLevelAceptados: TcxGridLevel;
cxGridLevelRechazados: TcxGridLevel;
cxGridViewICONO: TcxGridDBColumn;
cxGridViewNOMBRE: TcxGridDBColumn;
cxGridViewREFERENCIA: TcxGridDBColumn;
cxGridViewSITUACION: TcxGridDBColumn;
cxGridViewVIGENCIAPRESUPUESTO: TcxGridDBColumn;
PngImageList: TPngImageList;
cxStyleRechazado: TcxStyle;
cxStyleAceptado: TcxStyle;
cxGridViewNIF_CIF: TcxGridDBColumn;
cxGridViewCALLE: TcxGridDBColumn;
cxGridViewPOBLACION: TcxGridDBColumn;
cxGridViewPROVINCIA: TcxGridDBColumn;
cxGridViewCODIGO_POSTAL: TcxGridDBColumn;
cxGridViewTELEFONO_1: TcxGridDBColumn;
cxGridViewTELEFONO_2: TcxGridDBColumn;
cxGridViewFAX: TcxGridDBColumn;
cxGridViewMOVIL_1: TcxGridDBColumn;
cxGridViewMOVIL_2: TcxGridDBColumn;
cxGridViewEMAIL_1: TcxGridDBColumn;
cxGridViewEMAIL_2: TcxGridDBColumn;
cxGridViewFECHA_PRESUPUESTO: TcxGridDBColumn;
cxGridViewVIGENCIA: TcxGridDBColumn;
cxGridViewFECHA_DECISION: TcxGridDBColumn;
cxGridViewBASE_IMPONIBLE: TcxGridDBColumn;
cxGridViewDESCUENTO: TcxGridDBColumn;
cxGridViewIMPORTE_DESCUENTO: TcxGridDBColumn;
cxGridViewIVA: TcxGridDBColumn;
cxGridViewIMPORTE_IVA: TcxGridDBColumn;
cxGridViewIMPORTE_TOTAL: 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: IBizPresupuesto;
function GetPresupuestos: IBizPresupuesto;
procedure SetPresupuestos(const Value: IBizPresupuesto);
procedure FilterChanged(Sender : TObject); override;
public
property Presupuestos: IBizPresupuesto read GetPresupuestos write SetPresupuestos;
end;
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: IBizPresupuesto;
begin
Result := FPresupuestos;
end;
procedure TfrViewPresupuestos.SetPresupuestos(const Value: IBizPresupuesto);
begin
FPresupuestos := Value;
if Assigned(FPresupuestos) then
dsDataSource.DataTable := FPresupuestos.DataTable;
end;
end.