/*-------------------------------------------------------------------------------------------
* 人员名单操作类
* 创建:杨斌 2011-12-13
* ----------------------------------------------------------------------------------------*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Collections.Specialized;
using GeneralLib;
using System.Collections;
using System.Timers;
//using System.Timers;
namespace SunVoteARSPPT
{
public class RosterCloumn
{
public int ColumnID { get; set; }
public int ColumnIndex { get; set; }
///
/// 名单字段显示名称
///
public string ColumnName { get; set; }
/////
///// 名单中键盘编号字段ID,现默认为名单中的第1列
/////
//public string ClolumnIDKeypadID { get; set; }
/////
///// 签到吗字段ID
/////
//public string ClolumnIDSingnInCode { get; set; }
/////
///// 反馈明细显示的姓名字段ID
/////
//public string ClolumnIDShowNameDetail { get; set; }
}
public class RosterRow
{
public int RowID { get; set; }
public int RowIndex { get; set; }
///
/// 对应名单中的各列字段值,索引从0开始
///
public string[] Cells { get; set; }
}
public class RosterList
{
///
/// 名单列
///
public TDictionary Columns { get; set; }
///
/// 名单行
///
public TDictionary Rows { get; set; }
private Dictionary VIDToRIDs = null;
///
/// 会议ID
///
public string MeetID { get; set; }
///
/// 键盘编号字段索引,无则为-1,默认为0即第一列
///
public int KeypadIdColumnIndex { get; set; }
///
/// 人员名单签到码字段索引,无则为-1
///
public int SingnInCodeColumnIndex { get; set; }
public RosterList()
{
Columns = new TDictionary();
Rows = new TDictionary();
if (MeetID == null) MeetID = "";
KeypadIdColumnIndex = 0;
SingnInCodeColumnIndex = -1;
}
///
/// 全局的人员名单。在切换PPT,导入名单时加载
/// 杨斌 2015-11-25
///
public static RosterList RosterLoad = null;
///
/// 创建 赵丽 2012-06-18
/// 记录签到码索引
///
public int SignInCodeIndex
{
get
{
int res = 0;
try
{
string sql = "Select M_SignInCodeColumn From ST_Meet Where M_ID='0'";
DataSet ds = GlobalInfo.DBOperation.GetDataSet(sql);
DataTable tb = ds.Tables[0];
if (tb.Rows.Count > 0)
{
try
{
res = (int)(tb.Rows[0]["M_SignInCodeColumn"]);
}
catch { res = 0; }
}
}
catch (Exception ex)
{
SystemLog.WriterLog(ex);
}
return res;
}
set
{
try
{
string sql = "Update ST_Meet Set M_SignInCodeColumn=" + value.ToString() + " Where M_ID='0'";
GlobalInfo.DBOperation.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
SystemLog.WriterLog(ex);
}
}
}
///
/// 投票权重字段名称
/// 创建:杨斌 2012-11-27
///
public const string RateIndexColName = "M_VoteRateColumn";
///
/// 投票权重字段索引
/// 创建:杨斌 2012-11-27
///
public int VoteRateIndex
{
get
{
GlobalInfo.DBOperation.AddTableColumnInt("ST_Meet", RateIndexColName, 0);
int res = 0;
try
{
string sql = "Select " + RateIndexColName + " From ST_Meet Where M_ID='0'";
DataSet ds = GlobalInfo.DBOperation.GetDataSet(sql);
DataTable tb = ds.Tables[0];
if (tb.Rows.Count > 0)
res = ConvertOper.Convert(tb.Rows[0][RateIndexColName].ToString()).ToInt;
}
catch (Exception ex)
{
SystemLog.WriterLog(ex);
}
return res;
}
set
{
GlobalInfo.DBOperation.AddTableColumnInt("ST_Meet", RateIndexColName, 0);
try
{
string sql = "Update ST_Meet Set " + RateIndexColName + "=" + value.ToString() + " Where M_ID='0'";
GlobalInfo.DBOperation.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
SystemLog.WriterLog(ex);
}
}
}
///
/// 是否启用名单
///
public bool RosterEnabled
{
get
{
bool res = false;
try
{
string sql = "Select M_RosterEnabled From ST_Meet Where M_ID='0'";
//2012-12-04 修改演示模式 快捷键报错的问题 赵丽
DataSet ds = GlobalInfo.DBOperation.GetDataSet(sql);
if (ds.Tables.Count > 0)//杨斌 2013-11-27
{
DataTable tb = ds.Tables[0];
if (tb.Rows.Count > 0)
res = (bool)(tb.Rows[0]["M_RosterEnabled"]);
}
}
catch (Exception ex)
{
SystemLog.WriterLog(ex);
}
return res;
}
set
{
try
{
//string sql = "Select M_RosterEnabled From ST_Meet Where M_ID='0'";
//GlobalInfo.DBOperation.OpenDataSet(sql);
//DataTable tb = GlobalInfo.DBOperation.DataSet.Tables[0];
//DataRow row=null;
//if (tb.Rows.Count > 0)
//{
// row = tb.Rows[0];
//}
//else
//{
// row = tb.NewRow();
// tb.Rows.Add(row);
//}
//row["M_RosterEnabled"] = value;
//GlobalInfo.DBOperation.UpdateDataSet();
//GlobalInfo.DBOperation.CloseDataSet();
string sql = "Update ST_Meet Set M_RosterEnabled=" + value.ToString() + " Where M_ID='0'";
GlobalInfo.DBOperation.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
SystemLog.WriterLog(ex);
}
}
}
///
/// 加载名单字段
///
public bool LoadCloumn(DBOper dbOperation)
{
bool res = false;
try
{
Columns.Clear();
string sql = "Select * From ST_RosterColumn Order By RC_Index Asc";
DataSet ds = dbOperation.GetDataSet(sql);
if (ds.Tables.Count > 0)
{
DataTable tb = ds.Tables[0];
for (int i = 0; i < tb.Rows.Count; i++)
{
RosterCloumn col = new RosterCloumn();
col.ColumnID = ConvertOper.Convert(tb.Rows[i]["RC_ID"].ToString()).ToInt;
col.ColumnIndex = i + 1;
col.ColumnName = tb.Rows[i]["RC_Name"].ToString();
Columns.Add(col.ColumnID.ToString(), col);
}
}
//杨斌 2017-03-30
Dictionary dicRUID = GetDicRUID();
if (dicRUID.Count > 0)
{
RosterCloumn col = new RosterCloumn();
col.ColumnID = -100;
col.ColumnIndex = Columns.Count + 1;
col.ColumnName = GlobalInfo.SysLanguage.LPT.ReadString("PanelSignIn", "rbtSignInModeRandom", "随机码签到");
Columns.Add(col.ColumnID.ToString(), col);
}
res = true;
}
catch (Exception ex)
{
SystemLog.WriterLog(ex);
}
return res;
}
public static Dictionary GetDicRUID()
{
TagSet tagSet = new TagSet(Globals.SunVoteARSAddIn.Application.ActivePresentation.Tags);
string uidRandom = tagSet.GetValue(TagKey.SignInUIDRandom).Value;
string[] aryRUID = uidRandom.Split('|');
Dictionary dicRUID = new Dictionary();
if (aryRUID.Length >= 0)
{
foreach (var v in aryRUID)
{
string[] ary2 = v.Split('=');
if (ary2.Length >= 2)
{
if (!dicRUID.ContainsKey(ary2[1]))
dicRUID.Add(ary2[1], ary2[0]);
}
}
}
return dicRUID;
}
public void LoadVIDToRID(DBOper dbOperation)
{
if (VIDToRIDs == null)
VIDToRIDs = new Dictionary();
VIDToRIDs.Clear();
string sql = "Select * From ST_Voter";
dbOperation.OpenDataSet(sql);
if (dbOperation.DataSet.Tables.Count < 1) return;
DataTable tb = dbOperation.DataSet.Tables[0];
for (int i = 0; i < tb.Rows.Count; i++)
{
string vid = ConvertOper.Convert(tb.Rows[i]["V_ID"].ToString()).Value;
string rosterID = ConvertOper.Convert(tb.Rows[i]["RR_ID"].ToString()).Value;
if (!VIDToRIDs.ContainsKey(vid))
VIDToRIDs.Add(vid, rosterID);
}
dbOperation.CloseDataSet();
}
public RosterRow GetRowByVoterID(string vid)
{
RosterRow res = null;
if (VIDToRIDs.ContainsKey(vid))
{
string rosterID = VIDToRIDs[vid];
if (Rows.Contains(rosterID))
res = Rows[rosterID];
}
return res;
}
public bool LoadRow(DBOper dbOperation)
{
bool res = false;
try
{
Rows.Clear();
string sql = "Select * From ST_RosterRow Order By RR_Index ASC";
DataSet ds = dbOperation.GetDataSet(sql);
DataTable tb = ds.Tables[0];
for (int i = 0; i < tb.Rows.Count; i++)
{
RosterRow row = new RosterRow();
row.RowID = ConvertOper.Convert(tb.Rows[i]["RR_ID"].ToString()).ToInt;
row.RowIndex = i + 1;
row.Cells = new string[Columns.Count];
Rows.Add(row.RowID.ToString(), row);
}
LoadVIDToRID(dbOperation);
res = true;
}
catch (Exception ex)
{
SystemLog.WriterLog(ex);
}
return res;
}
private Dictionary DicKeyToRow = new Dictionary();
///
/// 获取键盘编号对应的名单行
/// 杨斌 2015-04-21
///
///
///
public RosterRow GetRowByKeyId(string keyId)
{
RosterRow res = null;
if (DicKeyToRow.ContainsKey(keyId))
res = DicKeyToRow[keyId];
return res;
}
public bool LoadValue(DBOper dbOperation)
{
bool res = false;
try
{
string sql = "SELECT ST_RosterValue.RR_ID, ST_RosterValue.RC_ID, ST_RosterRow.RR_Index, ST_RosterColumn.RC_Index, ST_RosterValue.RV_Text" +
" FROM ST_RosterColumn INNER JOIN (ST_RosterRow INNER JOIN ST_RosterValue ON ST_RosterRow.RR_ID = ST_RosterValue.RR_ID)" +
" ON ST_RosterColumn.RC_ID = ST_RosterValue.RC_ID";
DataSet ds = dbOperation.GetDataSet(sql);
DataTable tb = ds.Tables[0];
for (int i = 0; i < tb.Rows.Count; i++)
{
string rowId = tb.Rows[i]["RR_ID"].ToString();
string colId = tb.Rows[i]["RC_ID"].ToString();
int col = Columns[colId].ColumnIndex - 1;
//Rows[rowId].Cells = new string[Columns.Count];
Rows[rowId].Cells[col] = tb.Rows[i]["RV_Text"].ToString();
}
//杨斌 2017-03-30
int lastCol = Columns.Count - 1;
if (Columns[lastCol].ColumnID == -100)
{
Dictionary dicRUID = GetDicRUID();
for (int i = 0; i < Rows.Count; i++)
{
string rid = Rows[i].RowIndex + "";
if (dicRUID.ContainsKey(rid))
Rows[i].Cells[lastCol] = dicRUID[rid];
}
}
//杨斌 2014-11-05
if (RosterEnabled)
{
if (Columns.Count > 1)
GlobalInfo.response.ShowNameCol = this.Columns[1].ColumnName;
else if (Columns.Count > 0)
GlobalInfo.response.ShowNameCol = this.Columns[0].ColumnName;
}
//杨斌 2015-04-21
DicKeyToRow.Clear();
for (int i = 0; i < Rows.Count; i++)
{
string keyId = Rows[i].Cells[0];
if (!string.IsNullOrEmpty(keyId))//杨斌 2016-03-31
{
if ((keyId.Length > 0) && (!DicKeyToRow.ContainsKey(keyId)))
DicKeyToRow.Add(keyId, Rows[i]);
}
else
{
string a = keyId;
}
}
res = true;
}
catch (Exception ex)
{
SystemLog.WriterLog(ex);
}
return res;
}
///
/// 加载人员名单
///
///
public bool LoadRoster()
{
bool res = false;
//System.Diagnostics.Stopwatch t = System.Diagnostics.Stopwatch.StartNew();
res = LoadCloumn(GlobalInfo.DBOperation);
res = (res && LoadRow(GlobalInfo.DBOperation));
res = (res && LoadValue(GlobalInfo.DBOperation));
//System.Windows.Forms.MessageBox.Show("LoadRoster" + t.ElapsedMilliseconds);
return res;
}
///
/// 获取名单二位数组,含列标题
///
///
public string[,] GetArrayTable()
{
string[,] aryTable = null;
int rowCount = 1 + Rows.Count;
int colCount = Columns.Count;
if ((rowCount > 0) && (colCount > 0))
{
aryTable = new string[rowCount, colCount];
for (int col = 0; col < colCount; col++)
{
aryTable[0, col] = Columns[col].ColumnName;
}
for (int row = 1; row < rowCount; row++)
{
for (int col = 0; col < colCount; col++)
{
aryTable[row, col] = Rows[row - 1].Cells[col];
}
}
}
return aryTable;
}
///
/// 保存名单
///
/// 名单二位数组,含列标题
///
public bool SaveRoster(string[,] aryTable)
{
return SaveRoster(aryTable, true);
}
///
/// 保存名单。杨斌 2015-03-31
///
///
///
///
///
public bool SaveRoster(string[,] aryTable, bool beSaveColumns, DBOper dbOperation, bool beLoadData = true)
{
bool res = false;
try
{
//开始事务
dbOperation.BeginTrans();
TDictionary KeyToRowID = new TDictionary();
string sql = "";
//删除列记录
if (beSaveColumns)//杨斌 2014-04-11
{
sql = "Delete * From ST_RosterColumn";
dbOperation.ExecuteNonQuery(sql);
}
//删除行记录
sql = "Delete * From ST_RosterRow";
dbOperation.ExecuteNonQuery(sql);
//添加列记录
if (beSaveColumns)//杨斌 2014-04-11
{
sql = "Select * From ST_RosterColumn";
dbOperation.OpenDataSet(sql);
for (int i = 0; i < aryTable.GetLength(1); i++)
{
DataRow row = dbOperation.DataSet.Tables[0].NewRow();
row["RC_Index"] = i + 1;
row["RC_Name"] = aryTable[0, i];
dbOperation.DataSet.Tables[0].Rows.Add(row);
}
dbOperation.UpdateDataSet();
dbOperation.CloseDataSet();
}
//添加行记录
sql = "Select * From ST_RosterRow";
dbOperation.OpenDataSet(sql);
for (int i = 1; i < aryTable.GetLength(0); i++)
{
DataRow row = dbOperation.DataSet.Tables[0].NewRow();
row["RR_Index"] = i + 1;
dbOperation.DataSet.Tables[0].Rows.Add(row);
}
dbOperation.UpdateDataSet();
dbOperation.CloseDataSet();
//更新列记录
LoadCloumn(dbOperation);
//更新行记录
LoadRow(dbOperation);
//添加值记录
sql = "Select * From ST_RosterValue";
dbOperation.OpenDataSet(sql);
int lastCol = Columns.Count - 1;
int colDel = 0;
if (Columns[lastCol].ColumnID == -100)
colDel = 1;
for (int i = 0; i < Rows.Count; i++)
{
for (int n = 0; n < Columns.Count - colDel; n++)
{
DataRow row = dbOperation.DataSet.Tables[0].NewRow();
row["RR_ID"] = Rows[i].RowID;
row["RC_ID"] = Columns[n].ColumnID;
row["RV_Text"] = aryTable[i + 1, n];
dbOperation.DataSet.Tables[0].Rows.Add(row);
if (Columns[n].ColumnIndex == 1)
{
string keyIds = row["RV_Text"].ToString();
int rowId = ConvertOper.Convert(row["RR_ID"].ToString()).ToInt;
if (ConvertOper.Convert(keyIds).ToInt > 0)
{
if (!KeyToRowID.Contains(keyIds))
KeyToRowID.Add(keyIds, rowId);
}
}
}
}
dbOperation.UpdateDataSet();
dbOperation.CloseDataSet();
//更新关联名单的ID
sql = "Select * From ST_Voter";
dbOperation.OpenDataSet(sql);
for (int i = 0; i < dbOperation.DataSet.Tables[0].Rows.Count; i++)
{
DataRow row = dbOperation.DataSet.Tables[0].Rows[i];
string keyIds = row["V_KeypadID"].ToString();
if (KeyToRowID.Contains(keyIds))
{
row["RR_ID"] = KeyToRowID[keyIds];
}
}
dbOperation.UpdateDataSet();
dbOperation.CloseDataSet();
//提交事务
dbOperation.CommitTrans();
if (beLoadData)//系统库不需重复加载
{
//更新值记录
LoadValue(dbOperation);
}
res = true;
}
catch (Exception ex)
{
SystemLog.WriterLog(ex);
dbOperation.RollbackTrans();
}
return res;
}
///
/// 保存名单
///
/// 名单二位数组,含列标题
/// 是否更新列
///
public bool SaveRoster(string[,] aryTable, bool beSaveColumns)
{
//杨斌 2015-03-31
return SaveRoster(aryTable, beSaveColumns, GlobalInfo.DBOperation);
/*
bool res = false;
try
{
//开始事务
GlobalInfo.DBOperation.BeginTrans();
TDictionary KeyToRowID = new TDictionary();
string sql = "";
//删除列记录
if (beSaveColumns)//杨斌 2014-04-11
{
sql = "Delete * From ST_RosterColumn";
GlobalInfo.DBOperation.ExecuteNonQuery(sql);
}
//删除行记录
sql = "Delete * From ST_RosterRow";
GlobalInfo.DBOperation.ExecuteNonQuery(sql);
//添加列记录
if (beSaveColumns)//杨斌 2014-04-11
{
sql = "Select * From ST_RosterColumn";
GlobalInfo.DBOperation.OpenDataSet(sql);
for (int i = 0; i < aryTable.GetLength(1); i++)
{
DataRow row = GlobalInfo.DBOperation.DataSet.Tables[0].NewRow();
row["RC_Index"] = i + 1;
row["RC_Name"] = aryTable[0, i];
GlobalInfo.DBOperation.DataSet.Tables[0].Rows.Add(row);
}
GlobalInfo.DBOperation.UpdateDataSet();
GlobalInfo.DBOperation.CloseDataSet();
}
//添加行记录
sql = "Select * From ST_RosterRow";
GlobalInfo.DBOperation.OpenDataSet(sql);
for (int i = 1; i < aryTable.GetLength(0); i++)
{
DataRow row = GlobalInfo.DBOperation.DataSet.Tables[0].NewRow();
row["RR_Index"] = i + 1;
GlobalInfo.DBOperation.DataSet.Tables[0].Rows.Add(row);
}
GlobalInfo.DBOperation.UpdateDataSet();
GlobalInfo.DBOperation.CloseDataSet();
//更新列记录
LoadCloumn();
//更新行记录
LoadRow();
//添加值记录
sql = "Select * From ST_RosterValue";
GlobalInfo.DBOperation.OpenDataSet(sql);
for (int i = 0; i < Rows.Count; i++)
{
for (int n = 0; n < Columns.Count; n++)
{
DataRow row = GlobalInfo.DBOperation.DataSet.Tables[0].NewRow();
row["RR_ID"] = Rows[i].RowID;
row["RC_ID"] = Columns[n].ColumnID;
row["RV_Text"] = aryTable[i + 1, n];
GlobalInfo.DBOperation.DataSet.Tables[0].Rows.Add(row);
if (Columns[n].ColumnIndex == 1)
{
string keyIds = row["RV_Text"].ToString();
int rowId = ConvertOper.Convert(row["RR_ID"].ToString()).ToInt;
if (ConvertOper.Convert(keyIds).ToInt > 0)
{
if (!KeyToRowID.Contains(keyIds))
KeyToRowID.Add(keyIds, rowId);
}
}
}
}
GlobalInfo.DBOperation.UpdateDataSet();
GlobalInfo.DBOperation.CloseDataSet();
//更新关联名单的ID
sql = "Select * From ST_Voter";
GlobalInfo.DBOperation.OpenDataSet(sql);
for (int i = 0; i < GlobalInfo.DBOperation.DataSet.Tables[0].Rows.Count; i++)
{
DataRow row = GlobalInfo.DBOperation.DataSet.Tables[0].Rows[i];
string keyIds = row["V_KeypadID"].ToString();
if (KeyToRowID.Contains(keyIds))
{
row["RR_ID"] = KeyToRowID[keyIds];
}
}
GlobalInfo.DBOperation.UpdateDataSet();
GlobalInfo.DBOperation.CloseDataSet();
//提交事务
GlobalInfo.DBOperation.CommitTrans();
//更新值记录
LoadValue();
res = true;
}
catch (Exception ex)
{
SystemLog.WriterLog(ex);
GlobalInfo.DBOperation.RollbackTrans();
}
return res;
//**/
}
Timer TmrSaveRosterMeet = null;
bool IsRunTmrSaveRosterMeet = false;
private void TmrSaveRosterMeet_Elapsed(object sender, ElapsedEventArgs e)
{
if (IsRunTmrSaveRosterMeet)
return;
if (VoteServer.DicRosterMeet.Count < 1)
return;
IsRunTmrSaveRosterMeet = true;
//string meetName = DicRosterMeet.Keys.ToList()[0];
//List> lstTable = DicRosterMeet[meetName];
//string meetNo = lstTable[0][0];
//lstTable.RemoveAt(0);
//DicRosterMeet.Remove(meetName);
//RosterAddMeetSave(lstTable, meetNo, meetName);
SaveRosterMeet();
IsRunTmrSaveRosterMeet = false;
}
///
/// 追加分会场名单。杨斌 2017-12-11
///
public void RosterAddMeet(List> lstTable, string meetNo, string meetName)
{
if (VoteServer.DicRosterMeet.ContainsKey(meetName))
VoteServer.DicRosterMeet[meetName] = lstTable;
else
VoteServer.DicRosterMeet.Add(meetName, lstTable);
VoteServer.DicRosterMeet[meetName].Insert(0, new List { meetNo, meetName });
//if (TmrSaveRosterMeet == null)
//{
// TmrSaveRosterMeet = new Timer();
// TmrSaveRosterMeet.Elapsed += TmrSaveRosterMeet_Elapsed;
// TmrSaveRosterMeet.Interval = 10;
// TmrSaveRosterMeet.AutoReset = false;
//}
//TmrSaveRosterMeet.Enabled = true;
}
public bool SaveRosterMeet()
{
bool res = false;
DBOper dbOperation = GlobalInfo.DBOperation;
try
{
int rowCount = 0;
int colCount = Columns.Count;
foreach (var v in VoteServer.DicRosterMeet)
{
int rowCountA = v.Value.Count - 2;
rowCount += rowCountA;
}
rowCount++;
string[,] aryTable = new string[rowCount, colCount];
for (int col = 0; col < colCount; col++)
aryTable[0, col] = Columns[col].ColumnName;
int row = 1;
foreach (var v in VoteServer.DicRosterMeet)
{
string meetNo = v.Value[0][0];
string meetName = v.Value[0][1];
for (int i = 2; i < v.Value.Count; i++)
{
for (int col = 0; col < colCount; col++)
{
if (col == 0)
aryTable[row, col] = meetNo + "F" + v.Value[i][0];
else if (col == 1)
aryTable[row, col] = meetName;
else if (v.Value[i].Count >= col)
aryTable[row, col] = v.Value[i][col - 1];
}
row++;
}
}
res = SaveRoster(aryTable, false, dbOperation, true);
}
catch (Exception ex)
{
SystemLog.WriterLog(ex);
}
return res;
}
public bool RosterAddMeetSave(List> lstTable, string meetNo, string meetName)
{
bool res = false;
DBOper dbOperation = GlobalInfo.DBOperation;
try
{
//开始事务
dbOperation.BeginTrans();
TDictionary KeyToRowID = new TDictionary();
string sql = "";
int exCount = 0;
//查询会场名对应列ID
int RC_ID = -1;
sql = "Select RC_ID From ST_RosterColumn Where RC_Index=2";
dbOperation.OpenDataSet(sql);
if (dbOperation.DataSet.Tables.Count > 0)
{
if (dbOperation.DataSet.Tables[0].Rows.Count > 0)
RC_ID = (int)dbOperation.DataSet.Tables[0].Rows[0]["RC_ID"];
}
dbOperation.CloseDataSet();
//删除分会场名单
if (RC_ID != -1)
{
//删除名单值
sql = "DELETE * FROM ST_RosterValue WHERE((ST_RosterValue.RC_ID = " + RC_ID + ") And(ST_RosterValue.RV_Text = '" + meetName + "'))";
exCount = dbOperation.ExecuteNonQuery(sql);
//删除名单行
sql = "DELETE * FROM ST_RosterRow WHERE RR_ID In(SELECT RR_ID FROM ST_RosterValue WHERE((ST_RosterValue.RC_ID = " + RC_ID + ") And(ST_RosterValue.RV_Text = '" + meetName + "')))";
exCount = dbOperation.ExecuteNonQuery(sql);
}
//添加行记录
int countRow = 0;
sql = "Select * From ST_RosterRow";
dbOperation.OpenDataSet(sql);
if (dbOperation.DataSet.Tables.Count > 0)
{
DataTable dataTable = dbOperation.DataSet.Tables[0];
countRow = dataTable.Rows.Count;
for (int i = 1; i < lstTable.Count; i++)//索引0是列标题,数据从索引1开始
{
DataRow row = dbOperation.DataSet.Tables[0].NewRow();
row["RR_Index"] = i + 1;
dbOperation.DataSet.Tables[0].Rows.Add(row);
int rr_id = (int)row["RR_ID"];
}
}
dbOperation.UpdateDataSet();
dbOperation.CloseDataSet();
//更新列记录
LoadCloumn(dbOperation);
//更新行记录
LoadRow(dbOperation);
//添加纪录
sql = "SELECT ST_RosterRow.RR_ID, ST_RosterRow.RR_Index, ST_RosterValue.RC_ID, ST_RosterValue.RV_Text FROM ST_RosterRow INNER JOIN ST_RosterValue ON ST_RosterRow.RR_ID = ST_RosterValue.RR_ID";
dbOperation.OpenDataSet(sql);
if (dbOperation.DataSet.Tables.Count > 0)
{
DataTable dataTable = dbOperation.DataSet.Tables[0];
int rowNo = dataTable.Rows.Count;
for (int i = 1; i < lstTable.Count; i++)//索引0是列标题,数据从索引1开始
{
rowNo++;
List lsRow = lstTable[i];
for (int n = 0; n < Columns.Count; n++)
{
if (lsRow.Count >= n)
{
DataRow row = dataTable.NewRow();
row["RR_Index"] = rowNo;
row["RC_ID"] = Columns[n].ColumnID;
if (n == 0)
{
row["RV_Text"] = meetNo + "F" + lsRow[0];
}
else if (n == 1)
{
row["RV_Text"] = meetName;
}
else
{
row["RV_Text"] = lsRow[n - 1];
}
dataTable.Rows.Add(row);
}
}
}
}
dbOperation.UpdateDataSet();
dbOperation.CloseDataSet();
////添加值记录
//sql = "Select * From ST_RosterValue";
//dbOperation.OpenDataSet(sql);
//int lastCol = Columns.Count - 1;
//int colDel = 0;
//if (Columns[lastCol].ColumnID == -100)
// colDel = 1;
//for (int i = 0; i < Rows.Count; i++)
//{
// for (int n = 0; n < Columns.Count - colDel; n++)
// {
// DataRow row = dbOperation.DataSet.Tables[0].NewRow();
// row["RR_ID"] = Rows[i].RowID;
// row["RC_ID"] = Columns[n].ColumnID;
// row["RV_Text"] = aryTable[i + 1, n];
// dbOperation.DataSet.Tables[0].Rows.Add(row);
// if (Columns[n].ColumnIndex == 1)
// {
// string keyIds = row["RV_Text"].ToString();
// int rowId = ConvertOper.Convert(row["RR_ID"].ToString()).ToInt;
// if (ConvertOper.Convert(keyIds).ToInt > 0)
// {
// if (!KeyToRowID.Contains(keyIds))
// KeyToRowID.Add(keyIds, rowId);
// }
// }
// }
//}
//dbOperation.UpdateDataSet();
//dbOperation.CloseDataSet();
//更新关联名单的ID
sql = "Select * From ST_Voter";
dbOperation.OpenDataSet(sql);
for (int i = 0; i < dbOperation.DataSet.Tables[0].Rows.Count; i++)
{
DataRow row = dbOperation.DataSet.Tables[0].Rows[i];
string keyIds = row["V_KeypadID"].ToString();
if (KeyToRowID.Contains(keyIds))
{
row["RR_ID"] = KeyToRowID[keyIds];
}
}
dbOperation.UpdateDataSet();
dbOperation.CloseDataSet();
//提交事务
dbOperation.CommitTrans();
//更新值记录
LoadValue(dbOperation);
res = true;
}
catch (Exception ex)
{
SystemLog.WriterLog(ex);
dbOperation.RollbackTrans();
}
return res;
//*/
}
///
/// 根据键盘ID、列名称查找对应列值
/// 杨斌 2013-12-23
///
///
///
///
public static string GetRushAnswerShow(string columnName, string keyID)
{
string result = "";
if (string.IsNullOrEmpty(columnName)) return result;
if (!GlobalInfo.response.EnableList) return result;
try
{
string keyColName = "";
DataSet ds = new DataSet();
string sql = "SELECT ST_RosterColumn.RC_Name" +
" FROM ST_RosterColumn" +
" WHERE (((ST_RosterColumn.RC_Index)=1))";
ds = GlobalInfo.DBOperation.GetDataSet(sql);
if (ds != null && ds.Tables.Count > 0)
{
DataTable t = ds.Tables[0];
if (t.Rows.Count > 0)
keyColName = t.Rows[0][0].ToString();
}
if (keyColName.Length > 0)
{
sql = "SELECT V_VoterList2." + columnName +
" FROM V_VoterList2" +
" WHERE (((V_VoterList2." + keyColName + ")='" + keyID + "'))";
ds = GlobalInfo.DBOperation.GetDataSet(sql);
if (ds != null && ds.Tables.Count > 0)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
result = dr[0].ToString();
}
}
}
}
catch (Exception ex)
{
SystemLog.WriterLog(ex, true);
}
return result;
}
///
/// 获取字段名称索引
/// 杨斌 2015-11-25
///
///
///
public static int GetRosterColumIndex(string colName)
{
int colIndex = -1;
try
{
RosterList Roster = RosterList.RosterLoad;
if (Roster != null)
{
for (int i = 0; i < Roster.Columns.Count; i++)
{
if (Roster.Columns[i].ColumnName == colName)
{
colIndex = i;
break;
}
}
}
}
catch (Exception ex)
{
SystemLog.WriterLog(ex, true);
}
return colIndex;
}
}
}