这节我们来讨论下如何通过在实体的Form中通过JS来提交表单,达到模拟用户操作的效果。我们来看看练习需求吧:
涉及的实体
JS模拟操作
需要实现的需求
如果用户在实体属性”签名“中进行了任何修改操作,属性”签名者“就需要记录该修改者。
实现方案
在文本控件中添加一onchange事件,该事件将要完成如下效果:
1.获取当前用户的ID信息,并将这信息经过包装后赋值给表单上的字段“签名者”2.保存表单
技术分析
实现该功能涉及2个开发点:1如何给Lookup类型的控件赋值,2如何用JS来提交表单。实现步骤
图一
图二
图三
图四
图五
使用到的脚本
function signtext_onchange_1()
{
var CRM_FORM_TYPE_CREATE = 1;
var CRM_FORM_TYPE_UPDATE = 2;
var CRM_FORM_TYPE_READONLY = 3;
var CRM_FORM_TYPE_DISABLED = 4;
var CRM_FORM_TYPE_QUICKCREATE = 5;
var CRM_FORM_TYPE_BULKEDIT = 6;
var currentFormType=Xrm.Page.ui.getFormType();
if(currentFormType != CRM_FORM_TYPE_CREATE)//新建的时候不操作
{
var new_signer=Xrm.Page.getControl("new_signer");
var curUserId=Xrm.Page.context.getUserId();
var signer=[{id:curUserId,typename:"systemuser"}];
new_signer.getAttribute().setValue(signer);
new_signer.getAttribute().setSubmitMode("always");
Xrm.Page.data.entity.save();
}
}