我使用jaspersoft studio创建了一个jrxml文件,在其中我创建了一个mssql服务器连接来填充报告元素..现在我想使用这个jrxml并将其转换为pdf和其他格式,但我面临的问题是我我无法看到任何为 mssql 服务器创建 db_connection 的选项。我确实研究了 python 的pyreportjasper 模块,并且没有可用于 mssql 服务器的 db_type 。即使在他们的文档中,也没有分享任何与 mssql 服务器连接的示例。这是包文档的链接:https://pyreportjasper.readthedocs.io/en/master/userguide.html
不要忘记下载 jdbc 并将其放置在 RESOURCES_DIR 变量中报告的文件夹中。
pip install git+https://github.com/acesseonline/pyreportjasper@master#egg=pyreportjasper
# -*- coding: utf-8 -*-
import os
from pyreportjasper import PyReportJasper
def mssql_to_pdf():
RESOURCES_DIR = os.path.abspath(os.path.dirname(__file__))
REPORTS_DIR = os.path.abspath(os.path.dirname(__file__))
input_file = os.path.join(REPORTS_DIR, 'mssql.jrxml')
output_file = os.path.join(REPORTS_DIR, 'report')
pyreportjasper = PyReportJasper()
pyreportjasper.config(
input_file,
output_file,
output_formats=["pdf"], # "pdf", "rtf", "xml"
db_connection={
'driver': 'generic',
'username': 'XXXXXXXXXXXX',
'password': 'XXXXXXXXXXXXXXXXXXXXXXXX',
'jdbc_url': 'jdbc:sqlserver://{host};databaseName={databasename};integratedSecurity=true;'.format(host='YOUR_HOST', databasename='YOUR_DATABASE_NAME'),
'jdbc_driver': 'com.microsoft.sqlserver.jdbc.SQLServerDriver',
'port': '1433',
'jdbc_driver': 'com.microsoft.sqlserver.jdbc.SQLServerDriver',
'jdbc_dir' : RESOURCES_DIR
},
resource=RESOURCES_DIR,
locale='en_US' # LOCALE Ex.:(en_US, de_GE, pt_BR)
)
pyreportjasper.process_report()
print('Result is the file below.')
print(output_file + '.pdf')
mssql_to_pdf()
谢谢您的回答。 输入文件jrxml如何知道如何将来自ms sql数据库的数据填充到报告文件中? 因为当我查看 .jrxml 文件时,没有提及与我们正在考虑的记录相关的表或列名称。 我想直接从 python 和 jasper 库动态制作报告。那么数据填充接口发生在哪里呢?你能解释一下吗?