Доброго времени суток. Имею пробелму. Нужно в преднастроенной странице в деталь карты поставить кнопку для активной записи детали. Кнопку "Заблокировать карту"

Изображение удалено.

Попробовал из статьи тут, тут, и тут  , но никак не появляется кнопка. Подскажите как мне реализовать данную задачу? Я отыскал все ответы в комьюнити. Но у меня не появляется кнопка.  Прощу помощи. Спасибо. 

Нравится

8 комментариев
Лучший ответ

Ислам, добрый день!

Реализация в этом примере рабочая.

Обратите внимание, что код нужно добавлять в "Схема детали: "Название вашей детали"" (так она будет отображатся в конфигурации).

Привожу пример своей реализации:

define("Schemae4042f8dDetail", [], function() {
	return {
		entitySchemaName: "NewTestDetail",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
			{
        "operation": "merge",
        "name": "DataGrid",
        "values": {
                "activeRowAction": {"bindTo": "onActiveRowAction"},
                "activeRowActions": [
                        {
                                "className": "Terrasoft.Button",
                                "style":this.Terrasoft.controls.ButtonEnums.style.BLUE,
                                "markerValue": "myButtonAction",
                                "tag": "myAction",
                                "caption": "MyButton"
                        }
                ]
        }
}
		]/**SCHEMA_DIFF*/,
		methods: {
			onActiveRowAction: function(buttonTag, primaryColumnValue) {
                if (buttonTag === "myAction") {
                        // весь код ниже можно убрать, он демонстрирует, что значения
                        // primaryColumnValue и activeRowId равны
                        var activeRow = this.getActiveRow();
                        var activeRowId = activeRow.get("Id");
                        console.log(primaryColumnValue);
                        console.log(activeRowId);
                        // дальше Ваша реализация
                }
        },
		}
	};
});

 

У меня таким образом

В DIFF

 

		"operation": "merge",
        "name": "DataGrid",
        "values": {
                "activeRowAction": {"bindTo": "onActiveRowAction"},
                // "onButtoClick": {"bindTo": "Alert"},
                "activeRowActions": [
                        {
                                "className": "Terrasoft.Button",
                                "style":this.Terrasoft.controls.ButtonEnums.style.GREEN,
                                "markerValue": "myButtonAction",
                                "tag": "Delete",
                                "caption": "Delete",
 
                        }
                ]
        }



И не забыть добавить в LocalizableString

"Delete"



В методах

 

			onActiveRowAction: function(buttonTag, primaryColumnValue) {
                if (buttonTag === "Delete") {
                          this.Delete();  // нужная функция
 			                }
        },

 

 

Oleg, у меня с таким же способом не срабаытывает почему-то( Все так же как вы описали, но не появляется кнопка.

Oleg,

 

И не забыть добавить в LocalizableString

"Delete" 

Не достаточно того, что вы написали в Caption название? Я вот этот пункт не сделал, не добавлял в LocalizableString.

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

Ислам Ибрагимжанов,

Попробуйте :)

 

Не срабатывает, прощу помочь. Кто сталкивался ?

Oleg,

не отработало.

Ислам, добрый день!

Реализация в этом примере рабочая.

Обратите внимание, что код нужно добавлять в "Схема детали: "Название вашей детали"" (так она будет отображатся в конфигурации).

Привожу пример своей реализации:

define("Schemae4042f8dDetail", [], function() {
	return {
		entitySchemaName: "NewTestDetail",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
			{
        "operation": "merge",
        "name": "DataGrid",
        "values": {
                "activeRowAction": {"bindTo": "onActiveRowAction"},
                "activeRowActions": [
                        {
                                "className": "Terrasoft.Button",
                                "style":this.Terrasoft.controls.ButtonEnums.style.BLUE,
                                "markerValue": "myButtonAction",
                                "tag": "myAction",
                                "caption": "MyButton"
                        }
                ]
        }
}
		]/**SCHEMA_DIFF*/,
		methods: {
			onActiveRowAction: function(buttonTag, primaryColumnValue) {
                if (buttonTag === "myAction") {
                        // весь код ниже можно убрать, он демонстрирует, что значения
                        // primaryColumnValue и activeRowId равны
                        var activeRow = this.getActiveRow();
                        var activeRowId = activeRow.get("Id");
                        console.log(primaryColumnValue);
                        console.log(activeRowId);
                        // дальше Ваша реализация
                }
        },
		}
	};
});

 

Дима Вовченко,

Благодарю, так все понятней.

Показать все комментарии