Хитрости программирования в RTC (Navision)

Category: Статьи Post Date: 01.04.2020

Хитрости программирования в RTC (Navision)

В RTC:

  • не поддерживается функция INPUT диалога;
  • не поддерживаются процедуры, связанные с отметкой записей (MARK,MARKEDONLY и т.д.). В нем вообще нет такого как отметка записей;
  • нельзя создать страницу на основе таблицы 2000000068 Record Link.

 

Функция CurrPage.EDITABLE

В RTC не поддерживается функция CurrPage.EDITABLE или CurrPage.TextBox1.EDITABLE. Вместо неё можно использовать такой прием:

  1. Объявляем глобальную булевую переменную, например, PageEditable.
  2. В её свойствах устанавливаем IncludeInDataset = Yes.
  3. Теперь у элемента (вкладка, отдельное поле, субстраница) в свойствах выставляем Editable =  PageEditable.
  4. Осталось только прописать код, который будет менять значение булевой переменной в зависимости от требуемой логики.

Подкрашивание полей

Подкрасить поля, к сожалению, можно только в определенные цвета (а точнее назначить им стиль из ограниченного списка). У поля на странице есть 2 свойства: Style и StyleExpr.

Style как раз задает необходимый стиль, который может принимать одно из 4 значений:

  • Strong – текст в поле будет выделен жирным (и при просмотре и при редактировании)
  • Attention – текст выделен красным (только при просмотре, при редактировании выглядит как и должен по умолчанию)
  • Favorable – текст в поле будет зеленого цвета и выделен жирным (во время редактирования, в просмотре просто выделение жирным)
  • Unfavorable –  текст в поле будет красного цвета и выделен жирным курсивом (во время редактирования, в просмотре просто выделение жирным курсивом)

Теперь о свойстве StyleExpr. Оно влияет на применение стиля, указанного в свойстве StyleExpr, к полю на странице. Это может быть как булевая константа, так и переменная или процедура. Аналогично предыдущему примеру, необходимо:

  1. Создать глобальную булевую переменную, в свойствах которой необходимо установить IncludeInDataset = Yes.
  2. В  StyleExpr указать созданную переменную.
  3. Прописать код, который будет устанавливать необходимое значение в переменную в зависимости от логики.

Программный вызов карточки двойным кликом в зависимости от поля

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

  1. На списочной странице добавить PageAction , например, “Карточка”
  2. Назначить ему ShortCutKey = Enter
  3. Написать простой код типа такого:
  1. CASE Type OF
  2. Type::Open : PAGE.RUN(PAGE::“Page 1”, Rec);
  3. Type::Released : PAGE.RUN(PAGE::“Page 2”, Rec);
  4. END;

Авторы: Утяганов Айрат, Батыршин Рафаэль

Подписывайтесь на канал @d365neti в Telegram

Подписаться

Добавить комментарий