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

124 lines
4.1 KiB
ObjectPascal

unit uViewMontajes;
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, uBizMontajes, cxGridCustomPopupMenu,
cxGridPopupMenu, cxCalendar, cxCurrencyEdit;
type
IViewMontajes = interface(IViewGrid)
['{59F7D2BD-F3BC-461F-8CDF-5F99D2188644}']
function GetMontajes: IBizMontaje;
procedure SetMontajes(const Value: IBizMontaje);
property Montajes: IBizMontaje read GetMontajes write SetMontajes;
end;
TfrViewMontajes = class(TfrViewGrid, IViewMontajes)
cxGridViewNOMBRE: TcxGridDBColumn;
cxGridViewSITUACION: TcxGridDBColumn;
cxGridViewICONO: TcxGridDBColumn;
cxGridViewFECHA_INICIO: TcxGridDBColumn;
cxStylePagada: TcxStyle;
PngImageList: TPngImageList;
cxGridLevelPendientes: TcxGridLevel;
cxGridLevelEjecucion: TcxGridLevel;
cxGridLevelTerminados: TcxGridLevel;
cxGridLevelPagado: TcxGridLevel;
cxGridViewFECHA_FIN: TcxGridDBColumn;
procedure cxGridViewICONOCustomDrawCell(Sender: TcxCustomGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
var ADone: Boolean);
procedure cxGridActiveTabChanged(Sender: TcxCustomGrid;
ALevel: TcxGridLevel);
protected
FNivelFiltrado : TcxFilterCriteriaItemList;
FMontajes: IBizMontaje;
function GetMontajes: IBizMontaje;
procedure SetMontajes(const Value: IBizMontaje);
procedure FilterChanged(Sender : TObject); override;
public
property Montajes: IBizMontaje read GetMontajes write SetMontajes;
end;
implementation
{$R *.dfm}
uses
uDataModuleMontajes, DateUtils;
{ TfrViewMontajes }
procedure TfrViewMontajes.cxGridActiveTabChanged(Sender: TcxCustomGrid;
ALevel: TcxGridLevel);
begin
inherited;
FreeAndNil(FNivelFiltrado);
FilterChanged(self);
end;
procedure TfrViewMontajes.cxGridViewICONOCustomDrawCell(
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, 0);
ADone := True;
end;
procedure TfrViewMontajes.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_MONTAJE_PENDIENTE, SITUACION_MONTAJE_PENDIENTE);
2 : AItemList2.AddItem(cxGridViewSITUACION, foEqual, SITUACION_MONTAJE_EJECUCION, SITUACION_MONTAJE_EJECUCION);
3 : AItemList2.AddItem(cxGridViewSITUACION, foEqual, SITUACION_MONTAJE_TERMINADO, SITUACION_MONTAJE_TERMINADO);
4 : AItemList2.AddItem(cxGridViewSITUACION, foEqual, SITUACION_MONTAJE_PAGADO, SITUACION_MONTAJE_PAGADO);
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 TfrViewMontajes.GetMontajes: IBizMontaje;
begin
Result := FMontajes;
end;
procedure TfrViewMontajes.SetMontajes(const Value: IBizMontaje);
begin
FMontajes := Value;
if Assigned(FMontajes) then
dsDataSource.DataTable := FMontajes.DataTable;
end;
end.