我有两个从PL/SQL返回函数动态创建的经典报告。每个报表的数据通常包含相同的数据,但它们的列名通常不同。
我希望它们垂直对齐,但列名的差异使列宽度不同。我的目标是将每个列的宽度设置为第一个或第二个报告的列中较大的一个。我想我会找到每个列长度的较大值,然后乘以一个设置的像素量。
但是,对于动态生成的报表,我该如何首先动态地设置列宽度呢?
您可以使用APEX内置的jQuery库使用一些Javascript来完成此操作。
(警告:我的Javascript不是世界上最优雅的!)
这个为我工作:
1)在页面的"函数和全局变量声明"属性中创建这个函数:
function setColWidths(colId) {
var maxWidth = 0;
$('th#'+colId).each (function (index) {
w = $(this).width();
maxWidth = Math.max(maxWidth,w);
});
$('th#'+colId).each (function (index) {
$(this).width(maxWidth);
});
}
2)在页面的"当页面加载时执行"属性中,为每一列调用函数:
setColWidths('COL01');
setColWidths('COL02');
setColWidths('COL03');
您也许可以增强此解决方案,以便您不需要为每个列显式地调用该函数。