是否可以将数据字段的宽度与标题宽度同步?

时间:2019-06-04 09:41:42

标签: oracle report oraclereports

我有一个报告,显示一个或两个城市的数据。数据为数字且较​​窄,而城市名称可以更长。 我有一个查询/重复框架用于城市名称(以及其他一些信息),还有一个查询/重复框架用于多行数据。 每个城市都有5个数值。

使用简短的城市名称,列会很好地对齐,但是使用较长的城市名称,名称列会在右侧越来越多地扩展,而数据列则在左侧和左侧却越来越短。

我认为不可能将字段固定在一起,因为它们位于不同的框架中。 固定框架可以使值框架位于城市框架的中心,但各列不再对齐。

我的布局原则,这里每个城市有3个值。这两个框架仅向下重复,而城市框架仅给出一排。

 ___________________________________________________
| Some label                                        | rep. frame
|  _____   _____    _____   _____    _____   _____  |
| |     | |     |  |     | |     |  |     | |     | |
| |City1| |City2|  |City1| |City2|  |City1| |City2| |
| |_____| |_____|  |_____| |_____|  |_____| |_____| |
|___________________________________________________|
 ___________________________________________________
|  _____   _____    _____   _____    _____   _____  | rep. frame
| |     | |     |  |     | |     |  |     | |     | |
| |ValA1| |ValA2|  |ValB1| |ValB2|  |ValC1| |ValC2| |
| |_____| |_____|  |_____| |_____|  |_____| |_____| |
| more rows...                                      |
|___________________________________________________|

使用更长的名称,布局变为:

 ________________________________________________________________________
| Some label                                                             |
|  ______   ___________    ______   ___________    ______   ___________  |
| |      | |           |  |      | |           |  |      | |           | |
| |Longer| |Even longer|  |Longer| |Even longer|  |Longer| |Even longer| |
| |______| |___________|  |______| |___________|  |______| |___________| |
|________________________________________________________________________|
 ___________________________________________________
|  _____   _____    _____   _____    _____   _____  |
| |     | |     |  |     | |     |  |     | |     | |
| |ValA1| |ValA2|  |ValB1| |ValB2|  |ValC1| |ValC2| |
| |_____| |_____|  |_____| |_____|  |_____| |_____| |
| more rows...                                      |
|___________________________________________________|

如果没有其他方法,我可能会尝试使用初始联合扩展值查询,以同时获取选定的城市。然后,城市名称和值将在同一字段中打印。最后,我可以删除城市区域,并将最上面的重复帧变成常规帧。

2 个答案:

答案 0 :(得分:0)

如您所说,

UNION可能是一个选择。

另一种方法是在纸张布局编辑器中执行此操作:对于两个重复的框架,将所有字段扩展到最大(以便填充整个纸张宽度),然后将其水平弹性设置为“固定” ”(这样就不会再向右扩展,但它们也不会缩小。)

您可能希望将垂直弹性保留为“可变”,以防万一某些值大于字段宽度允许的值。

框架在水平方向上也可能是“固定”的(可能已经固定),而在垂直方向上则是“可变”的。

答案 1 :(得分:0)

因此,我尝试使用UNION在同一框架中获取名称和值。 至少我可以忍受...

结果是这样

 ________________________________________________________________________
| Some label                                                             |
|  ______   ___________    ______   ___________    ______   ___________  |
| |      | |           |  |      | |           |  |      | |           | |
| |Longer| |Even longer|  |Longer| |Even longer|  |Longer| |Even longer| |
| |______| |___________|  |______| |___________|  |______| |___________| |
|  _____   _____    _____   _____    _____   _____                       |
| |     | |     |  |     | |     |  |     | |     |                      |
| |ValA1| |ValA2|  |ValB1| |ValB2|  |ValC1| |ValC2|                      |
| |_____| |_____|  |_____| |_____|  |_____| |_____|                      |
| more rows...                                                           |
|________________________________________________________________________|

报告的最终结果是HTML <table>,我想我希望最宽的字段值将决定该<td>的宽度。但是Reports使用colspan来使行变得唯一...

因此,最后我必须将字段设置为固定的水平宽度并垂直扩展。宽度设置为“合理”,因为最大宽度会使表格难看且难以阅读。 我还将长城市名称的“翻译”添加到了更多的“拆分友好”中,例如从斯德哥尔摩到Stock-holm(或者可能像Stockhol-m一样拆分)。