Eneboo Report 347

40 views
Skip to first unread message

Juanjo Pablos

unread,
Feb 15, 2017, 7:43:20 AM2/15/17
to Eneboo
Buenos Dias,

¿Alguien sabe como se puede ejecutar i_modelo347.jrxml
<https://github.com/eneboo/reports4eneboo-reports/blob/master/PostgreSQL/Athenon/i_modelo347.jrxml>
directamente desde jasper reports?

https://github.com/eneboo/reports4eneboo-reports/tree/master/PostgreSQL/Athenon

Lo he intentado y me da un error de que la función year(date) no esta
disponible.

Parece una función de postgresql, y quizás tengo que activar algún
permiso en la base de datos.

Jordi Marco

unread,
Feb 15, 2017, 8:04:37 AM2/15/17
to ene...@googlegroups.com
Buenos dias

Cambia:

por date_trunc('month', f.fecha)

Saludos



Jordi Marco Sanz

Consultor en tecnología


Analista procesos empresariales.

ERP eneboo

CRM SugarCRM

Programación a medida:

python, django, jscript, html

Mantenimiento Equipos, Servidores, Redes,

Seguridad perimetral e interna.


Tel: +34 691 805 769
“Sólo aquellos que han cometido algunos errores pueden asimismo acometer grandes tareas” Hagakure
"Ahora es la hora y la hora es ahora." Hagakure




--
Has recibido este mensaje porque estás suscrito al grupo "Eneboo" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a eneboo+unsubscribe@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/d/optout.

Juanjo Pablos

unread,
Feb 15, 2017, 8:20:41 AM2/15/17
to ene...@googlegroups.com
El 15/02/17 a las 14:04, Jordi Marco escribió:
>
> por date_trunc('month',f.fecha)
>
Eso lo hice ayer, pero luego me daba otro error:

Caused by: org.postgresql.util.PSQLException: ERROR: el operador no
existe: timestamp with time zone >= integer


Me imagino que es por que date_truc devuelve tipo timestamp

Jordi Marco

unread,
Feb 15, 2017, 8:44:32 AM2/15/17
to ene...@googlegroups.com
Hola

Has probado.

extract(year from f.fecha)



Jordi Marco Sanz

Consultor en tecnología


Analista procesos empresariales.

ERP eneboo

CRM SugarCRM

Programación a medida:

python, django, jscript, html

Mantenimiento Equipos, Servidores, Redes,

Seguridad perimetral e interna.


Tel: +34 691 805 769
“Sólo aquellos que han cometido algunos errores pueden asimismo acometer grandes tareas” Hagakure
"Ahora es la hora y la hora es ahora." Hagakure


Juanjo Pablos

unread,
Feb 16, 2017, 4:04:50 AM2/16/17
to ene...@googlegroups.com
El 15/02/17 a las 14:44, Jordi Marco escribió:
> Has probado.
>
> |extract(year fromf.fecha)|

Jordi,

Me siento un inútil haber tardado tanto en encontrar una solución. He
reemplazado el IF por CASE WHEN, dentro de la función de suma, de lo
contrario no me hacia bien los cálculos. . Por si alguien le es útil,
estas son las secuencias SQL, quizás sean compatibles con quien esta
usando mysql. :


347Cliente.sql

---
select codcliente,nombrecliente,

sum (CASE WHEN extract( month from f.fecha ) <= 3 THEN f.total ELSE 0
END )AS T1,
sum (CASE WHEN extract( month from f.fecha ) >= 4 AND extract( month
from f.fecha ) <=6 THEN f.total ELSE 0 END )AS T2,
sum (CASE WHEN extract( month from f.fecha ) >= 7 AND extract( month
from f.fecha ) <=9 THEN f.total ELSE 0 END )AS T3,
sum (CASE WHEN extract( month from f.fecha ) >= 10 THEN f.total ELSE
0 END )AS T4,
sum(f.total)
from facturascli as f WHERE f.codejercicio = '2016' group by
codcliente,nombrecliente HAVING sum(f.total) >= 3006;

---


347Proveedor.sql

---

select codproveedor,nombre,
sum (CASE WHEN extract( month from f.fecha ) <= 3 THEN f.total ELSE 0
END )AS T1,
sum (CASE WHEN extract( month from f.fecha ) >= 4 AND extract( month
from f.fecha ) <=6 THEN f.total ELSE 0 END )AS T2,
sum (CASE WHEN extract( month from f.fecha ) >= 7 AND extract( month
from f.fecha ) <=9 THEN f.total ELSE 0 END )AS T3,
sum (CASE WHEN extract( month from f.fecha ) >= 10 THEN f.total ELSE
0 END )AS T4,
sum(f.total)

from facturasprov as f WHERE f.codejercicio = '2016' group by
codproveedor,nombre HAVING sum(f.total) >= 3006;

---

Oscar Dominguez

unread,
Feb 22, 2017, 1:08:00 PM2/22/17
to Eneboo
Yo lo tengo parecido pero un poco más completo. Lo pongo por si interesa:

    <parameter name="WHERE" class="java.lang.String" isForPrompting="false">
        <defaultValueExpression><![CDATA[TEXT(SUM(INTEGER_VALUE(DATEFORMAT(new Date(),"yyyy")),-1),"####")]]></defaultValueExpression>
    </parameter>
        <![CDATA[SELECT
        f.codproveedor,
        sum(case when Extract(month from f.fecha) >= 1 AND Extract(month from f.fecha) <= 3 then f.total else 0 end) as T1,
        sum(case when Extract(month from f.fecha) >= 4 AND Extract(month from f.fecha) <= 6 then f.total else 0 end) as T2,
        sum(case when Extract(month from f.fecha) >= 7 AND Extract(month from f.fecha) <= 9 then f.total else 0 end) as T3,
        sum(case when Extract(month from f.fecha) >= 10 AND Extract(month from f.fecha) <= 12 then f.total else 0 end) as T4,
        sum(f.total) as total,
        proveedores.nombre as nombreproveedor,
        proveedores.cifnif as cifproveedor,
        proveedores.telefono1 as tlfproveedor,
        paises.nombre as paisproveedor,
        empresa.nombre as nombreempresa,
        empresa.cifnif as cifempresa
        FROM empresa, facturasprov as f
        LEFT OUTER JOIN proveedores ON proveedores.codproveedor = f.codproveedor
        LEFT OUTER JOIN dirproveedores ON dirproveedores.codproveedor = f.codproveedor AND dirproveedores.direccionppal = TRUE
        LEFT OUTER JOIN paises ON paises.codpais = dirproveedores.codpais
        WHERE f.codejercicio = '$P!{WHERE}' AND paises.codpais = 'ES'
        GROUP BY
        f.codproveedor, proveedores.nombre, proveedores.cifnif, proveedores.telefono1, paises.nombre,
        empresa.nombre, empresa.cifnif
        HAVING abs(sum(f.total)) >= 3005.06
        ORDER BY nombreproveedor ASC]]>


Esto sigue sin sacar un 347 de forma correcta, pero se le acerca bastante (mi compañera luego a mano saca del listado lo que no se debe incluir, como facturas de alquileres, etc)

Xavier Rodríguez

unread,
Mar 5, 2017, 5:04:09 AM3/5/17
to Eneboo
Por si a alguien le sirve, los datos sacados de contabilidad funcionan correctamente con la siguiente consulta:
<![CDATA[SELECT
empresa.nombre,
empresa.cifnif,
empresa.direccion,
empresa.codpostal,
empresa.ciudad,
proveedores.cifnif as provcifnif,
proveedores.nombre as nombreprov,
proveedores.codproveedor,
dirproveedores.direccion as provdireccion,
dirproveedores.ciudad as provciudad,
dirproveedores.codpostal as provcp,
dirproveedores.provincia as provprovincia,
co_asientos.codejercicio,
        sum(case when Extract(month from co_asientos.fecha) >= 1 AND Extract(month from co_asientos.fecha) <= 3 then (pprov.haber-pprov.debe)  else 0 end) as T1,
        sum(case when Extract(month from co_asientos.fecha) >= 4 AND Extract(month from co_asientos.fecha) <= 6 then (pprov.haber-pprov.debe)  else 0 end) as T2,
        sum(case when Extract(month from co_asientos.fecha) >= 7 AND Extract(month from co_asientos.fecha) <= 9 then (pprov.haber-pprov.debe)   else 0 end) as T3,
        sum(case when Extract(month from co_asientos.fecha) >= 10 AND Extract(month from co_asientos.fecha) <= 12 then (pprov.haber-pprov.debe)  else 0 end) as T4,
        sum (pprov.haber-pprov.debe) as total
FROM empresa, co_partidas pprov 
INNER JOIN co_subcuentasprov scp ON pprov.idsubcuenta = scp.idsubcuenta
INNER JOIN proveedores ON scp.codproveedor = proveedores.codproveedor
INNER JOIN co_asientos ON pprov.idasiento = co_asientos.idasiento 
INNER JOIN dirproveedores ON proveedores.codproveedor = dirproveedores.codproveedor AND direccionppal = true 
INNER JOIN paises ON dirproveedores.codpais = paises.codpais
WHERE paises.codiso = 'ES' AND $P!{WHERE} AND co_asientos.tipodocumento = 'Factura de proveedor'
GROUP BY co_asientos.codejercicio, proveedores.codproveedor, empresa.nombre, empresa.cifnif, empresa.direccion, empresa.codpostal, empresa.ciudad, proveedores.cifnif, proveedores.nombre,dirproveedores.direccion,dirproveedores.ciudad,dirproveedores.codpostal,dirproveedores.provincia
HAVING SUM(pprov.haber - pprov.debe) >= $P!{ORDERBY}
ORDER BY proveedores.codproveedor]]>

Un saludo

Miguel Angel Ayuso Ruiz

unread,
Mar 12, 2017, 6:41:44 AM3/12/17
to Eneboo
Aporto mi granito de arena:
Modelo347_proveedores.jrxml
Modelo347_clientes.jrxml
Reply all
Reply to author
Forward
0 new messages