Component scripts#


Действие

Код

Вставить текст в label

context.Properties.<наименование лейбла>.SetText('<Текст лейбла>')

Выполнить датафлоу

context.ExecuteDataflow('<Гуид датафлоу>', <Датамодель>)

Создать гуид

from System import Guid
Guid.Parse("<Гуид>")

Переход на другую страницу

context.Commands.ChangePageByName("<Имя страницы>")

Правильно отобразить кириллицу

str(<Строка>).encode('utf-8').decode('unicode_escape')

Вывести модалку

context.PlatformServices.Confirm('<Тело Модалки, Обязательно стринг>', '<Заголовок Модалки>')

Вписать строку в текстбокс

context.Properties.<Имя тексбокса>.Label.Value = ‘<Строка>’

Получить датамодель из темплейта по евенту

model.Model.Data.<Имя дефинишина>

Обработка событий на модалке

def checkResponse(task)
if (task.Result == True):
context.Logger.Error("TRUE") else:
context.Logger.Error("FALSE")

def show_modal():
explicitSystemAction = System.Action[Task](checkResponse)
result = context.PlatformServices.Confirm("Сообщение", "Заголвок").ContinueWith(explicitSystemAction)

Лог в консоль

context.Logger.Error(’<Строка>’)

Поставить лейбл текстбоксу

context.Properties.TextBox_342.Label.Value = 'aSHGfj’

Засунуть SVG в контейнер

context.Properties.SvgRight_1.File.Value = Guid.Parse("b505b8c4-4c88-4bdc-bb60-e2115047f263")

Покрасить элемент в скрипте

from Liminuza.Platform.Shared.RenderEngine.Models import SolidColorBrush, Color, Brush
color = Color.FromARgb(255, 255, 0, 0)
#Покрасить шрифт
context.Properties.Button_462.FontColor.Value = color
#Покрасить фон
context.Properties.Button_462.Background.Value = SolidColorBrush(color)
#Надо уведомить систему об изменении
context.Properties.Button_462.RaisePropertyChanged('Background')
context.Properties.Button_462.RaisePropertyChanged('FontColor')

Доступ к датамодели

# single component
datamodel = context.DataModel.Model
# multicomponent
dm1 = context.DataModel["fcf3cd08-ded3-45ef-a5a4-2f0c837add47"].Model

Добавить ошибку к полю

context.Form.Get("TransportCompany").AddError("Ключи интеграции с Траснпортной компанией не заданы или некорректны")
context.Form.GetForm("1fe65ccf-50f0-42d3-b18b-da99971f4faa").Get("NumberRecipient").AddError("Введите номер начинающийся на +7")
context.Form.GetForm("1fe65ccf-50f0-42d3-b18b-da99971f4faa").Get("NumberRecipient").ClearError()

Вытащить из форм экшна данные

def decode_json(serialized_data): serialized_data = str(serialized_data).encode('utf-8').decode('unicode_escape') serialized_data = eval(serialized_data.replace('null', 'None').replace('true', 'True').replace('false', 'False')) return serialized_data

В поле навесить скрипт в On key down в котором проверяем какая клавиша нажата
Документация: https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.components.web.keyboardeventargs?view=aspnetcore-7.0

def test_enter(*args):
if str(args[1].Code) == 'Enter':
context.PlatformServices.ShowDialog(”Нажат энтер”, "1")

Вызов js

context.InvokeInterop("Foo_Method",1,2,3,"Тестовая строка")