H3.SmartForm.Timer 特性:继承类Timer,四个小时执行一次,时间是不固定的
select * from H_user where like '%张三%' and state=0
-----后端代码里 不能放在表单的类里面,要独立出来------
定时器:判断产品过期没有
-----OnLoad 在base.OnLoad(response)上面-----
MyTest_Timer timer=new MyTest_Timer();
timer.DoTask(this.Engine);
public class MyTest_Time:H3.SmartForm.Timer
//构造方法,跟类名保持一致,里面不必写代码,但是必须存在
public MyTest_Timer()
{
//重写定时器引擎执行的方法,必须存在,且方法名必须为OnWork
protected override void OnWork(H3.IEngine engine)
{
DoTask(engine);
}
public void DoTask(H3.IEngine engine)
{
string sql="select * from I_状态栏中的目标ID where date<now() and productNumb>0";
DataTable SelDt=engine.Query.QueryTable(sql,null);
if(SelDt!=null && SelDt.Rows.Count>0)
{
foreach(DataRow item in SetDt.Rows)
{
H3.DataModel.BizObject biz=H3.DataModel.BizObject.Load(H3.Organization.User.SystemUserId,engine,"目标表状态栏中的ID",item["objectid"]+string.Empty,false);
SendMessage(engine,biz);
}
}
}
public void SendMessage(H3.IEngine engine,H3.DataModel.BizObject biz)
{
H3.Task.UserTask task = new H3.Task.UserTask();
task.ObjectId = Guid.NewGuid().ToString();//Guid码
task.Sender = H3.Organization.User.SystemUserId;//任务的发起人id
task.UserId = this.Request.UserContext.UserId; //任务的接收人id
task.AppCode = appId;//应用编码appcode
task.TaskType = H3.Task.TaskType.Reminder; //任务类型为提醒
task.SchemaCode = "D000024chuangjian"; //表单编码
task.TargetType = H3.LinkTargetType.BizObject; //关联类型
task.TargetId = biz.BizObjectId; //关联业务对象的ID
task.TargetName = biz.Name; //关联业务对象的数据标题
task.Name = "库存过期!"; //提醒标题
task.Summary = "库存过期!"; //提醒的内容
task.AlertTime = DateTime.Now; // 提醒时间
task.ReminderType = H3.Task.ReminderType.Once; //提醒类型
task.StartTime = DateTime.Now; //开始时间
task.EndTime = DateTime.Now; //截止时间
task.TaskState = H3.Task.TaskState.Unfinished; //任务状态
task.AlertState = H3.Task.AlertState.Waiting; //提醒的状态
Request.Engine.TaskManager.AddTask(task);//添加任务
}
}