using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using Microsoft.Office.Interop.PowerPoint; using GeneralLib; namespace SunVoteARSPPT { public partial class PanelSignIn : UserControl, IPanel { TagSet mTagSet = null; public TagSet TagSet { get { return mTagSet; } set { mTagSet = value; ucKeypadPara.TagSet = value; ucResponsePara.TagSet = value;//杨斌 2015-04-10 } } public PanelSignIn() { InitializeComponent(); FrmSystemSet.LanguageSetEvent += new FrmSystemSet.LanguageSetEventHander(FrmSystemSet_LanguageSetEvent); FrmVoteBar.PanelEnabledEvent += new FrmVoteBar.PanelEnabledEventHander(FrmVoteBar_PanelEnabledEvent); //设置控件大小 //杨斌 2015-04-10 ucResponsePara.ShowSet(false, false); ucKeypadPara.Top = ucResponsePara.Bottom + 6; this.Height = ucKeypadPara.Bottom; GlobalInfo.SysLanguage.SetLanguage(this.Name, this); //杨斌 2012-06-11 switch (GlobalInfo.OEMLogo) { case OEMLogos.oem3eAnalyzer: ucKeypadPara.Visible = false; if (ucKeypadPara.cboSubmitMode.SelectedIndex != 0) ucKeypadPara.cboSubmitMode.SelectedIndex = 0; this.Height = gbxSignIn.Bottom; break; case OEMLogos.SunVote: default: break; } } private void ResizePanel() { ucKeypadPara.Height = 0; ucKeypadPara.Visible = false; //ucKeypadPara.cboOptionMode.SelectedIndex = -1; //ucKeypadPara.cboOptionMode.Enabled = false; //ucKeypadPara.cboOptionMode.Visible = false; //ucKeypadPara.lblOptionMode.Visible = false; //ucKeypadPara.gbxKeypadSet.Height = ucKeypadPara.cboModifyMode.Height + 30; //this.Height = ucKeypadPara.Bottom; //杨斌 2017-03-30 lblFieldSignInCode.Visible = false; if (cboSignInMode.SelectedIndex == 1) { pnlM30.Visible = false; cboFieldSignInCode.Visible = true; btnClearSignInData.Visible = true; gbxSignIn.Height = btnClearSignInData.Bottom + 12; } else if (cboSignInMode.SelectedIndex == 2) { pnlM30.Visible = true; cboFieldSignInCode.Visible = false; btnClearSignInData.Visible = false; pnlM30.Top = cboFieldSignInCode.Top; gbxSignIn.Height = pnlM30.Bottom + 3; } else { pnlM30.Visible = false; cboFieldSignInCode.Visible = false; btnClearSignInData.Visible = false; gbxSignIn.Height = cboSignInMode.Bottom + 12; } this.Height = gbxSignIn.Bottom; Globals.SunVoteARSAddIn.PPTEdit.Panel.SetUcChartPos();//杨斌 2017-03-30 } void FrmVoteBar_PanelEnabledEvent(bool enabled) { this.Enabled = enabled; } void FrmSystemSet_LanguageSetEvent() { GlobalInfo.SysLanguage.SetLanguage(this.Name, this); //杨斌 2012-10-09 lblSignInOk.Text = GlobalInfo.SysLanguage.LPT.ReadString("PPTOper", "SignIn", "已签到"); lblSignInNot.Text = GlobalInfo.SysLanguage.LPT.ReadString("PPTOper", "UnSignIn", "未签到"); } bool IsLoad = false; /// /// 加载参数面板数据 /// public void LoadData() { IsLoad = true; //杨斌 2014-10-27 cboFieldSignInCode.Items.Clear(); RosterList rost = new RosterList(); //杨斌 2015-01-15 if (rost.RosterEnabled) cboFieldSignInCode.Items.Add(GlobalInfo.SysLanguage.LPT.ReadString("PanelSignIn", "SetSignInCode", "请选择UID有效字段")); else cboFieldSignInCode.Items.Add(GlobalInfo.SysLanguage.LPT.ReadString("PanelSignIn", "SetRoster", "未设定名单")); if (rost.RosterEnabled) { rost.LoadCloumn(GlobalInfo.DBOperation); for (int i = 1; i < rost.Columns.Count; i++) { cboFieldSignInCode.Items.Add(rost.Columns[i].ColumnName); } } ComboBoxOper.SetComboText(cboFieldSignInCode, TagSet.GetValue(TagKey.SignIn_CodeField).Value); if (cboFieldSignInCode.SelectedIndex < 0)//杨斌 2015-01-15 cboFieldSignInCode.SelectedIndex = 0; ucResponsePara.LoadData();//杨斌 2015-04-10 ucKeypadPara.LoadData(); //杨斌 2017-03-30 cboSignInMode.Items.Clear(); cboSignInMode.Items.Add(GlobalInfo.SysLanguage.LPT.ReadString("PanelSignIn", "rbtSignInModePress", "按键签到")); cboSignInMode.Items.Add(GlobalInfo.SysLanguage.LPT.ReadString("PanelSignIn", "rbtSignInModeCode", "签到码签到")); //if (GlobalInfo.OEMLogo == OEMLogos.SunVote)//杨斌 2017-06-06 cboSignInMode.Items.Add(GlobalInfo.SysLanguage.LPT.ReadString("PanelSignIn", "rbtSignInModeRandom", "随机码签到")); int signMode = TagSet.LoadValue(TagKey.SignIn_Mode, 0).ToInt; if ((signMode >= 0) && (signMode < cboSignInMode.Items.Count)) cboSignInMode.SelectedIndex = signMode; else cboSignInMode.SelectedIndex = 0; SetSignInCodeEnabled();//杨斌 2014-10-27 //杨斌 2012-10-09 txtSignInOk.Text = TagSet.LoadValue(TagKey.SingIn_TextOK, "").Value; txtSignInNot.Text = TagSet.LoadValue(TagKey.SingIn_TextNot, "").Value; //杨斌 2017-02-17 cboNumOnePage.SelectedIndex = TagSet.GetValue(TagKey.SignIn_NumOnePage).ToInt; numAutoPageTime.Value = TagSet.GetValue(TagKey.SignIn_AutoPageTime).ToInt; ResizePanel(); IsLoad = false; } /// /// 设置签到码签到是否启用 /// 杨斌 2017-03-30 /// private void SetSignInCodeEnabled() { bool enabled = cboSignInMode.SelectedIndex > 0; lblFieldSignInCode.Enabled = enabled; //杨斌 2017-03-31 cboFieldSignInCode.Enabled = enabled && (SystemConfig.KeypadType != "M30"); btnClearSignInData.Enabled = (cboFieldSignInCode.SelectedIndex > 0) && (SystemConfig.KeypadType != "M30"); //杨斌 2017-03-31 pnlM30.Enabled = (SystemConfig.KeypadType == "M30"); } private void PanelSignIn_Load(object sender, EventArgs e) { //杨斌 2012-10-09 FrmSystemSet_LanguageSetEvent(); } /// /// 创建:杨斌 2012-10-09 /// private void txtSignInOk_TextChanged(object sender, EventArgs e) { TagSet.SetValue(TagKey.SingIn_TextOK, txtSignInOk.Text); if (!Globals.SunVoteARSAddIn.PPTEdit.TagSet.ReadOnlyPPT) { Globals.SunVoteARSAddIn.PPTEdit.InitChart(true, Globals.SunVoteARSAddIn.PPTEdit.SlideEdit); } } /// /// 创建:杨斌 2012-10-09 /// private void txtSignInNot_TextChanged(object sender, EventArgs e) { TagSet.SetValue(TagKey.SingIn_TextNot, txtSignInNot.Text); if (!Globals.SunVoteARSAddIn.PPTEdit.TagSet.ReadOnlyPPT) { Globals.SunVoteARSAddIn.PPTEdit.InitChart(true, Globals.SunVoteARSAddIn.PPTEdit.SlideEdit); } } /// /// 签到码字段。杨斌 2014-10-27 /// /// /// private void cboFieldSignInCode_SelectedIndexChanged(object sender, EventArgs e) { //杨斌 2015-01-15 if (cboFieldSignInCode.SelectedIndex > 0) TagSet.SetValue(TagKey.SignIn_CodeField, cboFieldSignInCode.Text); else TagSet.SetValue(TagKey.SignIn_CodeField, ""); btnClearSignInData.Enabled = cboFieldSignInCode.SelectedIndex > 0; //pnlM30.Enabled = (chkUID.Checked && (cboFieldSignInCode.SelectedIndex > 0));//杨斌 2017-02-17 } //杨斌 2017-03-30 private void cboSignInMode_SelectedIndexChanged(object sender, EventArgs e) { ResizePanel(); if (IsLoad) return; TagSet.SetValue(TagKey.SignIn_Mode, cboSignInMode.SelectedIndex >= 0 ? cboSignInMode.SelectedIndex : 0); SetSignInCodeEnabled(); } private void btnClearSignInData_Click(object sender, EventArgs e) { string msg = GlobalInfo.SysLanguage.LPT.ReadString("PanelSignIn", "ClearSignInCode", "此操作会清空现有名单中与反馈人员信息已绑定的键盘ID或SN,请确认是否要继续?"); if (MessageBox.Show(msg, btnClearSignInData.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) != DialogResult.Yes) return; ClearSignInCodeData();//杨斌 2017-03-30 } public static void ClearSignInCodeData() { RosterList rost = new RosterList(); rost.LoadCloumn(GlobalInfo.DBOperation); if (rost.Columns.Count > 0) { int colID = rost.Columns[0].ColumnID; string sql = "Update ST_RosterValue Set RV_Text='' Where RC_ID=" + colID; GlobalInfo.DBOperation.ExecuteNonQuery(sql); RosterList.RosterLoad.LoadRoster();//杨斌 2017-03-02 } } private void pnlM30_Resize(object sender, EventArgs e) { int pos0 = 3; int pos = gbxSignIn.ClientSize.Width / 2; int w = pos - 5; lblNumOnePage.Left = pos0; lblAutoPageTime.Left = pos0; cboNumOnePage.Left = pos; cboNumOnePage.Width = w; numAutoPageTime.Left = pos; numAutoPageTime.Width = w; } //杨斌 2017-02-17 private void cboNumOnePage_SelectedIndexChanged(object sender, EventArgs e) { TagSet.SetValue(TagKey.SignIn_NumOnePage, cboNumOnePage.SelectedIndex > 0 ? cboNumOnePage.SelectedIndex : 0); } //杨斌 2017-02-17 private void numAutoPageTime_ValueChanged(object sender, EventArgs e) { TagSet.SetValue(TagKey.SignIn_AutoPageTime, (int)numAutoPageTime.Value); } private void CreateUID(bool isRnd) { try { if (RosterList.RosterLoad == null) { RosterList.RosterLoad = new RosterList(); RosterList.RosterLoad.LoadRoster(); } if (RosterList.RosterLoad.Rows.Count < 1) return; int rowCount = RosterList.RosterLoad.Rows.Count; if (rowCount > 125) rowCount = 125; List lsUID = new List(); string[] a = new string[3]; for (int i = 1; i <= 5; i++) { a[0] = i + ""; for (int j = 1; j <= 5; j++) { a[1] = j + ""; for (int k = 1; k <= 5; k++) { a[2] = (char)(k + 64) + ""; lsUID.Add(string.Join("", a)); } } } string[] aryUID = new string[rowCount]; string[] aryUIDR = new string[rowCount]; lsUID.CopyTo(0, aryUID, 0, rowCount); if (isRnd) { List ls = aryUID.ToList(); for (int i = 0; i < rowCount; i++) { Random r = new Random(); int n = r.Next(0, ls.Count); aryUIDR[i] = ls[n]; ls.RemoveAt(n); System.Windows.Forms.Application.DoEvents(); } aryUID = aryUIDR; } //不采用设置列方法,保存关联数据到ppt,在名单中追加到最后显示。杨斌 2017-03-30 bool beSetRosterCol = false; if (beSetRosterCol) { string[,] ary = new string[RosterList.RosterLoad.Rows.Count + 1, RosterList.RosterLoad.Columns.Count]; string uid = TagSet.GetValue(TagKey.SignIn_CodeField).Value; int col = 0; for (int c = 1; c < RosterList.RosterLoad.Columns.Count; c++) { if (RosterList.RosterLoad.Columns[c].ColumnName == uid) { col = c; break; } } if (col < 1) return; for (int c = 0; c < RosterList.RosterLoad.Columns.Count; c++) { ary[0, c] = RosterList.RosterLoad.Columns[c].ColumnName; } for (int r = 1; r <= RosterList.RosterLoad.Rows.Count; r++) { for (int c = 0; c < RosterList.RosterLoad.Columns.Count; c++) { int n = r - 1; if ((c == col) && (n < aryUID.Length)) ary[r, c] = aryUID[n]; else ary[r, c] = RosterList.RosterLoad.Rows[n].Cells[c]; } //RosterList.RosterLoad.Rows[i].Cells[] } RosterList.RosterLoad.SaveRoster(ary); } else { List ls = new List(); for (int i = 0; i < rowCount; i++) { ls.Add(aryUID[i] + "=" + RosterList.RosterLoad.Rows[i].RowIndex); } string uidRandom = string.Join("|", ls); TagSet tagSet = new TagSet(Globals.SunVoteARSAddIn.Application.ActivePresentation.Tags); tagSet.SetValue(TagKey.SignInUIDRandom, uidRandom); } //清空键盘编号。杨斌 2017-03-30 RosterList rost = RosterList.RosterLoad; rost.LoadCloumn(GlobalInfo.DBOperation); if (rost.Columns.Count > 0) { int colID = rost.Columns[0].ColumnID; string sql = "Update ST_RosterValue Set RV_Text='' Where RC_ID=" + colID; GlobalInfo.DBOperation.ExecuteNonQuery(sql); } RosterList.RosterLoad.LoadRoster(); } catch (Exception ex) { SystemLog.WriterLog(ex); } } private void btnCreateUIDAsc_Click(object sender, EventArgs e) { CreateUID(false); } private void btnCreateUIDRnd_Click(object sender, EventArgs e) { CreateUID(true); } } }