Xrm.Page.getAttribute()

转控件:controls.get(0)

取赋值:getValue(),setValue()

是否改动:getIsDirty()

表单载入时的值:getInitialValue()[Boolean, optionset]

提交类型:getSubmitMode(),setSubmitMode()//always,never,ditry

必填等级:getRequiredLevel(),setRequiredLevel()//required、none

用户操作等级:getUserPrivilege()//canCreate()、canRead()、canUpdate()

事件:addOnChange(),removeOnChange(),fireOnChange()[强制执行]

其他:getAttributeType(),getFormat(),getIsValid(),getMax(),getMaxLength(),getMin(),getName(),getParent(),getPrecision()

选项集:getOption(),getOptions(),getSelectedOption(),getText()

Xrm.Page.getControl()

转属性:getAttribute()

提醒:addNotification(notification),clearNotification(uniqueId),clearNotifications(),setNotification(message,uniqueId)

禁用/启用:setDisabled(true),setDisabled(false),getDisabled()

显示/隐藏:setVisible(true),setVisible(false),getVisible()

描述:setLabel(),getLabel()

选中:setFocus

刷新:refresh()//仅限SubGrid

其他:addCustomFilter(),addCustomView(),addOption(),removeOption(value),clearOptions(),getControlType(),getData(),setData(),

getDefaultView(),setDefaultView(),getName(),getParent(),getSrc(),setSrc(),getInitialUrl(),getObject(),addOnKeyPress(),removeOnKeyPress(),fireOnKeyPress()

hideAutoComplete(),showAutoComplete(),

查找:addCustomFilter (fetchXmlFilter, entityType),

addCustomView (viewId, entityLogicalName, viewDisplayName, fetchXml, layoutXml, isDefault)

子网格:网格(只读)对象和方法(客户端引用)  可编辑网格对象和方法(客户端引用)

Control:getGrid(),addOnLoad(),removeOnLoad(),addRecord(),getRelationship(),getRelationshipAttributeName(),getRelationshipName(),

getViewSelector().setCurrentView(),   Grid:getGrid().getSelectedRows(),getRows(),addOnRecordSelect(),fireOnRecordSelect(),removeOnRecordSelect(),getTotalRecordCount(),showLoadingMessage()

Rows:getGrid().getSelectedRows().get(),getAll(),getByFilter(),getByIndex(),getByName(),getFirst(),getLength(),add(),forEach(),remove()

Row: getGrid().getSelectedRows().get(0).data.entity.attributes/relatedEntities

执行上下文:obj.getFormContext().data.entity

Xrm.Page.context

用户ID:getUserId()

用户角色:getUserRoles()

用户语言:getUserLcid()

组织名称:getOrgUniqueName()

组织语言:getOrgLcid()

路径参数:getQueryStringParameters()

服务器路径: getClientUrl()

前追加组织名称:prependOrgName("/WebResource/**")效果:crmtest/WebResource/**

当前主题:getCurrentTheme()

客户端信息:client

OutLook:isOutlookClient()/isOutlookOnline()

Xrm.Page.data

页面流程:process(process=>State=>Step)

事件:abandonProcess(),addOnProcessStatusChange(),addOnStageChange(),addOnStageSelected(),

completeProcess(),getSelectedStage(),getStatus(),moveNext(),movePrevious(),setStatus(),switchProcess()…

获取Step:getActiveStage().getSteps().getByIndex(0)

事件:addOnLoad(),removeOnLoad(),blockAutoSave(),getIsDirty(),setFormDirty(),refresh(),save()

Xrm.Page.data.entity

所有页面元素:attributes【forEach(),get(),getLength(),getByIndex(),getByName()…】

实体名称:getEntityName(),getEntitySetName()

实体ID:getId(),getKey(),getEntityReference()

主字段值:getPrimaryAttributeValue()

是否修改:getIsDirty()

保存事件:save( null | "saveandclose" |"saveandnew" )

添加保存时事件:addOnSave()

移出保存时事件:removeOnSave()

是否Hierarchy:isInHierarchy()

Xrm.Page.ui

事件:clearFormNotification(uniqueid),close(),getControls(),getCurrentControl(),getFormType(),getTabs(),refreshRibbon(),

标题:get_formTitle(),set_formTitle()

窗体提示框:setFormHtmlNotification(htmlText, notificationLevel, uniqueId)

setFormNotification(message, notificationLevel, uniqueId)

页面所有控件:controls【forEach(),get(),getAll(),getByFilter(),getByIndex(),getByName(),getLength()】

单个控件:controls.get("")【同Xrm.Page.getControl()】

页面Tab:tabs【forEach(),get(),getLength()】

单个Tab:tabs.get()【sections,getDisplayState(),getLabel(),getName(),getParent(),getVisible(),setDisplayState(),setFocus(),setLabel(),setVisible()】

Tab-Sections:tabs.get(0).sections【forEach(),get(),getLength()】

单个Section:tabs.get(0).sections.get(0)【getLabel(),getName(),getParent(),getVisible(),setLabel(),setVisible(),controls】

页面导航:navigation.items【forEach(),get(),getByFilter(),getByIndex(),getByName(),getLength()】

单个导航:navigation.items.get()【getId(),getLabel(),getVisible(),setFocus()-导航跳跃,setLabel(),setVisible()】

获取导航:1.通过getLabel()遍历;2.通过ID:.get("navContacts")

例:隐藏活动:Xrm.Page.ui.navigation.items.get("navActivities").setVisible(false)

document.getElementById(“navActivites”)

窗体:formSelector.items【forEach(),get(),getByFilter(),getByIndex(),getByName(),getLenght()】

单个窗体:formSelector.items.get()【getId(),getLabel(),navigate()-窗体跳跃】

var formItem = Xrm.Page.ui.formSelector.getCurrentItem();

Xrm.Utility

Xrm.Utility(客户端引用)

弹出框:Xrm.Utility.alertDialog(message,onCloseCallback)

确认框:Xrm.Utility.confirmDialog(message,yesCloseCallback,noCloseCallback)

打开新的或现有实体记录:Xrm.Utility.openEntityForm(name,id,parameters,windowOptions)

打开快速创建窗体:Xrm.Utility.openQuickCreate(entityLogicalName,createFromEntity,parameters).then(successCallback, errorCallback);

打开HTML Web资源:Xrm.Utility.openWebResource(webResourceName,webResourceData,width, height)

是否活动实体:Xrm.Utility.isActivityType(entityName)

使用移动设备摄像头扫描条形码:Xrm.Utility.getBarcodeValue().then(successCallback, errorCallback)

返回设备当前地理位置:Xrm.Utility.getCurrentPosition().then(successCallback, errorCallback)

隐藏函数

返回记录WebApi请求路径:Xrm.Utility.getEntityUrl(entityName, entityId)

删除数据:Xrm.Utility.deleteRecord(entityName, entityId)

创建数据:Xrm.Utility.create(entityLogicalName, parent, relationship, parameters, successCallback, failureCallback)

检索数据:Xrm.Utility.retrieveEntityRecord(entityReference, columnNames, successCallback, actionFailedCallback)

检索集合:Xrm.Utility.retrieveEntityCollection(keyQuery, successCallback, actionFailedCallback)

弹出框:Xrm.Utility.openDialog (url, dialogOptions, dialogArguments, initFunctionName, returnFunction)

打开记录:Xrm.Utility.openRecord(entityName, entityId, parameters)

展示Hierarchy:Xrm.Utility.showHierarchyPage(entityTypeName, entityId)

最佳新能

避免包含不必要的 JavaScript Web 资源库

向窗体中添加的脚本越多,用于下载脚本的时间也会越多。 通常,脚本首次下载后会缓存在浏览器中,但首次查看窗体时的性能通常会形成重要的印象。

对于特定示例,因为您要使用 XMLHttpRequest,因此不要在窗体脚本中包括 jQuery。 当 jQuery 提供很多人很熟悉的 $.ajax 函数来执行这些请求时,它是开发人员的首选项,不是必选项。 可以使用 Microsoft Dynamics 365 支持的所有浏览器中的本机 XMLHttpRequest 对象来执行这些请求。详细信息:jQuery 的使用

避免在 Onload 事件中加载所有脚本

如果您有仅支持字段的 OnSave 事件或 OnChange 事件的代码,请确保使用事件处理程序为这些事件(而不是 OnLoad 事件)设置脚本库。 这样可以推迟加载这些库,从而提高窗体加载时的性能。

为方便起见,不建议使用 OnLoad 事件处理程序中的 addOnChange 方法。 虽然此方法可减少添加事件处理程序所需的步骤数,但它将导致窗体加载速度更慢。

使用折叠选项卡来推迟加载 Web 资源

当折叠的选项卡中的分区中包括了 Web 资源或 IFRAME 时,在选项卡折叠的情况下不会加载它们。 它们会在选项卡展开时加载。 当选项卡状态发生变化时,会发生 TabStateChange 事件。 支持折叠的选项卡中的 Web 资源或 IFRAME 所需的任何代码都可以使用 TabStateChange 事件的事件处理程序,从而减少本来必须在 OnLoad 事件中发生的代码。

设置默认可见性选项

避免在隐藏窗体元素的 OnLoad 事件中使用窗体脚本。 请为可能隐藏的窗体元素设置默认可见性选项,以便在加载窗体时使其默认不可见。 然后,在 OnLoad 事件中使用脚本来显示您希望显示的窗体元素。

Dynamics 365—脚本的更多相关文章

  1. 自定义适用于手机和平板电脑的 Dynamics 365(四):窗体脚本

    为 Web 应用程序中使用的窗体编写的脚本也应该适用于用于手机和平板电脑的 Dynamics 365,但存在一些差异. 通常,对于移动应用程序无效的方法不返回错误,但是它们也不返回任何值. 开发人员可 ...

  2. 为Dynamics 365启用部署级的跟踪以及跟踪文件的定期删除

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复260或者20170712可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  3. Dynamics 365 CE中AsyncOperationBase表记录太多,影响系统性能怎么办?

    微软动态CRM专家罗勇 ,回复311或者20190311可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 本文主要是根据微软官 ...

  4. 解读 --- 基于微软企业商务应用平台 (Microsoft Dynamics 365) 之上的人工智能 (AI) 解决方案

    9月25日微软今年一年一度的Ignite 2017在佛罗里达州奥兰多市还是如期开幕了.为啥这么说?因为9月初五级飓风厄玛(Hurricane Irma) 在佛罗里达州登陆,在当地造成了挺大的麻烦.在这 ...

  5. Dynamics 365 Customer Engagement 中对API的调整内容分享

    当前版本中弃用了以下客户端 API 以重新组织 Xrm 客户端 API 对象模型,从而更好地满足以下需求:使用同一客户端脚本而不必基于上下文或基于运行这些脚本的客户端(Web 客户端或新的统一接口)来 ...

  6. Dynamics 365 Document Management

    Dynamics CRM中的Document Management功能需要Dynamics CRM与SharePoint进行集成,也就是实现在CRM中上传Document,实际上Document最终存 ...

  7. Dynamics 365客户端编程示例:两个选项集字段的联动

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  8. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之十三:从可用性组中移除副本然后重新添加

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  9. Introduction to Microsoft Dynamics 365 licensing

    Microsoft Dynamics 365 will be released on November 1. In preparation for that, Scott Guthrie hosted ...

随机推荐

  1. Linux:Gentoo系统的安装笔记(四)

    本来以为结束,谁知离正常的系统还是比较远,不过不放弃,这期的笔记我敢肯定是最后一期了,写了那么多我也觉得烦,被gentoo折磨烦了. 安装KDE桌面 选择正确的配置文件 先获取root权限来安装桌面环 ...

  2. 18-09-09 Linux 系统如何获取外部的数据例如 软件的2中方式

    方式一 利用U盘  手动挂载/卸载 U盘==========================================1, cat /proc/partitions查看U盘插入前后, 多出的 s ...

  3. web传输过程中的gzip压缩

    最近在做项目的时候用到了gzip,发现它的压缩能力还是很强大的,基本能够压缩50%的文本文件大小.以前有所了解,但不够深入,现在详细了解下. 什么是gzip 在哪里使用gzip gzip对于不同类型文 ...

  4. HttpInvoker客户端动态调用Demo

    private static <T> T getHttpInvokerService(String serverUrl, Class<T> serviceInterface) ...

  5. NLP相似度之tf-idf计算

    当然,在学习过程中也是参考了很多其他的资料,代码都是一行一行敲出来的. 一.将多个文件合并成一个文件,避免频繁的打开和关闭 import sys for line in sys.stdin: ss = ...

  6. Element Ui中table实现表格编辑效果

    主要以css实现 .tb-edit .el-input, .tb-edit .el-input-number, .tb-edit .el-select { display: none; width: ...

  7. datafactory5.6向mysql5.7添加大量测试数据

    1.下载安装datafactory5.6 2.下载安装mysql5.7,并创建数据库guest_test和表sign_event 3.下载安装odbc5.3 4.打开datafactory配置数据源, ...

  8. while循环 格式化输出 运算符 编码

    一.while循环 1.基本结构 while 条件:            循环体   流程: 判断条件是否为真. 如果真, 执行代码块. 然后再次判断条件是否为真 .如果真继续执行代码块....  ...

  9. 小程序视频播放组件video

    最近在做一个视频播放的功能,要求如下: 1.实现视频的全屏播放: 2.实现视频相关信息的展示: 3.实现视频滑动上下切换效果: 肯定选择用原生组件video了,真是不用不知道,一用都是坑: 首先,组件 ...

  10. projects(好代码好工具)每天进步一点点

    1. 行人检测的,感觉这个代码不错,起码换个数据集测试也不错: https://bitbucket.org/shanshanzhang/code_filteredchannelfeatures 2. ...