# HG changeset patch # User Dustin Demuth # Date 1443619465 -7200 # Node ID 6739bfdb743e022803348b1045219ca02b571dc8 # Parent e7270963947cfc44abb348277d41fb28fea735fa LadaPrint enabled dynamic printing of tables. diff -r e7270963947c -r 6739bfdb743e app/controller/FilterResult.js --- a/app/controller/FilterResult.js Wed Sep 30 11:53:52 2015 +0200 +++ b/app/controller/FilterResult.js Wed Sep 30 15:24:25 2015 +0200 @@ -223,16 +223,35 @@ var i18n = Lada.getApplication().bundle; var me = this; var columns = []; + var columnNames = []; + var visibleColumns = {} var data = []; + // Write the columns to an array try { for (key in selection[0].data) { - // Do not write owner or readonly - if (["owner", "readonly"].indexOf(key) == -1){ + // Do not write owner or readonly or id + if (["owner", "readonly", "id"].indexOf(key) == -1){ columns.push(key); } } - } catch (e) { + } + catch (e) { + console.log(e); + } + + //Retrieve visible columns' id's and names. + try { + var grid = button.up('filterresultgrid'); + var cman = grid.columnManager; + var cols = cman.getColumns(); + for (key in cols) { + if (cols[key].dataIndex) { + visibleColumns[cols[key].dataIndex] = cols[key].text; + } + } + } + catch (e) { console.log(e); } @@ -245,34 +264,52 @@ //Lookup every column and write to data array. for (key in columns){ var attr = columns[key]; - if (row[attr] != null) { + //Only write data to output when the column is not hidden. + if (row[attr] != null && + visibleColumns[attr] != null) { out.push(row[attr].toString()); } - else { + else if (visibleColumns[attr] != null) { out.push(''); } } data.push(out); } - } catch (e){ + } + catch (e){ console.log(e); } - console.log(columns); - console.log(data); + + //Retrieve the names of the columns. + try { + var grid = button.up('filterresultgrid'); + var cman = grid.columnManager; + var cols = cman.getColumns(); + //Iterate columns and find column names for the key... + // This WILL run into bad behaviour when column-keys exist twice. + for (key in columns){ + for (k in cols){ + if (cols[k].dataIndex == columns[key]){ + columnNames.push(cols[k].text); + break; + } + } + } + } + catch (e) { + console.log(e); + } var printData = { 'layout': 'A4 landscape', 'outputFormat': 'pdf', 'attributes': { 'title': 'Auszug aus LADA', - 'datasource': [{ - 'displayName': 'Proben', - 'table': { - 'columns': columns, - 'data': data - } - - }] + 'displayName': 'Proben', + 'table': { + 'columns': columnNames, + 'data': data + } } }