function doGet() { var data = Charts.newDataTable() .addColumn(Charts.ColumnType.STRING, 'Fiscal Year') .addColumn(Charts.ColumnType.NUMBER, 'Cost') .addColumn(Charts.ColumnType.NUMBER, 'Downloads') .addColumn(Charts.ColumnType.NUMBER, 'Cost Per DL') .addColumn(Charts.ColumnType.NUMBER, '% of Total Budget') .addColumn(Charts.ColumnType.NUMBER, '% of Total Usage') .addColumn(Charts.ColumnType.NUMBER, 'Trend') .addRow(['2010-11', 14230.00, 20307, 0.70, 8.4, 6.2, 0]) .addRow(['2011-12', 14230.00, 21075, 0.68, 7.1, 6.4, 768]) .addRow(['2012-13', 14660.00, 24673, 0.59, 6.5, 7.5, 3598]) .addRow(['2013-14', 16015.00, 21028, 0.76, 5.9, 6.4, -3645]) .addRow(['2014-15', 16385.00, 25950, 0.63, 6.1, 7.9, 4922]) .build(); var chartCost = Charts.newLineChart() .setLegendPosition(Charts.Position.NONE) .setDataTable(data) .setDataViewDefinition(Charts.newDataViewDefinition() .setColumns([0, 1])) .setTitle('Subscription Cost = $16,385') .build(); var chartDownloads = Charts.newLineChart() .setLegendPosition(Charts.Position.NONE) .setDataTable(data) .setDataViewDefinition(Charts.newDataViewDefinition() .setColumns([0, 2])) .setTitle('Total Downloads = 25,950') .build(); var chartCostPer = Charts.newLineChart() .setLegendPosition(Charts.Position.NONE) .setDataTable(data) .setDataViewDefinition(Charts.newDataViewDefinition() .setColumns([0, 3])) .setTitle('Cost Per Download = $.063') .build(); var chartPercentBudgetUsage = Charts.newLineChart() .setLegendPosition(Charts.Position.BOTTOM) .setDataTable(data) .setDataViewDefinition(Charts.newDataViewDefinition() .setColumns([0, 4, 5])) .setTitle('% of Budget = 6.1% | % of Usage = 7.9%') .build(); var tableChart = Charts.newTableChart() .setDataTable(data) .setDimensions(800, 235) .setInitialSortingDescending(1) .build(); var dashboard = Charts.newDashboardPanel() .setDataTable(data) .build(); var uiApp = UiApp.createApplication().setTitle("General ACME Database Longitudinal Data"); dashboard.add(uiApp.createVerticalPanel() .add(uiApp.createHorizontalPanel() .add(chartCost).add(chartDownloads) .setSpacing(1)) .add(uiApp.createHorizontalPanel() .add(chartCostPer).add(chartPercentBudgetUsage) .setSpacing(1)) .add(uiApp.createHorizontalPanel() .add(tableChart) .setSpacing(50))); uiApp.add(dashboard); return uiApp; }