PL/SQLの戻り関数から動的に作成される2つの古典的なレポートがあります。各レポートのデータには通常同じデータが含まれていますが、列名は通常異なります。
縦に並べてほしいのですが、列名が違うと列幅が違います。私の目標は、各列の幅を、各列の最初または2番目のレポートの列の大きい方に設定することです。各列の長さの大きい方と、そのために設定されたピクセル量の倍数を見つけるだけだと思います。
ただし、動的に生成されたレポートの場合、そもそも列幅を動的に設定するにはどうすればよいでしょうか。
PL/SQLの戻り関数から動的に作成される2つの古典的なレポートがあります。各レポートのデータには通常同じデータが含まれていますが、列名は通常異なります。
縦に並べてほしいのですが、列名が違うと列幅が違います。私の目標は、各列の幅を、各列の最初または2番目のレポートの列の大きい方に設定することです。各列の長さの大きい方と、そのために設定されたピクセル量の倍数を見つけるだけだと思います。
ただし、動的に生成されたレポートの場合、そもそも列幅を動的に設定するにはどうすればよいでしょうか。
これは、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');
このソリューションを拡張して、列ごとに関数を明示的に呼び出す必要がないようにすることもできます。