diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql
index f955a10d..2a978924 100644
--- a/Database/scripts/factuges.sql
+++ b/Database/scripts/factuges.sql
@@ -3488,6 +3488,62 @@ from FACTURAS_PROVEEDOR
group by 1,2
;
+CREATE VIEW V_INF_PRE_CLIENTE_TOTAL_ANO(
+ ID_EMPRESA,
+ ANO,
+ IMPORTE_TOTAL)
+AS
+select ID_EMPRESA, EXTRACT(YEAR FROM FECHA_PRESUPUESTO) as ANO, SUM(IMPORTE_TOTAL) as IMPORTE_TOTAL
+from PRESUPUESTOS_CLIENTE
+group by 1,2
+;
+
+CREATE VIEW V_INF_PRE_CLIENTE_AUX(
+ ID,
+ ACEPTADOS,
+ ANULADOS,
+ PENDIENTES)
+AS
+select ID,
+CASE WHEN SITUACION = 'ACEPTADO' then 1
+ELSE 0
+end as ACEPTADOS,
+CASE WHEN SITUACION = 'ANULADO' then 1
+ELSE 0
+end as ANULADOS,
+CASE WHEN SITUACION = 'PENDIENTE' then 1
+ELSE 0
+end as PENDIENTES
+
+from presupuestos_cliente
+;
+
+CREATE VIEW V_INF_PRE_CLIENTE(
+ ID_EMPRESA,
+ ANO,
+ SEMESTRE,
+ TRIMESTRE,
+ MES,
+ ID_PRESUPUESTO,
+ FECHA_PRESUPUESTO,
+ ID_CLIENTE,
+ ACEPTADOS,
+ ANULADOS,
+ PENDIENTES,
+ IMPORTE_TOTAL,
+ IMPORTE_TOTAL_ANO)
+AS
+select P.ID_EMPRESA,
+EXTRACT(YEAR FROM P.FECHA_PRESUPUESTO) as ANO,
+CAST((DIV(EXTRACT(MONTH FROM P.FECHA_PRESUPUESTO),7)+1) AS SMALLINT) as SEMESTRE,
+CAST((DIV(EXTRACT(MONTH FROM P.FECHA_PRESUPUESTO)+2,3)) AS SMALLINT) as TRIMESTRE,
+EXTRACT(MONTH FROM P.FECHA_PRESUPUESTO) as MES, P.ID as ID_PRESUPUESTO,
+P.FECHA_PRESUPUESTO, P.ID_CLIENTE, V.ACEPTADOS, V.ANULADOS, V.PENDIENTES, P.IMPORTE_TOTAL, T.IMPORTE_TOTAL as IMPORTE_TOTAL_ANO
+from V_INF_PRE_CLIENTE_AUX V
+left join PRESUPUESTOS_CLIENTE P on (V.ID = P.ID)
+inner join V_INF_PRE_CLIENTE_TOTAL_ANO T on ((T.id_empresa = P.id_empresa) and (T.Ano = EXTRACT(YEAR FROM P.FECHA_PRESUPUESTO)))
+;
+
CREATE VIEW V_INF_FAC_CLIENTE(
ID_EMPRESA,
ANO,
diff --git a/Resources/Iconos/Informes/16x16/Chart.png b/Resources/Iconos/Informes/16x16/Chart.png
new file mode 100644
index 00000000..0696d1e7
Binary files /dev/null and b/Resources/Iconos/Informes/16x16/Chart.png differ
diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj
index f4910a29..3359d9dc 100644
--- a/Source/Base/Base.dproj
+++ b/Source/Base/Base.dproj
@@ -45,6 +45,10 @@
Package
FalseTrueFalseLibreria base de FactuGESFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0
+
+
+
+
Microsoft Office 2000 Sample Automation Server Wrapper Components
Microsoft Office XP Sample Automation Server Wrapper Components
Base.dpk
@@ -54,58 +58,58 @@
MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
TForm
diff --git a/Source/Base/Base.res b/Source/Base/Base.res
index 8b251f31..1641339f 100644
Binary files a/Source/Base/Base.res and b/Source/Base/Base.res differ
diff --git a/Source/Informes/1/InformeListadoBeneficiosGrafComp.fr3 b/Source/Informes/1/InformeListadoBeneficiosGrafComp.fr3
index ca440aec..30283e9f 100644
--- a/Source/Informes/1/InformeListadoBeneficiosGrafComp.fr3
+++ b/Source/Informes/1/InformeListadoBeneficiosGrafComp.fr3
@@ -1,23 +1,23 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -33,9 +33,9 @@
-
-
-
+
+
+
@@ -51,20 +51,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Informes/1/InformeListadoFacturasClienteGrafComp.fr3 b/Source/Informes/1/InformeListadoFacturasClienteGrafComp.fr3
index 18b1e3b3..decaf9de 100644
--- a/Source/Informes/1/InformeListadoFacturasClienteGrafComp.fr3
+++ b/Source/Informes/1/InformeListadoFacturasClienteGrafComp.fr3
@@ -1,13 +1,13 @@
-
+
-
-
-
-
-
+
+
+
+
+
@@ -23,43 +23,43 @@
-
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
+
diff --git a/Source/Informes/1/InformeListadoFacturasProveedorGrafComp.fr3 b/Source/Informes/1/InformeListadoFacturasProveedorGrafComp.fr3
index 92056ee4..6c2fd990 100644
--- a/Source/Informes/1/InformeListadoFacturasProveedorGrafComp.fr3
+++ b/Source/Informes/1/InformeListadoFacturasProveedorGrafComp.fr3
@@ -1,13 +1,13 @@
-
+
-
-
-
-
-
+
+
+
+
+
@@ -23,43 +23,43 @@
-
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
+
diff --git a/Source/Informes/1/InformeListadoPresupuestosClienteGrafComp.fr3 b/Source/Informes/1/InformeListadoPresupuestosClienteGrafComp.fr3
new file mode 100644
index 00000000..b32fd187
--- /dev/null
+++ b/Source/Informes/1/InformeListadoPresupuestosClienteGrafComp.fr3
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Informes/2/InformeListadoBeneficiosGrafComp.fr3 b/Source/Informes/2/InformeListadoBeneficiosGrafComp.fr3
index 626c350b..98700819 100644
--- a/Source/Informes/2/InformeListadoBeneficiosGrafComp.fr3
+++ b/Source/Informes/2/InformeListadoBeneficiosGrafComp.fr3
@@ -1,23 +1,23 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -33,9 +33,9 @@
-
-
-
+
+
+
@@ -51,20 +51,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Informes/2/InformeListadoFacturasClienteGrafComp.fr3 b/Source/Informes/2/InformeListadoFacturasClienteGrafComp.fr3
index 300c25c0..7f7d74ad 100644
--- a/Source/Informes/2/InformeListadoFacturasClienteGrafComp.fr3
+++ b/Source/Informes/2/InformeListadoFacturasClienteGrafComp.fr3
@@ -1,13 +1,13 @@
-
+
-
-
-
-
-
+
+
+
+
+
@@ -23,43 +23,43 @@
-
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
+
diff --git a/Source/Informes/2/InformeListadoFacturasProveedorGrafComp.fr3 b/Source/Informes/2/InformeListadoFacturasProveedorGrafComp.fr3
index 733331d6..58845a46 100644
--- a/Source/Informes/2/InformeListadoFacturasProveedorGrafComp.fr3
+++ b/Source/Informes/2/InformeListadoFacturasProveedorGrafComp.fr3
@@ -1,13 +1,13 @@
-
+
-
-
-
-
-
+
+
+
+
+
@@ -23,43 +23,43 @@
-
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
+
diff --git a/Source/Informes/2/InformeListadoPresupuestosClienteGrafComp.fr3 b/Source/Informes/2/InformeListadoPresupuestosClienteGrafComp.fr3
new file mode 100644
index 00000000..544c2f21
--- /dev/null
+++ b/Source/Informes/2/InformeListadoPresupuestosClienteGrafComp.fr3
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas
index 3535cef6..b698898a 100644
--- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas
+++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas
@@ -259,6 +259,8 @@ begin
frxReport.LoadFromFile(AInforme, True);
// IniciarParametrosInforme;
+ frxReport.Variables.Variables['Ano1']:= Ano1;
+ frxReport.Variables.Variables['Ano2']:= Ano2;
frxReport.Variables.Variables['Serie']:= Serie;
frxReport.PrepareReport(False);
frxReport.PreviewPages.SaveToStream(Result);
@@ -313,6 +315,8 @@ begin
frxReport.LoadFromFile(AInforme, True);
// IniciarParametrosInforme;
+ frxReport.Variables.Variables['Ano1']:= Ano1;
+ frxReport.Variables.Variables['Ano2']:= Ano2;
frxReport.PrepareReport(False);
frxReport.PreviewPages.SaveToStream(Result);
diff --git a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas
index 84e15a63..6c60c5c5 100644
--- a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas
+++ b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas
@@ -162,6 +162,8 @@ begin
frxReport.LoadFromFile(AInforme, True);
// IniciarParametrosInforme;
+ frxReport.Variables.Variables['Ano1']:= Ano1;
+ frxReport.Variables.Variables['Ano2']:= Ano2;
frxReport.PrepareReport(False);
frxReport.PreviewPages.SaveToStream(Result);
diff --git a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dpk b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dpk
index 75e21b59..62c057f7 100644
--- a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dpk
+++ b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dpk
@@ -46,6 +46,7 @@ contains
uIEditorInformePedidosReport in 'View\uIEditorInformePedidosReport.pas',
uIEditorInformeFacturasProveedorReportGrafComp in 'View\uIEditorInformeFacturasProveedorReportGrafComp.pas',
uIEditorInformeFacturasClienteReportGrafComp in 'View\uIEditorInformeFacturasClienteReportGrafComp.pas',
- uIEditorInformeBeneficiosReportGrafComp in 'View\uIEditorInformeBeneficiosReportGrafComp.pas';
+ uIEditorInformeBeneficiosReportGrafComp in 'View\uIEditorInformeBeneficiosReportGrafComp.pas',
+ uIEditorInformePresupuestosClienteReportGrafComp in 'View\uIEditorInformePresupuestosClienteReportGrafComp.pas';
end.
diff --git a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dproj b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dproj
index 6227776d..488b6e29 100644
--- a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dproj
+++ b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dproj
@@ -53,6 +53,7 @@
+
diff --git a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.res b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.res
index 8b251f31..1641339f 100644
Binary files a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.res and b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.res differ
diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformePresupuestosClienteReportGrafComp.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformePresupuestosClienteReportGrafComp.pas
new file mode 100644
index 00000000..090306c1
--- /dev/null
+++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformePresupuestosClienteReportGrafComp.pas
@@ -0,0 +1,32 @@
+unit uIEditorInformePresupuestosClienteReportGrafComp;
+
+interface
+
+uses
+ FactuGES_Intf, uIEditorInformeBase;
+
+type
+ IEditorInformePresupuestosClienteReportGrafComp = interface(IEditorInformeBase)
+ ['{48785A89-44C5-4A31-894F-556BBDBD3B80}']
+
+ function GetIntervalo: Variant;
+ function GetAno1: Variant;
+ function GetAno2: Variant;
+ function GetNTop: Variant;
+ function GetSerie: Variant;
+
+ function GetListaIDClientes: TIntegerArray;
+
+ property Intervalo: Variant read GetIntervalo;
+ property Ano1: Variant read GetAno1;
+ property Ano2: Variant read GetAno2;
+ property NTop: Variant read GetNTop;
+ property Serie: Variant read GetSerie;
+
+ property ListaIDClientes: TIntegerArray read GetListaIDClientes;
+ end;
+
+
+implementation
+
+end.
diff --git a/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas b/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas
index 18041774..cebc2597 100644
--- a/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas
+++ b/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas
@@ -18,6 +18,7 @@ type
//MODULO PRESUPUESTOS DE CLIENTE
procedure VerInformeListadoPresupuestos;
+ procedure VerInformePresupuestosCliGrafComp;
//MODULO FACTURAS DE CLIENTE
procedure VerInformeIVAClientes;
@@ -73,6 +74,7 @@ type
//MODULO PRESUPUESTOS DE CLIENTE
procedure VerInformeListadoPresupuestos;
+ procedure VerInformePresupuestosCliGrafComp;
//MODULO FACTURAS DE CLIENTE
procedure VerInformeIVAClientes;
@@ -119,7 +121,8 @@ uses
uIEditorInformePedidosReport,
uIEditorInformeFacturasProveedorReportGrafComp,
uIEditorInformeFacturasClienteReportGrafComp,
- uIEditorInformeBeneficiosReportGrafComp;
+ uIEditorInformeBeneficiosReportGrafComp,
+ uIEditorInformePresupuestosClienteReportGrafComp;
{procedure CopiarArticulosPedido(AOrigen: IBizDetallesPedidoCliente;
@@ -659,6 +662,30 @@ begin
end;
end;
+procedure TGestorInformesController.VerInformePresupuestosCliGrafComp;
+var
+ AStream: Binary;
+ AEditor : IEditorInformePresupuestosClienteReportGrafComp;
+begin
+ AEditor := NIL;
+ CreateEditor('EditorInformePresupuestosClienteReportGrafComp', IEditorInformePresupuestosClienteReportGrafComp, AEditor);
+ if Assigned(AEditor) then
+ try
+ AEditor.Controller := Self;
+ AEditor.Title := 'Informe comparativo de situacin de presupuestos';
+
+ AStream := FDataModule.GenerarInformePresupuestosCliGrafComp(AppFactuGES.EmpresaActiva.ID,
+ AEditor.Intervalo, AEditor.Ano1, AEditor.Ano2, AEditor.ListaIDClientes, AEditor.NTop, AEditor.Serie);
+
+ AEditor.LoadFromStream(AStream);
+ AEditor.Preview;
+ finally
+ AEditor.Release;
+ AEditor := Nil;
+ FreeAndNil(AStream);
+ end;
+end;
+
{
procedure TGestorInformesController.Ver(AFactura: IBizFacturaCliente);
var
diff --git a/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas b/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas
index 998b6dae..f74fa2b2 100644
--- a/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas
+++ b/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas
@@ -25,6 +25,7 @@ type
//MODULO PRESUPUESTOS DE CLIENTE
function GenerarInformeListadoPresupuestos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
+ function GenerarInformePresupuestosCliGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDClientes: TIntegerArray; Const NTop: Variant; const Serie: Variant): Binary;
//MODULO FACTURAS DE CLIENTE
function GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
@@ -285,6 +286,16 @@ begin
end;
end;
+function TDataModuleGestorInformes.GenerarInformePresupuestosCliGrafComp(
+ const IdEmpresa: Integer; const Intervalo, Ano1, Ano2: Variant;
+ const ListaIDClientes: TIntegerArray; const NTop: Variant; const Serie: Variant): Binary;
+begin
+ try
+ Result := (RORemoteService as IsrvGestorInformes).GenerarInformePresupuestosCliGrafComp(IdEmpresa, Intervalo, Ano1, Ano2, ListaIdClientes, NTop, Serie);
+ finally
+ end;
+end;
+
procedure TDataModuleGestorInformes.getInforme;
begin
tbl_DirectoryData.close;
diff --git a/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas b/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas
index eb5b0683..44b28396 100644
--- a/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas
+++ b/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas
@@ -15,6 +15,7 @@ type
//MODULO PRESUPUESTOS DE CLIENTE
function GenerarInformeListadoPresupuestos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
+ function GenerarInformePresupuestosCliGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDClientes: TIntegerArray; Const NTop: Variant; const Serie: Variant): Binary;
//MODULO FACTURAS DE CLIENTE
function GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
diff --git a/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm
index 715988f9..41d71f28 100644
--- a/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm
+++ b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm
@@ -34,6 +34,34 @@ object PluginGestorInformes: TPluginGestorInformes
0000000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000002744944415478DA
+ 63FCFFFF3F032D01E3F0B060F9D6D334B3056E41A4B729491AFFFCFDCFF0F7EF
+ 3F869FBFFE80E93FFFFE8169301B887FFDFECB109E5E876A41E249438206FF05
+ AAFFF5F72FC3AF3F7FC0F4975FBF207C10065A02932BFAB59C61DED24D9816CC
+ 373F8F6291F45B6F8626CF660C8BFE010D0361CFD5F60C1F791E800DBF14F082
+ 4169A520D8928ABFAB705B00022036B2E11718CF33189F346660B809E4A83330
+ 9C353FCBA0F9438BE117D007415B3C189EB2DF66B811FC1AAC566C3137431DC3
+ 5AFC3E8019CE7C8A89E1AFD93F300D32FC6CDC5906E379408BB419183EEB7C61
+ E0BDC2C3F05AE50D43F84E5F86BD51C718841771817DD0CEB211BB05E841C3BC
+ 1C684124D082C54C10C39719339C8D02D2B38C193E447C6410D8C2CFF0C2E525
+ 43D49E00860B7F2EC0E3A3977D0B911620FBE02A508203887F30807DF056ED1D
+ 83F02D218627324F18E20E86329CFA79166EC164AEEDF82D40B6E42F50C36596
+ 4B9038B80894D087C481DC5B79869F3F7E60180E02382D404E4520C58A1FFC18
+ 6A9C6BC196FC03A7F5BF700CE247EF0D841BFE33E50F03E34C46FC16C0003C6D
+ 03B1CCB31F0C5325B4B1E60BDE877B505C0E03582D40CFA57FA039F3EA444D06
+ 09A7200645CB1E86FBC74BC06A5EDC0726E7FBF719E6EE7BCE30A7DA09C3E229
+ 4F73312D98B2780756570A7E3BC7A0F4660ED8307450DD928DD3E273AC89080B
+ BA27CF27584C9C2B7B88553CA5751FA65AA0E12000B680919191A0E1C75A14FF
+ 93124C404BC3E6EEFBB19A140B4281D42A6CC13467EF77AC96022D6024CA0290
+ E196969AABB0C91D3F7E1D6BDC008101D0828BC45A803778402EC5A597681FE0
+ 0A1E200087355E0B6809686E0100FA3E2AAB1481BE0E0000000049454E44AE42
+ 6082}
+ Name = 'PngImage1'
+ Background = clWindow
end>
Left = 232
Top = 16
@@ -64,13 +92,13 @@ object PluginGestorInformes: TPluginGestorInformes
object actInformeRecibosCliente: TAction
Category = 'Recibos de cliente'
Caption = 'Listado de recibos de cliente'
- ImageIndex = 0
+ ImageIndex = 1
OnExecute = actInformeRecibosClienteExecute
end
object actInformeRecibosCliPendientes: TAction
Category = 'Recibos de cliente'
Caption = 'Listado de recibos de cliente pendientes'
- ImageIndex = 0
+ ImageIndex = 1
OnExecute = actInformeRecibosCliPendientesExecute
end
object actInformeFacturasProveedor: TAction
@@ -94,33 +122,39 @@ object PluginGestorInformes: TPluginGestorInformes
object actInformeRecibosProveedor: TAction
Category = 'Recibos de proveedor'
Caption = 'Listado de recibos de proveedor'
- ImageIndex = 0
+ ImageIndex = 1
OnExecute = actInformeRecibosProveedorExecute
end
object actInformeRecibosProvPendientes: TAction
Category = 'Recibos de proveedor'
Caption = 'Listado de recibos de proveedor pendientes'
- ImageIndex = 0
+ ImageIndex = 1
OnExecute = actInformeRecibosProvPendientesExecute
end
object actInformeFacturasProveedorGrafComp: TAction
Category = 'Facturas de proveedor'
Caption = 'Informe comparativo de facturaci'#243'n de proveedores'
- ImageIndex = 0
+ ImageIndex = 2
OnExecute = actInformeFacturasProveedorGrafCompExecute
end
object actInformeFacturasClienteGrafComp: TAction
Category = 'Facturas de cliente'
Caption = 'Informe comparativo de facturaci'#243'n de clientes'
- ImageIndex = 0
+ ImageIndex = 2
OnExecute = actInformeFacturasClienteGrafCompExecute
end
object actInformeBeneficiosGrafComp: TAction
Category = 'Facturas de cliente'
Caption = 'Informe comparativo de beneficios'
- ImageIndex = 0
+ ImageIndex = 2
OnExecute = actInformeBeneficiosGrafCompExecute
end
+ object actInformePresupuestosClienteGrafComp: TAction
+ Category = 'Presupuestos de cliente'
+ Caption = 'Informe comparativo de situaci'#243'n de presupuestos'
+ ImageIndex = 2
+ OnExecute = actInformePresupuestosClienteGrafCompExecute
+ end
end
object MainMenu: TMainMenu
Images = LargeImages
@@ -184,6 +218,10 @@ object PluginGestorInformes: TPluginGestorInformes
Tag = 140
Caption = '-'
end
+ object Informecomparativodesituacindepresupuestos1: TMenuItem
+ Tag = 145
+ Action = actInformePresupuestosClienteGrafComp
+ end
object Informecomparativodefacturacindeproveedores1: TMenuItem
Tag = 150
Action = actInformeFacturasProveedorGrafComp
@@ -218,6 +256,49 @@ object PluginGestorInformes: TPluginGestorInformes
00004B6D80F047EC10D30000000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000011A4944415478DA
+ 63FCFFFF3F032580916203966D3945B60991DEA68C6003D4BD9919269F4CC6AA
+ E8F7DFBF0CDFFFFC61F8F6FB37C3C71F3FC0ECB9FE5B19523CE6309CDB310D61
+ 0008C00C996B760EC3209B6D7270CD208062C02E9134B8429866E6534C1081AB
+ 0C0C7F13FF81999A6B4519BE035D02728DDCB204220CB80A118319A0B04200AC
+ 19843556A762370024B9DCFA328617903583BC62B83E13350C40FE074B421581
+ 70EF05569C31907DD8036140F7E4F9180AA6DAEE60B04CAE6660905064F8717C
+ 2AC3F97DE719E6EE7BCE30A5C50BCE9EB3F73B23232E1B8EB528861E7CADB6EA
+ CEE58358E5939D24C32CABEFADC667C07F8A5D00A456811452D505208D5635F7
+ 5783D480F211C92E98BBEF075C0FD8004A73230074DEE0E1BE54FBD500000000
+ 49454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000002374944415478DA
+ 95D35F4853511C07F0EFA5184521EB41C8FE0D927A28E9A1C0081F22A2A81EC4
+ 4960ABCC5B6B6C85466E69238961420A95D99B224205E543416188B518AEB756
+ 10F8A7870C4DB0A6B05C737FEEDDD63DBB9DFB03EF766905FEE072B8E79CDFE7
+ FCEE8F73051444C3B56EF5D15DB780158450981CF007F17D7C489F739E34A985
+ 9BFB9E6785A280965C5F7B02A2AB5507B4E4DE671944235360F23C6E7A8E1607
+ B4E4CBF5B55018439DD86C00B4D15A9EA58D2FA64D9879C30CC96F134C20C0ED
+ A8035318AA6D8D06A0E39E1FABD696D1E653E5BBE08F2B90DF0D23393A8433DD
+ 0379A0ADF12C18AFE088D5F95F408B9E8A521AAF4E46F240D7F58B5078055BF7
+ DED7CB7356756119C8F11E9CAE388C276EBBBE6EA8E081EF12CC3B3BA186DBF1
+ 35CA30BD98C3CB1BEB0950A51FBC8961341CF4EA0093249CEB1DCC03FD9D5760
+ DA768B162DBB77D078CC6C274059FCC8131670E1780F015A724E4A427CFC2A0F
+ 3CBCD30C61930F9E0EAF5E62F2B5990079AA1F6A2602872D40407A6E86032938
+ 863FFC1B88FD5AC2EA90850069E2363FF5275CF63102A42F13606909AEC06471
+ 60F6DB1CE2F138B6CF5711100B8ABC893134B5240888BD0F229796D1F4295C1C
+ 181FFB8CD0D31AD80E4508888ED4A0B26D1DF66717088806477853D338C02F56
+ C9E67D300025D901FA04EB790FD6CC7A31385AAABF87FB5A10326DD47BA4CD69
+ FF0E01ED6E1196B20D7FFD698954064BA934927C4CF05325F9375252863F59B8
+ 5B7D74E9E8D66DD953AD6285B17C63FF00F4E4594ED8D61DE30000000049454E
+ 44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
end>
PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
Left = 308
@@ -255,6 +336,37 @@ object PluginGestorInformes: TPluginGestorInformes
E74CD9D0710000000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF
+ 940000000970485973000017120000171201679FD252000002D84944415478DA
+ ED946D48535118C7FF57855EB4171542B01756516845C868B63E4A1F2A7B1996
+ 990B845008EA637DD2A828F34BF521D220C98484C28232B24C302329456D380D
+ A99C75035FB6A5B3E9ACAEBA7BD773CF4D9BEE6E6E23F6217AE0F09C73EE73CE
+ EF79CEFF9CCB793C1E44D2B8FFC07F0378EF697BC4A833C0DCCC6D616DE0163D
+ 104589BCC43CEB4B5E7DE62986E6728E9F9D0D3CD69A163448A47593A28849B7
+ 5BF1731B01A6BFD7E97AC0F70DA0B0A4DC175899DE310B9CECC8C485DD17FD82
+ 25DA58621589D8FB3003A3715F18ACCB60C3DAEA7806ADD759D03768F50F944D
+ EEABC1CC5C07B4AD5AE0230D3602A6741352845406945B56ED2E0C2CB0E0C3C1
+ 2116BFA22A160DBA5E0CDAED812BF48645B745013C1D638EA4F40966CA33417B
+ 9BC09B00D7E6712C791C07AC0386D60F23A77E1F5E189B91786731ABB029FD33
+ ECC343EA40B5A38CAE268844C05C02564529B0BB5A988CE4CBB5701E19C5F2DA
+ 652CD6B6D30E63830166B77946CFD7DB7938461C2100E5AA2C043CFABBC26E9A
+ 5C484D00ABD0B16104897509ACC2FE95FDC87B958DB609D30CF08D8EC798CB19
+ 18A87661648DDEC574291A76D2C45645C3D58E35EC9B7B6ACA07265B93F613BE
+ FF189BFF96CA0B34CEFD0C2A6F386EEB467C4F61C0E7B2CADC80AF4B454C14B8
+ C1DDE4D8DCCB340B04613C70856A6FABB81DD0E71701491A128B677102FF8C79
+ 276F65FE4C45076E1565CC4AE291EB0416C527FB02E7FB7BF4DED882A48C2C68
+ F457C0B79C562E09AF3C23F04A02158D569416EFF149E2D0B9165FE0F32673C0
+ E31AB0BC45AAAD846DAA66D66F024ACB4EA9262103CBAE5DFD03BC7CBD12C158
+ 72AC0B4F4E8E048C29B8D4E83DAC791F73C0F0934B600306E4382E28986CCDC5
+ 1A4FA83A5202872B1A8507610383D5D13B010272E102B3694323750D7E426AF2
+ F37718E62610165086E9F529F743D08F2540ED3C013BC30106A5DF74356A1632
+ 3018FDFE26705EFDBC8FCF2F30921671E02FBE648AC22CC7AE57000000004945
+ 4E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
end>
Left = 232
Top = 80
diff --git a/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas
index 31bbf71e..3900cc32 100644
--- a/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas
+++ b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas
@@ -48,6 +48,8 @@ type
Informecomparativodefacturacindeproveedores2: TMenuItem;
actInformeBeneficiosGrafComp: TAction;
actInformeBeneficiosGrafComp1: TMenuItem;
+ actInformePresupuestosClienteGrafComp: TAction;
+ Informecomparativodesituacindepresupuestos1: TMenuItem;
procedure actInformeFacturasClienteExecute(Sender: TObject);
procedure actInformeFacturasClientePendientesExecute(Sender: TObject);
procedure actInformeFacturasClienteIVAExecute(Sender: TObject);
@@ -61,6 +63,7 @@ type
procedure actInformeFacturasProveedorGrafCompExecute(Sender: TObject);
procedure actInformeFacturasClienteGrafCompExecute(Sender: TObject);
procedure actInformeBeneficiosGrafCompExecute(Sender: TObject);
+ procedure actInformePresupuestosClienteGrafCompExecute(Sender: TObject);
private
FController : IGestorInformesController;
public
@@ -138,6 +141,12 @@ begin
FController.VerInformeListadoFacturasProvPendientes;
end;
+procedure TPluginGestorInformes.actInformePresupuestosClienteGrafCompExecute(
+ Sender: TObject);
+begin
+ FController.VerInformePresupuestosCliGrafComp;
+end;
+
procedure TPluginGestorInformes.actInformeRecibosClienteExecute(
Sender: TObject);
begin
diff --git a/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas b/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas
index 466d14b6..5aca0fa1 100644
--- a/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas
+++ b/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas
@@ -40,6 +40,8 @@ type
//MODULO PRESUPUESTOS CLIENTE
function GenerarInformeListadoPresupuestos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
+ function GenerarInformePresupuestosCliGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIdClientes: TIntegerArray;
+ const TopN: Integer; const Serie: Variant): Binary;
//MODULO FACTURAS CLIENTE
function GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
@@ -342,6 +344,20 @@ begin
end;
end;
+function TsrvGestorInformes.GenerarInformePresupuestosCliGrafComp(
+ const IdEmpresa: Integer; const Intervalo, Ano1, Ano2: Variant;
+ const ListaIdClientes: TIntegerArray; const TopN: Integer; const Serie: Variant): Binary;
+var
+ AReportGenerator : TRptPresupuestosCliente;
+begin
+ AReportGenerator := TRptPresupuestosCliente.Create(nil);
+ try
+ Result := AReportGenerator.GenerarInformePresupuestosGrafComp(IdEmpresa, Intervalo, Ano1, Ano2, ListaIDClientes, TopN, Serie);
+ finally
+ FreeAndNIL(AReportGenerator);
+ end;
+end;
+
initialization
TROClassFactory.Create('srvGestorInformes', Create_srvGestorInformes, TsrvGestorInformes_Invoker);
diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk
index de7fcb99..eba5e5a3 100644
--- a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk
+++ b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk
@@ -92,6 +92,7 @@ contains
uViewIntervaloComparativo in 'uViewIntervaloComparativo.pas' {frViewIntervaloComparativo: TFrame},
uEditorInformeFacturasClienteReportGrafComp in 'uEditorInformeFacturasClienteReportGrafComp.pas' {fEditorInformeFacturasClienteReportGrafComp: TForm},
uEditorInformeFacturasProveedorReportGrafComp in 'uEditorInformeFacturasProveedorReportGrafComp.pas' {fEditorInformeFacturasProveedorReportGrafComp: TForm},
- uEditorInformeBeneficiosReportGrafComp in 'uEditorInformeBeneficiosReportGrafComp.pas' {fEditorInformeBeneficiosReportGrafComp: TForm};
+ uEditorInformeBeneficiosReportGrafComp in 'uEditorInformeBeneficiosReportGrafComp.pas' {fEditorInformeBeneficiosReportGrafComp: TForm},
+ uEditorInformePresupuestosClienteReportGrafComp in 'uEditorInformePresupuestosClienteReportGrafComp.pas' {fEditorInformePresupuestosClienteReportGrafComp: TForm};
end.
diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj
index c7f14895..8dffb4a4 100644
--- a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj
+++ b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj
@@ -80,7 +80,7 @@
TForm
-
+
TForm
@@ -119,6 +119,10 @@
TForm
+
+
+ TForm
+
TForm
diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.res b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.res
index 8b251f31..1641339f 100644
Binary files a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.res and b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.res differ
diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeBeneficiosReportGrafComp.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeBeneficiosReportGrafComp.dfm
index c0b68b28..b85143c5 100644
--- a/Source/Modulos/Gestor de informes/Views/uEditorInformeBeneficiosReportGrafComp.dfm
+++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeBeneficiosReportGrafComp.dfm
@@ -155,7 +155,6 @@ inherited fEditorInformeBeneficiosReportGrafComp: TfEditorInformeBeneficiosRepor
end
inherited TBXAlignmentPanel5: TTBXAlignmentPanel
Width = 182
- ExplicitTop = 225
ExplicitWidth = 182
inherited Label4: TLabel
Width = 172
diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReportGrafComp.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReportGrafComp.dfm
index be9a7924..033722e6 100644
--- a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReportGrafComp.dfm
+++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReportGrafComp.dfm
@@ -143,6 +143,21 @@ inherited fEditorInformeFacturasClienteReportGrafComp: TfEditorInformeFacturasCl
Width = 172
end
end
+ inherited TBXAlignmentPanel5: TTBXAlignmentPanel
+ Width = 182
+ ExplicitWidth = 182
+ inherited Label4: TLabel
+ Width = 172
+ end
+ inherited cbSerie: TcxComboBox
+ Style.LookAndFeel.SkinName = ''
+ StyleDisabled.LookAndFeel.SkinName = ''
+ StyleFocused.LookAndFeel.SkinName = ''
+ StyleHot.LookAndFeel.SkinName = ''
+ ExplicitWidth = 166
+ Width = 166
+ end
+ end
end
inline frViewFiltroClientes1: TfrViewFiltroClientes
Left = 0
diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorReportGrafComp.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorReportGrafComp.dfm
index 050f1cac..ce03f89e 100644
--- a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorReportGrafComp.dfm
+++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorReportGrafComp.dfm
@@ -143,6 +143,21 @@ inherited fEditorInformeFacturasProveedorReportGrafComp: TfEditorInformeFacturas
Width = 172
end
end
+ inherited TBXAlignmentPanel5: TTBXAlignmentPanel
+ Width = 182
+ ExplicitWidth = 182
+ inherited Label4: TLabel
+ Width = 172
+ end
+ inherited cbSerie: TcxComboBox
+ Style.LookAndFeel.SkinName = ''
+ StyleDisabled.LookAndFeel.SkinName = ''
+ StyleFocused.LookAndFeel.SkinName = ''
+ StyleHot.LookAndFeel.SkinName = ''
+ ExplicitWidth = 166
+ Width = 166
+ end
+ end
end
inline frViewFiltroProveedores1: TfrViewFiltroProveedores
Left = 0
diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformePresupuestosClienteReportGrafComp.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformePresupuestosClienteReportGrafComp.dfm
new file mode 100644
index 00000000..b6e53edc
--- /dev/null
+++ b/Source/Modulos/Gestor de informes/Views/uEditorInformePresupuestosClienteReportGrafComp.dfm
@@ -0,0 +1,203 @@
+inherited fEditorInformePresupuestosClienteReportGrafComp: TfEditorInformePresupuestosClienteReportGrafComp
+ Caption = 'fEditorInformePresupuestosClienteReportGrafComp'
+ ClientHeight = 655
+ ClientWidth = 895
+ ExplicitWidth = 903
+ ExplicitHeight = 689
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 895
+ ExplicitWidth = 895
+ inherited Image1: TImage
+ Left = 868
+ ExplicitLeft = 868
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 895
+ ExplicitWidth = 895
+ inherited tbxMenu: TTBXToolbar
+ ExplicitWidth = 895
+ end
+ inherited TBXToolbar1: TTBXToolbar
+ ExplicitWidth = 591
+ object TBXItem58: TTBXItem [0]
+ Action = actRefrescar
+ DisplayMode = nbdmImageAndText
+ Images = SmallImages
+ end
+ end
+ end
+ inherited StatusBar: TJvStatusBar
+ Top = 636
+ Width = 895
+ ExplicitTop = 636
+ ExplicitWidth = 895
+ end
+ inherited TBXMultiDockIzquierdo: TTBXMultiDock
+ Height = 534
+ ExplicitHeight = 534
+ end
+ inherited TBXMultiDockDerecho: TTBXMultiDock
+ Left = 703
+ Width = 192
+ Height = 534
+ ExplicitLeft = 703
+ ExplicitWidth = 192
+ ExplicitHeight = 534
+ inherited pnlParametros: TTBXDockablePanel
+ DockedWidth = 188
+ ExplicitWidth = 192
+ ExplicitHeight = 518
+ inherited TBXDockablePanel1: TTBXDockablePanel
+ Top = 368
+ ExplicitTop = 368
+ ExplicitWidth = 188
+ inherited TBXButton1: TTBXButton
+ AlignWithMargins = True
+ Left = 3
+ Top = 3
+ Width = 182
+ Height = 37
+ Margins.Left = 8
+ Margins.Top = 8
+ Margins.Right = 8
+ Margins.Bottom = 8
+ Align = alTop
+ ExplicitLeft = 3
+ ExplicitTop = 3
+ ExplicitWidth = 182
+ ExplicitHeight = 37
+ end
+ end
+ inline frViewIntervaloComparativo1: TfrViewIntervaloComparativo
+ Left = 0
+ Top = 0
+ Width = 188
+ Height = 280
+ Align = alTop
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 1
+ ReadOnly = False
+ ExplicitWidth = 188
+ ExplicitHeight = 280
+ inherited TBXAlignmentPanel2: TTBXAlignmentPanel
+ Width = 182
+ ExplicitWidth = 182
+ inherited Label3: TLabel
+ Width = 172
+ end
+ inherited cbIntervalo: TcxComboBox
+ Style.LookAndFeel.SkinName = ''
+ StyleDisabled.LookAndFeel.SkinName = ''
+ StyleFocused.LookAndFeel.SkinName = ''
+ StyleHot.LookAndFeel.SkinName = ''
+ ExplicitWidth = 166
+ Width = 166
+ end
+ end
+ inherited TBXLabel2: TTBXLabel
+ Width = 188
+ ExplicitWidth = 188
+ end
+ inherited TBXAlignmentPanel3: TTBXAlignmentPanel
+ Width = 182
+ ExplicitWidth = 182
+ inherited lis: TLabel
+ Width = 172
+ end
+ inherited cbAno1: TcxComboBox
+ Style.LookAndFeel.SkinName = ''
+ StyleDisabled.LookAndFeel.SkinName = ''
+ StyleFocused.LookAndFeel.SkinName = ''
+ StyleHot.LookAndFeel.SkinName = ''
+ ExplicitWidth = 166
+ Width = 166
+ end
+ end
+ inherited TBXAlignmentPanel1: TTBXAlignmentPanel
+ Width = 182
+ ExplicitWidth = 182
+ inherited Label1: TLabel
+ Width = 172
+ end
+ inherited cbAno2: TcxComboBox
+ Style.LookAndFeel.SkinName = ''
+ StyleDisabled.LookAndFeel.SkinName = ''
+ StyleFocused.LookAndFeel.SkinName = ''
+ StyleHot.LookAndFeel.SkinName = ''
+ ExplicitWidth = 166
+ Width = 166
+ end
+ end
+ inherited TBXAlignmentPanel4: TTBXAlignmentPanel
+ Width = 182
+ ExplicitWidth = 182
+ inherited Label2: TLabel
+ Width = 172
+ end
+ end
+ inherited TBXAlignmentPanel5: TTBXAlignmentPanel
+ Width = 182
+ ExplicitWidth = 182
+ inherited Label4: TLabel
+ Width = 172
+ end
+ inherited cbSerie: TcxComboBox
+ Properties.Items.Strings = (
+ 'Todos'
+ 'Aceptados'
+ 'Anulados'
+ 'Pendientes')
+ Style.LookAndFeel.SkinName = ''
+ StyleDisabled.LookAndFeel.SkinName = ''
+ StyleFocused.LookAndFeel.SkinName = ''
+ StyleHot.LookAndFeel.SkinName = ''
+ ExplicitWidth = 166
+ Width = 166
+ end
+ end
+ end
+ inline frViewFiltroClientes1: TfrViewFiltroClientes
+ Left = 0
+ Top = 280
+ Width = 188
+ Height = 195
+ Align = alTop
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 2
+ Visible = False
+ ReadOnly = False
+ ExplicitTop = 280
+ ExplicitWidth = 188
+ inherited TBXLabel2: TTBXLabel
+ Width = 188
+ ExplicitWidth = 188
+ end
+ inherited bElegirCliente: TBitBtn
+ Width = 119
+ ExplicitWidth = 119
+ end
+ inherited edtCliente: TcxTextEdit
+ Style.LookAndFeel.SkinName = ''
+ StyleDisabled.LookAndFeel.SkinName = ''
+ StyleFocused.LookAndFeel.SkinName = ''
+ StyleHot.LookAndFeel.SkinName = ''
+ ExplicitWidth = 152
+ Width = 152
+ end
+ end
+ end
+ end
+end
diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformePresupuestosClienteReportGrafComp.pas b/Source/Modulos/Gestor de informes/Views/uEditorInformePresupuestosClienteReportGrafComp.pas
new file mode 100644
index 00000000..5f6b1ea4
--- /dev/null
+++ b/Source/Modulos/Gestor de informes/Views/uEditorInformePresupuestosClienteReportGrafComp.pas
@@ -0,0 +1,187 @@
+unit uEditorInformePresupuestosClienteReportGrafComp;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorPreview, frxExportText, frxExportRTF, frxExportMail,
+ frxExportXLS, frxExportImage, frxExportPDF, frxClass, frxDCtrl, frxGradient,
+ frxChBox, frxCross, frxRich, frxOLE, frxBarcode, JvAppStorage,
+ JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList,
+ StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TB2ExtItems,
+ TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls,
+ JvExControls, JvNavigationPane, uCustomView,
+ uViewBase, uViewPeriodoFechas, uControllerBase,
+ dxLayoutControl, cxControls, uViewFiltroImportes,
+ FactuGES_Intf, TBXDkPanels, uEditorInformeBase,
+ uIEditorInformeBase, uViewParametrosInforme, uIEditorInformePresupuestosClienteReportGrafComp,
+ uViewIntervaloComparativo, uViewFiltroClientes;
+
+type
+ TfEditorInformePresupuestosClienteReportGrafComp = class(TfEditorInformeBase, IEditorInformePresupuestosClienteReportGrafComp)
+ TBXItem58: TTBXItem;
+ frViewIntervaloComparativo1: TfrViewIntervaloComparativo;
+ frViewFiltroClientes1: TfrViewFiltroClientes;
+ procedure actRefrescarExecute(Sender: TObject);
+ procedure FormShow(Sender: TObject);
+
+ private
+ FListaIDClientes: TIntegerArray;
+ function GetIntervalo: Variant;
+ function GetAno1: Variant;
+ function GetAno2: Variant;
+ function GetListaIDClientes: TIntegerArray;
+ function GetNTop: Variant;
+ function GetSerie: variant;
+
+ procedure RefrescarInforme;
+
+ protected
+ procedure SetController (const Value : IControllerBase); override;
+
+ public
+ property Intervalo: Variant read GetIntervalo;
+ property Ano1: Variant read GetAno1;
+ property Ano2: Variant read GetAno2;
+ property ListaIDClientes: TIntegerArray read GetListaIDClientes;
+ property NTop: Variant read GetNTop;
+ property Serie: Variant read GetSerie;
+
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+
+implementation
+
+{$R *.dfm}
+
+uses uROTypes, DateUtils, uGestorInformesController, uFactuGES_App;
+
+{ TfEditorGestorInformesReport }
+
+procedure TfEditorInformePresupuestosClienteReportGrafComp.actRefrescarExecute(Sender: TObject);
+begin
+ inherited;
+ RefrescarInforme;
+end;
+
+constructor TfEditorInformePresupuestosClienteReportGrafComp.Create(AOwner: TComponent);
+begin
+ inherited;
+ FListaIDClientes := TIntegerArray.Create;
+end;
+
+destructor TfEditorInformePresupuestosClienteReportGrafComp.Destroy;
+begin
+ FListaIDClientes.Free;
+ inherited;
+end;
+
+procedure TfEditorInformePresupuestosClienteReportGrafComp.FormShow(
+ Sender: TObject);
+begin
+ inherited;
+ actTodaPagina.Execute;
+end;
+
+function TfEditorInformePresupuestosClienteReportGrafComp.GetIntervalo: Variant;
+begin
+ Result := frViewIntervaloComparativo1.cbIntervalo.EditValue;
+end;
+
+function TfEditorInformePresupuestosClienteReportGrafComp.GetAno1: Variant;
+begin
+ Result := frViewIntervaloComparativo1.cbAno1.EditValue;
+end;
+
+function TfEditorInformePresupuestosClienteReportGrafComp.GetAno2: Variant;
+begin
+ Result := frViewIntervaloComparativo1.cbAno2.EditValue;
+end;
+
+function TfEditorInformePresupuestosClienteReportGrafComp.GetListaIDClientes: TIntegerArray;
+begin
+ FListaIDClientes.Clear;
+ if Assigned(frViewFiltroClientes1.Cliente) then
+ FListaIDClientes.Add(frViewFiltroClientes1.Cliente.ID);
+
+ Result := FListaIDClientes;
+end;
+
+function TfEditorInformePresupuestosClienteReportGrafComp.GetNTop: Variant;
+begin
+ Result := frViewIntervaloComparativo1.stopN.Value;
+end;
+
+function TfEditorInformePresupuestosClienteReportGrafComp.GetSerie: variant;
+begin
+ Result := frViewIntervaloComparativo1.Serie;
+end;
+
+procedure TfEditorInformePresupuestosClienteReportGrafComp.RefrescarInforme;
+var
+ AStream: Binary;
+begin
+ ShowHourglassCursor;
+ try
+
+ AStream := (Controller as IGestorInformesController).DataModule.GenerarInformePresupuestosCliGrafComp(
+ AppFactuGES.EmpresaActiva.ID,
+ Intervalo,
+ Ano1,
+ Ano2,
+ ListaIDClientes,
+ NTop,
+ Serie);
+
+ LoadFromStream(AStream);
+ Report.ShowPreparedReport;
+ finally
+ FreeAndNil(AStream);
+ HideHourglassCursor;
+ end;
+end;
+
+procedure TfEditorInformePresupuestosClienteReportGrafComp.SetController(
+ const Value: IControllerBase);
+var
+ AListaAnos: TStringList;
+ AListaIntervalos: TStringList;
+ i: Integer;
+
+begin
+ inherited;
+
+ AListaIntervalos := (Controller as IGestorInformesController).DarListaIntervalos;
+ AListaAnos := (Controller as IGestorInformesController).DarListaAnosFacturasProv;
+
+ if Assigned(AListaIntervalos) then
+ begin
+ frViewIntervaloComparativo1.cbIntervalo.Properties.Items.BeginUpdate;
+ frViewIntervaloComparativo1.cbIntervalo.Properties.Items.Clear;
+ for i := 0 to AListaIntervalos.Count - 1 do
+ frViewIntervaloComparativo1.cbIntervalo.Properties.Items.Append(AListaIntervalos.Strings[i]);
+ frViewIntervaloComparativo1.cbIntervalo.Properties.Items.EndUpdate;
+ end;
+
+ if Assigned(AListaAnos) then
+ begin
+ frViewIntervaloComparativo1.cbAno1.Properties.Items.BeginUpdate;
+ frViewIntervaloComparativo1.cbAno2.Properties.Items.BeginUpdate;
+ frViewIntervaloComparativo1.cbAno1.Properties.Items.Clear;
+ frViewIntervaloComparativo1.cbAno2.Properties.Items.Clear;
+ for i := 0 to AListaAnos.Count - 1 do
+ begin
+ frViewIntervaloComparativo1.cbAno1.Properties.Items.Append(AListaAnos.Strings[i]);
+ frViewIntervaloComparativo1.cbAno2.Properties.Items.Append(AListaAnos.Strings[i]);
+ end;
+ frViewIntervaloComparativo1.cbAno1.Properties.Items.EndUpdate;
+ frViewIntervaloComparativo1.cbAno2.Properties.Items.EndUpdate;
+ end;
+
+ frViewIntervaloComparativo1.cbIntervalo.ItemIndex := 0;
+ frViewIntervaloComparativo1.cbAno1.ItemIndex := 0;
+end;
+
+end.
diff --git a/Source/Modulos/Gestor de informes/Views/uGestorInformesViewRegister.pas b/Source/Modulos/Gestor de informes/Views/uGestorInformesViewRegister.pas
index 18166bf9..c1309e78 100644
--- a/Source/Modulos/Gestor de informes/Views/uGestorInformesViewRegister.pas
+++ b/Source/Modulos/Gestor de informes/Views/uGestorInformesViewRegister.pas
@@ -16,7 +16,8 @@ uses
uEditorInformeIVAProveedoresReport, uEditorInformeFacturasProveedorReport, uEditorInformeFacturasProveedorPendientesReport,
uEditorInformeRecibosProveedorReport, uEditorInformeRecibosProvPendientesReport,
- uEditorInformeFacturasProveedorReportGrafComp, uEditorInformeFacturasClienteReportGrafComp, uEditorInformeBeneficiosReportGrafComp;
+ uEditorInformeFacturasProveedorReportGrafComp, uEditorInformeFacturasClienteReportGrafComp, uEditorInformeBeneficiosReportGrafComp,
+ uEditorInformePresupuestosClienteReportGrafComp;
procedure RegisterViews;
begin
@@ -37,6 +38,7 @@ begin
EditorRegistry.RegisterClass(TfEditorInformeFacturasProveedorReportGrafComp, 'EditorInformeFacturasProveedorReportGrafComp');
EditorRegistry.RegisterClass(TfEditorInformeFacturasClienteReportGrafComp, 'EditorInformeFacturasClienteReportGrafComp');
EditorRegistry.RegisterClass(TfEditorInformeBeneficiosReportGrafComp, 'EditorInformeBeneficiosReportGrafComp');
+ EditorRegistry.RegisterClass(TfEditorInformePresupuestosClienteReportGrafComp, 'EditorInformePresupuestosClienteReportGrafComp');
end;
procedure UnregisterViews;
@@ -57,7 +59,8 @@ begin
EditorRegistry.UnRegisterClass(TfEditorInformeFacturasProveedorReportGrafComp);
EditorRegistry.UnRegisterClass(TfEditorInformeFacturasClienteReportGrafComp);
- EditorRegistry.UnRegisterClass(TfEditorInformeBeneficiosReportGrafComp);
+ EditorRegistry.UnRegisterClass(TfEditorInformeBeneficiosReportGrafComp);
+ EditorRegistry.UnRegisterClass(TfEditorInformePresupuestosClienteReportGrafComp);
end;
end.
diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm
index 33e02bc6..9a9084d8 100644
--- a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm
+++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm
@@ -2,8 +2,8 @@ object RptPresupuestosCliente: TRptPresupuestosCliente
OldCreateOrder = True
OnCreate = DataModuleCreate
OnDestroy = DataModuleDestroy
- Height = 556
- Width = 858
+ Height = 763
+ Width = 867
object DADSCabecera: TDADataSource
DataSet = tbl_Cabecera.Dataset
DataTable = tbl_Cabecera
@@ -17,23 +17,23 @@ object RptPresupuestosCliente: TRptPresupuestosCliente
Top = 72
end
object frxBarCodeObject1: TfrxBarCodeObject
- Left = 528
+ Left = 776
Top = 488
end
object frxOLEObject1: TfrxOLEObject
- Left = 400
+ Left = 648
Top = 488
end
object frxCrossObject1: TfrxCrossObject
- Left = 400
+ Left = 648
Top = 440
end
object frxCheckBoxObject1: TfrxCheckBoxObject
- Left = 464
+ Left = 712
Top = 488
end
object frxGradientObject1: TfrxGradientObject
- Left = 464
+ Left = 712
Top = 440
end
object schReport: TDASchema
@@ -194,6 +194,250 @@ object RptPresupuestosCliente: TRptPresupuestosCliente
DataType = datCurrency
end>
end
+ item
+ Params = <
+ item
+ Name = 'ID_EMPRESA1'
+ Value = ''
+ end
+ item
+ Name = 'ANO1'
+ Value = ''
+ end
+ item
+ Name = 'ID_EMPRESA2'
+ Value = ''
+ end
+ item
+ Name = 'ANO2'
+ Value = ''
+ end>
+ Statements = <
+ item
+ ConnectionType = 'Interbase'
+ Default = True
+ Name = 'IBX'
+ SQL =
+ 'select VALOR, DESCRIPCION, periodo1.ANO as Ano1, periodo1.ACEPTA' +
+ 'DOS, periodo1.ANULADOS, periodo1.PENDIENTES,'#10'periodo2.ANO as Ano' +
+ '2, periodo2.ACEPTADOS, periodo2.ANULADOS, periodo2.PENDIENTES,'#10#10 +
+ '(periodo1.ACEPTADOS - periodo2.ACEPTADOS) as Diferencia_Aceptado' +
+ 's,'#10'(periodo1.ANULADOS - periodo2.ANULADOS) as Diferencia_Anulado' +
+ 's,'#10'(periodo1.PENDIENTES - periodo2.PENDIENTES) as Diferencia_Pen' +
+ 'dientes'#10#10'FROM'#10'periodos_aux'#10'left join'#10'(select comp1.ID_EMPRESA, c' +
+ 'omp1.ANO, MES as NFILA, SUM(comp1.ACEPTADOS) as ACEPTADOS, SUM(c' +
+ 'omp1.ANULADOS) as ANULADOS, SUM(comp1.PENDIENTES) as PENDIENTES'#10 +
+ 'from V_INF_PRE_CLIENTE comp1'#10'where ID_EMPRESA = :ID_EMPRESA1'#10'and' +
+ ' (ANO = :ANO1)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) periodo1 on' +
+ ' (VALOR = periodo1.NFILA)'#10#10'left join'#10'(select comp2.ID_EMPRESA, c' +
+ 'omp2.ANO, MES as NFILA, SUM(comp2.ACEPTADOS) as ACEPTADOS, SUM(c' +
+ 'omp2.ANULADOS) as ANULADOS, SUM(comp2.PENDIENTES) as PENDIENTES'#10 +
+ 'from V_INF_PRE_CLIENTE comp2'#10'where ID_EMPRESA = :ID_EMPRESA2'#10'and' +
+ ' (ANO = :ANO2)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) periodo2 on' +
+ ' (VALOR = periodo2.NFILA)'#10#10'where periodo= '#39'MENSUAL'#39#10'order by val' +
+ 'or asc'#10
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'VALOR'
+ TableField = 'VALOR'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'ANO1'
+ TableField = 'ANO1'
+ end
+ item
+ DatasetField = 'ACEPTADOS'
+ TableField = 'ACEPTADOS'
+ end
+ item
+ DatasetField = 'ANULADOS'
+ TableField = 'ANULADOS'
+ end
+ item
+ DatasetField = 'PENDIENTES'
+ TableField = 'PENDIENTES'
+ end
+ item
+ DatasetField = 'ANO2'
+ TableField = 'ANO2'
+ end
+ item
+ DatasetField = 'ACEPTADOS1'
+ TableField = 'ACEPTADOS1'
+ end
+ item
+ DatasetField = 'ANULADOS1'
+ TableField = 'ANULADOS1'
+ end
+ item
+ DatasetField = 'PENDIENTES1'
+ TableField = 'PENDIENTES1'
+ end
+ item
+ DatasetField = 'DIFERENCIA_ACEPTADOS'
+ TableField = 'DIFERENCIA_ACEPTADOS'
+ end
+ item
+ DatasetField = 'DIFERENCIA_ANULADOS'
+ TableField = 'DIFERENCIA_ANULADOS'
+ end
+ item
+ DatasetField = 'DIFERENCIA_PENDIENTES'
+ TableField = 'DIFERENCIA_PENDIENTES'
+ end>
+ end>
+ Name = 'InformeListadoPresupuestosGrafCompMensual'
+ Fields = <
+ item
+ Name = 'VALOR'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 20
+ end
+ item
+ Name = 'ANO1'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'ACEPTADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANULADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PENDIENTES'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANO2'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'ACEPTADOS1'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANULADOS1'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PENDIENTES1'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'DIFERENCIA_ACEPTADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'DIFERENCIA_ANULADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'DIFERENCIA_PENDIENTES'
+ DataType = datLargeInt
+ end>
+ end
+ item
+ Params = <
+ item
+ Name = 'ID_EMPRESA'
+ Value = ''
+ end
+ item
+ Name = 'ANO'
+ Value = ''
+ end
+ item
+ Name = 'NTOP'
+ Value = ''
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ ConnectionType = 'Interbase'
+ Default = True
+ Name = 'IBX'
+ SQL =
+ 'select P.ANO, C.REFERENCIA, C.NOMBRE, p.Importe_TOTAL_ANO,'#10'COUNT' +
+ '(P.ID_PRESUPUESTO) as NUMPRE, SUM(P.IMPORTE_TOTAL) as IMPORTE_TO' +
+ 'TAL,'#10'((SUM(P.IMPORTE_TOTAL)*100)/p.Importe_TOTAL_ANO) as PORCENT' +
+ 'AJE'#10#10'from V_INF_PRE_CLIENTE P'#10'left join CONTACTOS C on P.ID_CLIE' +
+ 'NTE = C.ID'#10#10'where p.ID_EMPRESA = :ID_EMPRESA'#10'and P.ANO = :ANO'#10'gr' +
+ 'oup by 1,2,3,4'#10'order by 1,6 desc'#10'rows 1 to :NTOP'#10
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'ANO'
+ TableField = 'ANO'
+ end
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'IMPORTE_TOTAL_ANO'
+ TableField = 'IMPORTE_TOTAL_ANO'
+ end
+ item
+ DatasetField = 'NUMPRE'
+ TableField = 'NUMPRE'
+ end
+ item
+ DatasetField = 'IMPORTE_TOTAL'
+ TableField = 'IMPORTE_TOTAL'
+ end
+ item
+ DatasetField = 'PORCENTAJE'
+ TableField = 'PORCENTAJE'
+ end>
+ end>
+ Name = 'InformeListadoClientesMayorImporteResumen'
+ Fields = <
+ item
+ Name = 'ANO'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 255
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 255
+ end
+ item
+ Name = 'IMPORTE_TOTAL_ANO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'NUMPRE'
+ DataType = datInteger
+ end
+ item
+ Name = 'IMPORTE_TOTAL'
+ DataType = datCurrency
+ end
+ item
+ Name = 'PORCENTAJE'
+ DataType = datCurrency
+ end>
+ end
item
Params = <
item
@@ -855,6 +1099,524 @@ object RptPresupuestosCliente: TRptPresupuestosCliente
Name = 'IMPORTE_TOTAL'
DataType = datCurrency
end>
+ end
+ item
+ Params = <
+ item
+ Name = 'ID_EMPRESA1'
+ Value = ''
+ end
+ item
+ Name = 'ANO1'
+ Value = ''
+ end
+ item
+ Name = 'ID_EMPRESA2'
+ Value = ''
+ end
+ item
+ Name = 'ANO2'
+ Value = ''
+ end>
+ Statements = <
+ item
+ ConnectionType = 'Interbase'
+ Default = True
+ SQL =
+ 'select VALOR, DESCRIPCION, periodo1.ANO as Ano1, periodo1.ACEPTA' +
+ 'DOS, periodo1.ANULADOS, periodo1.PENDIENTES,'#10'periodo2.ANO as Ano' +
+ '2, periodo2.ACEPTADOS, periodo2.ANULADOS, periodo2.PENDIENTES,'#10#10 +
+ '(periodo1.ACEPTADOS - periodo2.ACEPTADOS) as Diferencia_Aceptado' +
+ 's,'#10'(periodo1.ANULADOS - periodo2.ANULADOS) as Diferencia_Anulado' +
+ 's,'#10'(periodo1.PENDIENTES - periodo2.PENDIENTES) as Diferencia_Pen' +
+ 'dientes'#10#10'FROM'#10'periodos_aux'#10'left join'#10'(select comp1.ID_EMPRESA, c' +
+ 'omp1.ANO, TRIMESTRE as NFILA, SUM(comp1.ACEPTADOS) as ACEPTADOS,' +
+ ' SUM(comp1.ANULADOS) as ANULADOS, SUM(comp1.PENDIENTES) as PENDI' +
+ 'ENTES'#10'from V_INF_PRE_CLIENTE comp1'#10'where ID_EMPRESA = :ID_EMPRES' +
+ 'A1'#10'and (ANO = :ANO1)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) perio' +
+ 'do1 on (VALOR = periodo1.NFILA)'#10#10'left join'#10'(select comp2.ID_EMPR' +
+ 'ESA, comp2.ANO, TRIMESTRE as NFILA, SUM(comp2.ACEPTADOS) as ACEP' +
+ 'TADOS, SUM(comp2.ANULADOS) as ANULADOS, SUM(comp2.PENDIENTES) as' +
+ ' PENDIENTES'#10'from V_INF_PRE_CLIENTE comp2'#10'where ID_EMPRESA = :ID_' +
+ 'EMPRESA2'#10'and (ANO = :ANO2)'#10'group by 1,2,3'#10'order by 1 desc,2 asc)' +
+ ' periodo2 on (VALOR = periodo2.NFILA)'#10#10'where periodo= '#39'TRIMESTRA' +
+ 'L'#39#10'order by valor asc'#10
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'VALOR'
+ TableField = 'VALOR'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'ANO1'
+ TableField = 'ANO1'
+ end
+ item
+ DatasetField = 'ACEPTADOS'
+ TableField = 'ACEPTADOS'
+ end
+ item
+ DatasetField = 'ANULADOS'
+ TableField = 'ANULADOS'
+ end
+ item
+ DatasetField = 'PENDIENTES'
+ TableField = 'PENDIENTES'
+ end
+ item
+ DatasetField = 'ANO2'
+ TableField = 'ANO2'
+ end
+ item
+ DatasetField = 'ACEPTADOS1'
+ TableField = 'ACEPTADOS1'
+ end
+ item
+ DatasetField = 'ANULADOS1'
+ TableField = 'ANULADOS1'
+ end
+ item
+ DatasetField = 'PENDIENTES1'
+ TableField = 'PENDIENTES1'
+ end
+ item
+ DatasetField = 'DIFERENCIA_ACEPTADOS'
+ TableField = 'DIFERENCIA_ACEPTADOS'
+ end
+ item
+ DatasetField = 'DIFERENCIA_ANULADOS'
+ TableField = 'DIFERENCIA_ANULADOS'
+ end
+ item
+ DatasetField = 'DIFERENCIA_PENDIENTES'
+ TableField = 'DIFERENCIA_PENDIENTES'
+ end>
+ end>
+ Name = 'InformeListadoPresupuestosGrafCompTrimestral'
+ Fields = <
+ item
+ Name = 'VALOR'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 20
+ end
+ item
+ Name = 'ANO1'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'ACEPTADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANULADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PENDIENTES'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANO2'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'ACEPTADOS1'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANULADOS1'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PENDIENTES1'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'DIFERENCIA_ACEPTADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'DIFERENCIA_ANULADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'DIFERENCIA_PENDIENTES'
+ DataType = datLargeInt
+ end>
+ end
+ item
+ Params = <
+ item
+ Name = 'ID_EMPRESA1'
+ Value = ''
+ end
+ item
+ Name = 'ANO1'
+ Value = ''
+ end
+ item
+ Name = 'ID_EMPRESA2'
+ Value = ''
+ end
+ item
+ Name = 'ANO2'
+ Value = ''
+ end>
+ Statements = <
+ item
+ ConnectionType = 'Interbase'
+ Default = True
+ SQL =
+ 'select VALOR, DESCRIPCION, periodo1.ANO as Ano1, periodo1.ACEPTA' +
+ 'DOS, periodo1.ANULADOS, periodo1.PENDIENTES,'#10'periodo2.ANO as Ano' +
+ '2, periodo2.ACEPTADOS, periodo2.ANULADOS, periodo2.PENDIENTES,'#10#10 +
+ '(periodo1.ACEPTADOS - periodo2.ACEPTADOS) as Diferencia_Aceptado' +
+ 's,'#10'(periodo1.ANULADOS - periodo2.ANULADOS) as Diferencia_Anulado' +
+ 's,'#10'(periodo1.PENDIENTES - periodo2.PENDIENTES) as Diferencia_Pen' +
+ 'dientes'#10#10'FROM'#10'periodos_aux'#10'left join'#10'(select comp1.ID_EMPRESA, c' +
+ 'omp1.ANO, SEMESTRE as NFILA, SUM(comp1.ACEPTADOS) as ACEPTADOS, ' +
+ 'SUM(comp1.ANULADOS) as ANULADOS, SUM(comp1.PENDIENTES) as PENDIE' +
+ 'NTES'#10'from V_INF_PRE_CLIENTE comp1'#10'where ID_EMPRESA = :ID_EMPRESA' +
+ '1'#10'and (ANO = :ANO1)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) period' +
+ 'o1 on (VALOR = periodo1.NFILA)'#10#10'left join'#10'(select comp2.ID_EMPRE' +
+ 'SA, comp2.ANO, SEMESTRE as NFILA, SUM(comp2.ACEPTADOS) as ACEPTA' +
+ 'DOS, SUM(comp2.ANULADOS) as ANULADOS, SUM(comp2.PENDIENTES) as P' +
+ 'ENDIENTES'#10'from V_INF_PRE_CLIENTE comp2'#10'where ID_EMPRESA = :ID_EM' +
+ 'PRESA2'#10'and (ANO = :ANO2)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) p' +
+ 'eriodo2 on (VALOR = periodo2.NFILA)'#10#10'where periodo= '#39'SEMESTRAL'#39#10 +
+ 'order by valor asc'#10
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'VALOR'
+ TableField = 'VALOR'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'ANO1'
+ TableField = 'ANO1'
+ end
+ item
+ DatasetField = 'ACEPTADOS'
+ TableField = 'ACEPTADOS'
+ end
+ item
+ DatasetField = 'ANULADOS'
+ TableField = 'ANULADOS'
+ end
+ item
+ DatasetField = 'PENDIENTES'
+ TableField = 'PENDIENTES'
+ end
+ item
+ DatasetField = 'ANO2'
+ TableField = 'ANO2'
+ end
+ item
+ DatasetField = 'ACEPTADOS1'
+ TableField = 'ACEPTADOS1'
+ end
+ item
+ DatasetField = 'ANULADOS1'
+ TableField = 'ANULADOS1'
+ end
+ item
+ DatasetField = 'PENDIENTES1'
+ TableField = 'PENDIENTES1'
+ end
+ item
+ DatasetField = 'DIFERENCIA_ACEPTADOS'
+ TableField = 'DIFERENCIA_ACEPTADOS'
+ end
+ item
+ DatasetField = 'DIFERENCIA_ANULADOS'
+ TableField = 'DIFERENCIA_ANULADOS'
+ end
+ item
+ DatasetField = 'DIFERENCIA_PENDIENTES'
+ TableField = 'DIFERENCIA_PENDIENTES'
+ end>
+ end>
+ Name = 'InformeListadoPresupuestosGrafCompSemestral'
+ Fields = <
+ item
+ Name = 'VALOR'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 20
+ end
+ item
+ Name = 'ANO1'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'ACEPTADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANULADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PENDIENTES'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANO2'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'ACEPTADOS1'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANULADOS1'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PENDIENTES1'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'DIFERENCIA_ACEPTADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'DIFERENCIA_ANULADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'DIFERENCIA_PENDIENTES'
+ DataType = datLargeInt
+ end>
+ end
+ item
+ Params = <
+ item
+ Name = 'ID_EMPRESA'
+ Value = ''
+ end
+ item
+ Name = 'ANO'
+ Value = ''
+ end
+ item
+ Name = 'NTOP'
+ Value = ''
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ ConnectionType = 'Interbase'
+ Default = True
+ SQL =
+ 'select P.ANO, C.REFERENCIA, C.NOMBRE, p.Importe_TOTAL_ANO,'#10'COUNT' +
+ '(P.ID_PRESUPUESTO) as NUMPRE,'#10'SUM(P.aceptados) as ACEPTADOS,'#10'SUM' +
+ '(P.anulados) as ANULADOS,'#10'SUM(P.pendientes) as PENDIENTES,'#10'((SUM' +
+ '(P.IMPORTE_TOTAL)*100)/p.Importe_TOTAL_ANO) as PORCENTAJE'#10#10'from ' +
+ 'V_INF_PRE_CLIENTE P'#10'left join CONTACTOS C on P.ID_CLIENTE = C.ID' +
+ #10#10'where p.ID_EMPRESA = :ID_EMPRESA'#10'and P.ANO = :ANO'#10'group by 1,2' +
+ ',3,4'#10'order by 1,5 desc'#10'rows 1 to :NTOP'#10
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'ANO'
+ TableField = 'ANO'
+ end
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'IMPORTE_TOTAL_ANO'
+ TableField = 'IMPORTE_TOTAL_ANO'
+ end
+ item
+ DatasetField = 'NUMPRE'
+ TableField = 'NUMPRE'
+ end
+ item
+ DatasetField = 'PORCENTAJE'
+ TableField = 'PORCENTAJE'
+ end
+ item
+ DatasetField = 'ACEPTADOS'
+ TableField = 'ACEPTADOS'
+ end
+ item
+ DatasetField = 'ANULADOS'
+ TableField = 'ANULADOS'
+ end
+ item
+ DatasetField = 'PENDIENTES'
+ TableField = 'PENDIENTES'
+ end>
+ end>
+ Name = 'InformeListadoClientesMayorNPresupuestosResumen'
+ Fields = <
+ item
+ Name = 'ANO'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 255
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 255
+ end
+ item
+ Name = 'IMPORTE_TOTAL_ANO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'NUMPRE'
+ DataType = datInteger
+ end
+ item
+ Name = 'ACEPTADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANULADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PENDIENTES'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PORCENTAJE'
+ DataType = datCurrency
+ end>
+ end
+ item
+ Params = <
+ item
+ Name = 'ID_EMPRESA'
+ Value = ''
+ end
+ item
+ Name = 'ANO'
+ Value = ''
+ end
+ item
+ Name = 'NTOP'
+ Value = ''
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ ConnectionType = 'Interbase'
+ Default = True
+ SQL =
+ 'select P.ANO, C.REFERENCIA, C.NOMBRE, p.Importe_TOTAL_ANO,'#10'COUNT' +
+ '(P.ID_PRESUPUESTO) as NUMPRE,'#10'SUM(P.aceptados) as ACEPTADOS,'#10'SUM' +
+ '(P.anulados) as ANULADOS,'#10'SUM(P.pendientes) as PENDIENTES,'#10'((SUM' +
+ '(P.IMPORTE_TOTAL)*100)/p.Importe_TOTAL_ANO) as PORCENTAJE'#10#10'from ' +
+ 'V_INF_PRE_CLIENTE P'#10'left join CONTACTOS C on P.ID_CLIENTE = C.ID' +
+ #10#10'where p.ID_EMPRESA = :ID_EMPRESA'#10'and P.ANO = :ANO'#10'group by 1,2' +
+ ',3,4'#10'order by 1,7 desc'#10'rows 1 to :NTOP'#10
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'ANO'
+ TableField = 'ANO'
+ end
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'IMPORTE_TOTAL_ANO'
+ TableField = 'IMPORTE_TOTAL_ANO'
+ end
+ item
+ DatasetField = 'NUMPRE'
+ TableField = 'NUMPRE'
+ end
+ item
+ DatasetField = 'PORCENTAJE'
+ TableField = 'PORCENTAJE'
+ end
+ item
+ DatasetField = 'ACEPTADOS'
+ TableField = 'ACEPTADOS'
+ end
+ item
+ DatasetField = 'ANULADOS'
+ TableField = 'ANULADOS'
+ end
+ item
+ DatasetField = 'PENDIENTES'
+ TableField = 'PENDIENTES'
+ end>
+ end>
+ Name = 'InformeListadoClientesMayorNAnuladosResumen'
+ Fields = <
+ item
+ Name = 'ANO'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 255
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 255
+ end
+ item
+ Name = 'IMPORTE_TOTAL_ANO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'NUMPRE'
+ DataType = datInteger
+ end
+ item
+ Name = 'ACEPTADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANULADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PENDIENTES'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PORCENTAJE'
+ DataType = datCurrency
+ end>
end>
JoinDataTables = <>
UnionDataTables = <>
@@ -879,168 +1641,29 @@ object RptPresupuestosCliente: TRptPresupuestosCliente
PreviewOptions.Zoom = 1.000000000000000000
PrintOptions.Printer = 'Por defecto'
PrintOptions.PrintOnSheet = 0
- ReportOptions.CreateDate = 39065.872423495400000000
- ReportOptions.LastChange = 39878.788205462970000000
+ ReportOptions.CreateDate = 37800.807714351900000000
+ ReportOptions.LastChange = 40652.573738773150000000
ScriptLanguage = 'PascalScript'
ScriptText.Strings = (
- ''
- 'procedure DatosEmpresaOnBeforePrint(Sender: TfrxComponent);'
- 'var'
- ' Cadena: String;'
+ 'procedure Chart1OnBeforePrint(Sender: TfrxComponent);'
'begin'
- '{ DatosEmpresa.Lines.Clear;'
- ' if ( <> '#39#39') then'
- ' Cadena := '#39'TLF: '#39' + ;'
- ' if ( <> '#39#39') then'
+ '{ '
+ ' if ( <> 0) then'
- ' Cadena := Cadena + '#39' FAX: '#39' + ;'
- ' DatosEmpresa.Lines.Add(Cadena);'
- '}'
- 'end;'
+ ' TLineSeries(Chart1.Series[0]).Title := '#39'Total Facturado '#39' +' +
+ ' IntToStr();'
''
- 'procedure NombreEmpresaOnBeforePrint(Sender: TfrxComponent);'
- 'begin'
- '{ NombreEmpresa.Lines.Clear;'
- ' NombreEmpresa.Lines.Add();'
- '}'
- 'end;'
- ''
- 'procedure DireccionEnvioOnBeforePrint(Sender: TfrxComponent);'
- 'var'
- ' ACadena : String;'
- 'begin'
- '{ ACadena := '#39#39';'
- ' DireccionEnvio.Lines.Clear;'
- ' if ( <> '#39#39') then'
- ' ACadena := ;'
- ''
- ' if ( <> '#39#39') then'
+ ' if ( <> 0) then'
- ' ACadena := ACadena + '#39' '#39' + ;'
- ''
- ' DireccionEnvio.Lines.Add(ACadena);'
- ' ACadena := '#39#39';'
- ' DireccionEnvio.Lines.Add();'
- ' if ( <> '#39#39') then'
- ' ACadena := + '#39' '#39';'
- ' if ( <> '#39#39') then'
- ' ACadena := ACadena + ;'
- ''
- ' if (ACadena <> '#39#39') then'
- ' DireccionEnvio.Lines.Add(ACadena);'
- ''
- ' if ( <> '#39#39') then'
- ' DireccionEnvio.Lines.Add();'
- ''
- ' if ( <> '#39#39') then'
- ' DireccionEnvio.Lines.Add();'
- '}'
- 'end;'
- ''
- 'procedure PageHeader1OnBeforePrint(Sender: TfrxComponent);'
- 'begin'
- ' if not Engine.FinalPass then'
- ' Set('#39'TotalPaginas'#39', ( + 1));'
- ''
- ' if Engine.FinalPass then'
- ' Set('#39'Pagina'#39', ( + 1)); '
- 'end;'
- ''
- 'procedure frxReportOnStartReport(Sender: TfrxComponent);'
- 'begin'
- ' Set('#39'Pagina'#39', 0);'
- ' Set('#39'TotalPaginas'#39', 0);'
- ' Set('#39'Capitulo'#39', '#39'0'#39');'
- ' Set('#39'NumCapitulos'#39', 0);'
- ' Set('#39'TextoNumCapitulo'#39', '#39#39#39' '#39#39#39'); '
- 'end;'
- ''
- 'procedure Rich3OnBeforePrint(Sender: TfrxComponent);'
- 'begin'
- ' if Engine.FinalPass then'
- ' begin '
- ' Set('#39'Capitulo'#39', ( + 1));'
- ' if ( = 1) then'
-
- ' MasterData1.Visible := False; ' +
- ' '
- ' end'
+ ' TLineSeries(Chart1.Series[1]).Title := '#39'Total Facturado '#39' +' +
+ ' IntToStr()'
' else'
- ' Set('#39'NumCapitulos'#39', ( + 1)); '
- 'end;'
- ''
- 'procedure Page2OnBeforePrint(Sender: TfrxComponent);'
- 'begin'
- ' if (Length() = 0) then'
-
- ' Page2.Visible := False; ' +
- ' '
- 'end;'
- ''
- 'procedure Memo45OnBeforePrint(Sender: TfrxComponent);'
- 'begin'
- ' if Engine.FinalPass then'
- ' begin'
-
- ' Set('#39'Capitulo'#39', ( + 1)); ' +
- ' '
- ' Set('#39'TextoNumCapitulo'#39', );'
- ''
-
- ' if (( = 1) and ( =' +
- ' '#39'General'#39')) then'
- ' MasterData1.Visible := False'
- ' else begin '
-
- ' if ( = '#39'Titulo opcional'#39') ' +
- 'then'
- ' begin'
- ' Set('#39'TextoNumCapitulo'#39', '#39#39#39'OPCIONAL'#39#39#39');'
- ' end'
- ' end '
- ' end'
- ' else '
- ' Set('#39'NumCapitulos'#39', ( + 1));'
- 'end;'
- ''
- 'procedure Memo47OnBeforePrint(Sender: TfrxComponent);'
- 'begin'
- ' if (Length() = 0) then'
- ' begin'
-
- ' Rich8.Visible := False; ' +
- ' '
- ' Memo47.Visible := False;'
- ' end '
- 'end;'
- ''
- 'procedure Footer2OnBeforePrint(Sender: TfrxComponent);'
- 'begin'
- ' if not (() > 0) then'
- ' begin'
- ' mBonificacion.Visible := False;'
-
- ' mImporteFinal.Visible := False; ' +
- ' '
- ' end; '
- 'end;'
- ''
- ''
- 'procedure Rich2OnAfterData(Sender: TfrxComponent);'
- 'begin'
- ''
- 'end;'
- ''
- 'procedure Rich2OnBeforePrint(Sender: TfrxComponent);'
- 'begin'
- ' '
+ ' Chart1.Series[1].Active := False;'
+ '} '
'end;'
''
'begin'
- ''
- 'end.')
+ 'end. ')
ShowProgress = False
StoreInDFM = False
OnStartReport = 'frxReportOnStartReport'
@@ -1631,7 +2254,7 @@ object RptPresupuestosCliente: TRptPresupuestosCliente
FitWindow = False
CenterWindow = False
PrintScaling = False
- Left = 528
+ Left = 776
Top = 440
end
object DADSInformeListadoPresupuestos: TDADataSource
@@ -1837,4 +2460,494 @@ object RptPresupuestosCliente: TRptPresupuestosCliente
Left = 440
Top = 128
end
+ object frxDBInformeListadoPresupuestosGrafComp: TfrxDBDataset
+ UserName = 'frxDBInformeListadoPresupuestosGrafComp'
+ CloseDataSource = False
+ DataSource = DASInformeListadoPresupuestosGrafComp
+ BCDToCurrency = False
+ Left = 416
+ Top = 192
+ end
+ object DASInformeListadoPresupuestosGrafComp: TDADataSource
+ Left = 416
+ Top = 240
+ end
+ object tbl_InformeListadoPresupuestosGrafCompMensual: TDAMemDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'VALOR'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 20
+ end
+ item
+ Name = 'ANO1'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'ACEPTADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANULADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PENDIENTES'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANO2'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'ACEPTADOS1'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANULADOS1'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PENDIENTES1'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'DIFERENCIA_ACEPTADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'DIFERENCIA_ANULADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'DIFERENCIA_PENDIENTES'
+ DataType = datLargeInt
+ end>
+ Params = <
+ item
+ Name = 'ID_EMPRESA1'
+ Value = ''
+ end
+ item
+ Name = 'ANO1'
+ Value = ''
+ end
+ item
+ Name = 'ID_EMPRESA2'
+ Value = ''
+ end
+ item
+ Name = 'ANO2'
+ Value = ''
+ end>
+ LogChanges = False
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ LocalSchema = schReport
+ LocalDataStreamer = DABin2DataStreamer1
+ LogicalName = 'InformeListadoPresupuestosGrafCompMensual'
+ IndexDefs = <>
+ Left = 416
+ Top = 296
+ end
+ object tbl_InformeListadoPresupuestosGrafCompTrimestral: TDAMemDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'VALOR'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 20
+ end
+ item
+ Name = 'ANO1'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'ACEPTADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANULADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PENDIENTES'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANO2'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'ACEPTADOS1'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANULADOS1'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PENDIENTES1'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'DIFERENCIA_ACEPTADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'DIFERENCIA_ANULADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'DIFERENCIA_PENDIENTES'
+ DataType = datLargeInt
+ end>
+ Params = <
+ item
+ Name = 'ID_EMPRESA1'
+ Value = ''
+ end
+ item
+ Name = 'ANO1'
+ Value = ''
+ end
+ item
+ Name = 'ID_EMPRESA2'
+ Value = ''
+ end
+ item
+ Name = 'ANO2'
+ Value = ''
+ end>
+ LogChanges = False
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ LocalSchema = schReport
+ LocalDataStreamer = DABin2DataStreamer1
+ LogicalName = 'InformeListadoPresupuestosGrafCompTrimestral'
+ IndexDefs = <>
+ Left = 416
+ Top = 352
+ end
+ object tbl_InformeListadoPresupuestosGrafCompSemestral: TDAMemDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'VALOR'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 20
+ end
+ item
+ Name = 'ANO1'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'ACEPTADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANULADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PENDIENTES'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANO2'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'ACEPTADOS1'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANULADOS1'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PENDIENTES1'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'DIFERENCIA_ACEPTADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'DIFERENCIA_ANULADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'DIFERENCIA_PENDIENTES'
+ DataType = datLargeInt
+ end>
+ Params = <
+ item
+ Name = 'ID_EMPRESA1'
+ Value = ''
+ end
+ item
+ Name = 'ANO1'
+ Value = ''
+ end
+ item
+ Name = 'ID_EMPRESA2'
+ Value = ''
+ end
+ item
+ Name = 'ANO2'
+ Value = ''
+ end>
+ LogChanges = False
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ LocalSchema = schReport
+ LocalDataStreamer = DABin2DataStreamer1
+ LogicalName = 'InformeListadoPresupuestosGrafCompSemestral'
+ IndexDefs = <>
+ Left = 416
+ Top = 408
+ end
+ object frxDBInformeListadoClientesMayorImporteResumen: TfrxDBDataset
+ UserName = 'frxDBInformeListadoClientesMayorImporteResumen'
+ CloseDataSource = False
+ DataSource = DADSInformeListadoClientesMayorImporteResumen
+ BCDToCurrency = False
+ Left = 136
+ Top = 560
+ end
+ object DADSInformeListadoClientesMayorImporteResumen: TDADataSource
+ DataSet = tbl_InformeListadoClientesMayorImporteResumen.Dataset
+ DataTable = tbl_InformeListadoClientesMayorImporteResumen
+ Left = 136
+ Top = 616
+ end
+ object tbl_InformeListadoClientesMayorImporteResumen: TDAMemDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'ANO'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 255
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 255
+ end
+ item
+ Name = 'IMPORTE_TOTAL_ANO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'NUMPRE'
+ DataType = datInteger
+ end
+ item
+ Name = 'IMPORTE_TOTAL'
+ DataType = datCurrency
+ end
+ item
+ Name = 'PORCENTAJE'
+ DataType = datCurrency
+ end>
+ Params = <
+ item
+ Name = 'ID_EMPRESA'
+ Value = ''
+ end
+ item
+ Name = 'ANO'
+ Value = ''
+ end
+ item
+ Name = 'NTOP'
+ Value = ''
+ end>
+ MasterMappingMode = mmDataRequest
+ LogChanges = False
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ LocalSchema = schReport
+ LocalDataStreamer = DABin2DataStreamer1
+ LogicalName = 'InformeListadoClientesMayorImporteResumen'
+ IndexDefs = <>
+ Left = 136
+ Top = 672
+ end
+ object tbl_InformeListadoClientesMayorNPresupuestosResumen: TDAMemDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'ANO'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 255
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 255
+ end
+ item
+ Name = 'IMPORTE_TOTAL_ANO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'NUMPRE'
+ DataType = datInteger
+ end
+ item
+ Name = 'ACEPTADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANULADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PENDIENTES'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PORCENTAJE'
+ DataType = datCurrency
+ end>
+ Params = <
+ item
+ Name = 'ID_EMPRESA'
+ Value = ''
+ end
+ item
+ Name = 'ANO'
+ Value = ''
+ end
+ item
+ Name = 'NTOP'
+ Value = ''
+ end>
+ MasterMappingMode = mmDataRequest
+ LogChanges = False
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ LocalSchema = schReport
+ LocalDataStreamer = DABin2DataStreamer1
+ LogicalName = 'InformeListadoClientesMayorNPresupuestosResumen'
+ IndexDefs = <>
+ Left = 368
+ Top = 672
+ end
+ object DADSInformeListadoClientesMayorNPresupuestosResumen: TDADataSource
+ DataSet = tbl_InformeListadoClientesMayorNPresupuestosResumen.Dataset
+ DataTable = tbl_InformeListadoClientesMayorNPresupuestosResumen
+ Left = 368
+ Top = 616
+ end
+ object frxDBInformeListadoClientesMayorNPresupuestosResumen: TfrxDBDataset
+ UserName = 'frxDBInformeListadoClientesMayorNPresupuestosResumen'
+ CloseDataSource = False
+ DataSource = DADSInformeListadoClientesMayorNPresupuestosResumen
+ BCDToCurrency = False
+ Left = 368
+ Top = 560
+ end
+ object tbl_InformeListadoClientesMayorNAnuladosResumen: TDAMemDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'ANO'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 255
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 255
+ end
+ item
+ Name = 'IMPORTE_TOTAL_ANO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'NUMPRE'
+ DataType = datInteger
+ end
+ item
+ Name = 'ACEPTADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'ANULADOS'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PENDIENTES'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'PORCENTAJE'
+ DataType = datCurrency
+ end>
+ Params = <
+ item
+ Name = 'ID_EMPRESA'
+ Value = ''
+ end
+ item
+ Name = 'ANO'
+ Value = ''
+ end
+ item
+ Name = 'NTOP'
+ Value = ''
+ end>
+ MasterMappingMode = mmDataRequest
+ LogChanges = False
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ LocalSchema = schReport
+ LocalDataStreamer = DABin2DataStreamer1
+ LogicalName = 'InformeListadoClientesMayorNAnuladosResumen'
+ IndexDefs = <>
+ Left = 552
+ Top = 672
+ end
+ object DADSInformeListadoClientesMayorNAnuladosResumen: TDADataSource
+ DataSet = tbl_InformeListadoClientesMayorNAnuladosResumen.Dataset
+ DataTable = tbl_InformeListadoClientesMayorNAnuladosResumen
+ Left = 552
+ Top = 616
+ end
+ object frxDBInformeListadoClientesMayorNAnuladosResumen: TfrxDBDataset
+ UserName = 'frxDBInformeListadoClientesMayorNAnuladosResumen'
+ CloseDataSource = False
+ DataSource = DADSInformeListadoClientesMayorNAnuladosResumen
+ BCDToCurrency = False
+ Left = 552
+ Top = 560
+ end
end
diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas
index b6be0856..78b4f10a 100644
--- a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas
+++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas
@@ -80,8 +80,22 @@ type
DADSInformeListadoPresupuestosResumen: TDADataSource;
tbl_InformeListadoPresupuestosResumen: TDAMemDataTable;
tbl_Detalles: TDAMemDataTable;
+ frxDBInformeListadoPresupuestosGrafComp: TfrxDBDataset;
+ DASInformeListadoPresupuestosGrafComp: TDADataSource;
+ tbl_InformeListadoPresupuestosGrafCompMensual: TDAMemDataTable;
+ tbl_InformeListadoPresupuestosGrafCompTrimestral: TDAMemDataTable;
+ tbl_InformeListadoPresupuestosGrafCompSemestral: TDAMemDataTable;
schReport: TDASchema;
DataDictionary: TDADataDictionary;
+ frxDBInformeListadoClientesMayorImporteResumen: TfrxDBDataset;
+ DADSInformeListadoClientesMayorImporteResumen: TDADataSource;
+ tbl_InformeListadoClientesMayorImporteResumen: TDAMemDataTable;
+ tbl_InformeListadoClientesMayorNPresupuestosResumen: TDAMemDataTable;
+ DADSInformeListadoClientesMayorNPresupuestosResumen: TDADataSource;
+ frxDBInformeListadoClientesMayorNPresupuestosResumen: TfrxDBDataset;
+ tbl_InformeListadoClientesMayorNAnuladosResumen: TDAMemDataTable;
+ DADSInformeListadoClientesMayorNAnuladosResumen: TDADataSource;
+ frxDBInformeListadoClientesMayorNAnuladosResumen: TfrxDBDataset;
procedure DataModuleCreate(Sender: TObject);
procedure DataModuleDestroy(Sender: TObject);
function frxReportUserFunction(const MethodName: string;
@@ -95,11 +109,17 @@ type
FListaNombresClientes: TStringList;
FImporteMinimo: Currency;
FDesglosado : Boolean;
+ FAno1: Variant;
+ FAno2: Variant;
+ FIntervalo: Variant;
+ FTopN: Integer;
procedure _GenerarPresupuesto(const AID : Integer; const VerSello: Integer);
procedure PrepararTablaInforme(ATabla: TDAMemDataTable);
procedure PrepararTablaResumenInforme(ATabla: IDADataset);
+ procedure PrepararTablaInformeGrafComp(ATabla: TDAMemDataTable);
+ procedure PrepararTablaResumenInformeGrafComp(ATabla: TDAMemDataTable);
function _GenerarInforme(const TipoInforme: String): Binary;
procedure IniciarParametrosInforme;
@@ -108,6 +128,7 @@ type
function GenerarPresupuesto(const ListaID : TIntegerArray; const VerSello: Integer): Binary;
function GenerarPresupuestoEnPDF(const ListaID : TIntegerArray; const VerSello: Integer): Binary;
function GenerarInformeListadoPresupuestos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
+ function GenerarInformePresupuestosGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDClientes: TIntegerArray; const TopN: Integer; const Serie: Variant): Binary;
end;
implementation
@@ -116,13 +137,14 @@ implementation
uses
uSistemaFunc, StrUtils, uDataModuleServer, schPresupuestosClienteClient_Intf,
- uROServer, DataAbstract4_Intf;
+ uROServer, DataAbstract4_Intf, srvGestorInformes_Impl;
const
rptInforme = 'InfPresupuestoCliente.fr3';
rptInformeListadoPresupuestosDesglosado = 'InformeListadoPresupuestosDesglosado.fr3';
rptInformeListadoPresupuestos = 'InformeListadoPresupuestos.fr3';
+ rptInformeListadoPresupuestosClienteGrafComp = 'InformeListadoPresupuestosClienteGrafComp.fr3';
{ Dataset names for schReport }
ds_InformeListadoPresupuestosResumen = 'InformeListadoPresupuestosResumen';
@@ -281,6 +303,20 @@ begin
end;
end;
+procedure TRptPresupuestosCliente.PrepararTablaInformeGrafComp(
+ ATabla: TDAMemDataTable);
+begin
+ if ATabla.Active then
+ ATabla.Active := False;
+
+ DASInformeListadoPresupuestosGrafComp.DataTable := ATabla;
+ ATabla.ParamByName('ID_EMPRESA1').AsInteger := FIdEmpresa;
+ ATabla.ParamByName('ID_EMPRESA2').AsInteger := FIdEmpresa;
+ ATabla.ParamByName('ANO1').AsVariant := FAno1;
+ ATabla.ParamByName('ANO2').AsVariant := FAno2;
+ ATabla.Active := True;
+end;
+
procedure TRptPresupuestosCliente.PrepararTablaResumenInforme(ATabla: IDADataset);
var
i: Integer;
@@ -321,6 +357,18 @@ begin
ATabla.Where.AddText(AWhereStr);
end;
+procedure TRptPresupuestosCliente.PrepararTablaResumenInformeGrafComp(
+ ATabla: TDAMemDataTable);
+begin
+ if ATabla.Active then
+ ATabla.Active := False;
+
+ ATabla.ParamByName('ID_EMPRESA').AsInteger := FIdEmpresa;
+ ATabla.ParamByName('ANO').AsVariant := FAno1;
+ ATabla.ParamByName('NTOP').AsInteger := FTopN;
+ ATabla.Active := True;
+end;
+
procedure TRptPresupuestosCliente.RecuperarNombresClientes;
var
AContactosService : IsrvContactos;
@@ -434,6 +482,63 @@ begin
end;
end;
+function TRptPresupuestosCliente.GenerarInformePresupuestosGrafComp(
+ const IdEmpresa: Integer; const Intervalo, Ano1, Ano2: Variant;
+ const ListaIDClientes: TIntegerArray; const TopN: Integer; const Serie: Variant): Binary;
+var
+ AStream: TMemoryStream;
+ AInforme: Variant;
+
+begin
+ FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
+
+ AStream := TMemoryStream.Create;
+ try
+ //Inicializamos parametros
+ FIdEmpresa := IdEmpresa;
+ FAno1 := Ano1;
+ FAno2 := Ano2;
+ FIntervalo := Intervalo;
+ FTopN := TopN;
+
+ if Assigned(FListaIDClientes) then
+ FListaIDClientes.Free;
+ FListaIDClientes := ListaIDClientes;
+
+ //Preparamos la tabla correspondiente y la abrimos para el informe
+ if (FIntervalo = CTE_MENSUAL) then
+ PrepararTablaInformeGrafComp(tbl_InformeListadoPresupuestosGrafCompMensual)
+ else if (FIntervalo = CTE_TRIMESTRAL) then
+ PrepararTablaInformeGrafComp(tbl_InformeListadoPresupuestosGrafCompTrimestral)
+ else
+ PrepararTablaInformeGrafComp(tbl_InformeListadoPresupuestosGrafCompSemestral);
+
+ //Se preparan las tablas del listado resumen del informe
+ PrepararTablaResumenInformeGrafComp(tbl_InformeListadoClientesMayorImporteResumen);
+ PrepararTablaResumenInformeGrafComp(tbl_InformeListadoClientesMayorNPresupuestosResumen);
+ PrepararTablaResumenInformeGrafComp(tbl_InformeListadoClientesMayorNAnuladosResumen);
+
+ Result := Binary.Create;
+
+ AInforme := DarRutaFichero(DarRutaInformes, rptInformeListadoPresupuestosClienteGrafComp, IntTostr(FIdEmpresa));
+ if VarIsNull(AInforme) then
+ raise Exception.Create (('Error Servidor: GenerarInformePresupuestosGrafComp, no encuentra informe ' + rptInformeListadoPresupuestosClienteGrafComp));
+
+ frxReport.LoadFromFile(AInforme, True);
+// IniciarParametrosInforme;
+
+ frxReport.Variables.Variables['Ano1']:= Ano1;
+ frxReport.Variables.Variables['Ano2']:= Ano2;
+ frxReport.Variables.Variables['Serie']:= Serie;
+ frxReport.PrepareReport(False);
+ frxReport.PreviewPages.SaveToStream(Result);
+
+ finally
+ AStream.Free;
+ FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
+ end;
+end;
+
function TRptPresupuestosCliente.GenerarInformeListadoPresupuestos(
const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
const ListaIDClientes: TIntegerArray; const Desglosado: Boolean;
diff --git a/Source/Servicios/FactuGES.RODL b/Source/Servicios/FactuGES.RODL
index a11276fe..364d2c4e 100644
--- a/Source/Servicios/FactuGES.RODL
+++ b/Source/Servicios/FactuGES.RODL
@@ -756,6 +756,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Servicios/FactuGES_Intf.pas b/Source/Servicios/FactuGES_Intf.pas
index a9ac6654..df03e201 100644
--- a/Source/Servicios/FactuGES_Intf.pas
+++ b/Source/Servicios/FactuGES_Intf.pas
@@ -779,6 +779,8 @@ type
const TopN: Integer): Binary;
function GenerarInformeFacturasCliGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDClientes: TIntegerArray;
const TopN: Integer): Binary;
+ function GenerarInformePresupuestosCliGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIdClientes: TIntegerArray;
+ const TopN: Integer; const Serie: Variant): Binary;
function GenerarInformeBeneficiosGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const Serie: Variant): Binary;
function GenerarInformeListadoFacturasCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant;
const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
@@ -823,6 +825,8 @@ type
const TopN: Integer): Binary;
function GenerarInformeFacturasCliGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDClientes: TIntegerArray;
const TopN: Integer): Binary;
+ function GenerarInformePresupuestosCliGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIdClientes: TIntegerArray;
+ const TopN: Integer; const Serie: Variant): Binary;
function GenerarInformeBeneficiosGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const Serie: Variant): Binary;
function GenerarInformeListadoFacturasCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant;
const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
@@ -2519,6 +2523,30 @@ begin
end
end;
+function TsrvGestorInformes_Proxy.GenerarInformePresupuestosCliGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIdClientes: TIntegerArray;
+ const TopN: Integer; const Serie: Variant): Binary;
+begin
+ try
+ result := nil;
+ __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformePresupuestosCliGrafComp');
+ __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []);
+ __Message.Write('Intervalo', TypeInfo(Variant), Intervalo, []);
+ __Message.Write('Ano1', TypeInfo(Variant), Ano1, []);
+ __Message.Write('Ano2', TypeInfo(Variant), Ano2, []);
+ __Message.Write('ListaIdClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIdClientes, []);
+ __Message.Write('TopN', TypeInfo(Integer), TopN, []);
+ __Message.Write('Serie', TypeInfo(Variant), Serie, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
function TsrvGestorInformes_Proxy.GenerarInformeBeneficiosGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const Serie: Variant): Binary;
begin
try
diff --git a/Source/Servicios/FactuGES_Invk.pas b/Source/Servicios/FactuGES_Invk.pas
index 6c282684..294f349f 100644
--- a/Source/Servicios/FactuGES_Invk.pas
+++ b/Source/Servicios/FactuGES_Invk.pas
@@ -299,6 +299,7 @@ type
procedure Invoke_GenerarInformeListadoFacturasProv(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
procedure Invoke_GenerarInformeFacturasProvGrafComp(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
procedure Invoke_GenerarInformeFacturasCliGrafComp(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_GenerarInformePresupuestosCliGrafComp(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
procedure Invoke_GenerarInformeBeneficiosGrafComp(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
procedure Invoke_GenerarInformeListadoFacturasCliPendientes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
procedure Invoke_GenerarInformeListadoFacturasProvPendientes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
@@ -2003,6 +2004,49 @@ begin
end;
end;
+procedure TsrvGestorInformes_Invoker.Invoke_GenerarInformePresupuestosCliGrafComp(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GenerarInformePresupuestosCliGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIdClientes: TIntegerArray;
+ const TopN: Integer; const Serie: Variant): Binary; }
+var
+ IdEmpresa: Integer;
+ Intervalo: Variant;
+ Ano1: Variant;
+ Ano2: Variant;
+ ListaIdClientes: FactuGES_Intf.TIntegerArray;
+ TopN: Integer;
+ Serie: Variant;
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ ListaIdClientes := nil;
+ lResult := nil;
+ try
+ __Message.Read('IdEmpresa', TypeInfo(Integer), IdEmpresa, []);
+ __Message.Read('Intervalo', TypeInfo(Variant), Intervalo, []);
+ __Message.Read('Ano1', TypeInfo(Variant), Ano1, []);
+ __Message.Read('Ano2', TypeInfo(Variant), Ano2, []);
+ __Message.Read('ListaIdClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIdClientes, []);
+ __Message.Read('TopN', TypeInfo(Integer), TopN, []);
+ __Message.Read('Serie', TypeInfo(Variant), Serie, []);
+
+ lResult := (__Instance as IsrvGestorInformes).GenerarInformePresupuestosCliGrafComp(IdEmpresa, Intervalo, Ano1, Ano2, ListaIdClientes, TopN, Serie);
+
+ __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvGestorInformes', 'GenerarInformePresupuestosCliGrafCompResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(ListaIdClientes);
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
procedure TsrvGestorInformes_Invoker.Invoke_GenerarInformeBeneficiosGrafComp(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ function GenerarInformeBeneficiosGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const Serie: Variant): Binary; }
var
diff --git a/Source/Servicios/RODLFILE.res b/Source/Servicios/RODLFILE.res
index 14492bed..312d01a8 100644
Binary files a/Source/Servicios/RODLFILE.res and b/Source/Servicios/RODLFILE.res differ
diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj
index 68846a0b..d212ad5e 100644
--- a/Source/Servidor/FactuGES_Server.dproj
+++ b/Source/Servidor/FactuGES_Server.dproj
@@ -1,334 +1,343 @@
-
+
-
- {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1}
- FactuGES_Server.dpr
- Debug
- AnyCPU
- DCC32
- ..\..\Output\Debug\Servidor\FactuGES_Server.exe
- vcl;rtl;vclx;vclactnband;dbrtl;vcldb;vcldbx;bdertl;dsnap;dsnapcon;teeUI;teedb;tee;adortl;vclib;ibxpress;dbxcds;dbexpress;DbxCommonDriver;IndyCore;IndySystem;IndyProtocols;VclSmp;vclie;webdsnap;xmlrtl;inet;inetdbbde;inetdbxpress;RemObjects_BPDX_D11;RemObjects_RODX_D11;RemObjects_Indy_D11;RemObjects_Synapse_D11;RemObjects_WebBroker_D11;DataAbstract_Core_D11;DataAbstract_DBXDriver_D11;DataAbstract_IDE_D11;DataAbstract_Scripting_D11;DataAbstract_SDACDriver_D11;sdac105;dac105;DataAbstract_SQLiteDriver_D11;cxEditorsD10;cxLibraryD10;dxThemeD10;cxDataD10;cxExtEditorsD10;cxGridD10;cxPageControlD10;cxSchedulerD10;cxTreeListD10;cxVerticalGridD10;dxBarD10;dxComnD10;dxBarDBNavD10;dxBarExtDBItemsD10;dxBarExtItemsD10;dxDockingD10;dxLayoutControlD10;dxNavBarD10;dxPSCoreD10;dxsbD10;dxPScxCommonD10;dxPSLnksD10;vclshlctrls;dxPScxExtCommonD10;dxPScxGridLnkD10;dxPScxPCProdD10;dxPScxScheduler2LnkD10;dxPScxTLLnkD10;dxPSdxLCLnkD10;dxPsPrVwAdvD10;pckMD5;pckUCDataConnector;pckUserControl_RT;PluginSDK_D10R;PNG_D10;PngComponentsD10;tb2k_d10;tbx_d10;JclVcl;Jcl;JvXPCtrlsD11R;JvCoreD11R;JvSystemD11R;JvStdCtrlsD11R;JvAppFrmD11R;JvBandsD11R;JvDBD11R;JvDlgsD11R;JvBDED11R;JvCmpD11R;JvCryptD11R;JvCtrlsD11R;JvCustomD11R;JvDockingD11R;JvDotNetCtrlsD11R;JvEDID11R;JvGlobusD11R;JvHMID11R;JvInterpreterD11R;JvJansD11R;JvManagedThreadsD11R;JvMMD11R;JvNetD11R;JvPageCompsD11R;JvPluginD11R;JvPrintPreviewD11R;JvRuntimeDesignD11R;JvTimeFrameworkD11R;JvUIBD11R;JvValidatorsD11R;JvWizardD11R;pckUCADOConn;pckUCBDEConn;pckUCIBXConn;pckUCMidasConn;cxIntlPrintSys3D10;cxExportD10;cxIntl5D10;GUISDK_D11R;ccpackD11;JSDialog100;fsTee11;fs11;frx11;frxADO11;frxBDE11;frxDB11;frxDBX11;frxe11;frxIBX11;frxTee11;fsADO11;fsBDE11;fsDB11;fsIBX11;websnap;soaprtl;IntrawebDB_90_100;Intraweb_90_100
-
-
- 7.0
- False
- False
- 0
- 3
- ..\..\Output\Release\Servidor
- RELEASE
-
-
- 7.0
- 3
- ..\..\Output\Debug\Servidor
- DEBUG;
- True
- True
- True
- C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10
- C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10
- C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10
- C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10
-
-
- Delphi.Personality
-
-
- FalseTrueFalse/standaloneTrueFalse1900FalseFalseFalseFalseFalse308212521.9.0.01.9.0.0viernes, 25 de febrero de 2011 16:25
- ExpressPrinting System by Developer Express Inc.
- FactuGES_Server.dpr
-
-
-
-
- MainSource
-
-
-
-
-
-
- TDARemoteService
-
-
-
- TDataModule
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDARemoteService
-
-
-
-
-
-
- TDARemoteService
-
-
-
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataModule
-
-
-
- TDARemoteService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
- TDataAbstractService
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataModule
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
- TFrame
-
-
-
- TFrame
-
-
-
- TForm
-
-
-
- TFrame
-
-
-
- TDARemoteService
-
-
-
-
-
-
- TDataModule
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1}
+ FactuGES_Server.dpr
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Output\Debug\Servidor\FactuGES_Server.exe
+ vcl;rtl;vclx;vclactnband;dbrtl;vcldb;vcldbx;bdertl;dsnap;dsnapcon;teeUI;teedb;tee;adortl;vclib;ibxpress;dbxcds;dbexpress;DbxCommonDriver;IndyCore;IndySystem;IndyProtocols;VclSmp;vclie;webdsnap;xmlrtl;inet;inetdbbde;inetdbxpress;RemObjects_BPDX_D11;RemObjects_RODX_D11;RemObjects_Indy_D11;RemObjects_Synapse_D11;RemObjects_WebBroker_D11;DataAbstract_Core_D11;DataAbstract_DBXDriver_D11;DataAbstract_IDE_D11;DataAbstract_Scripting_D11;DataAbstract_SDACDriver_D11;sdac105;dac105;DataAbstract_SQLiteDriver_D11;cxEditorsD10;cxLibraryD10;dxThemeD10;cxDataD10;cxExtEditorsD10;cxGridD10;cxPageControlD10;cxSchedulerD10;cxTreeListD10;cxVerticalGridD10;dxBarD10;dxComnD10;dxBarDBNavD10;dxBarExtDBItemsD10;dxBarExtItemsD10;dxDockingD10;dxLayoutControlD10;dxNavBarD10;dxPSCoreD10;dxsbD10;dxPScxCommonD10;dxPSLnksD10;vclshlctrls;dxPScxExtCommonD10;dxPScxGridLnkD10;dxPScxPCProdD10;dxPScxScheduler2LnkD10;dxPScxTLLnkD10;dxPSdxLCLnkD10;dxPsPrVwAdvD10;pckMD5;pckUCDataConnector;pckUserControl_RT;PluginSDK_D10R;PNG_D10;PngComponentsD10;tb2k_d10;tbx_d10;JclVcl;Jcl;JvXPCtrlsD11R;JvCoreD11R;JvSystemD11R;JvStdCtrlsD11R;JvAppFrmD11R;JvBandsD11R;JvDBD11R;JvDlgsD11R;JvBDED11R;JvCmpD11R;JvCryptD11R;JvCtrlsD11R;JvCustomD11R;JvDockingD11R;JvDotNetCtrlsD11R;JvEDID11R;JvGlobusD11R;JvHMID11R;JvInterpreterD11R;JvJansD11R;JvManagedThreadsD11R;JvMMD11R;JvNetD11R;JvPageCompsD11R;JvPluginD11R;JvPrintPreviewD11R;JvRuntimeDesignD11R;JvTimeFrameworkD11R;JvUIBD11R;JvValidatorsD11R;JvWizardD11R;pckUCADOConn;pckUCBDEConn;pckUCIBXConn;pckUCMidasConn;cxIntlPrintSys3D10;cxExportD10;cxIntl5D10;GUISDK_D11R;ccpackD11;JSDialog100;fsTee11;fs11;frx11;frxADO11;frxBDE11;frxDB11;frxDBX11;frxe11;frxIBX11;frxTee11;fsADO11;fsBDE11;fsDB11;fsIBX11;websnap;soaprtl;IntrawebDB_90_100;Intraweb_90_100
+
+
+ 7.0
+ False
+ False
+ 0
+ 3
+ ..\..\Output\Release\Servidor
+ RELEASE
+
+
+ 7.0
+ 3
+ ..\..\Output\Debug\Servidor
+ DEBUG;
+ True
+ True
+ True
+ C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10
+ C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10
+ C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10
+ C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10
+
+
+ Delphi.Personality
+
+
+FalseTrueFalse/standaloneTrueFalse1900FalseFalseFalseFalseFalse308212521.9.0.01.9.0.0viernes, 25 de febrero de 2011 16:25
+
+
+
+
+
+
+
+
+
+ ExpressPrinting System by Developer Express Inc.
+ FactuGES_Server.dpr
+
+
+
+
+ MainSource
+
+
+
+
+
+
+ TDARemoteService
+
+
+
+ TDataModule
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDARemoteService
+
+
+
+
+
+
+ TDARemoteService
+
+
+
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataModule
+
+
+
+ TDARemoteService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+ TDataAbstractService
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataModule
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+ TFrame
+
+
+
+ TFrame
+
+
+
+ TForm
+
+
+
+ TFrame
+
+
+
+ TDARemoteService
+
+
+
+
+
+
+ TDataModule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+