Добрый день! Подскажите, пожалуйста, есть ли возможность изменить количество подгружаемых строк при просмотре данных в графике?

Изображение удалено.

Насколько я понимаю, за это количество (5 строк) отвечает параметр RowCount и функция getRowCount в схеме ChartModule.

Но эта функция (и параметр) находятся в классе, который, насколько я понимаю, я не могу изменить. Если сделать свой класс, наследованный от нужного, и поменять в нем параметр, то мне непонятно, как потом подменять класс отображаемого графика на свой.

Может быть, существует какой-нибудь безболезненный способ изменить значение нужного параметра?

Нравится

13 комментариев
Лучший ответ

Иван Небеддаг,

В общем, создаете Замещающий клиентский модуль, в поле Родительский объект выбираете "Модуль построения графиков", это 

ChartModule, из него просто скопируйте все, Ctrl + A, Ctrl+C и вставьте в ваш замещающий клиентский модуль весь скопированный код, затем найдите метод initGridData, где замените 5 на нужное вам число

Добрый день, можно в объект ChartProperty добавить поле с количеством отображаемых строк для графика и обрабатывать это поле в модуле построения графиков

А если вы создадите замещающий модуль к ChartModule, то он автоматически будет использоваться при построении графиков, но у вас опять же будет фиксированное количество строк для всех графиков

Это же задаётся пользовательскими средствами в настройках списка:

Колодяжный Владислав Эдуардович,

Зверев Александр,

Большое спасибо!

Александр, подскажите пожалуйста, как Вы открыли такие настройки списка? Потому что либо я не там их ищу, либо в версии 7.12.2 что-то другое в этих настройках:

Зверев Александр,

я изначально так же подумал, но для графиков такого нет, только для списка можно установить по умолчанию

В 7.12.0 это настраивается на второй вкладке свойств списка. Сначала открывают на редактирование пунктом меню «Изменить» всю панель итогов, потом на её схематическом изображении выбирают нужный список и открывается уже его редактирование свойств.

Для графиков, в отличие от списков, отдельные строки не подгружаются, поэтому такая настройка смысла не имеет. Если нужно только списочное представление с широкими настройками — используйте список, а не график.

Зверев Александр,

в графиках можно выбрать в меню "показать данные", и тогда вместо графика появляется список, в котором как раз и хотелось бы поменять эту настройку. Но я уже понял, что в пользовательском интерфейсе её нельзя изменить, к моему сожалению.

Колодяжный Владислав Эдуардович,

Насколько я понял, оба варианта, предложенных Вами сводятся в том числе к изменению ChartModule. Возможно, у меня возникают трудности из-за того, что я не до конца разобрался с классами, объявленными с помощью extJs. Для меня загвоздкой является именно то, что в ChartModule создается класс (Ext.define("Terrasoft.configuration.ChartViewModel"...), в котором уже есть параметр и функция. И я понимаю, как создать этот класс целиком в замещающей схеме, но не понимаю, как можно изменить в нем только одну функцию или один параметр. Потому что копипастить стандартный класс - не лучшая идея, он может меняться от версии к версии.

Иван Небеддаг,

Все что вам нужно, это в замещающей схеме, заместить один метод, в котором можете даже не вызывать родительский функционал, просто полностью его копируете, изменив старое значение на нужное вам и все, больше ничего делать не надо

Вместо графика используйте список, там поменять можно. Для элемента-графика функциональность в режиме списка является вспомогательной, там таких настроек не предусмотрено. 

Литвинко Павел,

Я прошу прощение за занудство, но подскажите, пожалуйста (в общих чертах), как мне заместить один метод в замещающей схеме, если основная схема имеет вид:

define("ChartModule", [...],

    function(...) {

        Ext.define("Terrasoft.configuration.ChartViewModel", {

            extend: "Terrasoft.BaseViewModel",

            alternateClassName: "Terrasoft.ChartViewModel",

            ...

            getRowCount: function() {

                return this.get("RowCount");

            },

            ...

        });

        return Terrasoft.ChartModule;

    });

Иван Небеддаг,

В общем, создаете Замещающий клиентский модуль, в поле Родительский объект выбираете "Модуль построения графиков", это 

ChartModule, из него просто скопируйте все, Ctrl + A, Ctrl+C и вставьте в ваш замещающий клиентский модуль весь скопированный код, затем найдите метод initGridData, где замените 5 на нужное вам число

Литвинко Павел,

Я как раз про это выше писал:

Иван Небеддаг пишет:

И я понимаю, как создать этот класс целиком в замещающей схеме, но не понимаю, как можно изменить в нем только одну функцию или один параметр. Потому что копипастить стандартный класс - не лучшая идея, он может меняться от версии к версии.

Спасибо всем за помощь! Буду тогда копать в сторону создания класса, унаследованного от нужного, и добавления его в аналитику.

Показать все комментарии