Tecsitel_FactuGES2/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.pas
david 00672ada2c Fallo en componentes cxDBLookupComboBox por la migración a DevExpress 6.
- No mostraba el valor elegido en el combo al abrir por primera una ficha.

git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@202 0c75b7a4-871f-7646-8a2f-f78d34cc349f
2008-01-04 11:16:59 +00:00

239 lines
8.2 KiB
ObjectPascal
Raw Blame History

unit uViewAlbaranesProveedor;
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, dxPScxGrid6Lnk,
uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, Classes,
cxGrid, uBizAlbaranesProveedor, cxCurrencyEdit, Forms, uViewFiltroBase,
ActnList, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, cxTextEdit;
type
IViewAlbaranesProveedor = interface(IViewGrid)
['{DFD9B90C-E3AE-48E1-A13F-AA75A05BBF3E}']
function GetAlbaranes: IBizAlbaranProveedor;
procedure SetAlbaranes(const Value: IBizAlbaranProveedor);
property Albaranes: IBizAlbaranProveedor read GetAlbaranes write SetAlbaranes;
end;
TfrViewAlbaranesProveedor = class(TfrViewGrid, IViewAlbaranesProveedor)
PngImageList: TPngImageList;
cxGridViewREFERENCIA: TcxGridDBColumn;
cxGridViewFECHA_ALBARAN: TcxGridDBColumn;
cxGridViewINCIDENCIAS_ACTIVAS: TcxGridDBColumn;
cxGridViewNOMBRE: TcxGridDBColumn;
cxGridViewCALLE: TcxGridDBColumn;
cxGridViewCODIGO_POSTAL: TcxGridDBColumn;
cxGridViewPOBLACION: TcxGridDBColumn;
cxGridViewPROVINCIA: TcxGridDBColumn;
cxGridViewPERSONA_CONTACTO: TcxGridDBColumn;
cxGridViewTELEFONO: TcxGridDBColumn;
cxGridViewNOMBRE_ALMACEN: TcxGridDBColumn;
cxGridViewREF_PED_PROVEEDOR: TcxGridDBColumn;
cxGridViewREF_FACTURA: TcxGridDBColumn;
cxGridViewIMPORTE_TOTAL: TcxGridDBColumn;
actProveedor: TAction;
actAlmacen: TAction;
TBXItem2: TTBXItem;
TBXSeparatorItem1: TTBXSeparatorItem;
TBXItem3: TTBXItem;
TBXSeparatorItem2: TTBXSeparatorItem;
cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn;
cxGridViewREF_FACTURA_PROV: 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);
procedure actProveedorExecute(Sender: TObject);
procedure actProveedorUpdate(Sender: TObject);
procedure actAlmacenExecute(Sender: TObject);
procedure actAlmacenUpdate(Sender: TObject);
procedure cxGridViewMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
//Filtros relativos a la vista
procedure AnadirFiltroFechas;
protected
FAlbaranes: IBizAlbaranProveedor;
function GetAlbaranes: IBizAlbaranProveedor;
procedure SetAlbaranes(const Value: IBizAlbaranProveedor);
public
procedure AnadirOtrosFiltros; override;
property Albaranes: IBizAlbaranProveedor read GetAlbaranes write SetAlbaranes;
end;
implementation
uses SysUtils, variants, windows, uDataModuleAlbaranesProveedor, schAlbaranesProveedorClient_Intf,
uViewGridBase;
{$R *.dfm}
procedure TfrViewAlbaranesProveedor.actAlmacenExecute(Sender: TObject);
begin
if (cxGridViewNOMBRE_ALMACEN.GroupIndex < 0) then
begin
cxGridViewNOMBRE_ALMACEN.GroupIndex := cxGridView.GroupedColumnCount;
cxGridViewNOMBRE_ALMACEN.Visible := False;
end
else
begin
cxGridViewNOMBRE_ALMACEN.GroupIndex := -1;
cxGridViewNOMBRE_ALMACEN.Visible := True;
end;
end;
procedure TfrViewAlbaranesProveedor.actAlmacenUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Checked := not (cxGridViewNOMBRE_ALMACEN.GroupIndex < 0);
end;
procedure TfrViewAlbaranesProveedor.actProveedorExecute(Sender: TObject);
begin
if (cxGridViewNOMBRE.GroupIndex < 0) then
begin
cxGridViewNOMBRE.GroupIndex := cxGridView.GroupedColumnCount;
cxGridViewNOMBRE.Visible := False;
end
else
begin
cxGridViewNOMBRE.GroupIndex := -1;
cxGridViewNOMBRE.Visible := True;
end;
end;
procedure TfrViewAlbaranesProveedor.actProveedorUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Checked := not (cxGridViewNOMBRE.GroupIndex < 0);
end;
procedure TfrViewAlbaranesProveedor.AnadirFiltroFechas;
var
Columna: TcxGridDBColumn;
Fecha1, Fecha2: Variant;
FFiltro : TcxFilterCriteriaItemList;
begin
Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue;
Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue;
if not VarIsNull(Fecha1)
and not VarIsNull(Fecha2) then
begin
cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare];
FFiltro := AddFilterGrid(fboAnd);
Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHA_ALBARAN');
FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2));
end;
end;
procedure TfrViewAlbaranesProveedor.AnadirOtrosFiltros;
begin
inherited;
AnadirFiltroFechas;
//Finalmente activamos el filtro si tenemos algo
if cxGridView.DataController.Filter.IsEmpty
then cxGridView.DataController.Filter.Active := False
else cxGridView.DataController.Filter.Active := True;
cxGrid.ActiveLevel.GridView := cxGridView;
end;
procedure TfrViewAlbaranesProveedor.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
begin
inherited;
RefrescarFiltro;
end;
procedure TfrViewAlbaranesProveedor.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 TfrViewAlbaranesProveedor.cxGridViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
Site : TcxGridSite;
HitTest : TcxCustomGridHitTest;
Item : TcxCustomGridTableItem;
Rec : TcxCustomGridRecord;
sNewHint : string;
begin
{Este m<>todo desaparecer<65> cuando se migre la aplicaci<63>n, es para sacar la causa de la incidencia sin necesidad de entrar en el documento}
Site := Sender as TcxGridSite;
HitTest := Site.GridView.ViewInfo.GetHitTest(X, Y);
if HitTest is TcxGridRecordCellHitTest then begin
Item := TcxGridRecordCellHitTest(HitTest).Item;
Rec := TcxGridRecordCellHitTest(HitTest).GridRecord;
if (Item.Index = cxGridView.GetColumnByFieldName(fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS).Index)
and (Rec.Selected)
and (Albaranes.DataTable.FieldByName(fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS).AsInteger = 1) then begin
sNewHint := Albaranes.DataTable.FieldByName(fld_AlbaranesProveedorINCIDENCIAS).AsString;
if (cxGrid.Hint <> sNewHint) then begin
cxGrid.ShowHint := false;
cxGrid.Hint := sNewHint;
end
else cxGrid.ShowHint := true;
end
else begin
cxGrid.ShowHint := false;
end;
end;
end;
procedure TfrViewAlbaranesProveedor.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;
function TfrViewAlbaranesProveedor.GetAlbaranes: IBizAlbaranProveedor;
begin
Result := FAlbaranes;
end;
procedure TfrViewAlbaranesProveedor.SetAlbaranes(const Value: IBizAlbaranProveedor);
begin
FAlbaranes := Value;
if Assigned(FAlbaranes) then
dsDataSource.DataTable := FAlbaranes.DataTable;
end;
end.