В строке внешней таблицы вы можете записать некоторые значения строки в переменную.
Во внутренней таблице вы можете получить доступ к этой переменной.
edit: вам нужна «переменная» с глобальнымобласть доступа.Один из способов сделать это - инициализировать переменную в скрипте initialize () отчета (beforeFactory () или onPrepare () также являются допустимыми параметрами)
myVar1 = 0; //has global scope
var myVar2 = 0; //has only local scope
→ Попробуйте переместить скрипт вашей внутренней таблицы изonPrpare () для onCreate ()
вот простой пример отчета (обновленный связанный пример с динамической шириной)
В этом примере я передаю значение1 | 2 | 3
от внешнего до внутреннего стола.В onCreate () внутренней таблицы вы можете объединить это значение с соответствующей единицей, например.cm
или in
.Также убедитесь, что у вас есть «Фиксированный макет» (а не «Авто макет») для отчета.
//"this" is the table
this.width = myVar1 + ' cm'; // set inner table width
edit: установка ширины столбца внутренней таблицы вместо самой ширины таблицы также может быть выполнена из onCreate() этой внутренней таблицы.
/* initialize() of Report */
dynColWidth = null; // initialize a var with global scope to store an array
/* onCreate() of outerTable's Cell (using a DynamicText Field makes it more obvious) */
dynColWidth = [1*row["ID"], 2*row["ID"]]; // create the array with your 12 values here
/* onCreate() of innerTable ("this" is the table) */
var i;
for(i=0; i<this.getColumnCount(); i++) {
this.getColumn(i).width = dynColumnWidth[i] + 'cm';
}