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

201 lines
6.9 KiB
ObjectPascal
Raw Blame History

unit uViewInfVentasArticulo;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewInformeBase, ActnList, ImgList, PngImageList, uViewGrid,
uViewInformeBaseGrid, uViewSumarios, TBXDkPanels, StdCtrls,
uViewAgrupaciones, uCustomView, uViewBase, uViewColumnas, ComCtrls,
TB2Dock, uViewInformeBaseParametros, uBizInformes, cxStyles,
cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB,
cxDBData, cxGridLevel, cxClasses, cxControls, cxGridCustomView,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid,
cxTextEdit, uViewFiltros, uBizInfVentasArticulo,
uViewPeriodoFechas, uViewInfVentasArticuloGrid, uDADataTable, uViewFiltroBase;
type
IViewInfVentasArticulo = interface(IViewInformeBase)
['{B8B9105B-E833-4E7D-BA36-EB9A7EBDCE69}']
function GetDatos : IBizInfVentasArticulo;
procedure SetDatos (const Value : IBizInfVentasArticulo);
property Datos : IBizInfVentasArticulo read GetDatos write SetDatos;
end;
TfrViewInfVentasArticulo = class(TfrViewInformeBase, IViewInfVentasArticulo)
frViewPeriodoFechas1: TfrViewPeriodoFechas;
actPeriodoFechas: TAction;
frViewInfVentasArticuloGrid1: TfrViewInfVentasArticuloGrid;
procedure actRefrescarExecute(Sender: TObject);
procedure actPeriodoFechasExecute(Sender: TObject);
procedure frViewInfVentasArticuloGrid1cxGridViewIMPORTE_TOTAL_VENTAHeaderClick(Sender: TObject);
procedure frViewInfVentasArticuloGrid1cxGridViewCANTIDADHeaderClick(Sender: TObject);
protected
FDatos : IBizInfVentasArticulo;
FModificado : Boolean;
procedure OnViewInformeBaseGridChanged(Sender : TObject);
procedure OnFilterChanged(Sender : TObject);
procedure ActivarTarea(const ATarea: Integer); override;
function GetFocusedView: TcxGridDBTableView; override;
function GetDatos : IBizInfVentasArticulo;
procedure SetDatos (const Value : IBizInfVentasArticulo);
public
property Datos : IBizInfVentasArticulo read GetDatos write SetDatos;
constructor Create(AOwner: TComponent); override;
procedure Refresh; override;
end;
implementation
{$R *.dfm}
{ TfrViewInfVentasArticulo }
uses schInfVentasArticuloClient_Intf;
const
PERIODO = 0;
constructor TfrViewInfVentasArticulo.Create(AOwner: TComponent);
begin
inherited;
frViewInfVentasArticuloGrid1.OnViewChanged := OnViewInformeBaseGridChanged;
frViewInfVentasArticuloGrid1.OnFilterChanged := OnFilterChanged;
frViewColumnas1.ViewInformeBaseGrid := frViewInfVentasArticuloGrid1;
frViewAgrupaciones1.ViewInformeBaseGrid := frViewInfVentasArticuloGrid1;
frViewSumarios1.ViewInformeBaseGrid := frViewInfVentasArticuloGrid1;
frViewFiltros1.ViewInformeBaseGrid := frViewInfVentasArticuloGrid1;
pcParametros.ActivePage := TabSheet5;
end;
procedure TfrViewInfVentasArticulo.frViewInfVentasArticuloGrid1cxGridViewCANTIDADHeaderClick(Sender: TObject);
begin
inherited;
frViewInfVentasArticuloGrid1.cxGridView.DataController.Groups.DataController.BeginUpdate;
frViewInfVentasArticuloGrid1.cxGridView.GetColumnByFieldName(fld_InfVentasArticuloCANTIDAD).SortIndex := 1;
frViewInfVentasArticuloGrid1.cxGridView.GetColumnByFieldName(fld_InfVentasArticuloCANTIDAD).Summary.SortByGroupFooterSummary := True;
frViewInfVentasArticuloGrid1.cxGridView.DataController.Groups.DataController.EndUpdate;
end;
procedure TfrViewInfVentasArticulo.frViewInfVentasArticuloGrid1cxGridViewIMPORTE_TOTAL_VENTAHeaderClick(Sender: TObject);
begin
inherited;
frViewInfVentasArticuloGrid1.cxGridView.DataController.Groups.DataController.BeginUpdate;
frViewInfVentasArticuloGrid1.cxGridView.GetColumnByFieldName(fld_InfVentasArticuloIMPORTE_TOTAL_VENTA).SortOrder := soAscending;
frViewInfVentasArticuloGrid1.cxGridView.GetColumnByFieldName(fld_InfVentasArticuloIMPORTE_TOTAL_VENTA).Summary.SortByGroupFooterSummary := True;
frViewInfVentasArticuloGrid1.cxGridView.DataController.Groups.DataController.EndUpdate;
end;
function TfrViewInfVentasArticulo.GetDatos: IBizInfVentasArticulo;
begin
Result := FDatos;
end;
function TfrViewInfVentasArticulo.GetFocusedView: TcxGridDBTableView;
begin
Result := frViewInfVentasArticuloGrid1.cxGridView;
end;
procedure TfrViewInfVentasArticulo.Refresh;
var
AColumns : TStringList;
AColumnsGroup : TStringList;
i: Integer;
begin
inherited;
ShowHourglassCursor;
actRefrescar.Enabled := False;
frViewInfVentasArticuloGrid1.OnViewChanged := nil;
frViewInfVentasArticuloGrid1.OnFilterChanged := nil;
try
// Calcular las columnas a pedir al servidor
AColumns := frViewColumnas1.GetCheckedColumns;
AColumns.sorted := true;
AColumns.Duplicates := dupIgnore;
//A<>adimos el nombre de los campos a los que referencia los captions de agrupacion
AColumnsGroup := frViewAgrupaciones1.GetAgrupaciones;
for i:= 0 to AColumnsGroup.Count - 1 do
AColumns.Add((frViewInfVentasArticuloGrid1 as IViewInformeBaseGrid).GetColumnByCaption(AColumnsGroup.Strings[i]).DataBinding.FieldName);
FDatos.VisibleColumns := AColumns.CommaText;
with Datos.DataTable do
begin
DisableControls;
try
Active := False;
LoadSchema;
ParamByName('FECHAINI').AsDateTime := frViewPeriodoFechas1.FechaInicial;
ParamByName('FECHAFIN').AsDateTime := frViewPeriodoFechas1.FechaFinal;
Active := True;
frViewColumnas1.Execute;
frViewAgrupaciones1.Execute;
frViewSumarios1.Refresh;
frViewFiltros1.Refresh;
pnlTareas.Visible := True;
if Assigned(FOnViewChanged) then
FOnViewChanged(Self);
finally
EnableControls;
frViewInfVentasArticuloGrid1.Refresh;
frViewInfVentasArticuloGrid1.ExpandirTodo;
frViewInfVentasArticuloGrid1.GotoFirst;
end;
end;
finally
FreeAndNil(AColumns);
// ViewInfVentasArticuloGrid.OnViewChanged := OnViewInformeBaseGridChanged;
// ViewInfVentasArticuloGrid.OnFilterChanged := OnFilterChanged;
actRefrescar.Enabled := True;
HideHourglassCursor;
end;
end;
procedure TfrViewInfVentasArticulo.SetDatos(const Value: IBizInfVentasArticulo);
begin
FDatos := Value;
end;
procedure TfrViewInfVentasArticulo.actRefrescarExecute(Sender: TObject);
begin
inherited;
Refresh;
end;
procedure TfrViewInfVentasArticulo.OnViewInformeBaseGridChanged(
Sender: TObject);
begin
if Assigned(Self.OnViewChanged) then
Self.OnViewChanged(Self);
end;
procedure TfrViewInfVentasArticulo.OnFilterChanged(Sender: TObject);
begin
frViewFiltros1.Refresh;
end;
procedure TfrViewInfVentasArticulo.actPeriodoFechasExecute(
Sender: TObject);
begin
inherited;
ActivarTarea(PERIODO);
end;
procedure TfrViewInfVentasArticulo.ActivarTarea(const ATarea: Integer);
begin
inherited;
case ATarea of
PERIODO : pcParametros.ActivePage := TabSheet5;
end;
end;
end.