Tecsitel_FactuGES2/Source/Modulos/Comisiones/Views/uEditorComisionesReport.pas

138 lines
4.5 KiB
ObjectPascal

unit uEditorComisionesReport;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorPreview, frxExportImage, frxExportPDF, frxDCtrl, frxClass,
frxDMPExport, frxGradient, frxChBox, frxCross, frxRich, frxChart, frxOLE,
frxBarcode, JvAppStorage, JvAppRegistryStorage, JvComponentBase,
JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls,
TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage,
ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorComisionesPreview,
JvExComCtrls, JvStatusBar, StdCtrls, Buttons, cxRadioGroup, cxMaskEdit,
cxDropDownEdit, cxCalendar, cxControls, cxContainer, cxEdit, cxTextEdit,
TBXDkPanels, cxGraphics, DB, uDADataTable, cxLookupEdit, cxDBLookupEdit,
cxDBLookupComboBox, uIDataModuleComisionesReport;
type
TfEditorComisionesPreview = class(TfEditorPreview, IEditorComisionesPreview)
pnlFiltrar: TTBXDockablePanel;
Label1: TLabel;
edtFechaFiltro1: TcxDateEdit;
edtFechaFiltro2: TcxDateEdit;
Button1: TBitBtn;
Label2: TLabel;
Label3: TLabel;
cbAgentes: TcxLookupComboBox;
dsAgentes: TDADataSource;
procedure edtFechaFiltro1PropertiesEditValueChanged(Sender: TObject);
procedure OnAgentesChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
protected
FDataModule : IDataModuleComisionesReport;
function GetDataModule : IDataModuleComisionesReport;
procedure SetDataModule (const Value : IDataModuleComisionesReport);
procedure RefrescarInterno; override;
public
property DataModule : IDataModuleComisionesReport read GetDataModule write SetDataModule;
end;
implementation
{$R *.dfm}
uses uROTypes, uDialogUtils, uBizContactos, uAgentesController;
procedure TfEditorComisionesPreview.Button1Click(Sender: TObject);
begin
cbAgentes.Properties.OnEditValueChanged := Nil;
cbAgentes.Clear;
cbAgentes.Properties.OnEditValueChanged := OnAgentesChange;
edtFechaFiltro1.Properties.OnEditValueChanged := Nil;
edtFechaFiltro2.Properties.OnEditValueChanged := Nil;
edtFechaFiltro1.Clear;
edtFechaFiltro2.Clear;
edtFechaFiltro1.Properties.OnEditValueChanged := edtFechaFiltro1PropertiesEditValueChanged;
edtFechaFiltro2.Properties.OnEditValueChanged := edtFechaFiltro1PropertiesEditValueChanged;
RefrescarInterno;
end;
procedure TfEditorComisionesPreview.OnAgentesChange(Sender: TObject);
begin
inherited;
RefrescarInterno;
end;
procedure TfEditorComisionesPreview.RefrescarInterno;
var
AStream: Binary;
begin
ShowHourglassCursor;
try
AStream := FDataModule.GetReport(Null, False, edtFechaFiltro1.Text, edtFechaFiltro2.Text, cbAgentes.EditValue);
try
//Para que refresque el editor que presenta el informe y no falle al aplicar un filtro y cambiar el numero de hojas del informe
actPrimeraPagina.Execute;
Report.PreviewPages.Clear;
LoadFromStream(AStream);
Report.Preview.Refresh;
//Para que refresque el editor que presenta el informe y no falle al aplicar un filtro y cambiar el numero de hojas del informe
actAnchoPagina.Execute;
finally
AStream.Free;
end;
finally
HideHourglassCursor;
end;
end;
procedure TfEditorComisionesPreview.SetDataModule(const Value: IDataModuleComisionesReport);
begin
FDataModule := Value;
end;
procedure TfEditorComisionesPreview.edtFechaFiltro1PropertiesEditValueChanged(Sender: TObject);
begin
if not VarIsNull(edtFechaFiltro1.EditValue) and not VarIsNull(edtFechaFiltro2.EditValue) then
begin
if (edtFechaFiltro1.EditValue > edtFechaFiltro2.EditValue) then
begin
ShowWarningMessage('La fecha de inicio debe ser anterior a la fecha final');
edtFechaFiltro1.SetFocus;
end
else
RefrescarInterno;
end;
end;
procedure TfEditorComisionesPreview.FormShow(Sender: TObject);
var
AAgentesController: IAgentesController;
AAgentes: IBizAgente;
begin
inherited;
try
AAgentesController := TAgentesController.Create;
AAgentes := (AAgentesController.BuscarTodos as IBizAgente);
AAgentes.DataTable.Active := True;
dsAgentes.DataTable := AAgentes.DataTable;
finally
AAgentesController := Nil;
AAgentes := Nil;
end;
end;
function TfEditorComisionesPreview.GetDataModule: IDataModuleComisionesReport;
begin
Result := FDataModule;
end;
end.