如何使用python的“pyreportjasper”连接ms-sql-serve数据库以将“jrxml”转换为“pdf”?

问题描述 投票:0回答:2

我使用jaspersoft studio创建了一个jrxml文件,在其中我创建了一个mssql服务器连接来填充报告元素..现在我想使用这个jrxml并将其转换为pdf和其他格式,但我面临的问题是我我无法看到任何为 mssql 服务器创建 db_connection 的选项。我确实研究了 python 的pyreportjasper 模块,并且没有可用于 mssql 服务器的 db_type 。即使在他们的文档中,也没有分享任何与 mssql 服务器连接的示例。这是包文档的链接:https://pyreportjasper.readthedocs.io/en/master/userguide.html

python sql-server jasper-reports jaspersoft-studio
2个回答
0
投票

不要忘记下载 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()

0
投票

谢谢您的回答。 输入文件jrxml如何知道如何将来自ms sql数据库的数据填充到报告文件中? 因为当我查看 .jrxml 文件时,没有提及与我们正在考虑的记录相关的表或列名称。 我想直接从 python 和 jasper 库动态制作报告。那么数据填充接口发生在哪里呢?你能解释一下吗?

© www.soinside.com 2019 - 2024. All rights reserved.