Попытка использовать AngularJS с ui-grid для отображения разных, но связанных отчетов, основанных на выборе пользователя, но меню экспорта отсутствует.Я просматривал похожие проекты в базе кода - и на других страницах, которые экспортируют данные такого типа, проблем нет.Я попытался явно установить enableGridMenu: true, но не повезло.
Ниже перечислены коды агрегации данных и параметры gridOptions на основе различных типов отчетов.Не уверен, что происходит не так.Любая помощь будет принята с благодарностью.
var outerGridApi = null;
this.gridOptions = {
showHeader: true,
showColumnFooter: true,
useExternalSorting: false,
exporterFieldCallback: storesalesPdfFormatter.exporterFieldCallback,
multiSelect: true,
enableRowSelection: true,
enableRowHeaderSelection: false,
exporterPdfCustomFormatter: function (docDefinition) {
return exportGridFactory.exportTitle(docDefinition, title,
this.filterOptions.dateRange.startDate, this.filterOptions.dateRange.endDate);
}.bind(this)
};
this.gridOptions.deferredRegisterApi = $q.defer();
this.gridOptions.deferredRegisterApi.promise.then(function (gridApi) {
outerGridApi = gridApi;
});
var setSumGridOptions = function () {
this.gridOptions.useExternalPagination = true;
this.gridOptions.enableSorting = true;
this.gridOptions.treeRowHeaderAlwaysVisible = true;
this.gridOptions.columnDefs = storesalesGridColumns.salesSumGridCols;
}.bind(this);
var setMainGridOptions = function (cols) {
this.gridOptions = {};
this.gridOptions.columnDefs = cols;
this.gridOptions.showColumnFooter = true;
this.gridOptions.onRegisterApi = function (gridApi) {
this.outerGridApi = gridApi;
}.
bind(this);
}.bind(this);
var refreshUi = function (reportType) {
switch (reportType) {
case this.reportType.salesAnalysis:
{
setMainGridOptions(storesalesGridColumns.salesAnalCols);
storeSalesService.getData(this.filterOptions, true).then(function (reportData) {
var treeRoots = reportData.tableData.filter(function (x) { return x.$$treeLevel !== undefined }).length;
if (treeRoots === 1) {
this.showTreeViewGrid = false;
}
if (reportData.tableData[0].Name === 'Unnamed' && (treeRoots === 1)) {
reportData.tableData.shift();
}
this.gridOptions.data = reportData.tableData;
storesalesGridColumns.salesAnalCols[1].salesServerAggregation = reportData.aggregations.salesAggregation;
storesalesGridColumns.salesAnalCols[2].lastYearSalesServerAggregation = reportData.aggregations.lastYearSalesAggregation;
storesalesGridColumns.salesAnalCols[3].percentServerAggregation = reportData.aggregations.percentAg;
storesalesGridColumns.salesAnalCols[4].ItemsServerAggregation = reportData.aggregations.itemsAg;
storesalesGridColumns.salesAnalCols[5].averagePriceServerAggregations = reportData.aggregations.avgPriceAg;
if (treeRoots !== 1) {
this.outerGridApi.treeBase.collapseAllRows();
}
//this.chartData = chartsDataParser.getSalesAnalysisChartData(this.gridOptions.data);
//handleChartResize();
}.bind(this));
title = 'Sales Analysis Report';
break;
}
case this.reportType.monthlySummary:
{
setMainGridOptions(storesalesGridColumns.monthSumCols);
this.gridOptions.data = monthlyData;
this.chartData = chartsDataParser.getMonthlySummaryChartData(this.gridOptions.data);
title = 'Monthly Summary Report';
handleChartResize();
break;
}
case this.reportType.salesSummary:
{
setSumGridOptions();
refreshSalesSummary(true);
title = 'Sales Summary Report';
break;
}
default: break;
};