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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fConfigurarConexion
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 -
fEditorInformeBeneficioReportGrafComp
+
fEditorInformeBeneficiosReportGrafComp
TForm
@@ -119,6 +119,10 @@
fEditorInformePedidosReport
TForm
+ +
fEditorInformeBeneficiosReportGrafComp
+ TForm +
fEditorInformePresupuestosReport
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 - - - - - -
srvEmpresas
- TDARemoteService -
- -
srvProvinciasPoblaciones_Impl
- TDataModule -
- - - -
srvUsuarios
- TDataAbstractService -
- - - - - - - -
RptAlbaranesCliente
- TDataModule -
- -
RptWordAlbaranCliente
- TDataModule -
- -
srvAlbaranesCliente
- TDataAbstractService -
- - - - -
RptAlbaranesProveedor
- TDataModule -
- -
RptWordAlbaranProveedor
- TDataModule -
- -
srvAlbaranesProveedor
- TDataAbstractService -
- - - -
srvAlmacenes
- TDARemoteService -
- - - - -
srvArticulos
- TDARemoteService -
- - - - - - - -
RptEtiquetasContacto
- TDataModule -
- -
RptFichasEmpleado
- TDataModule -
- -
srvContactos
- TDARemoteService -
- - - -
srvFabricantes
- TDataAbstractService -
- - - - -
RptFacturasCliente
- TDataModule -
- -
RptWordFacturaCliente
- TDataModule -
- -
srvFacturasCliente
- TDataAbstractService -
- - - - -
RptFacturasProveedor
- TDataModule -
- -
srvFacturasProveedor
- TDataAbstractService -
- - - -
srvFamilias
- TDataAbstractService -
- - - -
srvFormasPago
- TDataAbstractService -
- -
srvGestorDocumentos
- TDataAbstractService -
- -
srvGestorInformes
- TDataAbstractService -
- - - -
srvHistoricoMovimientos
- TDataAbstractService -
- - - -
srvInventario
- TDataAbstractService -
- - - - -
srvObras
- TDataAbstractService -
- - - - -
RptPedidosProveedor
- TDataModule -
- -
RptWordPedidoProveedor
- TDataModule -
- -
srvPedidosProveedor
- TDataAbstractService -
- - - - -
RptPresupuestosCliente
- TDataModule -
- -
RptWordCertificadoTrabajo
- TDataModule -
- -
RptWordPresupuestoCliente
- TDataModule -
- -
srvPresupuestosCliente
- TDataAbstractService -
- - - -
RptRecibosCliente
- TDataModule -
- -
srvRecibosCliente
- TDataAbstractService -
- - - -
RptRecibosProveedor
- TDataModule -
- -
srvRecibosProveedor
- TDataAbstractService -
- - - -
srvReferencias
- TDataAbstractService -
- - - - -
srvRemesasCliente
- TDataAbstractService -
- - - - -
srvRemesasProveedor
- TDataAbstractService -
- - - -
srvTiposIVA
- TDataAbstractService -
- - - -
srvUnidadesMedida
- TDataAbstractService -
- - - -
srvConfiguracion
- TDataAbstractService -
- -
frConexionBD
- TFrame -
- -
frConfGeneral
- TFrame -
- -
fConfiguracion
- TForm -
- -
FrameConfiguracion
- TFrame -
- -
srvLogin
- TDARemoteService -
- -
fAcercaDe
-
- -
dmServer
- TDataModule -
- -
fServerForm
-
- - - - - - - - - - -
+ + {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 + + + + + +
srvEmpresas
+ TDARemoteService +
+ +
srvProvinciasPoblaciones_Impl
+ TDataModule +
+ + + +
srvUsuarios
+ TDataAbstractService +
+ + + + + + + +
RptAlbaranesCliente
+ TDataModule +
+ +
RptWordAlbaranCliente
+ TDataModule +
+ +
srvAlbaranesCliente
+ TDataAbstractService +
+ + + + +
RptAlbaranesProveedor
+ TDataModule +
+ +
RptWordAlbaranProveedor
+ TDataModule +
+ +
srvAlbaranesProveedor
+ TDataAbstractService +
+ + + +
srvAlmacenes
+ TDARemoteService +
+ + + + +
srvArticulos
+ TDARemoteService +
+ + + + + + + +
RptEtiquetasContacto
+ TDataModule +
+ +
RptFichasEmpleado
+ TDataModule +
+ +
srvContactos
+ TDARemoteService +
+ + + +
srvFabricantes
+ TDataAbstractService +
+ + + + +
RptFacturasCliente
+ TDataModule +
+ +
RptWordFacturaCliente
+ TDataModule +
+ +
srvFacturasCliente
+ TDataAbstractService +
+ + + + +
RptFacturasProveedor
+ TDataModule +
+ +
srvFacturasProveedor
+ TDataAbstractService +
+ + + +
srvFamilias
+ TDataAbstractService +
+ + + +
srvFormasPago
+ TDataAbstractService +
+ +
srvGestorDocumentos
+ TDataAbstractService +
+ +
srvGestorInformes
+ TDataAbstractService +
+ + + +
srvHistoricoMovimientos
+ TDataAbstractService +
+ + + +
srvInventario
+ TDataAbstractService +
+ + + + +
srvObras
+ TDataAbstractService +
+ + + + +
RptPedidosProveedor
+ TDataModule +
+ +
RptWordPedidoProveedor
+ TDataModule +
+ +
srvPedidosProveedor
+ TDataAbstractService +
+ + + + +
RptPresupuestosCliente
+ TDataModule +
+ +
RptWordCertificadoTrabajo
+ TDataModule +
+ +
RptWordPresupuestoCliente
+ TDataModule +
+ +
srvPresupuestosCliente
+ TDataAbstractService +
+ + + +
RptRecibosCliente
+ TDataModule +
+ +
srvRecibosCliente
+ TDataAbstractService +
+ + + +
RptRecibosProveedor
+ TDataModule +
+ +
srvRecibosProveedor
+ TDataAbstractService +
+ + + +
srvReferencias
+ TDataAbstractService +
+ + + + +
srvRemesasCliente
+ TDataAbstractService +
+ + + + +
srvRemesasProveedor
+ TDataAbstractService +
+ + + +
srvTiposIVA
+ TDataAbstractService +
+ + + +
srvUnidadesMedida
+ TDataAbstractService +
+ + + +
srvConfiguracion
+ TDataAbstractService +
+ +
frConexionBD
+ TFrame +
+ +
frConfGeneral
+ TFrame +
+ +
fConfiguracion
+ TForm +
+ +
FrameConfiguracion
+ TFrame +
+ +
srvLogin
+ TDARemoteService +
+ +
fAcercaDe
+
+ +
dmServer
+ TDataModule +
+ +
fServerForm
+
+ + + + + + + + + + +