zoukankan      html  css  js  c++  java
  • MS CRM 2011的自定义与开发(12)——表单脚本扩展开发(3)

        继续上文

        Xrm.Page.data.entity,提供了一组函数和集合,分别用于页面所代表实体数据的信息,以及代表该数据所有属性的一个集合,需要注意的是,该集合中只包含界面上显示的字段的信息,例如,表单中没有修改者字段,那么属性集合中,不会包含有关修改者字段的信息。

        Xrm.Page.data.entity对象包含的函数有:

    名称

    描述

    addOnSave 设置表单在保存时需要触发的处理函数,输入参数为方法指针
    getDataXml 获取表单保存时,发送给服务器的XML字符串信息
    getEntityName 获取当前表单对应的实例的实体的逻辑名称
    getId 获取当前表单对应的实例的主键值GUID
    getIsDirty 用于判断当前表单中的所有字段是否有过更改
    removeOnSave 和addOnSave函数相逆,将某个处理函数从表单保存操作触发函数列表中移除
    save 保存操作,有三个输入参数,分别是
    空:等同于点击Ribbon工具条的“保存”按钮;
    saveandclose:等同于点击Ribbon工具条的“保存并关闭”按钮;
    saveandnew:等同于点击Ribbon工具条的“保存并新建”按钮;

        下面以addOnSave方法为例,说明如何向Microsoft Dynamics CRM 2011的表单中添加处理函数。

    1. 打开相应的实体的表单编辑器;

    2. 点击Ribbon工具条中的窗体属性按钮,系统弹出“窗体属性”对话框;

    3. 点击窗体属性对话框的“事件列表”工具条上的“添加”按钮,该操作代表了要向现有表单添加脚本库文件,此时,系统弹出“查找记录”对话框;

    4. 在“查找记录”对话框中,将会列出所有的可用的类型为Javascript的web资源,如果这些Javascript资源不能够满足要求,那么需要点击对话框左下方的“新建”按钮,通过新建Javascript资源的方式,添加新的脚本文件;

        以上操作,如下图所示,红色箭头代表了先后的操作顺序。

    image

        点击“新建”按钮后,系统弹出了“新建web资源”界面,如下图所示。

    image

    在“名称”文本框中,输入新建的web资源的唯一名称,本例中,使用了new_addSaveScript.js作为唯一名称,其中“new_”是前缀名称;

    在“显示名称”文本框中,输入一个易于记忆的显示名称,本例中,使用了“addSave function sample”作为显示名称;

    在“说明”文本框中,输入对当前web资源的描述性信息,包括资源的用途、版本等等信息都是可以的;

    在“类型”下拉框部分,系统提供了所有支持的web资源类型,如下图所示;

            image

            如果类型选择为“网页”、“脚本”、“样式表”、“数据”,那么将在“类型”下拉框的右侧出现一个“文本编辑器”按钮,效果如下图所示

            image

    对于PNG、JPG、GIF、ICO以及XAP格式的资源,那么需要点击“上载文件”文本框旁边的“浏览”按钮,以便将本机上存储的相应格式的文件上传到服务器中,对于其他格式的web资源,可以使用MS CRM系统的文本编辑器进行输入,也可以使用上传文件的方式将相应的资源文件上传到服务器中。

        本例中,使用MS CRM 2011提供的文本编辑器输入脚本函数。输入的脚本内容如下图所示:

    image

        共书写了两个脚本函数,内容如下:

    function addOnSave_OnLoad()
    {
        Xrm.Page.data.entity.addOnSave(myFirstAddOnSaveSample);
        Xrm.Page.data.entity.addOnSave(mySecondAddOnSaveSample);
    }

    function myFirstAddOnSaveSample()
    {
        alert("First handler function");
    }

    function mySecondAddOnSaveSample()
    {
        alert("Second hander function");
    }

         编写完脚本资源,点击“确定”按钮,返回“新建web资源”界面,点击Ribbon工具条中的“保存并关闭”按钮,返回“查找记录”对话框,选择新建的web资源,点击“确定”按钮,返回“窗体属性”对话框,最终的“窗体属性”对话框的效果如下图所示。

    image

        至此,脚本库的添加工作已经完成,下面就是将表单中的事件与脚本库中的脚本函数进行挂接的工作。

        在“事件处理程序”部分,根据我们需要添加事件处理函数的具体情况,

    首先,确定“控件”下拉框的控件名称,本例是希望在窗体被加载的时候,调用addOnSave方法,以期在窗体保存操作时,可以调用上面书写的处理函数,所以,控件选择为“窗体”;

    其次,选择事件,本例中,选择OnLoad事件;

    第三,点击“添加”按钮,指定事件处理函数,系统会弹出“处理程序属性”对话框,在“函数”文本框中,输入处理程序的名称,本例中,输入“addOnSave_OnLoad”;

          image

        最终的处理程序列表如下图所示:

    image

        点击“确定”按钮,返回表单编辑器主界面,点击Ribbon工具条中的“保存”按钮。在保存完成后,点击“发布”按钮,完成功能修改后的生效工作。

        发布完成后,返回表单页面,我们测试一下。点击“保存”按钮,系统会依次弹出“First Handler function”以及“Second Handler function”两个对话框,如下图所示。

    image

        以上,展示了几类内容:

    向表单中添加脚本函数处理程序的步骤;

    添加web资源的方法;

    简单的Xrm.Page.data.entity方法的调用样例;

  • 相关阅读:
    websphere节点、单元、服务之间的关系
    easyui tree 判断点击的节点是否还存在子节点
    判断程序员在干什么
    配置was7、并部署发布项目!
    解决spring mvc 上传报错,Field [] isn't an enum value,Failed to convert value of type 'java.lang.String[]' to required type '
    spring mvc easyui tree 异步加载树
    《再见三山街》
    websphere内存溢出,手动导出was的phd和javacore文件
    js控制 点一下增加一个输入框,点一下增加一个输入框……
    C#中线程调用带有参数的方法
  • 原文地址:https://www.cnblogs.com/StoneGarden/p/2404625.html
Copyright © 2011-2022 走看看