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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 427c9ac7..86d75081 100644
Binary files a/Source/Cliente/FactuGES.res and b/Source/Cliente/FactuGES.res differ
diff --git a/Source/GUIBase/uEditorPreview.dfm b/Source/GUIBase/uEditorPreview.dfm
index 34f86ef9..1b3a3842 100644
--- a/Source/GUIBase/uEditorPreview.dfm
+++ b/Source/GUIBase/uEditorPreview.dfm
@@ -2478,7 +2478,7 @@ inherited fEditorPreview: TfEditorPreview
Bitmap = {}
end
object frxReport1: TfrxReport
- Version = '4.3'
+ Version = '4.8.11'
DotMatrixReport = False
EngineOptions.DoublePass = True
IniFile = '\Software\Fast Reports'
@@ -2489,10 +2489,6 @@ inherited fEditorPreview: TfEditorPreview
ReportOptions.CreateDate = 38658.858023541660000000
ReportOptions.LastChange = 38658.858023541660000000
ScriptLanguage = 'PascalScript'
- ScriptText.Strings = (
- 'begin'
- ''
- 'end.')
StoreInDFM = False
Left = 16
Top = 200
@@ -2529,6 +2525,7 @@ inherited fEditorPreview: TfEditorPreview
ShowDialog = False
UseFileCache = True
ShowProgress = True
+ OverwritePrompt = False
Monochrome = True
Left = 120
Top = 384
@@ -2536,13 +2533,21 @@ inherited fEditorPreview: TfEditorPreview
object frxPDFExport1: TfrxPDFExport
UseFileCache = True
ShowProgress = True
+ OverwritePrompt = False
PrintOptimized = True
Outline = False
+ Background = False
+ HTMLTags = False
Author = 'FastReport'#174
Subject = 'FastReport PDF export'
- Background = False
Creator = 'FastReport (http://www.fast-report.com)'
- HTMLTags = False
+ ProtectionFlags = [ePrint, eModify, eCopy, eAnnot]
+ HideToolbar = False
+ HideMenubar = False
+ HideWindowUI = False
+ FitWindow = False
+ CenterWindow = False
+ PrintScaling = False
Left = 160
Top = 384
end
@@ -2550,6 +2555,7 @@ inherited fEditorPreview: TfEditorPreview
ShowDialog = False
UseFileCache = True
ShowProgress = True
+ OverwritePrompt = False
Monochrome = True
Left = 192
Top = 384
@@ -2557,41 +2563,59 @@ inherited fEditorPreview: TfEditorPreview
object frxXLSExport1: TfrxXLSExport
UseFileCache = True
ShowProgress = True
+ OverwritePrompt = False
+ ExportEMF = True
AsText = False
Background = True
FastExport = True
PageBreaks = True
EmptyLines = True
SuppressPageHeadersFooters = False
- Left = 40
+ Left = 344
Top = 384
end
object frxMailExport1: TfrxMailExport
UseFileCache = True
ShowProgress = True
+ OverwritePrompt = False
ShowExportDialog = True
SmtpPort = 25
UseIniFile = True
+ TimeOut = 60
+ ConfurmReading = False
Left = 80
Top = 384
end
object frxRTFExport: TfrxRTFExport
UseFileCache = True
ShowProgress = True
+ OverwritePrompt = False
+ ExportEMF = True
Wysiwyg = True
Creator = 'FastReport http://www.fast-report.com'
SuppressPageHeadersFooters = False
HeaderFooterMode = hfText
+ AutoSize = False
Left = 232
Top = 384
end
object frxSimpleTextExport1: TfrxSimpleTextExport
UseFileCache = True
ShowProgress = True
+ OverwritePrompt = False
Frames = False
EmptyLines = False
OEMCodepage = False
Left = 264
Top = 384
end
+ object frxCSVExport1: TfrxCSVExport
+ UseFileCache = True
+ ShowProgress = True
+ OverwritePrompt = False
+ Separator = ';'
+ OEMCodepage = False
+ Left = 304
+ Top = 384
+ end
end
diff --git a/Source/GUIBase/uEditorPreview.pas b/Source/GUIBase/uEditorPreview.pas
index 98f31618..17359c14 100644
--- a/Source/GUIBase/uEditorPreview.pas
+++ b/Source/GUIBase/uEditorPreview.pas
@@ -12,7 +12,7 @@ uses
frxGradient, frxChBox, frxCross, frxRich, frxOLE, frxBarcode,
ExtCtrls, JvComponentBase, TBXStatusBars, JvExComCtrls, JvStatusBar,
frxExportMail, frxExportXLS, frxExportText, frxExportRTF, uControllerBase,
- uIntegerListUtils;
+ uIntegerListUtils, frxExportCSV;
type
IEditorPreview = interface(IEditorBase)
@@ -115,6 +115,7 @@ type
TBXItem55: TTBXItem;
TBXItem56: TTBXItem;
TBXItem57: TTBXItem;
+ frxCSVExport1: TfrxCSVExport;
procedure FormShow(Sender: TObject);
procedure actPrimeraPaginaExecute(Sender: TObject);
procedure actUltimaPaginaExecute(Sender: TObject);
@@ -308,6 +309,7 @@ procedure TfEditorPreview.actExportarExcelExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.Export(frxXLSExport1);
+// FPreview.Preview.Export(frxCSVExport1);
end;
procedure TfEditorPreview.actExportarPDFExecute(Sender: TObject);
diff --git a/Source/Informes/InfListaDatosContacto.fr3 b/Source/Informes/InfListaDatosContacto.fr3
new file mode 100644
index 00000000..bc4ab221
--- /dev/null
+++ b/Source/Informes/InfListaDatosContacto.fr3
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Contactos/Controller/Contactos_controller.dpk b/Source/Modulos/Contactos/Controller/Contactos_controller.dpk
index 92756bfe..4a63a5e5 100644
Binary files a/Source/Modulos/Contactos/Controller/Contactos_controller.dpk and b/Source/Modulos/Contactos/Controller/Contactos_controller.dpk differ
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 0d1cc6ea..e8689608 100644
Binary files a/Source/Modulos/Contactos/Model/Contactos_model.dpk and b/Source/Modulos/Contactos/Model/Contactos_model.dpk differ
diff --git a/Source/Modulos/Contactos/Model/Contactos_model.dproj b/Source/Modulos/Contactos/Model/Contactos_model.dproj
index d62420c8..28eaedc4 100644
--- a/Source/Modulos/Contactos/Model/Contactos_model.dproj
+++ b/Source/Modulos/Contactos/Model/Contactos_model.dproj
@@ -50,26 +50,26 @@
MainSource
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -121,10 +115,6 @@
TCustomEditor
-
-
- TCustomEditor
-
TCustomEditor
@@ -133,6 +123,10 @@
TCustomEditor
+
+
+ TCustomEditor
+
TCustomEditor
@@ -228,6 +222,12 @@
TCustomView
+
+
+
+
+
+