Нужно сделать сложную выборку из БД и загрузить ее в gridData.
Столбцы gridData создал все подготовил. Теперь нужно загрузить данные.
gridData.loadAll - загружает данные из выборки EntitySchemaQuery.
Я планирую данные получать из исходного кода, там будет обычный SQLText который вернет мне таблицу с результатом. теперь эту таблицу нужно загрузить в gridData. Кто сталкивался или знает как в gridData загрузить строку?
Нравится
Добрый день!
1) Если возможно, сделайте представление для вашей сложной выборки: в системе и в базе данных. И уже работайте с представлением, как с обычным EntitySchemaQuery.
2) Если выборку сложно оформить в представление, то с сервера вам нужно воссоздать объект, который возвращает esq (создать свои классы), что то типа
{ nextPrcElReady: false, notFoundColumns: [], rowsAffected: 0, success: true, rows: [], rowConfig: [] }
а на клиенте загружать этот объект:
var r = query._getResponseEntityCollection(result); grid.loadAll(r.collection);
Добрый день!
1) Если возможно, сделайте представление для вашей сложной выборки: в системе и в базе данных. И уже работайте с представлением, как с обычным EntitySchemaQuery.
2) Если выборку сложно оформить в представление, то с сервера вам нужно воссоздать объект, который возвращает esq (создать свои классы), что то типа
{ nextPrcElReady: false, notFoundColumns: [], rowsAffected: 0, success: true, rows: [], rowConfig: [] }
а на клиенте загружать этот объект:
var r = query._getResponseEntityCollection(result); grid.loadAll(r.collection);
Сидоров Александр В.,
После того, как выборка отработает нужно будет эти данные подредактировать, делать вычисление между разными колонками и строками. Это будет отчет.
Воссоздать объект... Там множество свойств и методов, как это все воссоздать? В СДК
https://academy.terrasoft.ru/jscoresdk/#!/api/Terrasoft.data.model.BaseViewModelCollection
пишет следующее:
items : Object/Terrasoft.Collection/Array
Следовательно можно передать Array, только я нигде не смог найти пример как это сделать.
Радчук Виталий Владимирович,
Посмотрите в Network на результат любого запрос SelectQuery. Там будет json, который я приложил выше.
Пример:
Сидоров Александр В.,
Если у вас есть код, который преобразует эту строку объект который можно загрузить в грид - тогда это решит проблему
После того, как выборка отработает нужно будет эти данные подредактировать, делать вычисление между разными колонками и строками. Это будет отчет.
В принципе, вычисления можно произвести и на уровне view, вынеся часть логики в отдельные серверные функции. Среди стандартных view есть такие примеры, хотя особо сложные вычисления подобным образом встречаются в проектных решениях.
Зверев Александр, Можно пример где это реализовано?
Из самых сложных view, вызывающих функцию — например, VwRecentCall. Но примерно такое построение на стороне базы, как Вы ищете видел в одном из проектов на Terrasoft 3.Х, где формировался отчёт в виде таблицы и графиков на HTML и отправлялся по почте, или там же в «шахматке» (схеме этажа с квартирами).
Зверев Александр,
Я думал просто вызвать серверный код который вернет таблицу с данными и их уже выводить в реестр
Ещё обходной вариант, наполнять данными записи в специальной таблице в базе и строить по ней. Чтобы пользователи не мешали друг другу, добавить поле с Id сессии и фильтровать по нему. После завершения — чистить.