This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
Noviseda_FactuGES2/Source/Modulos/Comisiones/Views/uViewComisiones.pas

182 lines
5.7 KiB
ObjectPascal

unit uViewComisiones;
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, dxPScxGrid6Lnk, ActnList, uDADataTable,
cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid,
cxImage, Grids, DBGrids, uBizComisiones, cxGridCustomPopupMenu,
cxGridPopupMenu, cxCalendar, cxCurrencyEdit, uViewFiltroBase, TB2Item, SpTBXItem,
TB2Toolbar, SpTBXDkPanels, TB2Dock, dxPgsDlg, uDAInterfaces, uCustomView,
uViewBase, cxLookAndFeels, cxLookAndFeelPainters, dxPSPDFExportCore,
dxPSPDFExport, cxDrawTextUtils, dxPSPrVwStd, dxPSPrVwAdv,
dxPScxEditorProducers, dxPScxExtEditorProducers, dxPScxPageControlProducer;
type
IViewComisiones = interface(IViewGrid)
['{65A80949-4DE4-4620-8218-87439AAFABE1}']
function GetComisiones: IBizComision;
procedure SetComisiones(const Value: IBizComision);
property Comisiones: IBizComision read GetComisiones write SetComisiones;
end;
TfrViewComisiones = class(TfrViewGrid, IViewComisiones)
PngImageList: TPngImageList;
cxGridViewDESCRIPCION: TcxGridDBColumn;
cxGridViewREFERENCIA: TcxGridDBColumn;
cxGridViewFECHA: TcxGridDBColumn;
cxGridViewIMPORTE_TOTAL: TcxGridDBColumn;
cxGridViewID_AGENTE: TcxGridDBColumn;
cxStylePagada: TcxStyle;
cxStyleAbono: TcxStyle;
cxStylePendientes: TcxStyle;
cxStyleParciales: TcxStyle;
actCliente: TAction;
actProvincia: TAction;
TBXItem2: TSpTBXItem;
TBXSeparatorItem1: TSpTBXSeparatorItem;
TBXItem3: TSpTBXItem;
TBXSeparatorItem2: TSpTBXSeparatorItem;
cxGridViewAGENTE: TcxGridDBColumn;
procedure actClienteExecute(Sender: TObject);
procedure actProvinciaExecute(Sender: TObject);
procedure actProvinciaUpdate(Sender: TObject);
procedure actClienteUpdate(Sender: TObject);
procedure cxGridViewDataControllerCompare(
ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
private
//Filtros relativos a la vista
procedure AnadirFiltroFechas;
protected
FComisiones: IBizComision;
function GetComisiones: IBizComision;
procedure SetComisiones(const Value: IBizComision);
public
procedure AnadirOtrosFiltros; override;
property Comisiones: IBizComision read GetComisiones write SetComisiones;
end;
implementation
uses
uDataModuleComisiones, DateUtils, uViewGridBase, uReferenciasUtils,
cxVariants;
{$R *.dfm}
{ TfrViewComisiones }
procedure TfrViewComisiones.actClienteExecute(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 TfrViewComisiones.actClienteUpdate(Sender: TObject);
begin
inherited;
// (Sender as TAction).Checked := not (cxGridViewNOMBRE.GroupIndex < 0);
end;
procedure TfrViewComisiones.actProvinciaExecute(Sender: TObject);
begin
{
if (cxGridViewPROVINCIA.GroupIndex < 0) then
begin
cxGridViewPROVINCIA.GroupIndex := cxGridView.GroupedColumnCount;
cxGridViewPROVINCIA.Visible := False;
end
else
begin
cxGridViewPROVINCIA.GroupIndex := -1;
cxGridViewPROVINCIA.Visible := True;
end;
}
end;
procedure TfrViewComisiones.actProvinciaUpdate(Sender: TObject);
begin
inherited;
// (Sender as TAction).Checked := not (cxGridViewPROVINCIA.GroupIndex < 0);
end;
procedure TfrViewComisiones.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');
FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2));
end;
end;
procedure TfrViewComisiones.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 TfrViewComisiones.cxGridViewDataControllerCompare(
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;
function TfrViewComisiones.GetComisiones: IBizComision;
begin
Result := FComisiones;
end;
procedure TfrViewComisiones.SetComisiones(const Value: IBizComision);
begin
FComisiones := Value;
if Assigned(FComisiones) then
dsDataSource.DataTable := FComisiones.DataTable;
end;
end.