diff --git a/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteController.pas b/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteController.pas index 9c84dc6..b3615a1 100644 --- a/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteController.pas +++ b/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteController.pas @@ -96,7 +96,7 @@ uses schRecibosClienteClient_Intf, uIEditorRemesasCliente, uIEditorRemesaCliente, Dialogs, uDataModuleRemesasCliente, uDataModuleUsuarios, uDAInterfaces, uDataTableUtils, uDateUtils, uROTypes, DateUtils, Controls, Windows, - uBizRecibosCliente, Variants, uRemesasClienteReportController; + uBizRecibosCliente, Variants, uRemesasClienteReportController, uIntegerListUtils; { TRemesasClienteController } @@ -585,11 +585,11 @@ end; procedure TRemesasClienteController.Preview(ARemesaCliente: IBizRemesaCliente; AllItems: Boolean = false); var AReportController : IRemesasClienteReportController; - ID_Remesas: TStringList; + ID_Remesas: TIntegerList; begin AReportController := TRemesasClienteReportController.Create; - ID_Remesas := TStringList.Create; + ID_Remesas := TIntegerList.Create; try //Si deseamos previsualizar todos los items del objeto albaran @@ -600,31 +600,31 @@ begin First; while not EOF do begin - ID_Remesas.Add(IntToStr(ARemesaCliente.ID)); + ID_Remesas.Add(ARemesaCliente.ID); Next; end; end; end //Solo previsualizamos el item seleccionado else - ID_Remesas.Add(IntToStr(ARemesaCliente.ID)); + ID_Remesas.Add(ARemesaCliente.ID); - AReportController.Preview(ID_Remesas.CommaText); + AReportController.Preview(ID_Remesas); finally AReportController := NIL; - ID_Remesas.Free; + FreeAndNil(ID_Remesas); end; end; procedure TRemesasClienteController.Print(ARemesaCliente: IBizRemesaCliente; AllItems: Boolean = false); var AReportController : IRemesasClienteReportController; - ID_Remesas: TStringList; + ID_Remesas: TIntegerList; begin AReportController := TRemesasClienteReportController.Create; - ID_Remesas := TStringList.Create; + ID_Remesas := TIntegerList.Create; try //Si deseamos previsualizar todos los items del objeto albaran @@ -635,16 +635,16 @@ begin First; while not EOF do begin - ID_Remesas.Add(IntToStr(ARemesaCliente.ID)); + ID_Remesas.Add(ARemesaCliente.ID); Next; end; end; end //Solo previsualizamos el item seleccionado else - ID_Remesas.Add(IntToStr(ARemesaCliente.ID)); + ID_Remesas.Add(ARemesaCliente.ID); - AReportController.Print(ID_Remesas.CommaText); + AReportController.Print(ID_Remesas); finally AReportController := NIL; diff --git a/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteReportController.pas b/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteReportController.pas index 0d2c902..1c828fa 100644 --- a/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteReportController.pas +++ b/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteReportController.pas @@ -4,16 +4,16 @@ interface uses Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleRemesasClienteReport, - uBizRemesasCliente; + uBizRemesasCliente, uIntegerListUtils; type - IRemesasClienteReportController = interface + IRemesasClienteReportController = interface(IControllerBase) ['{EA6EAD10-E07B-45A9-9B5E-0D560E2B92DF}'] - procedure Preview(const ID : String); - procedure Print(const ID : String); + procedure Preview(const ListaID : TIntegerList); + procedure Print(const ListaID : TIntegerList); end; - TRemesasClienteReportController = class(TInterfacedObject, IRemesasClienteReportController) + TRemesasClienteReportController = class(TControllerBase, IRemesasClienteReportController) private FDataModule : IDataModuleRemesasClienteReport; function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; @@ -21,8 +21,8 @@ type constructor Create; destructor Destroy; override; - procedure Preview(const ID : String); - procedure Print(const ID : String); + procedure Preview(const ListaID : TIntegerList); + procedure Print(const ListaID : TIntegerList); end; @@ -52,7 +52,7 @@ begin inherited; end; -procedure TRemesasClienteReportController.Preview(const ID : String); +procedure TRemesasClienteReportController.Preview(const ListaID : TIntegerList); var AStream: Binary; AEditor : IEditorRemesasClientePreview; @@ -61,16 +61,20 @@ begin ShowHourglassCursor; try - AStream := FDataModule.GetReport(ID); + AStream := FDataModule.GetReport(ListaID); try CreateEditor('EditorRemesasClientePreview', IEditorRemesasClientePreview, AEditor); if Assigned(AEditor) then + begin try + AEditor.Controller := Self; + AEditor.ListaID := ListaID; AEditor.LoadFromStream(AStream); AEditor.Preview; finally AEditor.Release; end; + end; finally FreeAndNil(AStream); AEditor := Nil; @@ -80,7 +84,7 @@ begin end; end; -procedure TRemesasClienteReportController.Print(const ID : String); +procedure TRemesasClienteReportController.Print(const ListaID : TIntegerList); var AStream: Binary; AEditor : IEditorRemesasClientePreview; @@ -89,16 +93,20 @@ begin ShowHourglassCursor; try - AStream := FDataModule.GetReport(ID); + AStream := FDataModule.GetReport(ListaID); try CreateEditor('EditorRemesasClientePreview', IEditorRemesasClientePreview, AEditor); if Assigned(AEditor) then + begin try + AEditor.Controller := Self; + AEditor.ListaID := ListaID; AEditor.LoadFromStream(AStream); AEditor.Print; finally AEditor.Release; end; + end; finally FreeAndNil(AStream); AEditor := Nil; diff --git a/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.dfm b/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.dfm index 6dd0646..b6ef7c0 100644 --- a/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.dfm +++ b/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.dfm @@ -14,12 +14,12 @@ inherited DataModuleRemesasCliente: TDataModuleRemesasCliente Top = 84 end object rda_RemesasCliente: TDARemoteDataAdapter + DataStreamer = Bin2DataStreamer GetSchemaCall.RemoteService = RORemoteService GetDataCall.RemoteService = RORemoteService UpdateDataCall.RemoteService = RORemoteService GetScriptsCall.RemoteService = RORemoteService RemoteService = RORemoteService - DataStreamer = Bin2DataStreamer Left = 51 Top = 151 end @@ -147,8 +147,6 @@ inherited DataModuleRemesasCliente: TDataModuleRemesasCliente Params = <> StreamingOptions = [soDisableEventsWhileStreaming] RemoteDataAdapter = rda_RemesasCliente - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LogicalName = 'RemesasCliente' IndexDefs = <> Left = 208 @@ -171,8 +169,6 @@ inherited DataModuleRemesasCliente: TDataModuleRemesasCliente Params = <> StreamingOptions = [soDisableEventsWhileStreaming] RemoteDataAdapter = rda_RemesasCliente - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LogicalName = 'ListaAnosRemesas' IndexDefs = <> Left = 328 diff --git a/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.pas b/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.pas index 9166770..ba48774 100644 --- a/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.pas +++ b/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.pas @@ -9,7 +9,7 @@ uses uDADesigntimeCall, uDataModuleBase, uIDataModuleRemesasCliente, uIDataModuleRemesasClienteReport, uBizRemesasCliente, uDARemoteDataAdapter, uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, - uDAMemDataTable; + uDAMemDataTable, uIntegerListUtils; type TDataModuleRemesasCliente = class(TDataModuleBase, IDataModuleRemesasCliente, IDataModuleRemesasClienteReport) @@ -31,7 +31,7 @@ type function NewItem : IBizRemesaCliente; // Report - function GetReport(const ID: String): Binary; + function GetReport(const ListaID: TIntegerList): Binary; function GetAnosItems : TStringList; end; @@ -57,9 +57,16 @@ begin RORemoteService.Message := dmConexion.Message; end; -function TDataModuleRemesasCliente.GetReport(const ID: String): Binary; +function TDataModuleRemesasCliente.GetReport(const ListaID: TIntegerList): Binary; +var + AParam : TIntegerArray; begin -// Result := (RORemoteService as IsrvRemesasCliente).GenerateReport(ID); + AParam := ListaID.ToIntegerArray; + try + Result := (RORemoteService as IsrvRemesasCliente).GenerarInforme(AParam); + finally + FreeANDNIL(AParam); + end; end; function TDataModuleRemesasCliente.NewItem: IBizRemesaCliente; diff --git a/Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasClienteReport.pas b/Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasClienteReport.pas index 53389c0..9c4c954 100644 --- a/Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasClienteReport.pas +++ b/Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasClienteReport.pas @@ -3,12 +3,12 @@ unit uIDataModuleRemesasClienteReport; interface uses - SysUtils, Classes, uROTypes; + SysUtils, Classes, uROTypes, uIntegerListUtils; type IDataModuleRemesasClienteReport = interface ['{6BFFFC92-D3E0-465C-8259-645B9FE9E446}'] - function GetReport(const ID: String): Binary; + function GetReport(const ID: TIntegerList): Binary; end; implementation