From 2d7b19ce5456272713eef6b3f56627c4984e156b Mon Sep 17 00:00:00 2001 From: roberto Date: Mon, 2 Feb 2015 15:39:15 +0000 Subject: [PATCH] Version 2.6.3 Informe Listado de datos de los contactos git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES2/trunk@612 f4e31baf-9722-1c47-927c-6f952f962d4b --- Database/scripts/factuges.sql | 46 ++ Source/Base/Base.dproj | 110 ++-- Source/Cliente/FactuGES.dproj | 3 +- Source/Cliente/FactuGES.rc | 8 +- Source/Cliente/FactuGES.res | Bin 172156 -> 171984 bytes Source/GUIBase/uEditorPreview.dfm | 40 +- Source/GUIBase/uEditorPreview.pas | 4 +- Source/Informes/InfListaDatosContacto.fr3 | 28 + .../Controller/Contactos_controller.dpk | Bin 2638 -> 2634 bytes .../Controller/Contactos_controller.dproj | 42 +- .../uIEditorEtiquetasContactosPreview.pas | 16 - .../View/uIEditorListadosContactosPreview.pas | 16 + .../Controller/uClientesController.pas | 102 ++- .../uEtiquetasContactosReportController.pas | 113 ---- .../uListadosContactosReportController.pas | 178 ++++++ .../Controller/uProveedoresController.pas | 14 +- .../Contactos/Data/uDataModuleContactos.dfm | 10 +- .../Contactos/Data/uDataModuleContactos.pas | 22 +- .../Contactos/Model/Contactos_model.dpk | Bin 1775 -> 1773 bytes .../Contactos/Model/Contactos_model.dproj | 32 +- .../uIDataModuleEtiquetasContactosReport.pas | 16 - .../uIDataModuleListadosContactosReport.pas | 17 + .../Reports/uRptEtiquetasContacto_Server.pas | 110 ---- ...r.dfm => uRptListadosContactos_Server.dfm} | 248 +++++--- .../Reports/uRptListadosContactos_Server.pas | 167 +++++ .../Contactos/Servidor/srvContactos_Impl.pas | 22 +- .../Contactos/Views/Contactos_view.dpk | 2 +- .../Contactos/Views/Contactos_view.dproj | 76 +-- .../Views/uContactosViewRegister.pas | 6 +- .../Contactos/Views/uEditorCliente.dfm | 267 ++++---- .../Contactos/Views/uEditorClientes.dfm | 14 +- .../Contactos/Views/uEditorClientes.pas | 17 +- .../Contactos/Views/uEditorContacto.dfm | 135 ++-- .../Contactos/Views/uEditorContacto.pas | 6 +- .../Contactos/Views/uEditorContactos.dfm | 2 + ...dfm => uEditorListadosContactosReport.dfm} | 5 +- ...pas => uEditorListadosContactosReport.pas} | 8 +- .../Contactos/Views/uEditorProveedor.dfm | 231 +++---- .../Contactos/Views/uEditorVendedor.dfm | 250 +++++--- .../Modulos/Contactos/Views/uViewContacto.dfm | 5 +- Source/Servicios/FactuGES.RODL | 8 + Source/Servicios/FactuGES_Intf.pas | 19 + Source/Servicios/FactuGES_Invk.pas | 31 + Source/Servicios/RODLFile.res | Bin 44097 -> 44389 bytes Source/Servidor/FactuGES_Server.dpr | 4 +- Source/Servidor/FactuGES_Server.dproj | 581 +++++++++--------- Source/Servidor/FactuGES_Server.rc | 10 +- Source/Servidor/FactuGES_Server.res | Bin 23556 -> 23348 bytes 48 files changed, 1831 insertions(+), 1210 deletions(-) create mode 100644 Source/Informes/InfListaDatosContacto.fr3 delete mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorEtiquetasContactosPreview.pas create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorListadosContactosPreview.pas delete mode 100644 Source/Modulos/Contactos/Controller/uEtiquetasContactosReportController.pas create mode 100644 Source/Modulos/Contactos/Controller/uListadosContactosReportController.pas delete mode 100644 Source/Modulos/Contactos/Model/Data/uIDataModuleEtiquetasContactosReport.pas create mode 100644 Source/Modulos/Contactos/Model/Data/uIDataModuleListadosContactosReport.pas delete mode 100644 Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.pas rename Source/Modulos/Contactos/Reports/{uRptEtiquetasContacto_Server.dfm => uRptListadosContactos_Server.dfm} (69%) create mode 100644 Source/Modulos/Contactos/Reports/uRptListadosContactos_Server.pas rename Source/Modulos/Contactos/Views/{uEditorEtiquetasContactosReport.dfm => uEditorListadosContactosReport.dfm} (51%) rename Source/Modulos/Contactos/Views/{uEditorEtiquetasContactosReport.pas => uEditorListadosContactosReport.pas} (76%) diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql index 55ce321c..bdf0c494 100644 --- a/Database/scripts/factuges.sql +++ b/Database/scripts/factuges.sql @@ -4466,7 +4466,53 @@ INNER JOIN VENDEDORES_DATOS ON (VENDEDORES_DATOS.ID_VENDEDOR = V_CONTACTOS.ID) WHERE V_CONTACTOS.ID_CATEGORIA = 3 ; +CREATE VIEW V_LISTADO_DATOS_CONTACTO( + ID, + ID_CONTACTO, + NOMBRE, + TELEFONO_TRABAJO, + TELEFONO_PARTICULAR, + MOVIL, + MAIL_TRABAJO, + MAIL_PARTICULAR) +AS +select + ID, + ID_CONTACTO, + NOMBRE, + telefono_trabajo, + telefono_particular, + movil, + mail_tabajo, + mail_particular +from +( +select + ID, + ID as ID_CONTACTO, + NOMBRE, + TELEFONO_1 as telefono_trabajo, + Telefono_2 as telefono_particular, + MOVIL_1 as movil, + EMAIL_1 as mail_tabajo, + EMAIL_2 as mail_particular +from CONTACTOS +union + +select + ID, + ID_CONTACTO, + NOMBRE, + null as telefono_tabajo, + TELEFONO as telefono_particular, + MOVIL, + null as movil_trabajo, + EMAIL as movil_particular +from CONTACTOS_DATOS_PERSONAL +) +order by id_contacto +; /******************************************************************************/ diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj index fc5636dc..3e07781c 100644 --- a/Source/Base/Base.dproj +++ b/Source/Base/Base.dproj @@ -44,6 +44,20 @@ Package FalseTrueFalseLibreria base de FactuGESFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + + + + + + + + + + + + + + VCL for the Web Design Package for CodeGear RAD Studio CodeGear WebSnap Components CodeGear SOAP Components @@ -58,55 +72,55 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fConfigurarConexion
TForm diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj index 065fc5c1..22c88831 100644 --- a/Source/Cliente/FactuGES.dproj +++ b/Source/Cliente/FactuGES.dproj @@ -52,7 +52,8 @@ Delphi.Personality VCLApplication -FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2620FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.6.2.0FactuGESFactuGES2.6.2.0 +FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2630FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.6.3.0FactuGESFactuGES2.6.3.0 + File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found FactuGES.dprFalse diff --git a/Source/Cliente/FactuGES.rc b/Source/Cliente/FactuGES.rc index fc606e76..c0933948 100644 --- a/Source/Cliente/FactuGES.rc +++ b/Source/Cliente/FactuGES.rc @@ -1,7 +1,7 @@ MAINICON ICON "C:\Codigo Acana\Resources\Iconos\Factuges.ico" 1 VERSIONINFO -FILEVERSION 2,6,1,0 -PRODUCTVERSION 2,6,1,0 +FILEVERSION 2,6,3,0 +PRODUCTVERSION 2,6,3,0 FILEFLAGSMASK 0x3FL FILEFLAGS 0x00L FILEOS 0x40004L @@ -13,10 +13,10 @@ BEGIN BLOCK "0C0A04E4" BEGIN VALUE "CompanyName", "Rodax Software S.L.\0" - VALUE "FileVersion", "2.6.1.0\0" + VALUE "FileVersion", "2.6.3.0\0" VALUE "InternalName", "FactuGES\0" VALUE "ProductName", "FactuGES\0" - VALUE "ProductVersion", "2.6.1.0\0" + VALUE "ProductVersion", "2.6.3.0\0" END END BLOCK "VarFileInfo" diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res index 427c9ac76f91d3f14d9eaa45b24710d2626e2446..86d75081e12a8743cf24e0f0116072cda690e19d 100644 GIT binary patch delta 318 zcmex!fa}73u7(!IElezP>kS0Bco^V-k%5OnK!AaPkwJnXgB3)>c`OVJObikd5V;d< z3=GV0UI!-w0}F$K0z_^F2Ll5uf(JB>jlsYGD#ypbz>eUlGQ=}*FgQ3sBsH8E7&sX` zJRrP|5C#S=hJ*yD#wiR8+zbs3P?a1YhcYmHU}RuW0Mh^e3ji^Y0|W*P2oHT=oc?Go zlZiSr&P%0Z#}q&P%{(RzM&s$C^O>xtUzpF7 L0Aw33VDbh439l-C delta 488 zcmY+9yGjE=6o$VUlek%fY?*Q)cyEH(i5OHQpkR|eSyYms(GYE{l0qR5AZ(Lt+B|@* zXlZF_ZRa}#;+dU|!2@Sze*Vij^ZDjZ-re4#deNz2*Yn&Qf2GLbd7yA;q|I%SPa_4I zeBN>&8CXb=Pd^JOeBW|o2hs`h8B1D*Vlm;CVKG6%tx%OgrII0i)(;>{xolCt0xq?h zMdN2!qSs55j#(528u7t&>PahkL6P}~20Hv6>YX($D~MEjKh~IaP166GgnN-LsIM@H zbai7>c*QYIuDRq$`i^rtg4^87dCQHphp&;|QrqEAq<6ckvFlXSbpml7imuH=?5ood vr!AX4*HuIja3Q{y+#RlD+N`YhEXiofT$4Q8%%GO|;tC5R9mp + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Contactos/Controller/Contactos_controller.dpk b/Source/Modulos/Contactos/Controller/Contactos_controller.dpk index 92756bfe33787b0ab000fe1a5ac88934fdf565cf..4a63a5e5f181fee3db1d3a21adea47905fa84756 100644 GIT binary patch delta 60 tcmX>na!O>wTy}P!%;J*7l>EtO*`+4$XJ%iHJ9Lg~EW*rVCCIF>f6s`aO delta 64 ucmX>la!zE!Ty_rElFY)=)RM%>r`e?@?_*~}7SKU({;?~=Ih!>&l$Zb-p%-lc diff --git a/Source/Modulos/Contactos/Controller/Contactos_controller.dproj b/Source/Modulos/Contactos/Controller/Contactos_controller.dproj index 9f86cd58..9e42d4e2 100644 --- a/Source/Modulos/Contactos/Controller/Contactos_controller.dproj +++ b/Source/Modulos/Contactos/Controller/Contactos_controller.dproj @@ -43,6 +43,18 @@ Package FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + + + + + + + + + + + + JCL Debug IDE extension JCL Project Analyzer JCL Open and Save IDE dialogs with favorite folders @@ -53,29 +65,28 @@ MainSource - - - - - - - - - - - - - + + + + + + + + + - + + + + @@ -87,15 +98,16 @@ - + + diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorEtiquetasContactosPreview.pas b/Source/Modulos/Contactos/Controller/View/uIEditorEtiquetasContactosPreview.pas deleted file mode 100644 index 009332ee..00000000 --- a/Source/Modulos/Contactos/Controller/View/uIEditorEtiquetasContactosPreview.pas +++ /dev/null @@ -1,16 +0,0 @@ -unit uIEditorEtiquetasContactosPreview; - -interface - -uses - uEditorPreview, uBizContactos, uEtiquetasContactosReportController; - -type - IEditorEtiquetasContactosPreview = interface(IEditorPreview) - ['{270D1825-A4A4-4480-BBBA-6DD464ACAD3C}'] - end; - - -implementation - -end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorListadosContactosPreview.pas b/Source/Modulos/Contactos/Controller/View/uIEditorListadosContactosPreview.pas new file mode 100644 index 00000000..d5956c92 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorListadosContactosPreview.pas @@ -0,0 +1,16 @@ +unit uIEditorListadosContactosPreview; + +interface + +uses + uEditorPreview, uBizContactos, uListadosContactosReportController; + +type + IEditorListadosContactosPreview = interface(IEditorPreview) + ['{270D1825-A4A4-4480-BBBA-6DD464ACAD3C}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/uClientesController.pas b/Source/Modulos/Contactos/Controller/uClientesController.pas index 48802075..08dbf58c 100644 --- a/Source/Modulos/Contactos/Controller/uClientesController.pas +++ b/Source/Modulos/Contactos/Controller/uClientesController.pas @@ -16,8 +16,10 @@ type function ElegirDireccionEntrega(ACliente: IBizCliente; AMensaje: String): IBizDireccionesContacto; function EsEliminable(ACliente: IBizContacto): Boolean; function Eliminar(ACliente: IBizContacto; AllItems: Boolean = false): Boolean; overload; - procedure Preview(ACliente : IBizCliente; AllItems: Boolean = false); - procedure Print(ACliente : IBizCliente; AllItems: Boolean = false); + procedure PreviewInformeEtiquetas(ACliente : IBizCliente; AllItems: Boolean = false); + procedure PrintInformeEtiquetas(ACliente : IBizCliente; AllItems: Boolean = false); + procedure PreviewInformeListaDatosContacto(ACliente : IBizCliente; AllItems: Boolean = false); + procedure PrintInformeListaDatosContacto(ACliente : IBizCliente; AllItems: Boolean = false); procedure SetTieneSubcuenta(ACliente: IBizCliente; AValue: Boolean); procedure SetIgnorarContabilidad(ACliente: IBizCliente; AValue: Boolean); end; @@ -47,8 +49,10 @@ type function ElegirDireccionEntrega(ACliente: IBizCliente; AMensaje: String): IBizDireccionesContacto; function EsEliminable(ACliente: IBizContacto): Boolean; function Eliminar(ACliente: IBizContacto; AllItems: Boolean = false): Boolean; overload; - procedure Preview(ACliente : IBizCliente; AllItems: Boolean = false); - procedure Print(ACliente : IBizCliente; AllItems: Boolean = false); + procedure PreviewInformeEtiquetas(ACliente : IBizCliente; AllItems: Boolean = false); + procedure PrintInformeEtiquetas(ACliente : IBizCliente; AllItems: Boolean = false); + procedure PreviewInformeListaDatosContacto(ACliente : IBizCliente; AllItems: Boolean = false); + procedure PrintInformeListaDatosContacto(ACliente : IBizCliente; AllItems: Boolean = false); procedure SetTieneSubcuenta(ACliente: IBizCliente; AValue: Boolean); procedure SetIgnorarContabilidad(ACliente: IBizCliente; AValue: Boolean); end; @@ -57,7 +61,7 @@ implementation uses Forms, Classes, Windows, SysUtils, Controls, cxControls, uDialogUtils, uDataModuleClientes, uEditorRegistryUtils, - uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, uEtiquetasContactosReportController, + uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, uListadosContactosReportController, uIEditorElegirClientes, uEditorGridBase, uDAInterfaces, uFactuGES_App, uIEditorElegirDireccionEntrega, Dialogs, uIntegerListUtils; @@ -257,12 +261,12 @@ begin Result := AContacto; end; -procedure TClientesController.Preview(ACliente: IBizCliente; AllItems: Boolean); +procedure TClientesController.PreviewInformeEtiquetas(ACliente: IBizCliente; AllItems: Boolean); var - AReportController : IEtiquetasContactosReportController; + AReportController : IListadosContactosReportController; ListaID: TIntegerList; begin - AReportController := TEtiquetasContactosReportController.Create; + AReportController := TListadosContactosReportController.Create; ListaID := TIntegerList.Create; try @@ -283,20 +287,20 @@ begin else ListaID.Add(ACliente.ID); - AReportController.Preview(ListaID); + AReportController.PreviewInformeEtiquetas(ListaID); finally AReportController := NIL; FreeANDNIL(ListaID); end; end; -procedure TClientesController.Print(ACliente: IBizCliente; AllItems: Boolean); +procedure TClientesController.PreviewInformeListaDatosContacto( + ACliente: IBizCliente; AllItems: Boolean); var - AReportController : IEtiquetasContactosReportController; + AReportController : IListadosContactosReportController; ListaID: TIntegerList; - begin - AReportController := TEtiquetasContactosReportController.Create; + AReportController := TListadosContactosReportController.Create; ListaID := TIntegerList.Create; try @@ -317,7 +321,77 @@ begin else ListaID.Add(ACliente.ID); - AReportController.Print(ListaID); + AReportController.PreviewInformeListaDatosContacto(ListaID); + finally + AReportController := NIL; + FreeANDNIL(ListaID); + end; +end; + +procedure TClientesController.PrintInformeEtiquetas(ACliente: IBizCliente; AllItems: Boolean); +var + AReportController : IListadosContactosReportController; + ListaID: TIntegerList; + +begin + AReportController := TListadosContactosReportController.Create; + ListaID := TIntegerList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with ACliente.DataTable do + begin + First; + while not EOF do + begin + ListaID.Add(ACliente.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ListaID.Add(ACliente.ID); + + AReportController.PrintInformeEtiquetas(ListaID); + + finally + AReportController := NIL; + FreeANDNil(ListaID); + end; +end; + +procedure TClientesController.PrintInformeListaDatosContacto( + ACliente: IBizCliente; AllItems: Boolean); +var + AReportController : IListadosContactosReportController; + ListaID: TIntegerList; + +begin + AReportController := TListadosContactosReportController.Create; + ListaID := TIntegerList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with ACliente.DataTable do + begin + First; + while not EOF do + begin + ListaID.Add(ACliente.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ListaID.Add(ACliente.ID); + + AReportController.PrintInformeListaDatosContacto(ListaID); finally AReportController := NIL; diff --git a/Source/Modulos/Contactos/Controller/uEtiquetasContactosReportController.pas b/Source/Modulos/Contactos/Controller/uEtiquetasContactosReportController.pas deleted file mode 100644 index d5eb76fa..00000000 --- a/Source/Modulos/Contactos/Controller/uEtiquetasContactosReportController.pas +++ /dev/null @@ -1,113 +0,0 @@ -unit uEtiquetasContactosReportController; - -interface - -uses - Classes, SysUtils, uDADataTable, uIDataModuleEtiquetasContactosReport, - uVendedoresController, uControllerBase, uIntegerListUtils; - -type - IEtiquetasContactosReportController = interface(IControllerBase) - ['{76BB35E3-554E-4D30-8D3E-54E488EF82E2}'] - procedure Preview(const ListaID : TIntegerList); - procedure Print(const ListaID : TIntegerList); - end; - - TEtiquetasContactosReportController = class(TControllerBase, IEtiquetasContactosReportController) - private - FDataModule : IDataModuleEtiquetasContactosReport; - function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; - public - constructor Create; override; - destructor Destroy; override; - - procedure Preview(const ListaID : TIntegerList); - procedure Print(const ListaID : TIntegerList); - end; - - -implementation - -uses - uROTypes, uEditorRegistryUtils, uIEditorEtiquetasContactosPreview, - uEditorPreview, uDataModuleContactos, uEditorBase, cxControls; - -{ TEtiquetasContactosReportController } - -constructor TEtiquetasContactosReportController.Create; -begin - inherited; - FDataModule := TDataModuleContactos.Create(Nil); -end; - -function TEtiquetasContactosReportController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; -begin - Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); -end; - - -destructor TEtiquetasContactosReportController.Destroy; -begin - FDataModule := NIL; - inherited; -end; - -procedure TEtiquetasContactosReportController.Preview(const ListaID : TIntegerList); -var - AStream: Binary; - AEditor : IEditorEtiquetasContactosPreview; -begin - AEditor := NIL; - - AStream := FDataModule.GetReport(ListaID); - try - CreateEditor('EditorEtiquetasContactosPreview', IEditorEtiquetasContactosPreview, 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; - end; -end; - -procedure TEtiquetasContactosReportController.Print(const ListaID : TIntegerList); -var - AStream: Binary; - AEditor : IEditorEtiquetasContactosPreview; -begin - AEditor := NIL; - ShowHourglassCursor; - try - AStream := FDataModule.GetReport(ListaID); - try - CreateEditor('EditorEtiquetasContactosPreview', IEditorEtiquetasContactosPreview, 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; - end; - finally - HideHourglassCursor; - end; -end; - -end. diff --git a/Source/Modulos/Contactos/Controller/uListadosContactosReportController.pas b/Source/Modulos/Contactos/Controller/uListadosContactosReportController.pas new file mode 100644 index 00000000..f9f85aa4 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uListadosContactosReportController.pas @@ -0,0 +1,178 @@ +unit uListadosContactosReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uIDataModuleListadosContactosReport, + uVendedoresController, uControllerBase, uIntegerListUtils; + +type + IListadosContactosReportController = interface(IControllerBase) + ['{76BB35E3-554E-4D30-8D3E-54E488EF82E2}'] + procedure PreviewInformeEtiquetas(const ListaID : TIntegerList); + procedure PrintInformeEtiquetas(const ListaID : TIntegerList); + procedure PreviewInformeListaDatosContacto(const ListaID : TIntegerList); + procedure PrintInformeListaDatosContacto(const ListaID : TIntegerList); + end; + + TListadosContactosReportController = class(TControllerBase, IListadosContactosReportController) + private + FDataModule : IDataModuleListadosContactosReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + public + constructor Create; override; + destructor Destroy; override; + + procedure PreviewInformeEtiquetas(const ListaID : TIntegerList); + procedure PrintInformeEtiquetas(const ListaID : TIntegerList); + procedure PreviewInformeListaDatosContacto(const ListaID : TIntegerList); + procedure PrintInformeListaDatosContacto(const ListaID : TIntegerList); + + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorListadosContactosPreview, + uEditorPreview, uDataModuleContactos, uEditorBase, cxControls; + +{ TEtiquetasContactosReportController } + +constructor TListadosContactosReportController.Create; +begin + inherited; + FDataModule := TDataModuleContactos.Create(Nil); +end; + +function TListadosContactosReportController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + + +destructor TListadosContactosReportController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +procedure TListadosContactosReportController.PreviewInformeEtiquetas(const ListaID : TIntegerList); +var + AStream: Binary; + AEditor : IEditorListadosContactosPreview; +begin + AEditor := NIL; + + AStream := FDataModule.GetReportInformeEtiquetas(ListaID); + try + CreateEditor('EditorListadosContactosPreview', IEditorListadosContactosPreview, 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; + end; +end; + +procedure TListadosContactosReportController.PreviewInformeListaDatosContacto( + const ListaID: TIntegerList); +var + AStream: Binary; + AEditor : IEditorListadosContactosPreview; +begin + AEditor := NIL; + + AStream := FDataModule.GetReportInformeListaDatosContacto(ListaID); + try + CreateEditor('EditorListadosContactosPreview', IEditorListadosContactosPreview, 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; + end; +end; + +procedure TListadosContactosReportController.PrintInformeEtiquetas(const ListaID : TIntegerList); +var + AStream: Binary; + AEditor : IEditorListadosContactosPreview; +begin + AEditor := NIL; + ShowHourglassCursor; + try + AStream := FDataModule.GetReportInformeEtiquetas(ListaID); + try + CreateEditor('EditorListadosContactosPreview', IEditorListadosContactosPreview, 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; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TListadosContactosReportController.PrintInformeListaDatosContacto( + const ListaID: TIntegerList); +var + AStream: Binary; + AEditor : IEditorListadosContactosPreview; +begin + AEditor := NIL; + ShowHourglassCursor; + try + AStream := FDataModule.GetReportInformeListaDatosContacto(ListaID); + try + CreateEditor('EditorListadosContactosPreview', IEditorListadosContactosPreview, 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; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Controller/uProveedoresController.pas b/Source/Modulos/Contactos/Controller/uProveedoresController.pas index a535df83..30cdbb9d 100644 --- a/Source/Modulos/Contactos/Controller/uProveedoresController.pas +++ b/Source/Modulos/Contactos/Controller/uProveedoresController.pas @@ -49,7 +49,7 @@ implementation uses Classes, SysUtils, cxControls, Dialogs, uDataModuleProveedores, uEditorRegistryUtils, - uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, uEtiquetasContactosReportController, + uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, uListadosContactosReportController, uIEditorElegirProveedores, Controls, uEditorGridBase, JSDialogs, JSDialog, uDAInterfaces, uFactuGES_App, Windows, uIntegerListUtils; @@ -220,11 +220,11 @@ end; procedure TProveedoresController.Preview(AProveedor: IBizProveedor; AllItems: Boolean); var - AReportController : IEtiquetasContactosReportController; + AReportController : IListadosContactosReportController; ListaID: TIntegerList; begin - AReportController := TEtiquetasContactosReportController.Create; + AReportController := TListadosContactosReportController.Create; ListaID := TIntegerList.Create; try @@ -245,7 +245,7 @@ begin else ListaID.Add(AProveedor.ID); - AReportController.Preview(ListaID); + AReportController.PreviewInformeEtiquetas(ListaID); finally AReportController := NIL; FreeANDNil(ListaID); @@ -254,11 +254,11 @@ end; procedure TProveedoresController.Print(AProveedor: IBizProveedor; AllItems: Boolean); var - AReportController : IEtiquetasContactosReportController; + AReportController : IListadosContactosReportController; ListaID: TIntegerList; begin - AReportController := TEtiquetasContactosReportController.Create; + AReportController := TListadosContactosReportController.Create; ListaID := TIntegerList.Create; try @@ -279,7 +279,7 @@ begin else ListaID.Add(AProveedor.ID); - AReportController.Print(ListaID); + AReportController.PrintInformeEtiquetas(ListaID); finally AReportController := NIL; diff --git a/Source/Modulos/Contactos/Data/uDataModuleContactos.dfm b/Source/Modulos/Contactos/Data/uDataModuleContactos.dfm index 0a39da74..0db965cf 100644 --- a/Source/Modulos/Contactos/Data/uDataModuleContactos.dfm +++ b/Source/Modulos/Contactos/Data/uDataModuleContactos.dfm @@ -11,12 +11,12 @@ inherited DataModuleContactos: TDataModuleContactos Top = 16 end object rda_Contactos: TDARemoteDataAdapter + DataStreamer = Bin2DataStreamer GetSchemaCall.RemoteService = RORemoteService GetDataCall.RemoteService = RORemoteService UpdateDataCall.RemoteService = RORemoteService GetScriptsCall.RemoteService = RORemoteService RemoteService = RORemoteService - DataStreamer = Bin2DataStreamer Left = 43 Top = 143 end @@ -201,8 +201,6 @@ inherited DataModuleContactos: TDataModuleContactos StreamingOptions = [soDisableEventsWhileStreaming] RemoteDataAdapter = rda_Contactos LocalDataStreamer = Bin2DataStreamer - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LogicalName = 'Contactos' IndexDefs = <> Left = 176 @@ -333,8 +331,6 @@ inherited DataModuleContactos: TDataModuleContactos MasterSource = ds_Contactos MasterFields = 'ID' DetailFields = 'ID_CONTACTO' - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LogicalName = 'DireccionesContacto' IndexDefs = <> Left = 448 @@ -413,8 +409,6 @@ inherited DataModuleContactos: TDataModuleContactos MasterSource = ds_Contactos MasterFields = 'ID' DetailFields = 'ID_CONTACTO' - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LogicalName = 'DatosBancarios' IndexDefs = <> Left = 176 @@ -505,8 +499,6 @@ inherited DataModuleContactos: TDataModuleContactos MasterSource = ds_Contactos MasterFields = 'ID' DetailFields = 'ID_CONTACTO' - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LogicalName = 'PersonalContacto' IndexDefs = <> Left = 296 diff --git a/Source/Modulos/Contactos/Data/uDataModuleContactos.pas b/Source/Modulos/Contactos/Data/uDataModuleContactos.pas index c918069a..7f459235 100644 --- a/Source/Modulos/Contactos/Data/uDataModuleContactos.pas +++ b/Source/Modulos/Contactos/Data/uDataModuleContactos.pas @@ -8,13 +8,13 @@ uses uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uRORemoteService, uROClient, uROBinMessage, uBizContactos, uBizContactosDatosBancarios, - uBizDireccionesContacto, uIDataModuleEtiquetasContactosReport, + uBizDireccionesContacto, uIDataModuleListadosContactosReport, uIDataModuleContactos, uDADesigntimeCall, uROTypes, uRODynamicRequest, uDAInterfaces, uDADataStreamer, uDARemoteDataAdapter, uDABin2DataStreamer, uDAMemDataTable, uDataModuleBase, uBizContactosPersonal; type - TDataModuleContactos = class(TDataModuleBase, IDataModuleContactos, IDataModuleEtiquetasContactosReport) + TDataModuleContactos = class(TDataModuleBase, IDataModuleContactos, IDataModuleListadosContactosReport) RORemoteService: TRORemoteService; rda_Contactos: TDARemoteDataAdapter; Bin2DataStreamer: TDABin2DataStreamer; @@ -36,7 +36,8 @@ type function NewDireccion : IBizDireccionesContacto; // Report - function GetReport(const ListaID: TIntegerList): Binary; + function GetReportInformeEtiquetas(const ListaID: TIntegerList): Binary; + function GetReportInformeListaDatosContacto(const ListaID: TIntegerList): Binary; end; implementation @@ -60,7 +61,7 @@ begin // end; -function TDataModuleContactos.GetReport(const ListaID: TIntegerList): Binary; +function TDataModuleContactos.GetReportInformeEtiquetas(const ListaID: TIntegerList): Binary; var AParam : TIntegerArray; begin @@ -72,6 +73,19 @@ begin end; end; +function TDataModuleContactos.GetReportInformeListaDatosContacto( + const ListaID: TIntegerList): Binary; +var + AParam : TIntegerArray; +begin + AParam := ListaID.ToIntegerArray; + try + Result := (RORemoteService as IsrvContactos).GenerarInformeListaDatosContacto(AParam); + finally + FreeANDNIL(AParam); + end; +end; + function TDataModuleContactos.NewDireccion: IBizDireccionesContacto; var Condicion: TDAWhereExpression; diff --git a/Source/Modulos/Contactos/Model/Contactos_model.dpk b/Source/Modulos/Contactos/Model/Contactos_model.dpk index 0d1cc6eae17f16c1f30852b6118f7db6ca066aa6..e868960884bcffbd424827e896cae80786db8887 100644 GIT binary patch delta 32 hcmaFQ`<8b@E-SlFW^qYkO8(?hRy7!V^I}#XMgYqQ3!(r3 delta 34 icmaFM`<{10E-Qy?NoHYbYDwbc5>_=hXY)cMainSource - - - - - - - - - - - - - - - + + + + + + + + + + + + + - + + + diff --git a/Source/Modulos/Contactos/Model/Data/uIDataModuleEtiquetasContactosReport.pas b/Source/Modulos/Contactos/Model/Data/uIDataModuleEtiquetasContactosReport.pas deleted file mode 100644 index 5bf48d6c..00000000 --- a/Source/Modulos/Contactos/Model/Data/uIDataModuleEtiquetasContactosReport.pas +++ /dev/null @@ -1,16 +0,0 @@ -unit uIDataModuleEtiquetasContactosReport; - -interface - -uses - SysUtils, Classes, uROTypes, uIntegerListUtils; - -type - IDataModuleEtiquetasContactosReport = interface - ['{26E68DED-5BD9-4227-B07F-9644BED7AE7B}'] - function GetReport(const ListaID: TIntegerList): Binary; - end; - -implementation - -end. diff --git a/Source/Modulos/Contactos/Model/Data/uIDataModuleListadosContactosReport.pas b/Source/Modulos/Contactos/Model/Data/uIDataModuleListadosContactosReport.pas new file mode 100644 index 00000000..2163eac0 --- /dev/null +++ b/Source/Modulos/Contactos/Model/Data/uIDataModuleListadosContactosReport.pas @@ -0,0 +1,17 @@ +unit uIDataModuleListadosContactosReport; + +interface + +uses + SysUtils, Classes, uROTypes, uIntegerListUtils; + +type + IDataModuleListadosContactosReport = interface + ['{26E68DED-5BD9-4227-B07F-9644BED7AE7B}'] + function GetReportInformeEtiquetas(const ListaID: TIntegerList): Binary; + function GetReportInformeListaDatosContacto(const ListaID: TIntegerList): Binary; + end; + +implementation + +end. diff --git a/Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.pas b/Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.pas deleted file mode 100644 index 1adea40d..00000000 --- a/Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.pas +++ /dev/null @@ -1,110 +0,0 @@ -unit uRptEtiquetasContacto_Server; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, frxClass, frxDBSet, uDAScriptingProvider, - uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient, - frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, - uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, uDAMemDataTable, - FactuGES_Intf; - -type - TRptEtiquetasContacto = class(TDataModule) - DADataCabecera: TDADataSource; - tbl_Contactos: TDAMemDataTable; - frxRichObject1: TfrxRichObject; - frxBarCodeObject1: TfrxBarCodeObject; - frxOLEObject1: TfrxOLEObject; - frxCrossObject1: TfrxCrossObject; - frxCheckBoxObject1: TfrxCheckBoxObject; - frxGradientObject1: TfrxGradientObject; - frxChartObject1: TfrxChartObject; - frxDBCabecera: TfrxDBDataset; - frxReport: TfrxReport; - schReport: TDASchema; - DataDictionary: TDADataDictionary; - Bin2DataStreamer: TDABin2DataStreamer; - procedure DataModuleCreate(Sender: TObject); - private - FConnection: IDAConnection; - public - function GenerarInforme(const ListaID: TIntegerArray): Binary; overload; - end; - -implementation - -{$R *.dfm} - -uses - uSistemaFunc, uDataModuleServer, schContactosClient_Intf; - -const - rptEtiquetasContacto = 'InfEtiquetasContacto.fr3'; - - { Dataset names for schReport } - ds_InformeContactos = 'InformeEtiquetasContacto'; - - -{ TRptEtiquetasContacto } - - -procedure TRptEtiquetasContacto.DataModuleCreate(Sender: TObject); -begin - schReport.ConnectionManager := dmServer.ConnectionManager; - FConnection := dmServer.DarNuevaConexion; - frxReport.EngineOptions.NewSilentMode := simReThrow; -end; - -function TRptEtiquetasContacto.GenerarInforme(const ListaID: TIntegerArray): Binary; -var - AStream: TMemoryStream; - dsMaster: IDADataset; - i : Integer; - AWhereStr : String; - AInforme: Variant; - -begin - Result := Binary.Create; - FConnection.BeginTransaction; - - AStream := TMemoryStream.Create; - try - dsMaster := schReport.NewDataset(FConnection, ds_InformeContactos, [], [], False); //, ['ID'], ['611, 751']); //AID]); - AWhereStr := fld_ContactosID + ' in ('; - for i := 0 to ListaID.Count - 1 do - begin - if i > 0 then - AWhereStr := AWhereStr + ', '; - AWhereStr := AWhereStr + IntToStr(ListaID.Items[i]); - end; - - AWhereStr := AWhereStr + ')'; - dsMaster.Where.AddText(AWhereStr); - - dsMaster.Open; - - AStream.Clear; - Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); - Bin2DataStreamer.ReadDataset(AStream, tbl_Contactos, TRUE, '', TRUE, TRUE); - - AInforme := DarRutaFichero(DarRutaInformes, rptEtiquetasContacto); - if VarIsNull(AInforme) then - raise Exception.Create (('Error Servidor: GenerarInforme, no encuentra informe ' + rptEtiquetasContacto)); - - frxReport.LoadFromFile(AInforme, True); - frxReport.PrepareReport(True); - - frxReport.PreviewPages.SaveToStream(Result); - - finally - AStream.Free; - dsMaster := Nil; - FConnection.RollbackTransaction; - end; - -end; - - -end. diff --git a/Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.dfm b/Source/Modulos/Contactos/Reports/uRptListadosContactos_Server.dfm similarity index 69% rename from Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.dfm rename to Source/Modulos/Contactos/Reports/uRptListadosContactos_Server.dfm index b1b9a100..0cad74b7 100644 --- a/Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.dfm +++ b/Source/Modulos/Contactos/Reports/uRptListadosContactos_Server.dfm @@ -1,8 +1,8 @@ -object RptEtiquetasContacto: TRptEtiquetasContacto +object RptListadosContactos: TRptListadosContactos OldCreateOrder = True OnCreate = DataModuleCreate Height = 405 - Width = 447 + Width = 690 object DADataCabecera: TDADataSource DataSet = tbl_Contactos.Dataset DataTable = tbl_Contactos @@ -27,37 +27,35 @@ object RptEtiquetasContacto: TRptEtiquetasContacto Size = 255 end item - Name = 'PERSONA_CONTACTO' + Name = 'TELEFONO_TRABAJO' + DataType = datString + Size = 25 + end + item + Name = 'TELEFONO_PARTICULAR' + DataType = datString + Size = 25 + end + item + Name = 'MOVIL' + DataType = datString + Size = 25 + end + item + Name = 'MAIL_TABAJO' DataType = datString Size = 255 end item - Name = 'CALLE' + Name = 'MAIL_PARTICULAR' DataType = datString Size = 255 - end - item - Name = 'POBLACION' - DataType = datString - Size = 255 - end - item - Name = 'PROVINCIA' - DataType = datString - Size = 255 - end - item - Name = 'CODIGO_POSTAL' - DataType = datString - Size = 10 end> Params = <> MasterMappingMode = mmDataRequest LogChanges = False StreamingOptions = [soDisableEventsWhileStreaming] RemoteFetchEnabled = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] IndexDefs = <> Left = 264 Top = 128 @@ -180,6 +178,88 @@ object RptEtiquetasContacto: TRptEtiquetasContacto DataType = datString Size = 10 end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_LISTADO_DATOS_CONTACTO ' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_CONTACTO' + TableField = 'ID_CONTACTO' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'TELEFONO_TRABAJO' + TableField = 'TELEFONO_TRABAJO' + end + item + DatasetField = 'TELEFONO_PARTICULAR' + TableField = 'TELEFONO_PARTICULAR' + end + item + DatasetField = 'MOVIL' + TableField = 'MOVIL' + end + item + DatasetField = 'MAIL_TRABAJO' + TableField = 'MAIL_TRABAJO' + end + item + DatasetField = 'MAIL_PARTICULAR' + TableField = 'MAIL_PARTICULAR' + end> + end> + Name = 'InformeListaDatosContacto' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'TELEFONO_TRABAJO' + DataType = datString + Size = 25 + end + item + Name = 'TELEFONO_PARTICULAR' + DataType = datString + Size = 25 + end + item + Name = 'MOVIL' + DataType = datString + Size = 25 + end + item + Name = 'MAIL_TRABAJO' + DataType = datString + Size = 255 + end + item + Name = 'MAIL_PARTICULAR' + DataType = datString + Size = 255 + end> end> JoinDataTables = <> UnionDataTables = <> @@ -385,71 +465,16 @@ object RptEtiquetasContacto: TRptEtiquetasContacto Top = 158 end object frxReport: TfrxReport - Version = '4.3' + Version = '4.8.11' DotMatrixReport = False IniFile = '\Software\Fast Reports' PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] PreviewOptions.Zoom = 1.000000000000000000 PrintOptions.Printer = 'Por defecto' PrintOptions.PrintOnSheet = 0 - ReportOptions.CreateDate = 38330.712904247710000000 - ReportOptions.LastChange = 39328.775946539350000000 + ReportOptions.CreateDate = 42030.550901400500000000 + ReportOptions.LastChange = 42033.784458587960000000 ScriptLanguage = 'PascalScript' - ScriptText.Strings = ( - 'procedure Memo2OnBeforePrint(Sender: TfrxComponent);' - 'var' - ' Cadena: String;' - 'begin' - ' Cadena := '#39#39';' - '' - ' if ( <> '#39#39') then' - ' Cadena := UPPERCASE();' - '' - ' Memo2.Lines.Clear;' - ' Memo2.Lines.Add(Cadena);' - '' - ' if ( <> '#39#39') then' - ' Cadena := UPPERCASE();' - ' Memo2.Lines.Add(Cadena);' - '' - ' Cadena := '#39#39';' - ' if ( <> '#39#39') then' - ' Cadena := UPPERCASE();' - '' - ' if ( <> '#39#39') then' - ' if (Cadena <> '#39#39') then' - - ' Cadena := Cadena + '#39' '#39' + UPPERCASE();' - '' - ' if ( <> '#39#39')' - - ' and ( <> ) then' - ' begin' - ' if ( <> '#39#39') then' - - ' Cadena := Cadena + '#39' ('#39' + UPPERCASE() + '#39')'#39 - ' else' - - ' Cadena := Cadena + '#39' '#39' + UPPERCASE();' - ' end;' - ' Memo2.Lines.Add(Cadena);' - '' - ' Cadena := '#39#39';' - ' Memo2.Lines.Add(Cadena);' - ' if ( <> '#39#39') then' - - ' Cadena := '#39'ATT. '#39' + UPPERCASE();' - ' Memo2.Lines.Add(Cadena);' - 'end;' - '' - 'begin' - '' - 'end.') ShowProgress = False StoreInDFM = False Left = 169 @@ -459,6 +484,7 @@ object RptEtiquetasContacto: TRptEtiquetasContacto UserName = 'frxDBCabecera' CloseDataSource = True DataSource = DADataCabecera + BCDToCurrency = False Left = 264 Top = 16 end @@ -466,4 +492,68 @@ object RptEtiquetasContacto: TRptEtiquetasContacto Left = 48 Top = 80 end + object frxDBCabecera2: TfrxDBDataset + UserName = 'frxDBCabecera2' + CloseDataSource = True + DataSource = DADataCabecera2 + BCDToCurrency = False + Left = 400 + Top = 16 + end + object DADataCabecera2: TDADataSource + DataSet = tbl_lista_datos_contactos.Dataset + DataTable = tbl_lista_datos_contactos + Left = 400 + Top = 72 + end + object tbl_lista_datos_contactos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'TELEFONO_TRABAJO' + DataType = datString + Size = 25 + end + item + Name = 'TELEFONO_PARTICULAR' + DataType = datString + Size = 25 + end + item + Name = 'MOVIL' + DataType = datString + Size = 25 + end + item + Name = 'MAIL_TRABAJO' + DataType = datString + Size = 255 + end + item + Name = 'MAIL_PARTICULAR' + DataType = datString + Size = 255 + end> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + IndexDefs = <> + Left = 400 + Top = 128 + end end diff --git a/Source/Modulos/Contactos/Reports/uRptListadosContactos_Server.pas b/Source/Modulos/Contactos/Reports/uRptListadosContactos_Server.pas new file mode 100644 index 00000000..b0da96a6 --- /dev/null +++ b/Source/Modulos/Contactos/Reports/uRptListadosContactos_Server.pas @@ -0,0 +1,167 @@ +unit uRptListadosContactos_Server; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, frxClass, frxDBSet, uDAScriptingProvider, + uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient, + frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, + uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, uDAMemDataTable, + FactuGES_Intf, frxExportCSV; + +type + TRptListadosContactos = class(TDataModule) + DADataCabecera: TDADataSource; + tbl_Contactos: TDAMemDataTable; + frxRichObject1: TfrxRichObject; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + frxChartObject1: TfrxChartObject; + frxDBCabecera: TfrxDBDataset; + frxReport: TfrxReport; + Bin2DataStreamer: TDABin2DataStreamer; + frxDBCabecera2: TfrxDBDataset; + DADataCabecera2: TDADataSource; + tbl_lista_datos_contactos: TDAMemDataTable; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + procedure DataModuleCreate(Sender: TObject); + private + FConnection: IDAConnection; + public + function GenerarInformeListaDatosContacto(const ListaID: TIntegerArray): Binary; overload; + function GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary; overload; + end; + +implementation + +{$R *.dfm} + +uses + uSistemaFunc, uDataModuleServer, schContactosClient_Intf; + +const + rptEtiquetasContacto = 'InfEtiquetasContacto.fr3'; + rptListaDatosContacto = 'InfListaDatosContacto.fr3'; + + { Dataset names for schReport } + ds_InformeEtiquetasContactos = 'InformeEtiquetasContacto'; + ds_InformeListaDatosContacto = 'InformeListaDatosContacto'; + ds_InformeListaDatosContactoPersonal = 'InformeListaDatosContactoPersonal'; + + +{ TRptListadosContactos } + + +procedure TRptListadosContactos.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; +end; + +function TRptListadosContactos.GenerarInformeEtiquetas( + const ListaID: TIntegerArray): Binary; +var + AStream: TMemoryStream; + dsMaster: IDADataset; + i : Integer; + AWhereStr : String; + AInforme: Variant; + +begin + Result := Binary.Create; + FConnection.BeginTransaction; + + AStream := TMemoryStream.Create; + try + dsMaster := schReport.NewDataset(FConnection, ds_InformeEtiquetasContactos, [], [], False); //, ['ID'], ['611, 751']); //AID]); + AWhereStr := fld_ContactosID + ' in ('; + for i := 0 to ListaID.Count - 1 do + begin + if i > 0 then + AWhereStr := AWhereStr + ', '; + AWhereStr := AWhereStr + IntToStr(ListaID.Items[i]); + end; + + AWhereStr := AWhereStr + ')'; + dsMaster.Where.AddText(AWhereStr); + + dsMaster.Open; + + AStream.Clear; + Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + Bin2DataStreamer.ReadDataset(AStream, tbl_Contactos, TRUE, '', TRUE, TRUE); + + AInforme := DarRutaFichero(DarRutaInformes, rptEtiquetasContacto); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: GenerarInforme, no encuentra informe ' + rptEtiquetasContacto)); + + frxReport.LoadFromFile(AInforme, True); + frxReport.PrepareReport(True); + + frxReport.PreviewPages.SaveToStream(Result); + + finally + AStream.Free; + dsMaster := Nil; + FConnection.RollbackTransaction; + end; + +end; + +function TRptListadosContactos.GenerarInformeListaDatosContacto(const ListaID: TIntegerArray): Binary; +var + AStream: TMemoryStream; + dsMaster: IDADataset; + + i : Integer; + AWhereStr : String; + AInforme: Variant; + +begin + Result := Binary.Create; + FConnection.BeginTransaction; + + AStream := TMemoryStream.Create; + try + dsMaster := schReport.NewDataset(FConnection, ds_InformeListaDatosContacto, [], [], False); //, ['ID'], ['611, 751']); //AID]); + AWhereStr := fld_PersonalContactoID_CONTACTO + ' in ('; + for i := 0 to ListaID.Count - 1 do + begin + if i > 0 then + AWhereStr := AWhereStr + ', '; + AWhereStr := AWhereStr + IntToStr(ListaID.Items[i]); + end; + + AWhereStr := AWhereStr + ')'; + dsMaster.Where.AddText(AWhereStr); + dsMaster.Open; + AStream.Clear; + Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + Bin2DataStreamer.ReadDataset(AStream, tbl_lista_datos_contactos, TRUE, '', TRUE, TRUE); + + AInforme := DarRutaFichero(DarRutaInformes, rptListaDatosContacto); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: GenerarInforme, no encuentra informe ' + rptListaDatosContacto)); + + frxReport.LoadFromFile(AInforme, True); + frxReport.PrepareReport(True); + + frxReport.PreviewPages.SaveToStream(Result); + + finally + AStream.Free; + dsMaster := Nil; + FConnection.RollbackTransaction; + end; + + +end; + + +end. diff --git a/Source/Modulos/Contactos/Servidor/srvContactos_Impl.pas b/Source/Modulos/Contactos/Servidor/srvContactos_Impl.pas index 941e92da..030a5b41 100644 --- a/Source/Modulos/Contactos/Servidor/srvContactos_Impl.pas +++ b/Source/Modulos/Contactos/Servidor/srvContactos_Impl.pas @@ -42,6 +42,7 @@ type public function GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary; function DarTiendaDeUsuario(const ID_Empresa: Integer; const ID_Usuario: Integer): Integer; + function GenerarInformeListaDatosContacto(const ListaID: TIntegerArray): Binary; end; implementation @@ -52,7 +53,7 @@ uses uDataModuleServer, uDatabaseUtils, uUsersManager, schContactosClient_Intf, uBizVendedoresServer, uBizClientesServer, uBizProveedoresServer, uRestriccionesUsuarioUtils, - uRptEtiquetasContacto_Server; + uRptListadosContactos_Server; procedure Create_srvContactos(out anInstance : IUnknown); begin @@ -109,11 +110,24 @@ end; function TsrvContactos.GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary; var - AReportGenerator : TRptEtiquetasContacto; + AReportGenerator : TRptListadosContactos; begin - AReportGenerator := TRptEtiquetasContacto.Create(nil); + AReportGenerator := TRptListadosContactos.Create(nil); try - Result := AReportGenerator.GenerarInforme(ListaID); + Result := AReportGenerator.GenerarInformeEtiquetas(ListaID); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvContactos.GenerarInformeListaDatosContacto( + const ListaID: TIntegerArray): Binary; +var + AReportGenerator : TRptListadosContactos; +begin + AReportGenerator := TRptListadosContactos.Create(nil); + try + Result := AReportGenerator.GenerarInformeListaDatosContacto(ListaID); finally FreeAndNIL(AReportGenerator); end; diff --git a/Source/Modulos/Contactos/Views/Contactos_view.dpk b/Source/Modulos/Contactos/Views/Contactos_view.dpk index 4eb9981d..a428d8e6 100644 --- a/Source/Modulos/Contactos/Views/Contactos_view.dpk +++ b/Source/Modulos/Contactos/Views/Contactos_view.dpk @@ -89,7 +89,7 @@ contains uEditorGruposCliente in 'uEditorGruposCliente.pas' {fEditorGruposCliente: TCustomEditor}, uEditorVendedores in 'uEditorVendedores.pas' {fEditorVendedores: TCustomEditor}, uEditorGruposProveedor in 'uEditorGruposProveedor.pas' {fEditorGruposProveedor: TCustomEditor}, - uEditorEtiquetasContactosReport in 'uEditorEtiquetasContactosReport.pas' {fEditorEtiquetasContactosReport: TCustomEditor}, + uEditorListadosContactosReport in 'uEditorListadosContactosReport.pas' {fEditorListadosContactosPreview: TCustomEditor}, uViewSubCuentaContacto in 'uViewSubCuentaContacto.pas' {frViewSubCuentaContacto: TCustomView}, uEditorProcedenciasCliente in 'uEditorProcedenciasCliente.pas' {fEditorProcedenciasCliente: TCustomEditor}, uEditorElegirVendedores in 'uEditorElegirVendedores.pas' {fEditorElegirVendedores: TCustomEditor}, diff --git a/Source/Modulos/Contactos/Views/Contactos_view.dproj b/Source/Modulos/Contactos/Views/Contactos_view.dproj index a035001b..a330f2c5 100644 --- a/Source/Modulos/Contactos/Views/Contactos_view.dproj +++ b/Source/Modulos/Contactos/Views/Contactos_view.dproj @@ -47,40 +47,34 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fEditorCliente
@@ -121,10 +115,6 @@
fEditorElegirVendedores
TCustomEditor
- -
fEditorEtiquetasContactosReport
- TCustomEditor -
fEditorGruposCliente
TCustomEditor @@ -133,6 +123,10 @@
fEditorGruposProveedor
TCustomEditor
+ +
fEditorListadosContactosPreview
+ TCustomEditor +
fEditorPersonal
TCustomEditor @@ -228,6 +222,12 @@
frViewVendedores
TCustomView
+ + + + + +