Добрый день!
Возник вопрос, как на странице раздела можно изменить значение поля на странице редактирования по нажатии кнопки?
Добавил в совмещенном режиме в раздел "Активности" кнопку "завершить", добавил метод обработчик нажатия, необходимо чтобы при прохождении всех проверок изменялся Статус и результат активности. Все изменения должны быть выполнены на клиенте и отобразиться сразу
//Метод-обработчик нажатия кнопки завершить
doneActivityClick: function(){
var activeRow = this.get("ActiveRow");
if (activeRow) {
var cOwnerId = $("#ActivityPageV2OwnerLookupEdit-link-el").attr('href').split('ViewModule.aspx#CardModuleV2/ContactPageV2/edit/')[1].toUpperCase();
var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
rootSchemaName: "Activity"
});
esq.addColumn("Opportunity.Owner.Id","OpportunityOwnerId");
esq.addColumn("Opportunity.UsrSaleAgreemAmountPlan", "OpportunityCountAgreem");
esq.addColumn("Opportunity.UsrSalePriseSum","OpportunityPriseSum");
esq.addColumn("Opportunity.UsrObjCountPlan","UsrObjCountPlan");
esq.getEntity(activeRow, function(result) {
if (!result.success) {
// обработка/логирование ошибки, например
this.showInformationDialog("Ошибка запроса данных");
return;
}
var oSumPrise = result.entity.get("OpportunityPriseSum");
var oOwnerId = result.entity.get("OpportunityOwnerId");
var oCountAgreem = result.entity.get("OpportunityCountAgreem");
var oCountObj =result.entity.get("UsrObjCountPlan");
var mesSumPrise= (oSumPrise<=0)?"Планируемая премия\n":"";
var mesCountAgreem=(oCountAgreem<=0)?"Планируемое количество договоров\n":"";
var mesCountOdj= (oCountObj<=0)?"Количество объектов\n":"";
if (cOwnerId!=oOwnerId.toUpperCase()) {
this.showInformationDialog("Ответственный по задаче отличается от ответственного по активности");
}
else{
if (oCountAgreem<=0 || oSumPrise<=0|| oCountObj<=0){
this.showInformationDialog("Заполните поля в продаже:\n"+mesSumPrise+mesCountAgreem+mesCountOdj);
}
//завершение задачи
else{
var newStatus ={
displayValue: "Завершена",
value: "4BDBB88F-58E6-DF11-971B-001D60E938C6"
};
var newResult ={
displayValue: "Реализовано",
value: "BB360D72-1AD7-4BBC-BADC-AABC0E334A74"
};
// как установить в данные поля значения?
this.set("Status", newStatus);
this.set("Result", newResult );
this.set("ButtonEnabled", false);
//сохраняем все изменения
var cardModuleSandboxId = this.getCardModuleSandboxId();
var resultMes = this.sandbox.publish("OnCardAction", "save", [cardModuleSandboxId]);
}
}
},this);
}//if(activeRow)
}