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/uViewInfVentasAlbArticulo.pas
2011-10-03 17:47:25 +00:00

222 lines
8.1 KiB
ObjectPascal
Raw Blame History

unit uViewInfVentasAlbArticulo;
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, uInfVentasAlbArticuloController,
uViewPeriodoFechasInforme, uViewInfVentasAlbArticuloGrid, uDADataTable, uViewFiltroBase,
uDAInterfaces;
type
IViewInfVentasAlbArticulo = interface(IViewInformeBase)
['{B8B9105B-E833-4E7D-BA36-EB9A7EBDCE69}']
function GetDatos : IBizInfVentasAlbArticulo;
procedure SetDatos (const Value : IBizInfVentasAlbArticulo);
property Datos : IBizInfVentasAlbArticulo read GetDatos write SetDatos;
function GetController : IInfVentasAlbArticuloController;
procedure SetController (const Value : IInfVentasAlbArticuloController);
property Controller: IInfVentasAlbArticuloController read GetController write SetController;
end;
TfrViewInfVentasAlbArticulo = class(TfrViewInformeBase, IViewInfVentasAlbArticulo)
frViewPeriodoFechasInforme1: TfrViewPeriodoFechasInforme;
actPeriodoFechas: TAction;
frViewInfVentasAlbArticuloGrid1: TfrViewInfVentasAlbArticuloGrid;
dsVentasTerminadas: TDADataSource;
procedure actRefrescarExecute(Sender: TObject);
procedure actPeriodoFechasExecute(Sender: TObject);
procedure frViewInfVentasAlbArticuloGrid1cxGridViewIMPORTE_TOTAL_VENTAHeaderClick(Sender: TObject);
procedure frViewInfVentasAlbArticuloGrid1cxGridViewCANTIDADHeaderClick(Sender: TObject);
protected
FDatos : IBizInfVentasAlbArticulo;
FController : IInfVentasAlbArticuloController;
FModificado : Boolean;
procedure OnViewInformeBaseGridChanged(Sender : TObject);
procedure OnFilterChanged(Sender : TObject);
procedure ActivarTarea(const ATarea: Integer); override;
function GetFocusedView: TcxGridDBTableView; override;
function GetDatos : IBizInfVentasAlbArticulo;
procedure SetDatos (const Value : IBizInfVentasAlbArticulo);
function GetController : IInfVentasAlbArticuloController;
procedure SetController (const Value : IInfVentasAlbArticuloController);
public
property Controller: IInfVentasAlbArticuloController read GetController write SetController;
property Datos : IBizInfVentasAlbArticulo read GetDatos write SetDatos;
constructor Create(AOwner: TComponent); override;
procedure Refresh; override;
end;
implementation
{$R *.dfm}
{ TfrViewInfVentasAlbArticulo }
uses schInfVentasArticuloClient_Intf, StrUtils;
const
PERIODO = 0;
constructor TfrViewInfVentasAlbArticulo.Create(AOwner: TComponent);
begin
inherited;
frViewInfVentasAlbArticuloGrid1.OnViewChanged := OnViewInformeBaseGridChanged;
frViewInfVentasAlbArticuloGrid1.OnFilterChanged := OnFilterChanged;
frViewColumnas1.ViewInformeBaseGrid := frViewInfVentasAlbArticuloGrid1;
frViewAgrupaciones1.ViewInformeBaseGrid := frViewInfVentasAlbArticuloGrid1;
frViewSumarios1.ViewInformeBaseGrid := frViewInfVentasAlbArticuloGrid1;
frViewFiltros1.ViewInformeBaseGrid := frViewInfVentasAlbArticuloGrid1;
pcParametros.ActivePage := TabSheet5;
end;
procedure TfrViewInfVentasAlbArticulo.frViewInfVentasAlbArticuloGrid1cxGridViewCANTIDADHeaderClick(Sender: TObject);
begin
inherited;
frViewInfVentasAlbArticuloGrid1.cxGridView.DataController.Groups.DataController.BeginUpdate;
frViewInfVentasAlbArticuloGrid1.cxGridView.GetColumnByFieldName(fld_InfVentasAlbArticuloCANTIDAD).SortIndex := 1;
frViewInfVentasAlbArticuloGrid1.cxGridView.GetColumnByFieldName(fld_InfVentasAlbArticuloCANTIDAD).Summary.SortByGroupFooterSummary := True;
frViewInfVentasAlbArticuloGrid1.cxGridView.DataController.Groups.DataController.EndUpdate;
end;
procedure TfrViewInfVentasAlbArticulo.frViewInfVentasAlbArticuloGrid1cxGridViewIMPORTE_TOTAL_VENTAHeaderClick(Sender: TObject);
begin
inherited;
frViewInfVentasAlbArticuloGrid1.cxGridView.DataController.Groups.DataController.BeginUpdate;
frViewInfVentasAlbArticuloGrid1.cxGridView.GetColumnByFieldName(fld_InfVentasAlbArticuloIMPORTE_TOTAL_VENTA).SortOrder := soAscending;
frViewInfVentasAlbArticuloGrid1.cxGridView.GetColumnByFieldName(fld_InfVentasAlbArticuloIMPORTE_TOTAL_VENTA).Summary.SortByGroupFooterSummary := True;
frViewInfVentasAlbArticuloGrid1.cxGridView.DataController.Groups.DataController.EndUpdate;
end;
function TfrViewInfVentasAlbArticulo.GetController: IInfVentasAlbArticuloController;
begin
Result := FController;
end;
function TfrViewInfVentasAlbArticulo.GetDatos: IBizInfVentasAlbArticulo;
begin
Result := FDatos;
end;
function TfrViewInfVentasAlbArticulo.GetFocusedView: TcxGridDBTableView;
begin
Result := frViewInfVentasAlbArticuloGrid1.cxGridView;
end;
procedure TfrViewInfVentasAlbArticulo.Refresh;
var
AColumns : TStringList;
AColumnsGroup : TStringList;
i: Integer;
Condicion: TDAWhereExpression;
AWhere : String;
begin
inherited;
ShowHourglassCursor;
actRefrescar.Enabled := False;
AWhere := ' ( ' + fld_InfVentasAlbArticuloFECHA_ALBARAN + ' between ''' + ReplaceStr(DateToStr(frViewPeriodoFechasInforme1.FechaInicial),'/','.') + ''' and ''' + ReplaceStr(DateToStr(frViewPeriodoFechasInforme1.FechaFinal),'/','.') + ''') ';
frViewInfVentasAlbArticuloGrid1.OnViewChanged := nil;
frViewInfVentasAlbArticuloGrid1.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((frViewInfVentasAlbArticuloGrid1 as IViewInformeBaseGrid).GetColumnByCaption(AColumnsGroup.Strings[i]).DataBinding.FieldName);
FDatos := FController.BuscarTodos(AColumns.CommaText, Awhere);
dsVentasTerminadas.DataTable := FDatos.Datatable;
frViewInfVentasAlbArticuloGrid1.FocusedView.DataController.DataSource := dsVentasTerminadas;
with Datos.DataTable do
begin
DisableControls;
try
Active := False;
Active := True;
frViewColumnas1.Execute;
frViewAgrupaciones1.Execute;
frViewSumarios1.Refresh;
frViewFiltros1.Refresh;
pnlTareas.Visible := True;
if Assigned(FOnViewChanged) then
FOnViewChanged(Self);
finally
EnableControls;
frViewInfVentasAlbArticuloGrid1.Refresh;
frViewInfVentasAlbArticuloGrid1.ExpandirTodo;
frViewInfVentasAlbArticuloGrid1.GotoFirst;
end;
end;
finally
FreeAndNil(AColumns);
actRefrescar.Enabled := True;
HideHourglassCursor;
end;
end;
procedure TfrViewInfVentasAlbArticulo.SetController(const Value: IInfVentasAlbArticuloController);
begin
FController := Value;
end;
procedure TfrViewInfVentasAlbArticulo.SetDatos(const Value: IBizInfVentasAlbArticulo);
begin
FDatos := Value;
end;
procedure TfrViewInfVentasAlbArticulo.actRefrescarExecute(Sender: TObject);
begin
inherited;
Refresh;
end;
procedure TfrViewInfVentasAlbArticulo.OnViewInformeBaseGridChanged(
Sender: TObject);
begin
if Assigned(Self.OnViewChanged) then
Self.OnViewChanged(Self);
end;
procedure TfrViewInfVentasAlbArticulo.OnFilterChanged(Sender: TObject);
begin
frViewFiltros1.Refresh;
end;
procedure TfrViewInfVentasAlbArticulo.actPeriodoFechasExecute(
Sender: TObject);
begin
inherited;
ActivarTarea(PERIODO);
end;
procedure TfrViewInfVentasAlbArticulo.ActivarTarea(const ATarea: Integer);
begin
inherited;
case ATarea of
PERIODO : pcParametros.ActivePage := TabSheet5;
end;
end;
end.