Публикация

Представление в мобильном приложение (view в sqllite)

Вопрос

По какому принципу работают представления в мобильном приложении? При импорте данных в оффлайн-режиме представления сохраняются в базу как обычные таблицы. В рамках задачи необходимо фильтровать поле, у которого справочником является представление. В представлении используются записи из двух разделов (Контрагенты и кастомное Строительные объекты). Выходит, что при добавлении нового контрагента в десктоп-версии он появляется в представлении, и по нему можно фильтровать. При создании нового контрагента в оффлайн-режиме мобильного приложения в представлении он появляется, очевидно, только после синхронизации, что затрудняет работу пользователя. Насколько я понимаю, в SQL-Lite есть возможность работы с представлениями. Есть ли возможность реализовать функционал представлений? Код представления в файле. Версия приложения 7.9.2 2410. Версия мобильного приложения 7.11.7.

Ответ

 

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

Для этого нужно создать сам модуль и добавить его в манифест в блок CustomSchemas

 

Пример кода:

 

var sqls = [“CREATE VIEW IF NOT EXISTS AccountView (Id, Name) AS  SELECT Id, Name FROM Account”];
Terrasoft.Sql.DBExecutor.executeSql({
   isCancelable: false,
   sqls: sqls,
   success: function() {},
   failure: function() {}
});



 

Реализовать в карточке фильтрацию по вьюхе будет довольно сложно, придется все равно писать кастомное бизнес-правило, которое будет делать запрос к view.

 

По умолчанию с представлениями на уровне SQLite мы не работаем. В этом нет смысла, т.к. представление в MSSQL или Oracle может вообще не совпадать по реализации с представленим в SQLite. Представление в мобильном приложении – это обычная таблица, следовательно с ним нужно работать соответственно.

 

Это значит, что если нужно, чтобы значение там появилось, его следует туда добавить. Для этого можно реализовать бизнес-правила на объекты «Контрагент» и «Строительные объекты», в которых при добавлении записи или ее обновлении будет делаться копия этой записи в нужное представление.

Нравится

Поделиться

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