发帖

#楼主# 2020-4-7

跳转到指定楼层
本帖最后由 庞聪 于 2021-3-15 08:21 编辑

通过代码实现指定时间提醒,已经实现了指定时间的提醒功能,但仅对本人有提醒,实际应用是行政安排工作,设定在某一时间进行提醒。需要同时获取人员多选控件和部门多选控件的数据。请教一下如何实现人员多选、部门多选的调用赋值或如何获取人员部门控件的取值?
问题已解决!完整代码请看后面的跟帖回复!那是两个人的成果!希望能帮到更多的用户!实现共同进步!/2020-4-11 16:08

目前实现的代码如下:

      //增加自定义消息提醒b
       H3.Task.UserTask   task = new H3.Task.UserTask();

        string appId = "A69b534faedd64f389aa145221db1bdce";   //应用编码

        task.ObjectId = Guid.NewGuid().ToString();//Guid码

        task.Sender = H3.Organization.User.SystemUserId;//任务的发起人id

        //任务的接收人是人员多选、部门多选控件,如何进行赋值?
              task.UserId = this.Request.UserContext.UserId;  //任务的接收人id  
        task.AppCode = appId;//应用编码

        task.TaskType = H3.Task.TaskType.Reminder; //任务类型为提醒

        task.SchemaCode = "Smgan033l6ajmqpy2489c8nzd1"; //表单编码

        task.TargetType = H3.LinkTargetType.BizObject; //关联类型

        task.TargetId = this.Request.BizObjectId; //关联业务对象的ID

        task.TargetName = this.Request.BizObject.Name;  //关联业务对象的数据标题

        task.Name = "设置群体提醒"; //提醒标题

        task.Summary = this.Request.BizObject["F0000001"] + string.Empty; //提醒的内容

        task.**Time = DateTime.Parse(this.Request.BizObject["F0000023"] + string.Empty);  // 提醒时间

        task.ReminderType = H3.Task.ReminderType.Once; //提醒类型

        task.StartTime = DateTime.Now; //开始时间

        task.EndTime = DateTime.Now;   //截止时间

        task.TaskState = H3.Task.TaskState.Unfinished; //任务状态

        task.**State = H3.Task.**State.Waiting; //提醒的状态

        this.Request.Engine.TaskManager.AddTask(task);//添加任务
        //增加自定义消息提醒e





附1:氚云应用的功能需求思考(定期更新)
 

附2:氚云校园标准版使用回顾三之补充-整体规划心得
 

附3:氚云校园标准版使用回顾之三——整体规划与突破变通

附4:谈谈如何更好的让应用更智能化

附5:谈谈在氚云应用中快速实现人员部门精准定位的技巧


附6:等待氚云破局(看好VS看破)





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具

0

主题

16

帖子

523

金币

氚云官方人员

Rank: 7Rank: 7Rank: 7

积分
653

氚云标准版氚云专业版

谭文 发表于 2020-4-9 19:04:10
人员多选控件值获取方法
string[] userIds = this.Request.BizObject["多选控件编码"] as string[];
再通过循环获取到每个人员发送消息提醒
回复

使用道具 举报

25

主题

55

帖子

1万

金币

lv6

Rank: 50Rank: 50

积分
4985

2021跨年勋章超级码力内测荣誉勋章氚云标准版氚云专业版

庞聪 发表于 2020-4-11 14:11:02
本帖最后由 庞聪 于 2020-4-12 11:19 编辑
谭文 发表于 2020-4-9 19:04
人员多选控件值获取方法
string[] userIds = this.Request.BizObject["多选控件编码"] as string[];
再通过 ...

非常感谢!人员多选和部门多选的自定义时间提醒完全实现!完整代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using H3;

public class Smgan033l6ajmqpy2489c8nzd1: H3.SmartForm.SmartFormController
{
    public Smgan033l6ajmqpy2489c8nzd1(H3.SmartForm.SmartFormRequest request): base(request)
    {
    }

    protected override void OnLoad(H3.SmartForm.LoadSmartFormResponse response)
    {
        base.OnLoad(response);
    }

    protected override void OnSubmit(string actionName, H3.SmartForm.SmartFormPostValue postValue, H3.SmartForm.SubmitSmartFormResponse response)
    {
        base.OnSubmit(actionName, postValue, response);
        //增加自定义消息提醒b

        H3.Task.UserTask   task = new H3.Task.UserTask();

        string appId = "A69b534faedd64f389aa145221db1bdce";   //应用编码

        string[] userIds1 = this.Request.BizObject["F0000018"] as string[];//获取人员多选控件


        string[] userIds2 = this.Request.BizObject["F0000019"] as string[];//获取部门多选控件

        task.ObjectId = Guid.NewGuid().ToString();//Guid码

        task.Sender = H3.Organization.User.SystemUserId;//任务的发起人id

        //task.UserId = this.Request.UserContext.UserId; //任务的接收人id

        task.AppCode = appId;//应用编码

        task.TaskType = H3.Task.TaskType.Reminder; //任务类型为提醒

        task.SchemaCode = "Smgan033l6ajmqpy2489c8nzd1"; //表单编码

        task.TargetType = H3.LinkTargetType.BizObject; //关联类型

        task.TargetId = this.Request.BizObjectId; //关联业务对象的ID

        task.TargetName = this.Request.BizObject.Name;  //关联业务对象的数据标题

        task.Name = "设置群体提醒"; //提醒标题

        task.Summary = this.Request.BizObject["F0000001"] + string.Empty; //提醒的内容

        task.**Time = DateTime.Parse(this.Request.BizObject["F0000023"] + string.Empty);  // 提醒时间

        task.ReminderType = H3.Task.ReminderType.Once; //提醒类型

        task.StartTime = DateTime.Now; //开始时间

        task.EndTime = DateTime.Now;   //截止时间

        task.TaskState = H3.Task.TaskState.Unfinished; //任务状态

        task.**State = H3.Task.**State.Waiting; //提醒的状态

        for(int i = 0;i < userIds1.Length - 1; i++)//获取人员多选接收人
        {
            task.UserId = userIds1; //任务的接收人id
            this.Request.Engine.TaskManager.AddTask(task);//添加任务
        }
        for(int i = 0;i < userIds2.Length - 1; i++)//获取部门多选接收人
        {
            task.UserId = userIds2 ; //任务的接收人id
            this.Request.Engine.TaskManager.AddTask(task);//添加任务
        }

        //增加自定义消息提醒e
    }
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|氚云社区 |粤ICP备15096637号-1
Powered by Discuz! X3.4 Licensed  © 2001-2017 Comsenz Inc.