4、CRM2011编程实战——将窗体中指定控件的值做处理后更新到另一个字段中

需求:将接报时间加上到期提醒时间后得到的值,更新到字段“到期截止时间”

Js调用:

//设置到期截止时间
    function setDeadLine(){
    var recordId = Xrm.Page.data.entity.getId();
    var entityName = Xrm.Page.data.entity.getEntityName();
    var reportedTime = Xrm.Page.getControl("hxcs_fdatetimeofrequesthelp").getAttribute().getValue().toLocaleString();
    var remindTime =Xrm.Page.getControl("hxcs_fremindtime").getAttribute().getText();
    $.post("/isv/Handlers/SetRemindHandler.ashx", { "recordId":recordId,"entityName":entityName,"reportedTime": reportedTime,"remindTime":remindTime}, function(data){});
}

一般处理程序SetRemindHandler.ashx,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Client;
using System.Net;
using System.ServiceModel.Description;
using System.Configuration;

namespace IsWaterWeb
{
    /// <summary>
    /// SetRemindHandler 的摘要说明
    /// </summary>
    public class SetRemindHandler : IHttpHandler
    {
        IOrganizationService _service = null;
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string recordId=context.Request["recordId"];
            string entityName=context.Request["entityName"];
            string reportedTime = context.Request["reportedTime"]; //接报时间
            string remindTime = context.Request["remindTime"]; //到期提醒时间(h)

            if(!string.IsNullOrEmpty(reportedTime)&&!string.IsNullOrEmpty(remindTime))
            {
                DateTime rTime = Convert.ToDateTime(reportedTime);
                double hourCounts = Convert.ToDouble(remindTime);
                DateTime deadline = rTime.AddHours(hourCounts);

                _service = GetOrganization();
                Entity entity = new Entity();
                entity.Id=Guid.Parse(recordId);
                entity.LogicalName=entityName;
                entity.Attributes["hxcs_fdeadline"] = deadline;
                _service.Update(entity);
            }
        }

        public IOrganizationService GetOrganization()
        {
            String UserName = ConfigurationManager.AppSettings["LoginName"];
            String Password = ConfigurationManager.AppSettings["LoginPwd"];
            string url=ConfigurationManager.AppSettings["organizationServiceUrl"];
            Uri uri = new Uri(url);

            var cred = new ClientCredentials();
            //cred.Windows.ClientCredential = new NetworkCredential("Xiaozhou", "Zhou123.");
            cred.Windows.ClientCredential = new NetworkCredential(UserName, Password);

            OrganizationServiceProxy _proxy = new OrganizationServiceProxy(uri, null, cred, null);
            IOrganizationService _service = (IOrganizationService)_proxy;
            return _service;
        }
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

注意:记得将一般处理程序SetRemindHandler.ashx放到服务器目录:C:\Program Files\Microsoft Dynamics CRM\CRMWeb\ISV\Handlers,如果没有Handlers目录,可以新建。

4、CRM2011编程实战——将窗体中指定控件的值做处理后更新到另一个字段中

时间: 2024-10-10 09:51:37

4、CRM2011编程实战——将窗体中指定控件的值做处理后更新到另一个字段中的相关文章

2、CRM2011编程实战——设置窗体某一项的值为服务器时间

需求:设置窗体中某个控件的值为服务器时间. 解决方案:通过一个一般处理程序获取服务器时间,然后通过ajax形式获取到此服务器时间并赋值给界面控件. 1.新建一个一般处理程序GetSererTimeHandler.ashx, 代码如下: <%@ WebHandler Language="C#" Class="GetSererTimeHandler" %> using System; using System.Web; namespace IsWaterWe

1、CRM2011编程实战——清空指定页签下面的所有选项,并对页签下面的指定控件进行操作

需求:当页面加载时,"呼叫编号"保持不变,"任务号"自动更新,"接报时间"和"发生日期"自动设置为当天日期和时间,其它选项全部恢复为初始状态. 字段说明: 控件名称 值 控件名称 值 控件名称 值 反馈单登录 tab_4 任务号 hxcs_ftaskcode 接报时间 hxcs_fdatetimeofcasehappended 发生日期 hxcs_fdatetimeofcasehappended 呼叫编号 hxcs_fcall

5、CRM2011编程实战——在CRM中添加修改密码功能

需求:登录CRM2011的用户,让其可以自己修改密码. 解决方案:新建一个自定义页面,为其提供修改域账号功能.第一步:获取当前域账号,第二步:修改当前域账号密码. 新建aspx页面ResetUserPassword.aspx,前台代码如下: <%@Page Language="C#" AutoEventWireup="true" CodeBehind="ResetUserPassword.aspx.cs" Inherits="Hu

3、CRM2011编程实战——选项集(下拉框)联动效果的实现

需求:根据选择不同的"反映类别",帅选出不同的"反映内容". 字段说明:反映类别:hxcs_feedbacktype,反映内容:hxcs_feedbacktype 解决方案:要设置两个选项集的关联,我们可以为两个选项集设置value的时候,做一些特殊的处理.举例:假设类别的Value:1001,1002,那么对应的内容可以设置为:类别value+00001,即100100001,以此类推.如下图: Js代码如下: function onFeedBackTypeCha

WPF中不规则窗体与WindowsFormsHost控件的兼容问题完美解决方案

首先先得瑟一下,有关WPF中不规则窗体与WindowsFormsHost控件不兼容的问题,网上给出的解决方案不能满足所有的情况,是有特定条件的,比如  WPF中不规则窗体与WebBrowser控件的兼容问题解决办法.该网友的解决办法也是别出心裁的,为什么这样说呢,你下载了他的程序认真读一下就便知道,他的webBrowser控件的是单独放在一个Form中,让这个Form与WPF中的一个Bord控件进行关联,进行同步移动,但是在移动的时候会出现闪烁,并且还会出现运动的白点,用户体验肯定不好. OK,

winform窗体中查找控件

private RichTextBox FindControl()        { RichTextBox ret = null;            try            {                Control[] controls = Application.OpenForms["MainForm"].Controls.Find("txtContent", false);                if (controls != nul

调用子窗体中的控件

通常在主窗体上点击某处控件想弹出一个子窗体,在子窗体中做了一些操作,然后要在主窗体中调用子窗体中控件中的值,其实很简单,就是需要做到两点: 1.在主窗体的Form Class级new子窗体 frmDDL frmddl = new frmDDL(); frmButton frmbtn = new frmButton(); 2.将子窗体中需要在主窗体中调用的控件的Modifer属性设置为Public 3.主窗体代码中显示子窗体,new出子窗体中的按钮事件 ? 1 2 frmbtn.Show(); f

WinForm/Silverlight多线程编程中如何更新UI控件的值

单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么做,比如: private void btnSet_Click(object sender, EventArgs e){        Thread t = new Thread(new ParameterizedThreadStart(SetTextBoxValue));    //当然也可以用匿名委托写成

Android 中常见控件的介绍和使用

1 TextView文本框 1.1 TextView类的结构 TextView 是用于显示字符串的组件,对于用户来说就是屏幕中一块用于显示文本的区域.TextView类的层次关系如下: java.lang.Object   ? android.view.View   ? android.widget.TextView 直接子类: Button, CheckedTextView, Chronometer, DigitalClock, EditText 间接子类: AutoCompleteTextV