Копировать ссылку на страницу Перейти в предыдущий раздел Перейти в следующий раздел

Подробнее Предварительные действия

XML

 

<Extension name="MyExt" title="My_Extension" jsfile="/js/myext.js">
<Cards>
  <Card type="ReferenceRecord" refcode="AllReq" jsfile="/js/myext.js" customcardformclass="DIRECTUM.WebAccess.Extensions.MyExt.AllReqCardForm, NpoComputer.WebAccess.Components ">
  </Card>
</Cards>
</Extension>

JS

 

(function (global) {
WA.ready(function () {
switch (WA.getLocation()) {
  case 'reference':
    // Карточка записи справочника.
    switch (WA.CR.getReferenceCode()) {
      case 'AllReq':
        // Справочник "Все реквизиты" (AllReq).
        // Вычисления при открытия карточки справочника «Все реквизиты».
        // Код, описанный ниже.
        break;
        //...
    }
    break;
  case 'referencerecords':
    // Список записей справочника.
    break;
}
});
})(window);

 

Подробнее В зависимости от значения текущего реквизита

 

var reqName = "Работник";
WA.CR.form.requisites[reqName].bind('change', function (req, event, newReq) {
if (newReq.value !== '') {
  // 1. Выделить красным цветом название реквизита «Работник»,

  // если указано любое значение.
   $($('#' + WA.CR.form.requisites[reqName].controlsIds[0]).parents('.Card_Element')[0]).prev().css('color', 'red');
  // 2. Выделить красным цветом метку, не относящуюся к реквизиту на форме.
   $('div[name="NetAssetsLabel2"]').css({ "color": "red" });
}
});

 

Результат 1:

Результат 2:

 

Подробнее В зависимости от значения других реквизитов карточки

 

var reqNamePod = 'Подразделение';
WA.CR.form.requisites[reqName].bind('change', function (req, event, newReq) {
if (newReq.value !== '') {
  // 1. Выделить красным цветом название реквизита «Работник»,

  // если реквизит «Подразделение» заполнен.
  var reqName = "Работник";
   $($('#' + WA.CR.form.requisites[reqName].controlsIds[0]).parents('.Card_Element')[0]).prev().css('color', 'red');
  // 2. Выделить красным цветом метку, не относящуюся к реквизиту на форме.
   $('div[name="NetAssetsLabel2"]').css({ "color": "red", "font-weight": "bold" });
}
});

 

Результат 1:

Результат 2:

 

Подробнее В зависимости от значений реквизитов связанного объекта

В атрибуте CustomCardFormClass получаем нужные связанные объекты и возвращаем на страницу данные этих объектов, влияющие на изменение цвета и шрифта, в js-объект AllBoundReqData.

.NET

 

Imports NpoComputer.WebAccess
Imports NpoComputer.WebAccess.API
Imports NpoComputer.WebAccess.API.RequisiteDescription
Imports System.Web.UI
Imports NpoComputer
Imports NpoComputer.WebAccess.Components
Imports System.Text
 
Namespace DIRECTUM.WebAccess.Extensions.MyExt
 
''' <summary>
''' Класс для работы с карточкой "Все реквизиты".
''' </summary>
''' <remarks></remarks>
Public Class AllReqCardForm
   Inherits CardForm
 
  ''' <summary>
  ''' Конструктор класса.
  ''' </summary>
  ''' <param name="RefRec">Запись справочника</param>
  ''' <param name="ViewCode">Представление</param>
  ''' <remarks></remarks>
  Public Sub New(ByVal RefRec As ReferenceRecord, ByVal ViewCode As String)
     MyBase.New(RefRec, ViewCode)
  End Sub
 
   Protected Overrides Sub RegisterScript()
     MyBase.RegisterScript()
 
    ' Получить объект, связанный с текущим объектом Me.DataObject,
    ' потом выгрузить на страницу все его данные,
    ' касающиеся изменения цвета и шрифта в метках и названиях реквизитов.
    Dim ScriptRenderText As New StringBuilder
     ScriptRenderText.Append("<script>")
     ScriptRenderText.Append(String.Format("AllBoundReqData={0};", New With {
       .boundDocSomeData = "test"
     }.ToJSON()))
     ScriptRenderText.Append("</script>")
     Page.ClientScript.RegisterClientScriptBlock(Me.GetType, "AllReqCardForm", ScriptRenderText.ToString)
  End Sub
End Class
End Namespace

JS

 

if (AllBoundReqData.boundDocSomeData == 'test') {
  var reqName = "Работник";
   $($('#' + WA.CR.form.requisites[reqName].controlsIds[0]).parents('.Card_Element')[0]).prev().css('color', 'red');
// Отобразить красным цветом метку, не относящуюся к реквизиту на форме.
   $('div[name="NetAssetsLabel2"]').css({ "color": "red", "font-weight": "bold" });
}

 

Подробнее В зависимости от информации о текущем пользователе

Под информацией о текущем пользователе подразумеваются его права, вхождение в группы пользователей, нахождение на определенном уровне иерархии в орг. структуре и т.п.

Часть информации о текущем пользователе есть в WA.CR.user. Если этого не достаточно, то нужно делать аналогично связанным объектам.

© Компания DIRECTUM, 2018 Сообщество пользователей DIRECTUM
.navbar > a:hover { background: #FFD73B; }