Crystal reports 水晶报表中的坐标系

Crystal reports 水晶报表中的坐标系,crystal-reports,coordinates,Crystal Reports,Coordinates,我正在使用CR版本13.0.25-我相信截至目前实际的最新版本是13.0.26,因此,基本上是CR的最新版本。我正在使用的是从C代码动态地重新定位报告中的元素 有几份报告的原始rpt(设计于数年前)跨越多个页面。特别是这些问题给我带来了麻烦,但它们不是唯一的问题。这里的问题集中在y(垂直)维度上 CR文档使用基于文档左上角的坐标系,也基于twips(1440 twips/in)。因此,从理论上讲,我应该能够将ReportObject的Top值设置为1440,并且该元素应该从某个基准(页面顶部或页

我正在使用CR版本13.0.25-我相信截至目前实际的最新版本是13.0.26,因此,基本上是CR的最新版本。我正在使用的是从C代码动态地重新定位报告中的元素

有几份报告的原始rpt(设计于数年前)跨越多个页面。特别是这些问题给我带来了麻烦,但它们不是唯一的问题。这里的问题集中在y(垂直)维度上

CR文档使用基于文档左上角的坐标系,也基于twips(1440 twips/in)。因此,从理论上讲,我应该能够将
ReportObject
Top
值设置为1440,并且该元素应该从某个基准(页面顶部或页边距底部-我相当确定它是页边距底部)打印1“

我的结果似乎并没有反映这一点——至少不完全如此

当我设置
Top
值时,某些文档的y维度似乎是按比例缩放的。事实上,我可以应用一个恒定的比例因子(它随文档而变化),并且我可以使字段以相对1”的间距显示,一直到页面底部。但是,该比例因子因文档而异

因此,除了在生产代码中进行实验外,我还做了以下工作:

我创建了一个C#控制台应用程序,它打开一个rpt文件,抓取其中的一些元素,重新定位它们,然后将其发送到打印机。我设计了一个新的rpt文件,页眉和页脚的大小尽可能小,并在细节部分添加了10个文本字段。我遍历字段(通过
ReportDocument
ReportObjects
并将它们重新定位在0、1440(1)、2880(2”)等位置

对于具有默认页边距的文档来说,这非常有效。默认情况下,每边的页边距为(.167英寸)。第一个元素的顶部与页边距的底部对接,第二个元素为1“从第一个元素的顶部到第二个元素的顶部,依此类推。但是,如果我将页边距减少到零(无论是通过编程还是在设计中),我会得到这种缩放效果。现在所有元素的间距都大约为7/8”,而不是我预期的1”


有人知道坐标系为什么会发生变化的神奇公式或文档吗?我可以理解,如果我改变可以抵消页面上所有内容的边距(假设边距是我们的基线),但在我看来,元素间间距1440仍应为1“

我认为Y是从该部分顶部的垂直距离,而不是从页面顶部的垂直距离