if
exists
(
select
*
from
dbo.sysobjects
where
id
=
object_id
(N
'
[dbo].[T_task]
'
)
and
OBJECTPROPERTY
(id, N
'
IsUserTable
'
)
=
1
)
drop table [ dbo ] . [ T_task ]
GO
CREATE TABLE [ dbo ] . [ T_task ] (
[ id ] [ int ] IDENTITY ( 1 , 1 ) NOT NULL ,
[ userid ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ title ] [ nvarchar ] ( 100 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ type ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ zxtype ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ zxtime ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ zxday ] [ int ] NULL ,
[ zxweek ] [ int ] NULL ,
[ zxweekg ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ ismonth ] [ int ] NULL ,
[ zxmonth ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ zxmonthday ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ zxmonthweek ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ zxmonthweekday ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ kday ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ ktime ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ dtime ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ isdtime ] [ int ] NULL ,
[ kcf ] [ int ] NULL ,
[ kcftime ] [ int ] NULL ,
[ ktype ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ msg ] [ text ] COLLATE Chinese_PRC_CI_AS NULL ,
[ propath ] [ nvarchar ] ( 200 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ url ] [ nvarchar ] ( 200 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ ishturl ] [ int ] NULL ,
[ remark ] [ text ] COLLATE Chinese_PRC_CI_AS NULL ,
[ dq ] [ int ] NULL
) ON [ PRIMARY ] TEXTIMAGE_ON [ PRIMARY ]
GO
ALTER TABLE [ dbo ] . [ T_task ] ADD
CONSTRAINT [ DF_T_task_dq ] DEFAULT ( 0 ) FOR [ dq ] ,
CONSTRAINT [ PK_T_task ] PRIMARY KEY CLUSTERED
(
[ id ]
) ON [ PRIMARY ]
GO
drop table [ dbo ] . [ T_task ]
GO
CREATE TABLE [ dbo ] . [ T_task ] (
[ id ] [ int ] IDENTITY ( 1 , 1 ) NOT NULL ,
[ userid ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ title ] [ nvarchar ] ( 100 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ type ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ zxtype ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ zxtime ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ zxday ] [ int ] NULL ,
[ zxweek ] [ int ] NULL ,
[ zxweekg ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ ismonth ] [ int ] NULL ,
[ zxmonth ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ zxmonthday ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ zxmonthweek ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ zxmonthweekday ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ kday ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ ktime ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ dtime ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ isdtime ] [ int ] NULL ,
[ kcf ] [ int ] NULL ,
[ kcftime ] [ int ] NULL ,
[ ktype ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ msg ] [ text ] COLLATE Chinese_PRC_CI_AS NULL ,
[ propath ] [ nvarchar ] ( 200 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ url ] [ nvarchar ] ( 200 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ ishturl ] [ int ] NULL ,
[ remark ] [ text ] COLLATE Chinese_PRC_CI_AS NULL ,
[ dq ] [ int ] NULL
) ON [ PRIMARY ] TEXTIMAGE_ON [ PRIMARY ]
GO
ALTER TABLE [ dbo ] . [ T_task ] ADD
CONSTRAINT [ DF_T_task_dq ] DEFAULT ( 0 ) FOR [ dq ] ,
CONSTRAINT [ PK_T_task ] PRIMARY KEY CLUSTERED
(
[ id ]
) ON [ PRIMARY ]
GO
type 1:只弹出提示。2:运行指定程序 3:打开url
zxype 1:每天 2:每周 3:每月 4:一次性
zxtime 开始时间 (时,分)
zxday 每多少天执行 zxtype=1 1
zxweek 每多少周执行 zxtype=2 1
zxweekg 具体执行那周内的那天执行 星期1,2,3,4,5,6,7
zxmonth 月份 1,2,3,4,5,6,7,8,9,10,11,12
zxmonthday 这个月多少号执行 0,1,2,3,4,5,6,7,8,9,10...30/31
zxmonthweekday 选择每个星期几执行。1/2/3/4/5/6/7
kday zxtype=4 执行日期
ktime 开始日期
dtime 结束日期
isdtime 是否启动结束日期
msg 要提示的信息
propath 要执行的应用程序ujing
url 要打开的url
ishturl 是否后台打开
remark
dq 是否已过期
using
System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Data;
using System.Data.SqlClient;
namespace tosky.Tool
{
public class task
{
public task(){
}
public static DataTable dt;
public static bool isdt = false ;
public static void evaltask( string id)
{
SqlDataReader dr = Class.Dbconn.dataReader( " select * from T_task where id= " + id);
if (dr.Read()){
eval(dr[ " type " ].ToString(), Class.Tool.ConverHtml(dr[ " msg " ].ToString(), 2 ), Class.Tool.ConverHtml(dr[ " propath " ].ToString(), 2 ), Class.Tool.ConverHtml(dr[ " url " ].ToString(), 2 ), (dr[ " ishturl " ].ToString() == " 1 " ) ? " 1 " : " 0 " );
}
else { Class.Tool.alert( " 不存在此ID: " + id + " 的任务 " , 1 ); }
dr.Close();
}
public static void eval( string type, string msg, string propath, string url, string ishturl)
{
Vote v = new Vote();
switch (type)
{
case " 即时提示 " :
v.StayTime = 60000 ;
v.title = " 任务提醒 (60秒后关闭) " ;
v.taskvote(msg);
v.ScrollShow();
break ;
case " 运行程序 " :
try {
System.Diagnostics.Process.Start(url);v.Dispose();
} catch (Exception ex){
v.StayTime = 5000 ;
v.title = " 运行程序 (5秒后关闭) " ;
v.showvote( " 打开程序失败,错误: " + ex.Message);
v.ScrollShow();
}
break ;
case " 打开URL " :
if (ishturl == " 1 " ) {
v.StayTime = 5000 ;
v.HeightMax = 80 ;
v.title = " 后台打开URL (5秒后关闭) " ;
if (Class.Tool.DownHtml(url) != null ){
msg = " 后台打开URL " + url + " 完成! " ;
} else {
msg = " 后台打开URL: " + url + " 失败! " ;
}
v.showvote(msg);
v.ScrollShow();
} else {
Class.Tool.openie(url); v.Dispose();
}
break ;
}
}
public static void taskeval( string id){
int dq = 0 ;
SqlDataReader dr = Class.Dbconn.dataReader( " select * from T_task where dq=0 and id= " + id);
if (dr.Read()){
string type = dr[ " type " ].ToString(),
msg = Class.Tool.ConverHtml(dr[ " msg " ].ToString(), 2 ),
propath = Class.Tool.ConverHtml(dr[ " propath " ].ToString(), 2 ),
url = Class.Tool.ConverHtml(dr[ " url " ].ToString(), 2 ),
ishthtml = (dr[ " ishturl " ].ToString() == " 1 " ) ? " 1 " : " 0 " ,
zxtime = dr[ " zxtime " ].ToString(),
zxtype = dr[ " zxtype " ].ToString(),
isdtime = dr[ " isdtime " ].ToString(),
ktime = dr[ " ktime " ].ToString(),
dtime = dr[ " dtime " ].ToString() + " " + zxtime,
zxweekg = dr[ " zxweekg " ].ToString(),
ismonth = dr[ " ismonth " ].ToString(),
zxmonth = dr[ " zxmonth " ].ToString(),
zxmonthday = dr[ " zxmonthday " ].ToString();
int zxday = int .Parse(dr[ " zxday " ].ToString()), zxweek = int .Parse(dr[ " zxweek " ].ToString());
DateTime dtktime = DateTime.Parse(ktime), dtdtime = DateTime.Parse(dtime);
TimeSpan ts = DateTime.Now.Subtract(dtktime);
if (isdtime == " 1 " && (dtdtime < DateTime.Now)){
dq = 1 ;
} else {
bool sf = false ;
switch (zxtype)
{
case " 每天 " :
if (ts.Days % zxday == 0 ){
sf = true ;
}
break ;
case " 每周 " :
int j = int .Parse(Class.Tool.week(DateTime.Now, 1 ));
TimeSpan ts2 = DateTime.Now.AddDays( 1 - j) - dtktime;
int zxw = ts2.Days / 7 ;
if (ts2.Days - zxw * 7 > 0 ){zxw += 1 ;}
if (zxw % zxweek == 0 ){
string [] w = zxweekg.Split( ' , ' );
if (w[j - 1 ] == " 1 " ) { sf = true ; }
}
break ;
case " 每月 " :
string [] m = zxmonth.Split( ' , ' );
if (m[DateTime.Now.Month - 1 ] == " 1 " )
{
if (ismonth == " 2 " ){
if (Class.Tool.week(DateTime.Now, 2 ) == Class.Tool.week(DateTime.Now, 2 ))
{sf = true ;}
} else {
if (DateTime.Now.Day == int .Parse(zxmonthday)) { sf = true ; }
}
}
break ;
case " 一次 " :
sf = true ; dq = 1 ;
break ;
}
if (sf){eval(type, msg, propath, url, ishthtml);}
}
}
dr.Close();
if (dq == 1 ) { Class.Dbconn.ExecuteSql( " update T_task set dq=1 where id= " + id); }
}
public static void foreval( string dts, string user)
{
if ( ! isdt){
dt = Class.Dbconn.dataTable( " select id,zxtime from T_task where dq=0 and userid=' " + user + " ' " );
isdt = true ;
}
for ( int i = 0 ; i < dt.Rows.Count; i ++ ){
if (dts == dt.Rows[i][ 1 ].ToString()){
Tool.task.taskeval(dt.Rows[i][ 0 ].ToString());
}
}
}
}
}
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Data;
using System.Data.SqlClient;
namespace tosky.Tool
{
public class task
{
public task(){
}
public static DataTable dt;
public static bool isdt = false ;
public static void evaltask( string id)
{
SqlDataReader dr = Class.Dbconn.dataReader( " select * from T_task where id= " + id);
if (dr.Read()){
eval(dr[ " type " ].ToString(), Class.Tool.ConverHtml(dr[ " msg " ].ToString(), 2 ), Class.Tool.ConverHtml(dr[ " propath " ].ToString(), 2 ), Class.Tool.ConverHtml(dr[ " url " ].ToString(), 2 ), (dr[ " ishturl " ].ToString() == " 1 " ) ? " 1 " : " 0 " );
}
else { Class.Tool.alert( " 不存在此ID: " + id + " 的任务 " , 1 ); }
dr.Close();
}
public static void eval( string type, string msg, string propath, string url, string ishturl)
{
Vote v = new Vote();
switch (type)
{
case " 即时提示 " :
v.StayTime = 60000 ;
v.title = " 任务提醒 (60秒后关闭) " ;
v.taskvote(msg);
v.ScrollShow();
break ;
case " 运行程序 " :
try {
System.Diagnostics.Process.Start(url);v.Dispose();
} catch (Exception ex){
v.StayTime = 5000 ;
v.title = " 运行程序 (5秒后关闭) " ;
v.showvote( " 打开程序失败,错误: " + ex.Message);
v.ScrollShow();
}
break ;
case " 打开URL " :
if (ishturl == " 1 " ) {
v.StayTime = 5000 ;
v.HeightMax = 80 ;
v.title = " 后台打开URL (5秒后关闭) " ;
if (Class.Tool.DownHtml(url) != null ){
msg = " 后台打开URL " + url + " 完成! " ;
} else {
msg = " 后台打开URL: " + url + " 失败! " ;
}
v.showvote(msg);
v.ScrollShow();
} else {
Class.Tool.openie(url); v.Dispose();
}
break ;
}
}
public static void taskeval( string id){
int dq = 0 ;
SqlDataReader dr = Class.Dbconn.dataReader( " select * from T_task where dq=0 and id= " + id);
if (dr.Read()){
string type = dr[ " type " ].ToString(),
msg = Class.Tool.ConverHtml(dr[ " msg " ].ToString(), 2 ),
propath = Class.Tool.ConverHtml(dr[ " propath " ].ToString(), 2 ),
url = Class.Tool.ConverHtml(dr[ " url " ].ToString(), 2 ),
ishthtml = (dr[ " ishturl " ].ToString() == " 1 " ) ? " 1 " : " 0 " ,
zxtime = dr[ " zxtime " ].ToString(),
zxtype = dr[ " zxtype " ].ToString(),
isdtime = dr[ " isdtime " ].ToString(),
ktime = dr[ " ktime " ].ToString(),
dtime = dr[ " dtime " ].ToString() + " " + zxtime,
zxweekg = dr[ " zxweekg " ].ToString(),
ismonth = dr[ " ismonth " ].ToString(),
zxmonth = dr[ " zxmonth " ].ToString(),
zxmonthday = dr[ " zxmonthday " ].ToString();
int zxday = int .Parse(dr[ " zxday " ].ToString()), zxweek = int .Parse(dr[ " zxweek " ].ToString());
DateTime dtktime = DateTime.Parse(ktime), dtdtime = DateTime.Parse(dtime);
TimeSpan ts = DateTime.Now.Subtract(dtktime);
if (isdtime == " 1 " && (dtdtime < DateTime.Now)){
dq = 1 ;
} else {
bool sf = false ;
switch (zxtype)
{
case " 每天 " :
if (ts.Days % zxday == 0 ){
sf = true ;
}
break ;
case " 每周 " :
int j = int .Parse(Class.Tool.week(DateTime.Now, 1 ));
TimeSpan ts2 = DateTime.Now.AddDays( 1 - j) - dtktime;
int zxw = ts2.Days / 7 ;
if (ts2.Days - zxw * 7 > 0 ){zxw += 1 ;}
if (zxw % zxweek == 0 ){
string [] w = zxweekg.Split( ' , ' );
if (w[j - 1 ] == " 1 " ) { sf = true ; }
}
break ;
case " 每月 " :
string [] m = zxmonth.Split( ' , ' );
if (m[DateTime.Now.Month - 1 ] == " 1 " )
{
if (ismonth == " 2 " ){
if (Class.Tool.week(DateTime.Now, 2 ) == Class.Tool.week(DateTime.Now, 2 ))
{sf = true ;}
} else {
if (DateTime.Now.Day == int .Parse(zxmonthday)) { sf = true ; }
}
}
break ;
case " 一次 " :
sf = true ; dq = 1 ;
break ;
}
if (sf){eval(type, msg, propath, url, ishthtml);}
}
}
dr.Close();
if (dq == 1 ) { Class.Dbconn.ExecuteSql( " update T_task set dq=1 where id= " + id); }
}
public static void foreval( string dts, string user)
{
if ( ! isdt){
dt = Class.Dbconn.dataTable( " select id,zxtime from T_task where dq=0 and userid=' " + user + " ' " );
isdt = true ;
}
for ( int i = 0 ; i < dt.Rows.Count; i ++ ){
if (dts == dt.Rows[i][ 1 ].ToString()){
Tool.task.taskeval(dt.Rows[i][ 0 ].ToString());
}
}
}
}
}