Типовые вопросы разработчиков (FAQ)

Материал из Lexema.ru
Перейти к: навигация, поиск


Модели

Q: Что такое модель в Lexema.ru?

A: См. раздел тезауруса

 

Q: Как создать несколько моделей на одной таблице и зачем это нужно?

A: См. раздел статьи

 

Q: Как создать справочник, значения которого редко меняются и не должны изменяться пользователями?

A: См. раздел статьи

 

Запросы

Q: Что такое запрос в Lexema.ru?

A: См. раздел тезауруса

 

Экранные формы

Q: Что такое экранная форма в Lexema.ru?

A: См. раздел тезауруса

 

Перезагрузка и обновление

Q: Почему после изменения параметров экранной формы или её элементов изменения не отображаются в браузере?

A: Страницу в браузере необходимо обновить с очисткой кеша, подробнее см. соответствующий раздел.

 

Q: Как вызвать перезагрузку данных реестра?

A: С помощью метода, который возвращает deferred-объект

  L8.System.refreshRegistryData();
 

Q: Как вызвать перезагрузку данных реестра за определенный период?

A: С помощью метода, который возвращает deferred-объект

  L8.System.refreshRegistryData({BDate: bdate, EDate: edate});
 

Q: Как вызвать перерисовку и перезагрузку данных для активной вкладки?

A: С помощью метода

  L8.System.recreateActiveTab();
 

Создание, сохранение, открытие, закрытие документа

Q: Как настроить создание нового документа?

A: Для создания нового документа в обработчике нажатия кнопки 'Создать' в дизайнере вызываем

L8.System.CreateDocument(L8.System.LinkedViewModel); 

Если модель, на которой построен создаваемый документ (модель экранной формы 'НазваниеЭкраннойФормыДокумента'), отличается от модели экранной формы, из которой вызывается метод L8.System.CreateDocument, то необходимо вторым параметром передать ModelSource для модели создаваемого документа:

L8.System.CreateDocument(L8.System.LinkedViewModel, new ModelSource('ПространствоИмен.ИмяМоделиСоздаваемогоДокумента'));
 

См. также: Создание нового документа.

Q: Как вызвать сохранение документа и создание нового?

A: С помощью метода

  L8.System.SaveAndNewDocument();
 

Q: Как из скрипта вызвать сохранение документа с закрытием?

A: С помощью метода

  L8.System.SaveAndCloseDocument();
 

Q: Как из скрипта вызвать закрытие документа с переходом в связанный реестр?

A: С помощью метода

  L8.System.CloseDocument(L8.System.LinkedViewModel);
 

Q: Как из скрипта вызвать закрытие документа с переходом в определенную экранную форму?

A: С помощью метода

  L8.System.CloseDocument(viewModelName);
 

Q: Как выполнить свой код после сохранения, но до закрытия документа?

A: С помощью следующего кода

   L8.System.SaveDocument().done(function(){
      // мой код
      L8.System.CloseDocument();    
   });
 

Q: Новые документы сохраняются в базу, но не отображаются в реестре.

A: Возможно (если включена пагинация), следует поискать их на последней странице грида.

 

Q: Как открыть документ с определенным кодом?

A: С помощью следующего кода

   L8.utils.openDocument('ИмяЭкраннойФормы', VCode);
 

См. также: Открытие экранной формы.

Работа с диалогом выбора расчётного периода

Q: Как вызвать диалог выбора периода в реестре?

A: С помощью следующего кода

   L8.System.selectDatePeriod.openDialog();
 

Выпадающие списки (Lookup)

Q: Как скрыть поле с кодом пункта?

A: Установить свойство showValueMember в false

 

Q: Почему в выпадающем списке отображаются пустые значения?

A: Возможно, свойства displayMember или valueMember заданы неверно. Откройте соответствующую модель, имя которой задано в свойстве dataSource, и проверьте соответствие значений этих свойств и названий полей модели.

 

Таблицы (Grid, AnalyticalGrid)

Q: Как включить фильтрацию?

A: Установить свойства filterable и showFilterRow в true.

 

См. также раздел.

Q: Как в гриде сделать двухстрочный заголовок?

A: 1. Использовать в тексте заголовка тег перевода строки
(при этом может понадобится увеличить высоту колонок грида: columnsHeight)

2. Использовать групповые колонки

 

Q: Как для грида с группировкой настроить состояние групп = развернуто по умолчанию ?

A: Свойство грида groupsexpandedbydefault

 

Q: Как програмно разрешить или запретить редактирование колонки в гриде?

A: См. статью Grid, раздел "Работа с колонками", функции getColumnEditable и setColumnEditable.

 

Q: Как программно задать источник данных грида если имеются полученные неким образом данные?

A: См. статью Grid, раздел "Источник данных".

 

Отчёты

Документация по работе с отчетами

Q: Как вызвать отчет?

A: С помощью следующего кода

   L8.System.openReport( {name : 'ИмяОтчета', parameters : { Параметр1 : значение, Параметр2 : значение } } );
 

Q: Как распечатать пакет отчетов без предпросмотра?

A: С помощью следующего кода

   L8.System.printWithoutPreview( {name : 'ИмяОтчета', parameters : [ { Параметр1 : значение }, { Параметр1 : значение } ] } );
 

Q: Как экспортировать пакет отчетов в pdf файл?

A: С помощью следующего кода

   L8.System.reportToPdf( {name : 'ИмяОтчета', parameters : [ { Параметр1 : значение }, { Параметр1 : значение } ] } );
 

См. также раздел статьи.

JavaScript-сценарии

Получение системных данных

Q: Как узнать имя учётной записи текущего пользователя?

A: L8.Access.UserName

 

Q: Как узнать текущую организацию авторизованного пользователя?

A: L8.Access.currentOrganization

 

Q: Как получить список ролей текущего пользователя?

A: L8.Access.userRoles

 

SQL-сценарии

Моделлер (дизайнер) приложений

Q: Что делать, если при попытке открытия экранной формы или другого объекта системы в моделере возникает ошибка "В экземпляре объекта не задана ссылка на объект."?

A: Закрыть моделлер, открыть его заново и повторить попытку открытия формы.