为什么我的交叉表在 Excel 中被切断?

2024-01-18

我正在尝试使用 BIRT 创建 Excel 电子表格。该电子表格是将两个对象映射在一起的交叉表。行数和列数是根据 MySQL 数据库中的值动态变化的。目前我已经实现了 PDF 输出报告。现在,我正在尝试创建 Excel 报告的第二个版本。

我已经复制了报告设计并开始调整它以与 Excel 一起使用。一切看起来都不错,但标题后面只显示前 3 列。所有行均正确显示。

我已经尝试过以下方法:

  • 我尝试在页面上的每个元素上将“溢出”设置为“可见”。这没有效果。
  • 我尝试将母版页的高度和宽度设置为大得离谱。所有信息都正确显示,但我希望找到一个没有硬编码值的解决方案。将来数据宽度可能会再次超过我的任意值并被截断。

我在以下几个方面受到限制:

  • 我无法切换报告引擎(我必须使用 BIRT)。
  • 我无法切换 Excel 发射器。

这篇博客文章提到了我的问题:http://www.spudsoft.co.uk/2011/10/the-spudsoft-birt-excel-emitters/ http://www.spudsoft.co.uk/2011/10/the-spudsoft-birt-excel-emitters/但除了发射器开关之外,它没有提供其他解决方案。具体引用是“这些文件还存在我无法解决的页面布局问题(特别是宽的报告将被切断)。”

除了一篇博客文章之外,我的 googlefu 也让我失望了。任何帮助表示赞赏!谢谢你!


这里有两个问题。第一个比较简单,第二个比较复杂。

1.为什么我的Excel中的交叉表被切断了?

2.如何在运行时根据报表的列数动态调整母版页宽度?

A1:交叉选项卡被切断,因为列宽已手动设置,其中列数将扩展超过母版页的设置宽度。每当您获取报表设计元素并进行调整时,BIRT 都会假设您知道自己在做什么,并且不会覆盖您的设置。

解决方案是重新创建报表元素(表或交叉表),而不是手动调整任何大小。当在 HTML 或 Excel 中运行时,所有列将自动设置为以可用的母版页宽度显示。

BIRT 4.2 交叉表、具有 2 英寸母版页宽度和 30 列的报表项的屏幕截图

A2:这并不容易,我现在不会提供答案。我将指出解决方案并确定一些障碍。此问题的有效解决方案必须包括使用示例数据库的有效解决方案。

(从 BIRT 4.2.1 开始)

挑战1 - 设置母版页宽度BIRT 报告脚本 http://www.eclipse.org/birt/phoenix/deploy/reportScripting.php在报告表或交叉表项目完成之前的事件中。您不能简单地计算报告中有多少列;

如果你想计算列数——

报告设计初始化

 columnCount = 0;

交叉表,onCreate

 columnCount ++;

在我的研究中,建议有两种路径用于在创建交叉表项之前对列进行计数。任何一个

  1. 运行beforeFactory中的数据集(这意味着对数据库进行两次查询,一次用于计数,一次用于报告),然后进行计数并使用它。

  2. 计算初始查询中的值并将其收集到数据集中 onFetch。

我遵循使用计算列的数据集 onFetch 选项,但没有使其正常工作。

挑战2 - 母版页的宽度属性必须在报表设计之前或渲染之前设置。 beforeFactory 是最常推荐的。此外,母版页的宽度属性仅在母版页“类型”设置为“自定义”时才可用,在我的尝试中,我在属性编辑器中手动设置此属性General.

将值从 onFetch 传递到 beforeFactory 必须使用 PersistentGlobalVariable 来完成,它只能传递字符串,而不能传递整数。我发现了各种方法都行不通。即使在 PersistentGlobalVariable 中传递“12in”也无法调整母版页宽度

beforeFactory 中的这些代码中的任何一个都会调整母版页宽度(当 Type = Custom 时)

传递价值

reportContext.getReportRunnable().designHandle.getDesignHandle().findMasterPage("Simple MasterPage").setProperty("width","12in");

计算一个值并传递它

increaseWidth = 20;
reportContext.getReportRunnable().designHandle.getDesignHandle().findMasterPage( "Simple MasterPage").setProperty("width",((2+increaseWidth)+"in"));

最后,我无法找到或创建一个功能报告来调整在报告运行时生成的数字列上传递的母版页宽度。我认为这是可能的,但这样做超出了我目前的能力。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我的交叉表在 Excel 中被切断? 的相关文章

  • 合并和颜色样式不适用于 Apache POI excel 2003 格式

    在 Apache POI 中 我为某些单元格应用了一些样式并合并了这些单元格 当我在 2010 年或 2007 年打开时 它工作正常 但在 2003 年 格式样式消失了 每次保存 2003 Excel 文件之前都会弹出兼容性检查对话框 请参
  • Office excel将CORS请求作为跨域请求

    我正在尝试从我的 Excel 插件发出跨域请求 正如这里所建议的 http dev office com docs add ins develop addressing same origin policy limitations http
  • VBA ByRef 参数类型不匹配

    最初在我的主代码部分中 我有一个丑陋的 if 语句 尽管它会运行丑陋 我决定将其设为我要调用的函数 这导致我收到错误 编译错误 ByRef 参数类型不匹配 我的假设是该函数需要正确引用 尽管我一直在阅读文档并且不明白为什么 gt 声明 Sh
  • 两个日期之间的小时数在 Excel 中不起作用

    根据要求 我提供了一张简化的屏幕截图来说明该问题 如您所见 我减去了两个日期并将其格式化为 h mm ss 为什么这不能提供两个日期之间经过的总小时数 有一个更好的方法吗 下面有一个很好的答案 但我试图弄清楚为什么按照此屏幕截图中所示的方式
  • 我如何以更好的方式编码而不是像这样的VBA编码

    我正在 Excel 中创建一个仪表板 但是我想知道是否有比这更好的编码方式 我想对其进行模块化 而不是这样做以使其更加整洁 Private Sub Afford If af Value True Then af afr Value Shee
  • Excel 2003 中的 IFERROR

    我通过阅读几个线程了解到IFERROR在 Excel 2003 中由IF ISERROR 我尝试从 Excel 2007 复制的代码是 IFERROR A1 我知道必须有一个简单的解决方案将其转换为IF ISERROR 但我没有任何效果 意
  • 如何在 Excel 中对“高”字符进行 HTML 编码或音译?

    在 Excel 中 如何将包含重音字符 大引号等的单元格内容转换为相同字符的 HTML 或音译纯文本版本 我们有一个 XLS 文档 其中包含一些 高 字符 数据已通过数据库连接提取 并且 Excel 似乎正确处理不同代码页中的各个单元格 或
  • 使用“Openxml writer”合并 Excel 中的单元格

    我想合并单元格是excel 通过使用 DOM 方法 我可以轻松做到这一点 但由于我的 Excel 文件太大 当我尝试获取工作表时 它会抛出内存不足异常 所以我必须使用SAX方法来读取excel文件 但我不知道如何用这种方法合并单元格 查了很
  • 使用 PhpSpreadsheet PHP 设置单元格边框样式

    我使用 PhpSpreadsheet 来读取或写入 Excel 文件 我想向我的 Excel 添加边框样式 所以我使用了以下代码
  • 从Excel工作表中读取汉字? (总是返回“???”)

    如何从Excel单元格中读取汉字并将其写入文件 当我取值时 Worksheets ActiveCell Worksheet Name Cells 3 columnNumbers 0 value 它总是返回 Dim fileStream Fi
  • 计算序列中的重复值

    如何使用Excel计算列中的重复数据 Example A B apple 1 apple 2 apple 3 ball 1 bat 1 dog 1 dog 2 gole 1 gole 2 gole 3 gole 4 我认为对于你的情况中的所
  • 生成Excel文件错误

    我在经典 ASP 中使用以下代码生成 Excel 文件 代码很简单并且有效 我在 Windows Vista x86 上的 IIS 7 0 下运行代码 两个问题 有一个奇怪的警告框 这是屏幕快照 http i27 tinypic com 2
  • Office 365 中 Excel 中 Power Pivot 的计算列中正确的 DAX GROUPBY 语法是什么

    将以下语法输入到下面在 Excel Office 365 版本 的 powerpivot 中提供的表 Visits 的计算列公式中 GROUPBY Visits Patient Name First Visit Date MINX CURR
  • 如何获取活跃的Excel实例?

    我有一个 C 应用程序 该应用程序根据用户需求将信息粘贴到 excel 背后的逻辑是这样的 如果没有正在运行的 excel 实例 它会创建一个实例并粘贴到该实例 如果只有一个实例在运行 它会尝试获取该实例并使用它 这是我用来执行此操作的代码
  • 有没有办法使用 Python Pandas 读取所有行,直到遇到空行

    我在 Excel 中有很多行 并且这些行在空行之后填充有垃圾值 有没有办法使用 Python pandas 只读取 Excel 中第一个空行之前的记录 我不知道 read excel 是否可以做到这一点 如果您从 Excel 导入空行 这些
  • 将数据从 R 导出到 Excel

    我试图将从 R 获得的一些结果导出到 Excel 中 但未成功 我尝试过以下代码 write table ALBERTA1 D ALBERTA1 txt sep t write csv ALBERTA1 ALBERTA1 csv your
  • 从 X、Y、Z 数据、Excel 或其他工具进行 3D 绘图

    我的数据看起来像这样 1000 13 75 2 1000 21 79 21 1000 29 80 02 5000 29 87 9 5000 37 88 54 5000 45 88 56 10000 29 90 11 10000 37 90
  • python XlsxWriter 设置多个单元格周围的边框

    I need an easy way to set border around multiple cells like so 我发现的只是 1 个单元格的边框 并合并单元格 这不是我需要的 我期待类似的事情 worksheet range
  • 有没有一种方法可以将这些列转换为数据格式?

    有没有办法将这些列转换为数据格式 gg mm aaaa 时 分 秒 日期 20220601 gt gt gt gt 2022 06 01 小时 3047 gt gt gt gt gt 00 30 47 时 分 秒 我对 B 列有严重问题 我
  • VBA将二进制图像转换为网页的base64编码字符串

    我正在尝试读取 JPG 文件并将该文件转换为 base64 编码的字符串 该字符串可用作网页上的嵌入 jpeg 我在网上发现了两个在 VBA 中进行 Base64 编码 解码的函数 它们似乎被广泛接受 编码 解码过程产生了我的原始二进制字符

随机推荐

  • CSS3 / HTML5 的盒子阴影不均匀?

    我正在尝试为网站创建不均匀的阴影效果 请参阅下面的示例来了解我需要实现的目标 不幸的是 我不认为这可以用 CSS3 来完成 据我所知 box shadow 属性只能用于创建均匀分布的阴影 然而 我对 CSS3 HTML5 的了解并不多 所以
  • 为什么我的 public void Constructor {} 无法编译?

    我有一项作业 要求银行帐户能够从支票和储蓄帐户转移资金 交易存储在 ArrayList 中 并由用户指定何时转移资金 用于支票和储蓄的银行帐户类工作正常 但我创建的 TransferService 类在 NetBeans 中无法正确编译 这
  • 我的 Mac OS X Mountain Lion 上有太多蟒蛇

    我不久前更新到了 Mountain Lion 之前使用过 python 现在我的电脑上安装了 8 个 是的 8 个版本的 python ls l System Library Frameworks Python framework Vers
  • 捕获Using块的目标对象的构造函数中抛出的异常

    using SomeClass x new SomeClass c temp test txt 在 using 块内 一切正常 可以正常处理异常 但是如果构造函数SomeClass可以抛出异常吗 将您的使用放入 try catch fe 中
  • 如何在没有数据库的情况下制作自定义表单 - DJANGO

    所以我想上传文件 但只发送到本地存储而不是数据库 但我不知道如何制作自定义表格 突然 这是我的 models py from django db import models class Audio store models Model re
  • 删除 SQL 中的每个备用行

    我需要清理一个包含三列的表 ID 唯一标识符 观察值 nvarchar 和时间戳 日期时间偏移 内容由两个传感器以 1 小时的间隔生成 并且两个传感器的 Observation 值相同 我的想法是做一个 SELECT 查询 例如 SELEC
  • 不允许任何人访问目录 .htaccess

    它可能很简单 但我找不到它 我想制作一个 htaccess 文件 这样任何人都无法进入该文件夹 除了服务器上的 php 之外 有谁知道代码行吗 谢谢 马蒂 You want Deny from all
  • 不同包中的类名相同

    同一类可以存在于多个包中吗 换句话说 我可以有Foo java上课于com test package1 and com test package2 Update 现在我从包 1 中复制了类并放入包 2 中 现在我正在创建该类的实例 我希望该
  • C# Regex.Split:删除空结果

    我正在开发一个应用程序 该应用程序导入数千行 其中每行的格式如下 9070183020 04 02 2011 107222 M S SUNNY MEDICOS GHAZIABAD 32 768 00 我正在使用以下Regex将行拆分为我需要
  • Apache2 Django NameError:名称“TypeError”未定义

    我试图通过 apache2 在 VPS 上运行 django 应用程序 但我在网站错误文件中收到以下内容 也是 400 错误请求 Exception ignored in
  • 可以使用 Python 标准库完成结构化日志记录吗?

    我最近读到了有关结构化日志记录的内容 here https stackify com what is structured logging and why developers need it 这个想法似乎不是通过将简单的字符串作为一行附加
  • Chromium 嵌入式框架:使用“ExecuteFunctionWithContext”时创建对象失败

    Overview 我在 Delphi 2009 上使用 chromium 嵌入式框架 cef 它是最新版本 Error 我可以用ExecuteFunctionWithContext成功执行 JavaScript 回调例程 我可以为其提供参数
  • 在 Glassfish 部署期间,WEB-INF/lib 中的 JAR 库未添加到类路径中

    尽管我已经使用 Java 几年了 但我还是 Glassfish 和 Java EE 的新手 我继承了一个停滞的项目 现在我需要重新开始开发 我正在尝试按原样部署 Web 应用程序 以查看哪些内容有效以及哪些内容需要注意 虽然实现各种功能的代
  • 如何防止(引导)固定顶部导航在移动设备上缩放

    在使用Bootstrap 3的固定顶部导航时 我注意到当用户在移动设备上使用原生缩放时 顶部导航也变得非常大 这会导致非常糟糕的用户体验 导航模糊了大部分内容并最终自行损坏 如以下示例所示 这个问题可以在网上看到http www explo
  • 如何暂停 android.speech.tts.TextToSpeech?

    我正在使用 Android TTS 播放文本 android speech tts TextToSpeech I use TextToSpeech speak说话和 stop停止 有没有办法也暂停文本 据我所知 TTS SDK 没有任何暂停
  • 如何仅修改react .map函数中的一个元素?

    我对反应有点陌生 并且对在这里做什么有点迷失 我正在从 firebase 加载数据并使用 map 函数渲染该对象的 props 以列出页面上的所有 评论 效果很好 我还想调用一个组件 该组件允许用户回复单个评论 即地图中的一个特定元素 但正
  • JPA:从属性创建 EntityManagerFactory

    我在 JAR 项目中使用 JPA 并使用 persistence xml 来设置我的 EntityManager 但由于 persistence xml 在构建后位于 JAR 内 因此用户随后更改设置非常复杂 因此 我正在寻找一种解决方案
  • C语言中数字之间插入空格

    我该如何获取像这样的数字123456并将其打印为1 2 3 4 5 6 最简单的方法 尽管不是最快的 可能是首先sprintf http linux die net man 3 sprintf将数字存入字符串缓冲区 然后循环遍历该缓冲区pr
  • 如何在 sbt 中有条件地调用任务?

    Say taskA是一项繁重的任务 只有在启用它并且taskAEnabled是对应的设置键 一个天真的方法是 val taskAConditional Def task taskAEnabled taskA map taskAEnabled
  • 为什么我的交叉表在 Excel 中被切断?

    我正在尝试使用 BIRT 创建 Excel 电子表格 该电子表格是将两个对象映射在一起的交叉表 行数和列数是根据 MySQL 数据库中的值动态变化的 目前我已经实现了 PDF 输出报告 现在 我正在尝试创建 Excel 报告的第二个版本 我