git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES2/trunk@237 b2cfbe5a-eba1-4a0c-8b32-7feea0a119f2
211 lines
7.2 KiB
ObjectPascal
211 lines
7.2 KiB
ObjectPascal
unit uViewArticulos;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||
Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
|
||
cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel,
|
||
cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
|
||
cxGridTableView, cxGridDBTableView, cxGrid, uBizArticulos, ActnList, Menus,
|
||
cxGridBandedTableView, cxGridDBBandedTableView, JvComponent,
|
||
JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn,
|
||
dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
|
||
dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk,
|
||
cxGridCustomPopupMenu, cxGridPopupMenu, cxCurrencyEdit, cxSpinEdit, cxCheckBox,
|
||
cxCheckComboBox, cxImageComboBox, TB2Item, TBX, TB2Toolbar, TBXDkPanels,
|
||
TB2Dock, uViewFiltroBase, dxPgsDlg, uDAInterfaces,
|
||
uArticulosController, uCustomView, uViewBase;
|
||
|
||
type
|
||
IViewArticulos = interface(IViewGrid)
|
||
['{4C09BEC8-C82B-4DE8-8C36-40DB62224E95}']
|
||
function GetArticulos: IBizArticulo;
|
||
procedure SetArticulos(const Value: IBizArticulo);
|
||
property Articulos: IBizArticulo read GetArticulos write SetArticulos;
|
||
|
||
function GetController : IArticulosController;
|
||
procedure SetController (const Value : IArticulosController);
|
||
property Controller : IArticulosController read GetController write SetController;
|
||
end;
|
||
|
||
TfrViewArticulos = class(TfrViewGrid, IViewArticulos)
|
||
actFamilia: TAction;
|
||
TBXItem3: TTBXItem;
|
||
TBXSeparatorItem1: TTBXSeparatorItem;
|
||
TBXSeparatorItem2: TTBXSeparatorItem;
|
||
TBXItem4: TTBXItem;
|
||
actProveedor: TAction;
|
||
cxGridViewRecID: TcxGridDBColumn;
|
||
cxGridViewID: TcxGridDBColumn;
|
||
cxGridViewID_EMPRESA: TcxGridDBColumn;
|
||
cxGridViewREFERENCIA: TcxGridDBColumn;
|
||
cxGridViewDESCRIPCION: TcxGridDBColumn;
|
||
cxGridViewFAMILIA: TcxGridDBColumn;
|
||
cxGridViewNOMBRE_PROVEEDOR: TcxGridDBColumn;
|
||
cxGridViewREFERENCIA_PROV: TcxGridDBColumn;
|
||
cxGridViewPRECIO_COSTE: TcxGridDBColumn;
|
||
cxGridViewPRECIO_NETO: TcxGridDBColumn;
|
||
cxGridViewCOMISIONABLE: TcxGridDBColumn;
|
||
cxGridViewTIENDA_WEB: TcxGridDBColumn;
|
||
cxGridViewDESCUENTO: TcxGridDBColumn;
|
||
cxGridViewPRECIO_PORTE: TcxGridDBColumn;
|
||
cxGridViewINVENTARIABLE: TcxGridDBColumn;
|
||
procedure actFamiliaExecute(Sender: TObject);
|
||
procedure actFamiliaUpdate(Sender: TObject);
|
||
procedure actProveedorExecute(Sender: TObject);
|
||
procedure actProveedorUpdate(Sender: TObject);
|
||
procedure cxGridView2DataControllerCompare(ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
|
||
AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
|
||
procedure frViewFiltroBase1eListaPropertiesChange(Sender: TObject);
|
||
procedure frViewFiltroBase1actQuitarFiltroExecute(Sender: TObject);
|
||
procedure CustomViewShow(Sender: TObject);
|
||
procedure cxGridViewDataControllerCompare(
|
||
ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
|
||
AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
|
||
|
||
protected
|
||
FArticulos: IBizArticulo;
|
||
FController: IArticulosController;
|
||
function GetArticulos: IBizArticulo; virtual;
|
||
procedure SetArticulos(const Value: IBizArticulo); virtual;
|
||
function GetController : IArticulosController;
|
||
procedure SetController (const Value : IArticulosController);
|
||
|
||
public
|
||
property Articulos: IBizArticulo read GetArticulos write SetArticulos;
|
||
property Controller : IArticulosController read GetController write SetController;
|
||
procedure AnadirOtrosFiltros; override;
|
||
end;
|
||
|
||
implementation
|
||
{$R *.dfm}
|
||
|
||
uses
|
||
schArticulosClient_Intf, uReferenciasUtils, cxVariants;
|
||
|
||
|
||
{ TfrViewArticulos }
|
||
|
||
{
|
||
******************************* TfrViewArticulos *******************************
|
||
}
|
||
function TfrViewArticulos.GetArticulos: IBizArticulo;
|
||
begin
|
||
Result := FArticulos;
|
||
end;
|
||
|
||
function TfrViewArticulos.GetController: IArticulosController;
|
||
begin
|
||
Result := FController;
|
||
end;
|
||
|
||
procedure TfrViewArticulos.SetArticulos(const Value: IBizArticulo);
|
||
begin
|
||
FArticulos := Value;
|
||
if Assigned(FArticulos) then
|
||
dsDataSource.DataTable := FArticulos.DataTable;
|
||
end;
|
||
|
||
|
||
procedure TfrViewArticulos.SetController(const Value: IArticulosController);
|
||
begin
|
||
FController := Value;
|
||
end;
|
||
|
||
procedure TfrViewArticulos.actProveedorExecute(Sender: TObject);
|
||
begin
|
||
if (cxGridViewNOMBRE_PROVEEDOR.GroupIndex < 0) then
|
||
begin
|
||
cxGridViewNOMBRE_PROVEEDOR.GroupIndex := cxGridView.GroupedColumnCount;
|
||
cxGridViewNOMBRE_PROVEEDOR.Visible := False;
|
||
end
|
||
else
|
||
begin
|
||
cxGridViewNOMBRE_PROVEEDOR.GroupIndex := -1;
|
||
cxGridViewNOMBRE_PROVEEDOR.Visible := True;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrViewArticulos.actProveedorUpdate(Sender: TObject);
|
||
begin
|
||
inherited;
|
||
(Sender as TAction).Checked := not (cxGridViewNOMBRE_PROVEEDOR.GroupIndex < 0);
|
||
end;
|
||
|
||
procedure TfrViewArticulos.actFamiliaExecute(Sender: TObject);
|
||
begin
|
||
if (cxGridViewFAMILIA.GroupIndex < 0) then
|
||
begin
|
||
cxGridViewFAMILIA.GroupIndex := cxGridView.GroupedColumnCount;
|
||
cxGridViewFAMILIA.Visible := False;
|
||
end
|
||
else
|
||
begin
|
||
cxGridViewFAMILIA.GroupIndex := -1;
|
||
cxGridViewFAMILIA.Visible := True;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrViewArticulos.actFamiliaUpdate(Sender: TObject);
|
||
begin
|
||
inherited;
|
||
(Sender as TAction).Checked := not (cxGridViewFAMILIA.GroupIndex < 0);
|
||
end;
|
||
|
||
procedure TfrViewArticulos.AnadirOtrosFiltros;
|
||
begin
|
||
inherited;
|
||
|
||
//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 TfrViewArticulos.CustomViewShow(Sender: TObject);
|
||
begin
|
||
inherited;
|
||
AjustarAncho;
|
||
end;
|
||
|
||
procedure TfrViewArticulos.cxGridView2DataControllerCompare(
|
||
ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
|
||
AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
|
||
begin
|
||
inherited;
|
||
if ((AItemIndex = cxGridViewREFERENCIA.Index)) and
|
||
(VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then
|
||
Compare := CompararReferencias(V1, V2)
|
||
else
|
||
Compare := VarCompare(V1, V2);
|
||
end;
|
||
|
||
procedure TfrViewArticulos.cxGridViewDataControllerCompare(
|
||
ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
|
||
AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
|
||
begin
|
||
inherited;
|
||
//El campo referencias de los articulos no se comportar<61> como el resto de referencias, por lo que la ordenaci<63>n siempre ser<65> alfab<61>tica como el resto de columnas del grid
|
||
// if (AItemIndex = cxGridViewREFERENCIA.Index) and
|
||
// (VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then
|
||
// Compare := CompararReferencias(V1, V2)
|
||
// else
|
||
Compare := VarCompare(V1, V2);
|
||
end;
|
||
|
||
procedure TfrViewArticulos.frViewFiltroBase1actQuitarFiltroExecute(Sender: TObject);
|
||
begin
|
||
frViewFiltroBase1.txtFiltroTodo.Clear;
|
||
frViewFiltroBase1.eLista.Clear;
|
||
end;
|
||
|
||
procedure TfrViewArticulos.frViewFiltroBase1eListaPropertiesChange(Sender: TObject);
|
||
begin
|
||
inherited;
|
||
RefrescarFiltro;
|
||
end;
|
||
|
||
end.
|