report.py
2.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
from opensipkd.tools.report import *
from opensipkd.base import log
log.warning("Opensipkd.base.tools.pbb depreciated use opensipkd.tools.pbb")
# -*- coding: utf-8 -*-
import os
from platform import python_version
from opensipkd.base import get_settings, get_params
from opensipkd.base.tools import get_random_string
from pyreportjasper import PyReportJasper
db_driver_port = {
"postgresql": ["postgres", "5432", "org.postgresql.Driver", "jdbc:postgresql://localhost:5432/pjdl_ciamis"],
"oracle": ["oracle", "1512", "oracle.jdbc.driver.OracleDriver"],
}
def jasper_compile(input_file):
# REPORTS_DIR = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'reports')
# input_file = os.path.join(input_file)
# file_ext = os.path.splitext(input_file)
# output_file = os.path.join(REPORTS_DIR, 'csv')
pyreportjasper = PyReportJasper()
pyreportjasper.compile(write_jasper=True)
def jasper_export(input_file, output_file=None, schema=None,
output_formats=["pdf"], dburl="sqlalchemy.url",
parameters={}, db_schema=None):
db = get_params(dburl).split("@")
db_driver, db_user, db_password = db[0].split(':')
db_servers, db_name = db[1].split('/')
# db_user, db_password = db_users.split(":")
if db_servers.find(':') > 1:
db_host, db_port = db_servers.split(":")
else:
db_host = db_servers
db_port = db_driver_port[db_driver][1]
# db_host = db_server
jdbc_dir = get_params("jdbc_dir", "")
# if not jdbc_dir:
# java_home = os.getenv("JAVA_HOME")
# jdbc_dir = os.path.join(java_home, 'lib', db_driver_port[db_driver][2])
jdbc_driver = db_driver_port[db_driver][2]
db_driver = db_driver_port[db_driver][0]
log.info(jdbc_dir)
if not output_file:
tmp_report = get_params("tmp_report", "/tmp")
output_file = os.path.join(tmp_report, get_random_string(32))
conn = {
'driver': db_driver,
'username': db_user.strip('/'),
'password': db_password,
'host': db_host,
'database': db_name,
'schema': db_schema,
'port': db_port,
'jdbc_dir': jdbc_dir,
'jdbc_driver': jdbc_driver,
}
pyreportjasper = PyReportJasper()
# log.info(input_file)
# log.info(output_file)
# log.info(conn)
# log.info(output_formats)
pyreportjasper.config(
input_file,
output_file,
db_connection=conn,
output_formats=output_formats,
parameters={'python_version': python_version()},
locale='en_US'
)
# pyreportjasper.compile(write_jasper=True)
pyreportjasper.process_report()
output_files = [".".join([output_file, f]) for f in output_formats]
log.info(output_files)
return output_files