Проверьте форму сохранена или нет в CRM 2011 Javascript - PullRequest
2 голосов
/ 03 апреля 2012

Я пишу Javascript для вызова внешней ссылки по нажатию пользовательской кнопки ленты в форме сущности CRM 2011.В javascript я проверяю, грязная форма или нет.Если форма грязная (значит, некоторые поля изменены пользователем), JScript принудительно сохранит форму, используя Xrm.Page.data.entity.save () .Но когда обязательные поля не заполнены, принудительное сохранение не произойдет, и я должен показать какое-то пользовательское сообщение, чтобы заполнить эти поля, прекратить поток управления и не должен открывать внешнюю ссылку.Как узнать, сохранена ли форма или нет ..?

Кусок кода, как показано ниже:

function buttonOnClick() {
    if (Xrm.Page.data.entity.getIsDirty()) 
    {
        Xrm.Page.data.entity.save();
    }
    else 
    {
        window.open('http://www.google.com', 'name', 'width=900,height=800');
    }
}

Ответы [ 3 ]

3 голосов
/ 03 апреля 2012

Когда вы говорите «форма была сохранена», вы имеете в виду впервые? Если это так, вы можете запросить тип формы: -

Xrm.Page.ui.getFormType();

(это в Create или Update например). Если форма уже находится в режиме обновления, вы можете проверить, является ли форма грязной, как вы говорите. Если вы хотите узнать, какие обязательные поля не были заполнены, вы также можете зациклить атрибуты в форме и запросить, являются ли они обязательными для бизнеса: -

Xrm.Page.data.entity.attributes.get("myAttribute").getRequiredLevel();

и добавьте это в предупреждающее сообщение для пользователя.

0 голосов
/ 14 ноября 2018

Вы можете попробовать это следующим образом:

var entitySaved;

function OnLoad(){
   entitySaved=false;
 }
function OnSave(){
   entitySaved=true;
 }
function myFunction(){
  if(entitySaved){
   //do your logic here
  }
}

Конечно, вам нужно будет добавить события формы из вашего решения CRM, щелкнув свойства формы.

0 голосов
/ 03 апреля 2012

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

например,

Xrm.Page.data.entity.addOnSave(function() {
    var isValid = VerifyOnSave();
    if (isValid) {
        //continue
    }
    else {
        //show errors, cancel save
    }
);

function VerifyOnSave()
{ 
    //<insert validation logic here>
    return true;
}

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

...