В зависимости от значения других реквизитов карточки
var Organization = "Организация";
var Unit = "Подразделение";
WA.CR.form.requisites[Organization].bind('change', function (req, event, newOrg) {
if (newOrg.value === "38838") {
// Изменить название реквизита "Подразделение",
// если ИД реквизита "Организация" равно 38838.
WA.CR.form.requisites[Unit].setLabel("Департамент");
// Изменить текст метки, не относящейся к реквизиту на форме.
$('div[name="NetAssetsLabel2"]').text("Новый текст метки");
}
});
|
В зависимости от значений реквизитов связанного объекта
В атрибуте 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. boundDocSomeReq === 'test') {
// Изменить описание поля «Подразделение».
Var Unit = "Подразделение";
WA.CR.form.requisites[Unit]. setLabel("Департамент");
// Изменить текст метки, не относящейся к реквизиту на форме.
$('div[name="NetAssetsLabel2"]').text("Новый текст метки");
}
|
В зависимости от информации о текущем пользователе
Под информацией о текущем пользователе подразумеваются его права, вхождение в группы пользователей, нахождение на определенном уровне иерархии в орг. структуре и т.п.
Часть информации о текущем пользователе есть в WA.CR.user. Если этого не достаточно, то нужно делать аналогично связанным объектам.
|