Добрый день! Есть задача скрывать кнопку "Печать" на странице записи в зависимости от некоторых условий. Были внесены изменения в страницу объекта с подключением миксина PrintReportUtilities, при перезагрузке страницы логика скрытия отрабатывает корректно. Но когда открытие страницы происходит через секцию, кнопка все равно отображается, не смотря на то что код на странице отрабатывает и скрывает её. Какие изменения нужно внести в секцию, что бы кнопка так же была скрыта?

Нравится

1 комментарий

Илья, здравствуйте!

 

Вы изменили логику отображения кнопки "Печать" на странице, но дополнительно её нужно добавить в схеме раздела (Section), чтобы при открытии из раздела в совмещённом режиме логика также работала. В diff схемы BaseDataView есть элемент с названием "CombinedModePrintButton", который выводится при открытии в совмещённом режиме.

Пример с изменением страницы в совмещённом режиме есть в статье на академии, которую можно найти по ссылке:

https://academy.terrasoft.ua/docs/developer/elements_and_components/bas…

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

Добрый день!

 

Есть задача по реализации кнопки-меню с динамическим списком. Нужно создать кнопку по типу Actions или Print.

Я создала метод, который выбирает из списка нужные пункты и добавляет их как пункты меню:

attributes: {
	"ButtonMenu": {dataValueType: this.Terrasoft.DataValueType.COLLECTION},
},
methods: {
	init: function() {
		this.callParent(arguments);
		this.initMenuItems();
	},
initMenuItems:function(){
	var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
		rootSchemaName: "MyList"
	});
	esq.addColumn("Caption");
	esq.filters.add("Section", this.Terrasoft.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.EQUAL, "Section.Id", "f7856ad3-fa4c-4106-9a6c-d8dcd87331eb"));
	esq.execute(function (response) {
	        if (!response.success) {
		       return;
	        }
	        var actionMenuItems = Ext.create("Terrasoft.BaseViewModelCollection");
		response.collection.each(function(item) {
 
			var isVisible = this.getVisibility(item.get("Caption"));
			actionMenuItems.addItem(this.getButtonMenuItem({
				"Caption": item.get("Caption"),
				"Click": {bindTo: "callMyProcess"},
				"Enabled": isVisible
			}));
		},this);
		this.set("ButtonMenu", actionMenuItems);
	},this);			
}
},
		diff: /**SCHEMA_DIFF*/[
			{
                "operation": "insert",
                "parentName": "LeftContainer",
                "propertyName": "items",
                "name":"MenuButton",
                "values": {
                    "itemType": Terrasoft.ViewItemType.BUTTON,
                    "style": Terrasoft.controls.ButtonEnums.style.GREEN,
                    "caption": "Test",
                    "menu": {
                        "items": {"bindTo": "ButtonMenu"}
                    }
                }
            }
		]/**SCHEMA_DIFF*/

Когда я вызываю мой метод в методе init страницы раздела, то поставленная задача выполняется. НО портится стиль всех остальных кнопок списков, добавляя стрелку пролистывания как в большие, так и в маленькие списки:

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

 

Если закоментировать вызов моего метода в методе init, то стрелка в списках пропадает и они отображаются корректно (но в этом случае моя кнопка никогда не инициализирует список).

 

Что сделано не правильно?

Подскажите, пожалуйста, как решить данную задачу.

 

Заранее спасибо.

Нравится

1 комментарий

Здравствуйте!

 

Реализовал Ваш пример на тестовом сайте, но подобной проблемы не наблюдаю. Похоже, что проблема не в предоставленном коде, а в чем-то другом. Просьба обратиться в техническую поддержку и указать ссылку на сайт, где реализован пример (или предоставить пакет). 

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

Доброго времени суток.

Столкнулся с такой проблемой.
Задача: мониторить пропущенные звонки. На таймере раз в 5 минут шлю запрос на выборку пропущенных звонков и меняю caption закладке:

pgMissedCalls.BeginUpdate();
pgMissedCalls.Caption = "Пропущеные (" + Dataset.RecordsCount + ")";
pgMissedCalls.EndUpdate();

пробовал по-разному, но проблема остается.
Прорисовка caption происходит только, если мышкой по нему повозить или поставить фокус... Может есть что-то типа Repaint() как у грида или можно как-то без установки фукуса "передернуть" вкладку?

Версия 3.2.

Нравится

2 комментария

Юрий, а зачем BeginUpdate/EndUpdate делаете? В случае одной строки между ними никакого выигрыша скорее всего не получите. Э это может решить проблему.

BeginUpdate/EndUpdate - это одна из попыток заставить работать. Без этого тоже самое, что и с этим...
Проблему решил "миганием" появляющегося lable. Как ни странно, но с периодичной сменой цвета у lable все ок.

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