Вопрос

Считать количество обращений за промежутки времени. (9-12, 12-15, 15-17)

Добрый день! 

Создал модальное окно согласно документации.  https://community.terrasoft.ru/articles/prosteisee-modalnoe-okno-modalbox.

Проблема заключается в том чтобы в модальном окне создать и заполнить поля. Через БП не получается, так как это страница ни к чему не относиться. 

Скрин какой я хочу результат вложен. 

Уже как вторую неделю парюсь... Заранее спасибо.

Прикрепленные файлы

Нравится

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

Добрый день!

Как вариант, создать представление (пример), которое будет просчитывать и возвращать ваши данные.

На страницу модального окна добавить список (GRID) с отображением данного представления, например:

{
    "operation": "insert",
    "parentName": "GridLayout",
    "propertyName": "items",
    "name": "CheckSettingsGrid",
    "values": {
        "itemType": Terrasoft.ViewItemType.GRID,
        "captionsConfig": [ { cols: 18, name: resources.localizableStrings.ParameterGridTitleCaption },
                            { cols: 6, name: resources.localizableStrings.ParameterGridValueCaption } ],
        "columnsConfig": [ {cols: 18, key: [{ name: { bindTo: "Caption"}}]},
                            {cols: 6, key: [{ name: { bindTo: "Value"}}]} ],
        "collection": {bindTo: "Params"},
        "type": "listed",
        "id": "connection-parameters-grid-" + Terrasoft.generateGUID(),
        "primaryColumnName": "Id",
        "listedZebra": true,
        "layout": {
            "column": 0,
            "row": 0,
            "colSpan": 16
        }
    }
},
load: function(esq) {
    var grid = this.get("Params");
    grid.clear();
    esq.getEntityCollection(function(response) {
		if (response && response.success) {
			var items = response.collection;
			grid.loadAll(items);
		}
	}, this);
}

 

Добрый день!

Как вариант, создать представление (пример), которое будет просчитывать и возвращать ваши данные.

На страницу модального окна добавить список (GRID) с отображением данного представления, например:

{
    "operation": "insert",
    "parentName": "GridLayout",
    "propertyName": "items",
    "name": "CheckSettingsGrid",
    "values": {
        "itemType": Terrasoft.ViewItemType.GRID,
        "captionsConfig": [ { cols: 18, name: resources.localizableStrings.ParameterGridTitleCaption },
                            { cols: 6, name: resources.localizableStrings.ParameterGridValueCaption } ],
        "columnsConfig": [ {cols: 18, key: [{ name: { bindTo: "Caption"}}]},
                            {cols: 6, key: [{ name: { bindTo: "Value"}}]} ],
        "collection": {bindTo: "Params"},
        "type": "listed",
        "id": "connection-parameters-grid-" + Terrasoft.generateGUID(),
        "primaryColumnName": "Id",
        "listedZebra": true,
        "layout": {
            "column": 0,
            "row": 0,
            "colSpan": 16
        }
    }
},
load: function(esq) {
    var grid = this.get("Params");
    grid.clear();
    esq.getEntityCollection(function(response) {
		if (response && response.success) {
			var items = response.collection;
			grid.loadAll(items);
		}
	}, this);
}

 

Сидоров Александр В.,

Спасибо за ответ. Возникает ошибка . 

"captionsConfig": [ { cols: 18, name: resources.localizableStrings.ParameterGridTitleCaption },

'resources' is not defined.

Насколько я понял тут нужно создать локализованную строку?

Объект создать base. Создал так https://i.imgur.com/qBKUvBy.png

adoolotbaev@mega.kg,

Да, это локализируемые строки, добавляются на страницу в раздел LocalizableStrings. Обеспечивают мультиязычное представление строк (в данном случае - заголовков таблицы).

resources надо объявить как переменная в объявлении страницы.

define("UsrMyModalPage", ["ModalBox", "UsrMyModalPageResources"], function(ModalBox, resources) {

По поводу объекта: если вы собираетесь реализовывать представление (view), то в настройках нужно проставить признак "Представление в базе данные" и создать view в самой базе.

Иначе это у вас будет просто таблица в базе, которую надо как то заполнять перед отображением страницы.

Прошу прощения объект создал. Не совсем понял как это реализовывается и отображается в модальном окне. 

С какими полями объект создавать? И как будет наполнятся.

Вот код модального окна. 

https://pastebin.com/RP0JvZ8S

Сидоров Александр В.

Прошу прощения объект создал. Не совсем понял как это реализовывается и отображается в модальном окне. 

С какими полями объект создавать? И как будет наполнятся.

Вот код модального окна. 

https://pastebin.com/RP0JvZ8S

adoolotbaev@mega.kg,

У вас на странице должна отображаться таблица.

Колонки таблицы - поля объекта. Т.е. нужны поля:

1) Дата - текстовое, если вам нужна информация в виде [Название дня недели] + [Дата]. Либо тип дата, если нужна только дата

2) Период 1 - тип числовой. Кол-во обращений за период 9:00-12:00

...

5) Период 4 - тип числовой. Кол-во обращений за период 18:00-20:00

Записи таблицы - значения объекта.



Далее нужно определиться как заполнять данный объект:

1) Если это реальный объект (т.е. таблица в базе данных), то нужно предусмотреть процедуру заполнения этой таблицы. Либо заполнять перед открытием страницы, либо предусмотреть периодический процесс, который будет добавлять запись в таблицу (например в 9:00, 12:00, ..., 20:00 каждый день)

2) Если это представление в базе данных - то этот объект физически в базе не хранится. Но есть представление (view), со списком колонок, аналогичному списку полей в вашем объекте. И в этом представлении прописана логика в виде SQL скрипта, которая налету рассчитывает и возвращает записи вашего объекта (за последние N дней).

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