Отсутствует меню экспорта сетки AngularJS - PullRequest
0 голосов
/ 05 октября 2018

Попытка использовать 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;


             };
...