检查表单是否已保存在CRM 2011 Javascript中

javascript dynamics-crm dynamics-crm-2011 crm dynamics-crm-online

12487 观看

3回复

473 作者的声誉

我正在编写一个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');
    }
}
作者: Charan Raju C R 的来源 发布者: 2012 年 4 月 3 日

回应 (3)


0

5263 作者的声誉

您可以添加自己的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;
}

这没有明确地告诉您保存的表单,但是让您知道表单是否有效,可能是也可能不够。

作者: glosrob 发布者: 03.04.2012 01:00

3

537 作者的声誉

决定

当你说“表格已被保存”时,你的意思是第一次吗?如果是这样,您可以查询表单类型: -

Xrm.Page.ui.getFormType();

(例如,它是在创建还是更新中)。如果表单已经处于更新模式,那么您可以检查表单是否脏,如您所说。如果您想知道哪些必填字段尚未完成,您还可以循环遍历表单上的属性并查询它们是否为Business Required: -

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

并将此消息添加到用户的警告消息中。

作者: Philip Rich 发布者: 03.04.2012 01:02

0

76 作者的声誉

你可以这样试试:

var entitySaved;

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

当然,您必须通过单击表单属性从CRM解决方案添加表单事件。

作者: Manuel Roldan 发布者: 14.11.2018 05:49
32x32