Вопрос

Добрый день, коллеги! 

Создал мини-карточку для отображения некоторых деталей. Сделал виртуальное поле в которое хочу записать список один под другим:

"VacancyNames": {
		"dataValueType": Terrasoft.DataValueType.TEXT,
		"type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
		"value": 'Один\r\nдва',
		"customConfig": {
		"className": "Terrasoft.MemoEdit"
	}
}

 Заполняю список

Terrasoft.each(entities, function (entity) 
{
   var ResponceNameValue = entity.get('Name');
       AllVacancy += ResponceNameValue + '\r\n';
});
this.set("VacancyNames", AllVacancy);

Но в результате все выводится сплошным текстом в мини-карточке... Подскажите, пожалуйста, как осуществить перенос?

У меня такой же вопрос

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

Здравствуйте)
В зависимости от того, каким должен быть конечный результат, Вы можете решить данную задачу 2 способами.
1. В схеме таблицы детали создать поле-справочника, в котором уже будут указаны нужные данные и просто добавить его на мини-карточку (аналогично, как и на обычную страницу редактирования). 
2. Этот способ более трудоемкий. Нужно создать виртуальное поле с типом 'ENUM' и потом реализовать методы и обработчики для работы с этим полем.
Ниже приблизительный код, как это реализовать:

define("CasePage", ["CasePageResources", "terrasoft"],
    function(resources, Terrasoft) {
    return {
        entitySchemaName: "Case",
        details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
        attributes: {
            "myEnum": {
                "dataValueType": Terrasoft.DataValueType.ENUM,
                "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
                "caption": "myEnum"
            },
            "myList": {
                "dataValueType": Terrasoft.DataValueType.ENUM,
                "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
                "isCollection": true
            }
        },
        diff: /**SCHEMA_DIFF*/[
            {
                "operation": "insert",
                "name": "myEnum",
                "values": {
                    "caption": "myEnum",
                    "dataValueType": this.Terrasoft.DataValueType.ENUM,
                    "bindTo": "myEnum",
                    "layout": { "colSpan": 24, "rowSpan": 1, "column": 0, "row": 4 },
                    "controlConfig": {
                        "className": "Terrasoft.ComboBoxEdit",
                        "list": {
                            "bindTo": "myList"
                        },
                        "change": {
                            "bindTo": "onMyValueChange"
                        },
                        "prepareList": {
                            "bindTo": "prepareMyList"
                        }
                    }
                },
                "parentName": "SolutionTab_gridLayout",
                "propertyName": "items",
                "index": 1
            }
        ]/**SCHEMA_DIFF*/,
        methods: {
            onPageInitialized: function(callback, scope) {
                if (!this.get("myList")) {
                    this.set("myList", this.Ext.create("Terrasoft.Collection"));
                }
                
                if (callback) {
                    callback.call(scope || this);
                }
            },
            onEntityInitialized: function() {
                this.callParent(arguments);
                
                // and just for debug:
                document.scope = this;
            },
            prepareMyList: function(filter, list) {
                if (list === null) {
                    return;
                }
                list.clear();
                var columns = {};
                
                var value1 = {
                    displayValue: "a123",
                    value: "1"
                };
                var value2 = {
                    displayValue: "b234",
                    value: "2"
                };
                var value3 = {
                    displayValue: "c345",
                    value: "3"
                };
                
                columns[1] = value1;
                columns[2] = value2;
                columns[3] = value3;
                
                list.loadAll(columns);
            },
            onMyValueChange: function(val) {
                if (val && val.displayValue) {
                    console.log("you pick: ", val.displayValue);
                }
            }
        },
        rules: {}
    };
});
 

 

 

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

В системе обнаружилась следующая ошибка, ниже приведен тест кейс.

  1. Пользователь 1 публикует сообщение в ленте под объектом, в котором настроен доступ только для чтения.
  2. Пользователь2  вводит ответ на комментарий Пользователя1.
  3. Пользователь 1 видит уведомление, что его сообщение прокомментировал Пользователь2.
  4. При попытке просмотра из коммуникационной панели появляется следующее сообщение о недостаточности прав

При этом из детали  Лента он может просматривать. Как мне настроить корректный просмотр из коммуникационной панели ?

У меня такой же вопрос

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый час суток! Хочется узнать как можно добавить RadioButton в мобильное приложение на страницу ? 

Сам контрол я нашел https://academy.terrasoft.ua/jscoresdk/source/radiobutton.html вот тут. Как его использовать,чтобы оно работало с данными ( как отрендерить правильно ) ? К примеру у меня нужно чтобы можно было выбирать ответ с помощью radiobutton'ов,но сложность в том,что я пока не особо понимаю как это сделать. Спасибо заранее.

У меня такой же вопрос

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Всем привет!

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

У меня такой же вопрос

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

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

По функциональной части: рекомендую переопределить в Section метод getFilters и там в зависимости от выбранного фильтра в разделе добавлять или удалять фильтры.

По части отображения: добавить свой контейнер в фильтры.

Вот пример для добавления галочки в раздел фильтров:

{
	"operation": "insert",
	"name": "CustomContainer",
	"parentName": "LeftGridUtilsContainer",
	"propertyName": "items",
	"index": 0,
	"values": {
		"id": "CustomContainer",
		"itemType": this.Terrasoft.ViewItemType.CONTAINER,
		"items": []
	}
},
{
	"operation": "insert",
	"name": "CustomFlag",
	"parentName": "CustomContainer",
	"propertyName": "items",
	"values": {
		"caption": {
			"bindTo": "Resources.Strings.CustomFlagCaption"
		},
		"bindTo": "CustomAttribute",
		"controlConfig": {
			"className": "Terrasoft.CheckBoxEdit",
			"checkedchanged": {
				"bindTo": "onCustomFlagChanged"
			}
		}
	}
}

UPD: Точно, ещё для того, чтобы фильтр применялся после изменения фильтра в разделе необходимо в приведённом выше примере в методе onCustomFlagChanged инициировать обновление реестра (this.reloadGridData();).

Так же на момент вызова метода getFilters аттрибут CustomAttribute не изменял своего значения, поэтому был введён новый аттрибут, значение которого менялось так же в методе onCustomFlagChanged.
И, есть вероятность, что придётся помучиться со стилями для того, чтобы фильтр отображался адекватно, при необходимости могу поделиться кодом опять-таки для примера выше.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день.

Есть деталь, скажем, матрица кросс-продуктов. В объекте детали, соответственно, есть ссылка на продукты. При этом продукты имеют разные типы и хотелось бы видеть их с разбиением на группы по типам - по такому же принципу как это выглядит в иерархических реестрах. То есть на верхнем уровне - запись отражающая название группы (то есть Тип), рядом с ней кнопочка +, при нажатии на которую раскрывается группа и отображаются уже продукты, относящиеся к этой группе. Предусмотрено ли такое в BPMonline?

 

У меня есть, конечно, мысль организовать деталь на основе представления, объединяющего данные из справочника Тип продукта и Продукты, чтобы на основе этого представления могла быть построена иерархия соответствующими встроенными средствами BPMonlline. Однако при этом необходимо, чтобы ссылки на продукты в реестре сохранялись и их названия находились бы не в отдельной колонке от названия Группы, к которой они отнесены (имею ввиду - чтобы названия продуктов были бы под названиями групп, а не со смещением за пределы названия группы по горизонтали).

У меня такой же вопрос

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

Посмотрел приложение - там обыкновенная иерархия, когда справочник ссылается сам на себя. Моя же задача иная

Там показывается принципиальная возможность древовидности на детали. Возможно, если идея Вашей модификации будет востребована, или кто-то разработает дополнение, или такое сделают в новых версиях коробки. Что-то похожее есть для продуктов в основном реестре, с их каталогом.

Войдите или зарегистрируйтесь, чтобы комментировать