dynamic 365 前端操作

dynamic 365 常用js操作和方法

dynamic 365 常用js

//获取当前用户id
Xrm.Page.context.getUserId()//获取当前用户的用户名    
Xrm.Page.context.getUserName()//获取当用户的安全角色         
Xrm.Page.context.getUserRoles();
//获取当前用户   
Xrm.Page.context.getUser();  
//获取字段名为“name”的字段值        
Xrm.Page.getAttribute("name").getValue(); 
//给字段名为“name”的字段赋值    
Xrm.Page.getAttribute("name").setValue("Inputer");
//给字段名为“name”的字段赋值后自动提交        
Xrm.Page.getAttribute("name").setSubmitMode("Inputer"); 
//页面保存并刷新
Xrm.Page.data.save().then(function () {parent.window.location.reload();});     
//保存  
Xrm.Page.data.entity.save();
//刷新
Xrm.Page.data.refresh();  
//取流程的值
var phase = Xrm.Page.data.process.getActiveStage().getName(); 
//改变字段的字段需求  (注:required业务必选;none可选;recommended业务推荐)
Xrm.Page.getAttribute("字段名").setRequiredLevel("required");   
//隐藏名为“st_portfoliomanager”的字段            
Xrm.Page.getControl("st_portfoliomanager").setVisible(false); 
//取消隐藏(显示)名为“st_portfoliomanager”的字段       
Xrm.Page.getControl("st_portfoliomanager").setVisible(true); 
//锁字段名为“ownerid”的字段(注:页眉的字段加header_)       
Xrm.Page.getControl("ownerid").setDisabled(true);
//解锁字段名为“ownerid”的字段         
Xrm.Page.getControl("ownerid").setDisabled(false); 
//局部刷新(子网格也可以局部刷新)       
Xrm.Page.getControl("st_customerneed").refresh(); 
//删除选项集中的选项         
Xrm.Page.getControl("字段名").removeOption("值");  
//获取父页面的值
window.top.opener.Xrm.Page.getAttribute('tec_phase').getValue();
//隐藏tab
Xrm.Page.ui.tabs.get("tab_20").setVisible(false);
//获取当前页面的状态(注:1为新建,2为修改)    
Xrm.Page.ui.getFormType()//关闭当前页面        
Xrm.Page.ui.close(); 
//打开页面    
Xrm.Utility.openEntityForm("实体名称", getEntityId);  
//获取当前记录id  
Xrm.Page.data.entity.getId();     
//获取当前记录name 
Xrm.Page.data.entity.getEntityName()
//设置tab标题
Xrm.Page.ui.tabs.getByName("tab_15").setLabel("文档" + "(" + docDatas.length + ")");  
//change事件
Xrm.Page.data.process.addOnStageChange(fnStageChanged);  
//select事件
Xrm.Page.data.process.addOnStageSelected(fnStageSelected); 
//获取当前Stage
var currentStage = execContext.getEventArgs().getStage(); 
//获取当前窗体名称
Xrm.Page.ui.formSelector.getCurrentItem().getLabel() 
//给字段绑定事件
Xrm.Page.getControl("header_new_salescontract_id").getAttribute().addOnChange(function () {}
//按节锁字段
    Xrm.Page.ui.controls.forEach(function (control) {

        if (control.getParent()!=null) {

            if (control.getParent().getName() != null) {
					name = control.getAttribute().getName()
                if (control.getParent().getName() == "tab_1_sections") {
                    control.setDisabled(true);
                }
            }
        }

    })
//刷新父页面
window.top.opener.Xrm.Utility.openEntityForm(window.top.opener.Xrm.Page.data.entity.getEntityName(), window.top.opener.Xrm.Page.data.entity.getId());
//字段错误信息
Xrm.Page.getControl("attributeName").setNotification("notification content");
Xrm.Page.getControl("attributeName").clearNotification();
//窗体错误信息
Xrm.Page.ui.setFormNotification("notification content", "type", "notification name");//type:"INFORMATION","ERROR","WARNING"
Xrm.Page.ui.clearFormNotification('notification name');//clear all form notification when parameter is null```
//加载层
Xrm.Utility.showProgressIndicator("Please Wait.");
# dynamic 365 常用js方法

```javascript
//去除guid的{""}
function removeBlock(str) {
    if (str) {
        var reg = /^\{/gi;
        var reg2 = /\}$/gi;
        str = str.replace(reg, '');
        str = str.replace(reg2, '');
        return str;
    } else {
        return str;
    }
}
//禁用字段方法
function IsTrueDisabled(sectionlable, trueorfalse) {
    var tabs = Xrm.Page.ui.tabs;
    for (var i = 0, teblenth = tabs.getLength(); i < teblenth; i++) {
        var tab = tabs.get(i);
        var sections = tab.sections;
        for (var j = 0, sectionslenth = sections.getLength(); j < sectionslenth; j++) {
            var section = sections.get(j);
            if (section._controlName) {
                if (section._controlName.toLowerCase() == sectionlable) {
                    Xrm.Page.ui.controls.forEach(
                        function (control) {
                            if (control.getParent() !== null && control._controlName != "tec_teammemberid" && control.getParent()._controlName === sectionlable && control.getControlType() !== "subgrid") {
                                control.setDisabled(trueorfalse);
                            }
                        });
                    break;
                }
            }
        }
    }
}
//获取页面层级
function getXrmObj () {

                var XRMOBJ = new Object();

                if (typeof Xrm != "undefined") {
                    XRMOBJ = Xrm
                }
                else if (typeof window.parent.Xrm != "undefined") {
                    XRMOBJ = window.parent.Xrm
                }
                else if (typeof window.opener.Xrm != "undefined") {
                    XRMOBJ = window.opener.Xrm
                }
                else if (typeof window.opener.parent.Xrm != "undefined") {
                    XRMOBJ = window.opener.parent.Xrm
                }
                else {
                    throw new Error("Context is not available.");
                }
                return XRMOBJ;
            },

Xrm.Page.getControl   /kənˈtroʊl/ 前端获取更改控件的演示或行为并确定相应属性的方法
                           Attribute  /əˈtrɪbjuːt/  前端获取相应的属性
                           Disabled /dɪsˈeɪbld/  禁用
                           ControlType          返回是什么控件
                           getName   /neɪm/   分配给控件的名称
                           getParent  /ˈperənt/   对包含控件的部分对象的引用
                           getValue /ˈvæljuː/  获取控件的最新值
                           Keypress   /kiː/ /pres/   键入字符时,便可提供即时反馈或立即采取操作
                           removeOnKeyPress  /rɪˈmuːv/ /ɑːn/  /kiː/ /pres/ 此函数删除您使用 addOnKeyPress 添加的文本或数字字段的事件处理程序。
                           fireOnKeyPress /ˈfaɪər/ /ɑːn/  /kiː/ /pres/  使用此函数手动触发您为特定文本或数字字段创建的要对 keypress 事件执行的事件处理程序。

Xrm.Page.getAttribute(arg).
                           getInitialValue /ɪˈnɪʃl/当打开窗体时,返回表示 OptionSet 或 Boolean 属性值设置的值。
                           getOption /ˈɑːpʃn/ 返回带有传递到方法的参数匹配值的选项对象。
                           getOptions            返回代表选项集属性有效选项的一组选项对象。
                           getSelectedOption  /sɪˈlektɪd/ 返回在选项集属性中所选的选项对象。
                           getText   /tekst/ 返回选项集属性当前所选选项文本的字符串值。
                           getAttributeType  /əˈtrɪbjuːt/ 返回代表属性类型的字符串值。
                           getFormat   /ˈfɔːrmæt/  返回代表属性格式类型的字符串值。
                           getIsDirty  /ˈdɜːrti/  返回一个布尔值,指示属性值是否未保存更改。
                           getIsPartyList /ˈpɑːrti/ /lɪst/返回一个布尔值,指示查找是否表示 partylist 查找。 Partylist 查找允许设置多条记录,例如"To":邮件实体记录字段
                           getMaxLength /mæks/ /leŋkθ/ 返回一个数值,指示字符串或备忘录属性的最大长度。
                           getName  /neɪm/ 返回表示属性的逻辑名称的字符串
                           getParent  /ˈperənt/返回 Xrm.Page.data.entity 对象,该对象为所有属性的父对象。
                           getUserPrivilege  /ˈprɪvəlɪdʒ/ 用户可以创建、读取或更新属性的数据值,则返回带有与对应权限指示的三个布尔属性的对象。
                           getMax   /mæks/  返回数值指示属性的最大允许值。属性类型:货币、十进制、整数、偶数双精度
                           getMin /mɪn/ 返回数值指示的属性的最小允许值。属性类型:货币、十进制、整数、偶数双精度
                           addOnChange  /tʃeɪndʒ/ 当属性值发生更改时,设置调用的函数。
                           removeOnChange   /rɪˈmuːv/  /tʃeɪndʒ/  从属性的 OnChange 事件处理程序删除函数。
                           fireOnChange /ˈfaɪər/  /tʃeɪndʒ/ 导致属性 OnChange 事件发生,以便执行所有关联脚本。
                           getRequiredLevel  /rɪˈkwaɪər/  /ˈlevl/  返回一个字符串值,指示属性值是否为必需的或建议的属性值。
                           setRequiredLevel 保存记录前,设置属性数据是否需要或者建议。
                           getSubmitMode  /səbˈmɪt/   /moʊd/ 返回一个字符串,指示属性数据在记录保存后提交。
                           setSubmitMode 设置在保存记录时是否提交属性中的数据。
                           getValue  /ˈvæljuː/ 检索属性数据值
                           setValue 设置属性数据值。

Xrm.Page.data 实体属性和方法
                           getDataXml /ˈdeɪtə/ 返回表示当保存记录时将被发送到服务器的 XML 的字符串。 只有字段中已更改的数据被设置到服务器。
                           getEntityName  /ˈentəti/   /neɪm/  返回表示记录实体的逻辑名称的字符串。
                           getId 返回表示记录的 GUID id 值的字符串。
                           getIsDirty  /ˈdɜːrti/ 返回一个指示是否已修改窗体中任何字段的布尔值。
                           addOnSave /seɪv/ 当保存记录时,添加要调用的函数。
                           removeOnSave  /rɪˈmuːv/  /seɪv/ 当保存记录时,删除要调用的函数。
                           getPrimaryAttributeValue /ˈpraɪmeri/ /əˈtrɪbjuːt/  获取实体的主要属性值的字符串。
                           Xrm.Page.data.save 和 Xrm.Page.data.entity.save 均将保存记录


context.client. 客户端上下文(客户端引用)
                          getClient /ˈklaɪənt/  返回当前登录设备
                          getClientState  /steɪt/ 返回是脱机还是联机
                          getFormFactor /fɔːrm/ /ˈfæktər/ 是电脑登录还是移动端等
                          getClientUrl 返回用于访问应用程序的基本 URL。 
                          getCurrentTheme /ˈkɜːrənt/  /θiːm/ 返回表示当前 Microsoft Office Outlook 主题(由用户选择)的字符串。
                          getIsAutoSaveEnabled /ˈɔːtoʊ/ /seɪv/  /ɪneɪbld/ 返回是否对组织启用自动保存。
                          getOrgLcid  返回表示组织的基本语言的 LCID 值。
                          getOrgUniqueName  /juˈniːk/ 返回组织名称的唯一文本值。
                          getQueryStringParameters  /ˈkwɪri/  /strɪŋ/   /pəˈræmɪtərz/  返回表示查询字符串参数(该参数被传递到页面)的键值对的词典对象。
                          getTimeZoneOffsetMinutes  /taɪm/   /zoʊn/   /ˈɔːfset/   /ˈmɪnɪts/ 返回本地时与协调世界时 (UTC) 之间的时差。
                          getUserId 返回当前用户 SystemUser.Id 值的 GUID。
                          getUserLcid 返回表示用户选作首选语言的 Microsoft Dynamics 365 语言包 的 LCID 值。
                          getUserName 返回当前用户的名称。
                          getUserRoles /roʊlz/ 返回表示每个安全角色 GUID 值的字符串数组,其中安全角色与用户关联或与用户相关的任何团队关联。
                          prependOrgName  /pri:'pend/ 将组织名称预置到指定路径。

ExecutionContextObj.执行上下文(客户端引用)
                          getContext  /ˈkɑːntekst/  返回 客户端上下文(客户端引用) 对象的方法
                          getDepth /depθ/ 返回一个指示此处理程序的执行顺序的值的方法。
                          getEventArgs  /ɪˈvent/ 使用管理 Save 事件的方法返回对象的方法。详细信息:保存事件参数(客户端引用)。
                          getEventSource /ɪˈvent/  /sɔːrs/ 此方法返回事件来源的 Xrm.Page 对象模型的对象,而不是 HTMLDOM 对象。 例如,在 OnChange 事件中,该方法会返回表示更改属性的 Xrm.Page.data.entity 属性对象
                         getFormContext /fɔːrm/  /ˈkɑːntekst/  用于返回对窗体 (Xrm.Page) 或可编辑网格的引用的方法取决于方法的调用位置。
                         setSharedVariable /ʃerd/  /ˈveriəbl,/在当前处理程序完成后,设置可由处理程序使用的变量值。
                         getSharedVariable  检索使用 setSharedVariable 的变量集。

tabObj  Xrm.Page.ui 选项卡(客户端引用)
                         getDisplayState /dɪˈspleɪ/  /steɪt/ 返回一个值指示选项卡是展开的还是折叠的。
                         setDisplayState 将设置折叠或展开的选项卡。
                         getName 返回选项卡的名称。
                         getParent /ˈperənt/ 返回 Xrm.Page.ui(客户端引用) 对象。
                         getLabel  /ˈleɪbl/  返回选项卡标签。
                         setLabel 设置选项卡的标签。
                         setFocus /ˈfoʊkəs/  在选项卡设置焦点。
                         getVisible  /ˈvɪzəbl/  返回一个指示选项卡是否可见的值。
                         setVisible 设置指示控件是否可见的值。



  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 什么是创建动态网站? 动态网站是通过在服务器上动态生成网页内容而创建的网站。相比于静态网站,动态网站的内容可以根据用户的请求或行为进行实时更新和修改,因此更具交互性和个性化。创建动态网站通常需要使用编程语言和数据库,例如PHP、Python和MySQL。 ### 回答2: 创建dynamic web的主要思路是通过编程和技术手段使网页具有动态交互和数据展示的能力。下面是创建dynamic web的一般步骤: 首先,需要确定网站的功能需求,确定要展示的动态内容和交互功能。可以通过与客户或团队成员的讨论来收集需求,根据需求编写功能列表和设计文档。 接下来,选择合适的服务器端编程语言和框架。常用的服务器端语言有PHP、Python、Java等,常用的框架有Laravel、Django、Spring等。选择适合项目需求的编程语言和框架可以提高开发效率和网站性能。 然后,搭建开发环境。根据选择的编程语言和框架,安装相应的开发工具和环境。例如,如果选择PHP和Laravel框架,可以在本地安装PHP解释器、Composer依赖管理工具和Laravel框架。 在搭建开发环境完成后,开始开发动态网站的功能。根据设计文档和功能列表,编写服务器端的代码。这包括处理用户请求、连接数据库、处理数据逻辑等。 同时,需要设计和开发前端界面。通过HTML、CSS和JavaScript等前端技术,实现网页的样式和交互效果。可以使用前端框架如Bootstrap或Vue.js加快开发速度。 在开发过程中,需要与后端进行数据交互。可以使用AJAX技术实现前端和后端的数据传输。通过AJAX,可以实现动态的数据请求和更新,实现网站的动态效果。 最后,进行调试和测试,确保网站的正常运行和功能完备。在上线前,还需要进行性能测试和安全测试,确保网站在实际使用中稳定和安全。 总结来说,创建dynamic web需要明确需求、选择合适的技术和框架、搭建开发环境、开发和调试代码、设计前端界面,并进行测试和上线。通过这些步骤,可以创建出具有动态交互和数据展示能力的网站。 ### 回答3: 创建一个动态的Web应用程序需要以下步骤: 1. 确定需求:首先,您需要明确您的Web应用程序需要完成的功能和目标。了解用户需求以及所需的功能和数据是成功创建动态Web应用程序的关键。 2. 设计数据库:根据您的需求,设计数据库以存储和管理您的Web应用程序所需的数据。确定需要的表格、字段和关系,并创建数据库结构。 3. 选择开发工具和技术:根据您的技术背景和需求,选择一个适合的开发工具和技术。常用的动态Web应用开发技术包括PHP、Python、Java等。选择一个适合您的项目的框架,如Django、Flask等。 4. 开发服务器端代码:使用所选的开发工具和技术,编写服务器端代码来处理来自客户端的请求。这些代码将根据用户的操作从数据库中提取、更新和删除数据,并以所需的形式返回给客户端。 5. 编写客户端代码:使用HTML、CSS和JavaScript等前端技术,编写客户端代码以创建用户界面。这个用户界面将与服务器端代码进行交互,通过Ajax或其他技术向服务器发送请求,并根据响应更新用户界面。 6. 测试和调试:测试您的动态Web应用程序以确保它正常运行并满足用户需求。修复任何错误和缺陷,并进行性能测试以确保应用程序的高效性。 7. 部署和发布:将您的动态Web应用程序部署到适当的服务器上,并将其发布到互联网上,以使用户可以通过Web浏览器访问。 8. 维护和更新:定期维护和更新您的动态Web应用程序以确保其安全性和性能。根据用户反馈和需求,进行功能扩展和改进。 以上是创建动态Web应用程序的基本步骤。具体的实现方法和技术选择会根据项目的需求和约束而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值