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.
LuisLeon_FactuGES2/Source/Modulos/Informe ventas por articulo/Views/uViewInfVentasAlbArticuloGrid.pas

227 lines
7.6 KiB
ObjectPascal

unit uViewInfVentasAlbArticuloGrid;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewInformeBaseGrid, DB, uDADataTable, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData,
cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid,
cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap,
dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, dxPgsDlg,
cxDropDownEdit, StdCtrls, cxSpinEdit, cxCalc;
type
IViewInfVentasAlbArticuloGrid = interface(IViewInformeBaseGrid)
['{17FAC839-1CCF-4534-B4E1-32374D0CA77E}']
end;
TfrViewInfVentasAlbArticuloGrid = class(TfrViewInformeBaseGrid, IViewInfVentasAlbArticuloGrid)
cxGrid: TcxGrid;
cxGridView: TcxGridDBTableView;
cxGridLevel: TcxGridLevel;
cxStyleRepository1: TcxStyleRepository;
cxStyleRed: TcxStyle;
cxStyleBlue: TcxStyle;
cxStyleFilterBox: TcxStyle;
cxGridViewRecID: TcxGridDBColumn;
cxGridViewID_ALBARAN: TcxGridDBColumn;
cxGridViewID_EMPRESA: TcxGridDBColumn;
cxGridViewREFERENCIA_ALBARAN: TcxGridDBColumn;
cxGridViewFECHA_ALBARAN: TcxGridDBColumn;
cxGridViewIMPORTE_TOTAL_ALBARAN: TcxGridDBColumn;
cxGridViewID_ARTICULO: TcxGridDBColumn;
cxGridViewFAMILIA: TcxGridDBColumn;
cxGridViewREFERENCIA: TcxGridDBColumn;
cxGridViewREFERENCIA_PROV: TcxGridDBColumn;
cxGridViewDESCRIPCION: TcxGridDBColumn;
cxGridViewCOMISIONABLE: TcxGridDBColumn;
cxGridViewINVENTARIABLE: TcxGridDBColumn;
cxGridViewIMPORTE_UNIDAD_COSTE: TcxGridDBColumn;
cxGridViewDESCUENTO_PROVEEDOR_COSTE: TcxGridDBColumn;
cxGridViewIMPORTE_NETO_COSTE: TcxGridDBColumn;
cxGridViewIMPORTE_PORTE_COSTE: TcxGridDBColumn;
cxGridViewCANTIDAD: TcxGridDBColumn;
cxGridViewIMPORTE_UNIDAD_VENTA: TcxGridDBColumn;
cxGridViewDESCUENTO_CLIENTE_VENTA: TcxGridDBColumn;
cxGridViewIMPORTE_TOTAL_VENTA: TcxGridDBColumn;
cxGridViewNIF_CIF_PROVEEDOR: TcxGridDBColumn;
cxGridViewNOMBRE_PROVEEDOR: TcxGridDBColumn;
cxGridViewNIF_CIF_CLIENTE: TcxGridDBColumn;
cxGridViewNOMBRE_CLIENTE: TcxGridDBColumn;
cxGridViewNOMBRE_COMERCIAL_CLIENTE: TcxGridDBColumn;
cxGridViewNIF_CIF_AGENTE: TcxGridDBColumn;
cxGridViewNOMBRE_AGENTE: TcxGridDBColumn;
cxGridViewCOMISION_AGENTE: TcxGridDBColumn;
cxGridViewIMPORTE_COMISION_AGENTE: TcxGridDBColumn;
cxGridViewIMPORTE_NETO_VENTA: TcxGridDBColumn;
procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
procedure cxGridViewColumnPosChanged(Sender: TcxGridTableView; AColumn: TcxGridColumn);
procedure cxGridViewColumnSizeChanged(Sender: TcxGridTableView; AColumn: TcxGridColumn);
procedure cxGridViewDataControllerGroupingChanged(Sender: TObject);
procedure cxGridViewDataControllerSortingChanged(Sender: TObject);
procedure cxGridViewDataControllerSummaryAfterSummary(ASender: TcxDataSummary);
procedure cxGridViewDataControllerFilterChanged(Sender: TObject);
protected
procedure ActivarEventos; override;
procedure DesactivarEventos; override;
function GetFocusedView : TcxGridDBTableView; override;
public
procedure Refresh; override;
constructor Create(AOwner: TComponent); override;
end;
implementation
uses
cxVariants, uDateUtils;
{$R *.dfm}
{ TfrInfVentasAlbArticuloGrid }
function TfrViewInfVentasAlbArticuloGrid.GetFocusedView: TcxGridDBTableView;
begin
Result := cxGridView;
end;
procedure TfrViewInfVentasAlbArticuloGrid.Refresh;
var
FocusedRow, TopRow, i : Integer;
begin
inherited;
{ Refrescar las filas del grid a partir del dataset y colocar la fila
seleccionada donde estaba }
if FocusedView.DataController.DataSource.DataSet.State = dsBrowse then
begin
TopRow := FocusedView.Controller.TopRowIndex;
FocusedRow := FocusedView.DataController.FocusedRowIndex;
FocusedView.DataController.UpdateItems(False); // <- Refresco
FocusedView.DataController.FocusedRowIndex := FocusedRow;
FocusedView.Controller.TopRowIndex := TopRow;
//Para que el usuario pueda ocultar y desocultar columnas sin afectar al informe
for i := 0 to FocusedView.ColumnCount - 1 do
FocusedView.Columns[i].Hidden := not FocusedView.Columns[i].Visible;
end;
end;
procedure TfrViewInfVentasAlbArticuloGrid.cxGridViewStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
var
AColumn : TcxGridDBColumn;
AFecha : TDateTime;
begin
inherited;
// La fila es la cabecera de un grupo
{ if ARecord.Expandable then
Exit;
AColumn := FocusedView.GetColumnByFieldName('FECHA');
if Assigned(AColumn) and (AColumn.Visible) then
begin
try
AFecha := VarToDateTime(ARecord.Values[AColumn.Index]);
except
on Exception do
ShowMessage(VarToStr(ARecord.Values[AColumn.Index]));
end;
if DaysBetween(Now, AFecha) > 14 then
AStyle := cxStyleRed
else
if DaysBetween(Now, AFecha) > 7 then
AStyle := cxStyleBlue
end; }
end;
procedure TfrViewInfVentasAlbArticuloGrid.cxGridViewColumnPosChanged(
Sender: TcxGridTableView; AColumn: TcxGridColumn);
begin
inherited;
if Assigned(FOnViewChanged) then
FOnViewChanged(Self);
end;
procedure TfrViewInfVentasAlbArticuloGrid.cxGridViewColumnSizeChanged(
Sender: TcxGridTableView; AColumn: TcxGridColumn);
begin
inherited;
if Assigned(FOnViewChanged) then
FOnViewChanged(Self);
end;
procedure TfrViewInfVentasAlbArticuloGrid.cxGridViewDataControllerGroupingChanged(
Sender: TObject);
begin
inherited;
if Assigned(FOnViewChanged) then
FOnViewChanged(Self);
end;
procedure TfrViewInfVentasAlbArticuloGrid.cxGridViewDataControllerSortingChanged(
Sender: TObject);
begin
inherited;
if Assigned(FOnViewChanged) then
FOnViewChanged(Self);
end;
procedure TfrViewInfVentasAlbArticuloGrid.cxGridViewDataControllerSummaryAfterSummary(
ASender: TcxDataSummary);
begin
inherited;
if Assigned(FOnViewChanged) then
FOnViewChanged(Self);
end;
procedure TfrViewInfVentasAlbArticuloGrid.cxGridViewDataControllerFilterChanged(
Sender: TObject);
begin
if Assigned(FOnFilterChanged) then
FOnFilterChanged(Self);
end;
constructor TfrViewInfVentasAlbArticuloGrid.Create(AOwner: TComponent);
begin
inherited;
end;
procedure TfrViewInfVentasAlbArticuloGrid.ActivarEventos;
begin
inherited;
with cxGridView do
begin
DataController.Filter.OnChanged := cxGridViewDataControllerFilterChanged;
DataController.Summary.OnAfterSummary := cxGridViewDataControllerSummaryAfterSummary;
DataController.OnGroupingChanged := cxGridViewDataControllerGroupingChanged;
DataController.OnSortingChanged := cxGridViewDataControllerSortingChanged;
OnColumnPosChanged := cxGridViewColumnPosChanged;
OnColumnSizeChanged := cxGridViewColumnSizeChanged;
end;
end;
procedure TfrViewInfVentasAlbArticuloGrid.DesactivarEventos;
begin
inherited;
with cxGridView do
begin
DataController.Filter.OnChanged := nil;
DataController.Summary.OnAfterSummary := nil;
DataController.OnGroupingChanged := nil;
DataController.OnSortingChanged := nil;
OnColumnPosChanged := nil;
OnColumnSizeChanged := nil;
end;
end;
end.