本文整理汇总了C#中Srvtools.InfoCommand.Cancel方法的典型用法代码示例。如果您正苦于以下问题:C# InfoCommand.Cancel方法的具体用法?C# InfoCommand.Cancel怎么用?C# InfoCommand.Cancel使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Srvtools.InfoCommand
的用法示例。
在下文中一共展示了InfoCommand.Cancel方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CheckManagerRight
public object[] CheckManagerRight(object[] objParam)
{
string sDB = objParam[0].ToString();
string sUserId = objParam[1].ToString();
string password = (string)GetClientInfo(ClientInfoType.Password);
if (ServerConfig.LoginObjectEnabled)//ILogin
{
if (ServerConfig.LoginObject.GetMenuRight(sUserId, password))
{
return new object[] { 0, "0" };
}
else
{
return new object[] { 0, "1" };
}
}
else
{
ClientType ct = ClientType.ctMsSql;
IDbConnection mySqlConnection = AllocateConnection(sDB, ref ct, true);
try
{
string sRet = "";
//为了区分不同的数据库 by Rei
InfoCommand myInfoCommand = new InfoCommand(ClientInfo);
myInfoCommand.CommandText = "SELECT USERID,AUTOLOGIN FROM USERS WHERE USERID = '" +
sUserId + "'";
myInfoCommand.Connection = mySqlConnection;
IDataReader aReader = myInfoCommand.ExecuteReader();
if (!aReader.Read()) // userid not found
{
sRet = "2";
}
else
{
string autologin = aReader.GetValue(1).ToString();
if (string.Compare(autologin, "s", true) == 0)//IgnoreCase
{
sRet = "0";
}
else
{
sRet = "1";
}
}
myInfoCommand.Cancel();
aReader.Close();
return new object[] { 0, sRet };
}
finally
{
ReleaseConnection(sDB, mySqlConnection, true);
}
}
}
示例2: CheckUser
public object[] CheckUser(object[] objParam)
{
string[] ss = objParam[0].ToString().Split(":".ToCharArray());
string username = "";
string useridindb = "";
try
{
string sUserId = ss[0];
string sUserPwd = ss[1];
string sDB = ss[2];
string relogin = ss[3];
//matida 2010/1/29 add
String SharePoint = String.Empty;
if (ss.Length == 5)
SharePoint = ss[4].ToLower();
if (ss.Length == 7)
SharePoint = ss[6].ToLower();
object computername = GetClientInfo(ClientInfoType.ComputerName);
string strcomputer = computername != null ? computername.ToString() : string.Empty;
if (!SrvGL.AllowLoginInOtherPC && relogin == "0" && SrvGL.isUserLogined(sUserId.ToLower()))
{
UserInfo info = SrvGL.GetUsersInfo(sUserId.ToLower());
if (!info.Contains(strcomputer))
{
return new object[] { 0, LoginResult.RequestReLogin, username, useridindb };
}
}
if (ServerConfig.LoginObjectEnabled)//ILogin
{
if (!ServerConfig.LoginObject.CheckUser(sUserId, sUserPwd))
{
return new object[] { 0, LoginResult.PasswordError, username, useridindb };
}
username = ServerConfig.LoginObject.GetUserInfo(sUserId, sUserPwd, UserInfoType.UserName).ToString();
useridindb = sUserId;
SrvGL.LogUser(sUserId.ToLower(), username, strcomputer, 1);
}
else
{
//rich modified, 根据andy的最高指示,systemtable和eepalias要分离;(如果systemtable未设置,则使用前端传过来的eepalias)
ClientType ct = ClientType.ctMsSql;
IDbConnection mySqlConnection = AllocateConnection(sDB, ref ct, true);
try
{
//为了区分不同的数据库 by Rei
InfoCommand myInfoCommand = new InfoCommand(ClientInfo);
if (ServerConfig.UserDefination)
{
myInfoCommand.CommandText = string.Format("Select {0},{1},{2},'N','S' From {3} Where {0} = '{4}'", ServerConfig.UserID
, ServerConfig.Password, ServerConfig.UserName, ServerConfig.UserTable, sUserId);
}
else
{
myInfoCommand.CommandText = "SELECT USERID,PWD,USERNAME,MSAD,AUTOLOGIN FROM USERS WHERE USERID = '" +
sUserId + "'";
}
myInfoCommand.Connection = mySqlConnection;
IDataReader aReader = myInfoCommand.ExecuteReader(CommandBehavior.CloseConnection);
if (!aReader.Read()) // userid not found
{
myInfoCommand.Cancel();
aReader.Close();
return new object[] { 0, LoginResult.UserNotFound, username, useridindb };
}
if (string.Compare(aReader.GetValue(4).ToString(), "x", true) == 0)
{
myInfoCommand.Cancel();
aReader.Close();
return new object[] { 0, LoginResult.Disabled, username, useridindb };
}
object sPwd = aReader.GetValue(1);
if (ct == ClientType.ctOleDB && sPwd.ToString() == " ")
sPwd = "";
username = aReader.GetValue(2).ToString();
useridindb = aReader.GetValue(0).ToString(); //get userid in database to avoid case problem
string msad = aReader.GetValue(3).ToString();
string domainname = ss.Length == 6 ? ss[4] : string.Empty;
string domaincheck = ss.Length == 6 ? ss[5] : string.Empty;
myInfoCommand.Cancel();
aReader.Close();
if (domainname.Length == 0)
{
if (string.Compare(msad, "Y", true) == 0)
{
ADClass.ADPath = "LDAP://" + ServerConfig.DomainPath;
ADClass.ADUser = ServerConfig.DomainUser;
ADClass.ADPassword = ServerConfig.DomainPassword;
if (!ADClass.IsUserValid(sUserId, sUserPwd))
{
return new object[] { 0, LoginResult.PasswordError, username, useridindb };
//.........这里部分代码省略.........
示例3: AutoSeqMenuID
public object AutoSeqMenuID(object[] objParam)
{
ClientType ct = ClientType.ctMsSql;
IDbConnection nwindConn = AllocateConnection(GetClientInfo(ClientInfoType.LoginDB).ToString(), ref ct, true);
try
{
string strSql = "";
//为了区分不同的数据库 by Rei
InfoCommand cmd = new InfoCommand(ClientInfo);
if (nwindConn is SqlConnection)
{
strSql = "select max(convert(int,MENUID)) from MENUTABLE where isnumeric(MENUID)=1";
}
else if (nwindConn is OracleConnection)
{
strSql = "select max(to_number(MENUID)) from MENUTABLE";
}
else if (nwindConn is OdbcConnection)
{
strSql = "select max(MENUID) from MENUTABLE";
}
else if (nwindConn is OleDbConnection)
{
strSql = "select max(convert(int,MENUID)) from MENUTABLE";
}
else if (nwindConn.GetType().Name == "MySqlConnection")
{
strSql = "select max(cast(MENUID as signed)) from MENUTABLE";
}
else if (nwindConn.GetType().Name == "IfxConnection")
{
strSql = "select max(MENUID) from MENUTABLE";
}
cmd.Connection = nwindConn;
cmd.CommandText = strSql;
IDataReader dr = cmd.ExecuteReader();
dr.Read();
string count = dr[0].ToString();
cmd.Cancel();
dr.Close();
int i = Convert.ToInt32(count) + 1;
return new object[] { 0, i };
}
finally
{
ReleaseConnection(GetClientInfo(ClientInfoType.LoginDB).ToString(), nwindConn, true);
}
}
示例4: PackageRollback
public object[] PackageRollback(object[] objParam)
{
string projectname = ((string)objParam[0]);
string filename = ((string)objParam[1]);
string dt = ((string)objParam[2]);
PackageType ptype = ((PackageType)objParam[3]);
string packagetype = "";
switch (ptype)
{
case PackageType.Client: packagetype = "C"; break;
case PackageType.Server: packagetype = "S"; break;
case PackageType.WebClient: packagetype = "W"; break;
}
ClientType ct = ClientType.ctMsSql;
//IDbConnection nwindConn = AllocateConnection(GetSystemDBName(), ref ct, false); //menuchecklog用sysDB里的
IDbConnection nwindConn = AllocateConnection(GetClientInfo(ClientInfoType.LoginDB).ToString(), ref ct, true); //取登陆后的DBAlias ——by Rei
try
{
string strsql = "";
if (nwindConn is SqlConnection)
strsql = "DELETE FROM MENUCHECKLOG WHERE ITEMTYPE ='" + projectname + "' AND [FILENAME] ='" + filename
+ "' AND FILETYPE='" + packagetype + "' AND PACKAGEDATE >'" + dt + "'";
else if (nwindConn is OdbcConnection)
strsql = "DELETE FROM MENUCHECKLOG WHERE ITEMTYPE ='" + projectname + "' AND FILENAME ='" + filename
+ "' AND FILETYPE='" + packagetype + "' AND PACKAGEDATE > to_date('" + String.Format("{0:yyyyMMddHHmmss}", Convert.ToDateTime(dt)) + "', '%Y%m%d%H%M%S')";
else if (nwindConn is OracleConnection)
strsql = "DELETE FROM MENUCHECKLOG WHERE ITEMTYPE ='" + projectname + "' AND FILENAME ='" + filename
+ "' AND FILETYPE='" + packagetype + "' AND PACKAGEDATE > to_date('" + dt + "', 'yyyy-mm-dd hh24:mi:ss')";
else if (nwindConn is OleDbConnection)
strsql = "DELETE FROM MENUCHECKLOG WHERE ITEMTYPE ='" + projectname + "' AND FILENAME ='" + filename
+ "' AND FILETYPE='" + packagetype + "' AND PACKAGEDATE >'" + dt + "'";
else if (nwindConn.GetType().Name == "MySqlConnection")
strsql = "DELETE FROM MENUCHECKLOG WHERE ITEMTYPE ='" + projectname + "' AND FILENAME ='" + filename
+ "' AND FILETYPE='" + packagetype + "' AND PACKAGEDATE > '" + dt + "'";
else if (nwindConn.GetType().Name == "IfxConnection")
strsql = "DELETE FROM MENUCHECKLOG WHERE ITEMTYPE ='" + projectname + "' AND FILENAME ='" + filename
+ "' AND FILETYPE='" + packagetype + "' AND PACKAGEDATE > to_date('" + String.Format("{0:yyyyMMddHHmmss}", Convert.ToDateTime(dt)) + "', '%Y%m%d%H%M%S')";
InfoCommand cmd = new InfoCommand(ClientInfo);
cmd.Connection = nwindConn;
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
string strBlob = "";
if (nwindConn is SqlConnection)
strBlob = "SELECT FILECONTENT, FILEDATE FROM MENUCHECKLOG WHERE [FILENAME] = '" + filename + "' AND PACKAGEDATE = '" + dt
+ "' AND ITEMTYPE ='" + projectname + "' AND FILETYPE='" + packagetype + "'";
else if (nwindConn is OdbcConnection)
strBlob = "SELECT FILECONTENT, FILEDATE FROM MENUCHECKLOG WHERE FILENAME = '" + filename + "' AND PACKAGEDATE = to_date('" + String.Format("{0:yyyyMMddHHmmss}", Convert.ToDateTime(dt)) + "', '%Y%m%d%H%M%S') "
+ " AND ITEMTYPE ='" + projectname + "' AND FILETYPE='" + packagetype + "'";
else if (nwindConn is OracleConnection)
strBlob = "SELECT FILECONTENT, FILEDATE FROM MENUCHECKLOG WHERE FILENAME = '" + filename + "' AND PACKAGEDATE = to_date('" + dt + "', 'yyyy-mm-dd hh24:mi:ss')"
+ " AND ITEMTYPE ='" + projectname + "' AND FILETYPE='" + packagetype + "'";
else if (nwindConn is OleDbConnection)
strBlob = "SELECT FILECONTENT, FILEDATE FROM MENUCHECKLOG WHERE FILENAME = '" + filename + "' AND PACKAGEDATE = '" + dt
+ "' AND ITEMTYPE ='" + projectname + "' AND FILETYPE='" + packagetype + "'";
else if (nwindConn.GetType().Name == "MySqlConnection")
strBlob = "SELECT FILECONTENT, FILEDATE FROM MENUCHECKLOG WHERE FILENAME = '" + filename + "' AND PACKAGEDATE = '" + dt + "'"
+ " AND ITEMTYPE ='" + projectname + "' AND FILETYPE='" + packagetype + "'";
else if (nwindConn.GetType().Name == "IfxConnection")
strBlob = "SELECT FILECONTENT, FILEDATE FROM MENUCHECKLOG WHERE FILENAME = '" + filename + "' AND PACKAGEDATE = to_date('" + String.Format("{0:yyyyMMddHHmmss}", Convert.ToDateTime(dt)) + "', '%Y%m%d%H%M%S') "
+ " AND ITEMTYPE ='" + projectname + "' AND FILETYPE='" + packagetype + "'";
cmd.CommandText = strBlob;
IDataReader idr = cmd.ExecuteReader();
idr.Read();
try
{
byte[] blob = new byte[idr.GetBytes(0, 0, null, 0, int.MaxValue)];
idr.GetBytes(0, 0, blob, 0, blob.Length);
DateTime dtfile = new DateTime();
try
{
dtfile = (DateTime)idr.GetValue(1); //找到记录
}
catch
{
dtfile = DateTime.MinValue;
}
cmd.Cancel();
idr.Close();
PackageService ps = new PackageService();
ps.Upload(filename, projectname, ptype, blob, dtfile);
return new object[] { 0, 0 };
}
catch (Exception e)
{
return new object[] { 0, 1, e.Message };
}
}
finally
{
ReleaseConnection(GetClientInfo(ClientInfoType.LoginDB).ToString(), nwindConn, true);
}
}
示例5: GetUserRole
//FL use Cancel
public object GetUserRole(object[] objParam)
{
ClientType ct = ClientType.ctNone;
IDbConnection nwindConn = AllocateConnection(GetClientInfo(ClientInfoType.LoginDB).ToString(), ref ct, true);
try
{
string user = (string)GetClientInfo(ClientInfoType.LoginUser);
string orgKind = (string)GetClientInfo(ClientInfoType.OrgKind);
StringBuilder role = new StringBuilder();
StringBuilder orgRole = new StringBuilder();
StringBuilder orgShare = new StringBuilder();
StringBuilder groupList = new StringBuilder();
InfoCommand cmd = new InfoCommand(ClientInfo);
cmd.Connection = nwindConn;
cmd.CommandText = String.Format("SELECT GROUPID FROM GROUPS WHERE GROUPID IN (SELECT GROUPID FROM USERGROUPS WHERE USERID='{0}') AND ISROLE='Y'"
, user);
using (IDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
if (role.Length > 0)
{
role.Append(';');
groupList.Append(',');
}
role.Append((string)reader["GROUPID"]);
groupList.Append(string.Format("'{0}'", reader["GROUPID"]));
}
cmd.Cancel();
reader.Close();
}
if (role.Length > 0)
{
orgRole.Append(role);
cmd = new InfoCommand(ClientInfo);
cmd.Connection = nwindConn;
cmd.CommandText = string.Format("Select ORG_NO From SYS_ORG Where ORG_MAN IN({0}) and ORG_KIND='{1}'", groupList, orgKind);
StringBuilder orglist = new StringBuilder();
using (IDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
if (orglist.Length > 0)
{
orglist.Append(',');
}
orglist.Append(string.Format("'{0}'", reader["ORG_NO"]));
}
cmd.Cancel();
reader.Close();
}
if (orglist.Length > 0)//找到Org_No
{
StringBuilder orgParentlist = new StringBuilder();
orgParentlist.Append(orglist);
while (true)//递归找到所有的子org
{
cmd = new InfoCommand(ClientInfo);
cmd.Connection = nwindConn;
cmd.CommandText = string.Format("Select ORG_NO,ORG_MAN From SYS_ORG Where UPPER_ORG IN ({0})", orgParentlist);
using (IDataReader reader = cmd.ExecuteReader())
{
orgParentlist = new StringBuilder();
while (reader.Read())
{
orglist.Append(',');
orglist.Append(string.Format("'{0}'", reader["ORG_NO"]));
if (orgParentlist.Length > 0)
{
orgParentlist.Append(',');
}
orgParentlist.Append(string.Format("'{0}'", reader["ORG_NO"]));
orgRole.Append(';');
orgRole.Append((string)reader["ORG_MAN"]);
}
cmd.Cancel();
reader.Close();
if (orgParentlist.Length == 0)//找到底了
{
break;
}
}
}
cmd = new InfoCommand(ClientInfo);
cmd.Connection = nwindConn;
cmd.CommandText = string.Format("Select ROLE_ID From SYS_ORGROLES WHERE ORG_NO IN ({0})", orglist);
using (IDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
orgRole.Append(';');
orgRole.Append((string)reader["ROLE_ID"]);
}
cmd.Cancel();
reader.Close();
}
orgShare.Append(orgRole);
}
//.........这里部分代码省略.........
示例6: GetUserGroup
public object GetUserGroup(object[] objParam)
{
string userid = objParam[0].ToString();
string groupid = "";
string groupname = string.Empty;
ClientType ct = ClientType.ctMsSql;
IDbConnection nwindConn = AllocateConnection(GetClientInfo(ClientInfoType.LoginDB).ToString(), ref ct, true);
try
{
string strSql = "select USERGROUPS.USERID,USERGROUPS.GROUPID,GROUPS.GROUPNAME FROM USERGROUPS LEFT JOIN GROUPS ON USERGROUPS.GROUPID=GROUPS.GROUPID where USERID ='" + userid + "'";
//为了区分不同的数据库 by Rei
InfoCommand cmd = new InfoCommand(ClientInfo);
cmd.CommandText = strSql;
cmd.Connection = nwindConn;
IDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
groupid += dr["GROUPID"].ToString() + ";";
groupname += dr["GROUPNAME"].ToString() + ";";
}
if (groupid != "")
{
groupid = groupid.Substring(0, groupid.LastIndexOf(';'));
groupname = groupname.Substring(0, groupname.LastIndexOf(';'));
}
cmd.Cancel();
dr.Close();
return new object[] { 0, groupid, groupname };
}
finally
{
ReleaseConnection(GetClientInfo(ClientInfoType.LoginDB).ToString(), nwindConn, true);
}
}
示例7: GetRoles
public object GetRoles(object[] parames)
{
ClientType ct = ClientType.ctMsSql;
IDbConnection nwindConn = AllocateConnection(GetClientInfo(ClientInfoType.LoginDB).ToString(), ref ct, true);
try
{
List<string> list = new List<string>();
String sql = "";
String connectMark = "+";
if (nwindConn is SqlConnection)
connectMark = "+";
else if (nwindConn is OdbcConnection)
connectMark = "||";
else if (nwindConn is OracleConnection)
connectMark = "||";
else if (nwindConn is OleDbConnection)
connectMark = "+";
else if (nwindConn.GetType().Name == "MySqlConnection")
connectMark = "||";
else if (nwindConn.GetType().Name == "IfxConnection")
connectMark = "||";
if (nwindConn.GetType().Name == "MySqlConnection")
sql = "select CONCAT(GROUPID,' ; ',GROUPNAME) from GROUPS where ISROLE='Y'";
else
sql = "select GROUPID " + connectMark + " ' ; ' " + connectMark + " GROUPNAME from GROUPS where ISROLE='Y'";
InfoCommand command = new InfoCommand(ClientInfo);
command.CommandText = sql;
command.Connection = nwindConn;
IDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
while (reader.Read())
{
list.Add(reader[0].ToString());
}
command.Cancel();
reader.Close();
return new object[] { 0, list.ToArray() };
}
finally
{
ReleaseConnection(GetClientInfo(ClientInfoType.LoginDB).ToString(), nwindConn, false);
}
}
示例8: GetParam
public object GetParam(object[] objParam)
{
// byte[] buffer = new byte[24];
ClientType ct = ClientType.ctMsSql;
IDbConnection nwindConn = AllocateConnection(GetClientInfo(ClientInfoType.LoginDB).ToString(), ref ct, true);
try
{
string strCaption = (string)objParam[0];
string strItemType = (string)objParam[1];
string captionlanguage = (string)objParam[2];
string strSql = "select * from MENUTABLE where MENUID = '" + strCaption + "' and ITEMTYPE = '" + strItemType + "'";
//为了区分不同的数据库 by Rei
InfoCommand cmd = new InfoCommand(ClientInfo);
cmd.CommandText = strSql;
cmd.Connection = nwindConn;
ArrayList lst = new ArrayList();
IDataReader dr = cmd.ExecuteReader();
dr.Read();
lst.Add(dr["MENUID"].ToString());
lst.Add(dr["CAPTION" + captionlanguage].ToString());
lst.Add(dr["PARENT"].ToString());
lst.Add(dr["MODULETYPE"].ToString());
lst.Add(dr["IMAGEURL"].ToString());
lst.Add(dr["PACKAGE"].ToString());
lst.Add(dr["ITEMPARAM"].ToString());
lst.Add(dr["FORM"].ToString());
lst.Add(dr["ITEMTYPE"].ToString());
lst.Add(dr["SEQ_NO"].ToString());
cmd.Cancel();
dr.Close();
string strBlob = "";
//为了区分不同的数据库 by Rei
if (nwindConn is SqlConnection)
strBlob = "select [IMAGE] from MENUTABLE where MENUID = '" + strCaption + "' and ITEMTYPE = '" + strItemType + "'";
else if (nwindConn is OracleConnection)
strBlob = "select IMAGE from MENUTABLE where MENUID = '" + strCaption + "' and ITEMTYPE = '" + strItemType + "'";
else if (nwindConn is OdbcConnection)
strBlob = "select IMAGE from MENUTABLE WHERE MENUID = '" + strCaption + "' and ITEMTYPE = '" + strItemType + "'";
else if (nwindConn is OleDbConnection)
strBlob = "select IMAGE from MENUTABLE WHERE MENUID = '" + strCaption + "' and ITEMTYPE = '" + strItemType + "'";
else if (nwindConn.GetType().Name == "MySqlConnection")
strBlob = "select IMAGE from MENUTABLE WHERE MENUID = '" + strCaption + "' and ITEMTYPE = '" + strItemType + "'";
else if (nwindConn.GetType().Name == "IfxConnection")
strBlob = "select IMAGE from MENUTABLE WHERE MENUID = '" + strCaption + "' and ITEMTYPE = '" + strItemType + "'";
InfoCommand cmd1 = new InfoCommand(ClientInfo);
cmd1.Connection = nwindConn;
cmd1.CommandText = strBlob;
IDataReader idr = cmd1.ExecuteReader();
idr.Read();
try
{
byte[] blob = new byte[idr.GetBytes(0, 0, null, 0, int.MaxValue)];
idr.GetBytes(0, 0, blob, 0, blob.Length);
cmd1.Cancel();
idr.Close();
return new object[] { 0, lst, blob };
}
catch
{
cmd1.Cancel();
idr.Close();
return new object[] { 0, lst, new byte[1] };
}
}
finally
{
ReleaseConnection(GetClientInfo(ClientInfoType.LoginDB).ToString(), nwindConn, true);
}
//nwindConn.Close();
//return new object[] { 0, lst, blob};
}
示例9: FLOvertimeList
public object[] FLOvertimeList(object[] objParam)
{
ClientType ct = ClientType.ctMsSql;
IDbConnection nwindConn = AllocateConnection(GetClientInfo(ClientInfoType.LoginDB).ToString(), ref ct, true);
try
{
//获取本人的Roles
List<string> lstRoles = new List<string>();
string currentUser = objParam[0].ToString();
string sqlCurRoles = "select GROUPID from USERGROUPS where " + (string.IsNullOrEmpty(currentUser) ? "" : "USERID = '" + currentUser + "' and ") + "GROUPID in (select GROUPID from GROUPS where ISROLE = 'Y')";
InfoCommand cmdCurRoles = new InfoCommand(ClientInfo);
cmdCurRoles.Connection = nwindConn;
cmdCurRoles.CommandText = sqlCurRoles;
IDataReader drCurRoles = cmdCurRoles.ExecuteReader();
while (drCurRoles.Read())
{
lstRoles.Add(drCurRoles["GROUPID"].ToString());
}
cmdCurRoles.Cancel();
drCurRoles.Close();
List<string> lstOrgs = new List<string>();
int level = Convert.ToInt16(objParam[1]);
for (int i = 0; i < level; i++)
{
string orgMans = "";
foreach (string man in lstRoles)
{
orgMans += "'" + man + "',";
}
if (orgMans.IndexOf(',') != -1)
orgMans = orgMans.Substring(0, orgMans.LastIndexOf(','));
string sqlOrg = string.IsNullOrEmpty(orgMans) ? "select ORG_NO from SYS_ORG where ORG_MAN IS NULL" : "select ORG_NO from SYS_ORG where ORG_MAN in (" + orgMans + ")";
InfoCommand cmdOrg = new InfoCommand(getConnectionType(nwindConn), ClientInfo);
cmdOrg.Connection = nwindConn;
cmdOrg.CommandText = sqlOrg;
IDataReader drOrg = cmdOrg.ExecuteReader();
while (drOrg.Read())
{
string org = drOrg["ORG_NO"].ToString();
if (!lstOrgs.Contains(org))
lstOrgs.Add(org);
}
cmdOrg.Cancel();
drOrg.Close();
string upperOrgs = "";
foreach (string org in lstOrgs)
{
upperOrgs += "'" + org + "',";
}
if (upperOrgs.IndexOf(',') != -1)
upperOrgs = upperOrgs.Substring(0, upperOrgs.LastIndexOf(','));
string sqlOrgManRole = string.IsNullOrEmpty(upperOrgs) ? "select ORG_MAN from SYS_ORG where UPPER_ORG IS NULL" : "select ORG_MAN from SYS_ORG where UPPER_ORG in (" + upperOrgs + ")";
InfoCommand cmdOrgManRole = new InfoCommand(getConnectionType(nwindConn), ClientInfo);
cmdOrgManRole.Connection = nwindConn;
cmdOrgManRole.CommandText = sqlOrgManRole;
IDataReader drOrgManRole = cmdOrgManRole.ExecuteReader();
while (drOrgManRole.Read())
{
string orgMan = drOrgManRole["ORG_MAN"].ToString();
if (!lstRoles.Contains(orgMan))
lstRoles.Add(orgMan);
}
cmdOrgManRole.Cancel();
drOrgManRole.Close();
}
string roles = "";
foreach (string role in lstRoles)
{
roles += "'" + role + "',";
}
if (roles.IndexOf(',') != -1)
roles = roles.Substring(0, roles.LastIndexOf(','));
bool delay = Convert.ToBoolean(objParam[4]);
//joy 2010/1/11 modify : 增加 ATTACHMENTS,MULTISTEPRETURN,PARAMETERS 欄位,因為逾時需要用到這些欄位
string sqlTodolist = "SELECT " + (delay ? "LISTID, FLOW_ID, FLOW_DESC, APPLICANT, S_USER_ID, S_STEP_ID, S_STEP_DESC, D_STEP_ID, D_STEP_DESC, EXP_TIME, URGENT_TIME, TIME_UNIT, USERNAME, FORM_NAME, NAVIGATOR_MODE, FLNAVIGATOR_MODE, PARAMETERS, SENDTO_KIND, SENDTO_ID, FLOWIMPORTANT, FLOWURGENT, STATUS, FORM_TABLE, FORM_KEYS, FORM_PRESENTATION, FORM_PRESENT_CT, REMARK, PROVIDER_NAME, VERSION, EMAIL_ADD, EMAIL_STATUS, VDSNAME, SENDBACKSTEP, LEVEL_NO, WEBFORM_NAME, UPDATE_DATE, UPDATE_TIME, FLOWPATH, PLUSAPPROVE, PLUSROLES, ATTACHMENTS, MULTISTEPRETURN, PARAMETERS" : "FLOW_DESC, TIME_UNIT, FLOWURGENT, UPDATE_DATE, UPDATE_TIME, URGENT_TIME, EXP_TIME") + " from SYS_TODOLIST where " + (string.IsNullOrEmpty(roles) ? "1=0" : ("(SENDTO_ID in (" + roles + ") and SENDTO_KIND='1') or (SENDTO_ID ='" + currentUser + "' and SENDTO_KIND='2')")) + (delay ? " ORDER BY UPDATE_DATE" : " ORDER BY FLOW_DESC");
InfoCommand cmdTodolist = new InfoCommand(getConnectionType(nwindConn), ClientInfo);
cmdTodolist.Connection = nwindConn;
cmdTodolist.CommandText = sqlTodolist;
IDataAdapter adpater = DBUtils.CreateDbDataAdapter(cmdTodolist);
DataTable allList = new DataTable();
(adpater as DbDataAdapter).Fill(allList);
if (delay)
{
DataColumn colSendToDetail = new DataColumn("SENDTO_DETAIL", typeof(string), "SENDTO_ID+'('+USERNAME+')'");
DataColumn colUpdateWholeTime = new DataColumn("UPDATE_WHOLE_TIME", typeof(string), "UPDATE_DATE + ' ' + UPDATE_TIME");
DataColumn colOverTime = new DataColumn("OVERTIME", typeof(string));
allList.Columns.AddRange(new DataColumn[] { colSendToDetail, colUpdateWholeTime, colOverTime });
}
List<DataRow> overTimeRows = new List<DataRow>();
#region find over time
foreach (DataRow row in allList.Rows)
{
string TIME_UNIT = row["TIME_UNIT"].ToString();
string FLOWURGENT = row["FLOWURGENT"].ToString();
//.........这里部分代码省略.........