做CRM开发的都知道,在系统时间字段的处理上是有讲究的,因为数据库中存的是UTC时间,CRM的界面时间字段会根据个人设置中的时区以及格式自动调整,这是最基本的一面,那还有很多使用时间的场景,比如脚本使用ODATA调用组织服务取时间.后台代码中通过组织服务取时间.报表中通过sql取时间等等.报表是最容易理解的因为直接取得sql时间字段也就是UTC时间,那要正确显示直接加8小时就行. 这里主要说的是后台代码中通过组织服务取时间,我们先看一个我们常用的24小时制的显示时间 下图是个人选项中的时间的设置…
本篇延续上篇博文继续时间字段的转化实验,本篇讲的是在窗体Javascript中获取及更新时间字段的具体写法,是否需要进行时制的转化,先看下通过ODATA取到的时间字段值 当然取出来看格式就知道是不能直接用的,需要进行格式的转换,转换方式如下 date = date.replace("/Date(",""); date = date.replace(")/",""); dateValue = new Date(parseInt(…
前面两篇介绍了后台代码通过组织服务获取更新时间字段.窗体javascript通过Odata获取更新时间字段,最后篇来实验下在插件中的获取和更新时间字段是否需要时制的转化,为何说是最后篇呢,因为在CRM的开发中需要敲代码的也就这三个场景了,话不多说直接上手. 做了个简单的例子可以看到,插件中取到的也是UTC时间是需要进行8小时时制转化的. 再来看下update,从下面截图中可以看到直接将当前时间赋值是正常显示的.所以插件中的时间获取需要转化,而更新时间不需要转化.…
本篇文章,介绍Microsoft Dynamics CRM 2011的组织服务中的RetrieveMultiple方法. RetreiveMultiple方法,用于获取实体的多个实例,该方法的签名如下: 1 public virtual EntityCollection RetrieveMultiple (2 QueryBase query3 ) RetreiveMultiple方法的输入参数是QueryBase类的对象.QueryBase是一个基类,有多个子类,其类树如下图所示: 由上图可见,…
前台: <asp:TemplateField HeaderText="充值总额|账号余额"> <ItemTemplate> <asp:Label ID="lblSurplusMoney" runat="server" Text=""></asp:Label> </ItemTemplate> </asp:TemplateField> /// <summ…
本篇又是一次来谈到CRM中时间字段的问题,那这次要谈的是在引用web api过程中写代码上的注意事项,常用的代码场景即JS和c#. 先来看下js,从下图中可以看到,我直接将new Date()赋值给时间字段时,经过json序列化后会将本地时间转化为国际时间,那如果我的时间字段的行为是无时区,写进后台数据库的就是国际时间那就是错误的,会有8小时的时差. 那怎么办呢,我们想到的简单粗暴的方式就是new Date().toString()这样json处理的是字符串而不是时间就不会减8转化为国际时间了,…
前篇我们论述了时间字段的查询,本篇来论述下时间字段的更新. 还是以之前建的当地时间(时间行为为用户当地时间)字段来测试 可以看到web api更新的是数据库的时间,而在前台的反映就是做了加8处理,所以后期在时间字段的处理上要多加注意,分清楚该之间字段的行为到底是什么.…
CRM中通过QueryExpression查询出了一个EntityCollection集,但有时会存在重复数据,QueryExpression中有个属性distinct,只要设置为true就能过滤重复数据,但这个属性针对的数据重复是所有的列都相同.但现在讨论的重复数据不是多条数据的所有列都一样,而是当某个字段或者多个字段的数据重复时我们就认为这是一条重复数据,那怎么样才能去掉这种情况下的重复呢? EntityCollection.Entities.GroupBy(item => item.G…
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.Attributes.Add("onclick", "javascript:alert('当前ID为:" +DataBinder.Eval(e.Row.DataItem,"CID"…
安装好CRM 2013 之后,还需要安装报表服务,发现出现:SQL Server Reporting Services 帐户是本地用户且不受支持,具体如下图: 经过分析原来发现是需要用域用户,打开对应的服务,开始-运行输入servervices.msc 出现服务,打开服务SQL Server Reporting Services 帐户是本地用户且不受支持,右击属性,选择此账户,具体如下图: 然后需要添加一个域用户 ,重启服务器就可以解决这个问题.具体如图: 随便添加一个用户就可以了,比如,zha…