FrmCanVoteVoterGroup.cs 11.7 KB
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GeneralLib;

namespace SunVoteARSPPT
{
    public partial class FrmCanVoteVoterGroup : Form
    {
        private TagSet tagSet = null;

        private bool SaveOK = true;


        public FrmCanVoteVoterGroup()
        {
            InitializeComponent();

        }

        //public FrmCanVoteSet(int type)
        //{
        //    InitializeComponent();
        //    switch (type)
        //    {
        //        case 1:
        //            this.Text = "授权设置-指定名单分组";
        //            lvwItem.Items[0].Text = "1/A";
        //            btnSelectCorrect.Visible = false;
        //            break;
        //        default:
        //            this.Text = "授权设置-指定题目选项";
        //            break;
        //    }
        //}

        private void btnOK_Click(object sender, EventArgs e)
        {
            //2012-11-22 赵丽  没有勾选认为设置无效 日本要求
            if(IsChecked())
               SaveAuthorInfo();

            SaveOK = true;
            this.Close();
        }

        /// <summary>
        /// 是否有选择项
        /// 2012-11-22 赵丽
        /// </summary>
        /// <returns></returns>
        private bool IsChecked()
        {
            if (GlobalInfo.OEMLogo != OEMLogos.oem3eAnalyzer) return true;
            bool bResult = false;
            for (int i = 0; i < lvwGroup.Items.Count; i++)
            {
                if (lvwGroup.Items[i].Checked == true)
                {
                    bResult = true;
                    break;
                }
            }
            return bResult;
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;
            SaveOK = true;
            this.Close();
        }

        private void FrmCanVoteSet_Load(object sender, EventArgs e)
        {
            GlobalInfo.SysLanguage.SetLanguage(this.Name, this);
            chkSelectAllSlide.Top = lvwGroup.Top + 5;
            chkSelectAllSlide.Left = lvwGroup.Left + 3;
            lvwGroup.Columns[0].Text = "   " + lvwGroup.Columns[0].Text;
            tagSet = new TagSet();
            tagSet.Tags = Globals.SunVoteARSAddIn.PPTEdit.SlideEdit.Tags;

            ControlOper.SetPosCheckBoxToListViewHead(lvwGroup, chkSelectAllSlide);//杨斌 2012-11-16

            LoadVoterInfo();
            SaveOK = true;
        }

        private void btnSelectAll_Click(object sender, EventArgs e)
        {

        }

        /// <summary>
        /// 加载授权信息
        /// </summary>
        private void LoadAuthorInfo(int groupID)
        {
            try
            {
                int CurrentID = Globals.SunVoteARSAddIn.PPTEdit.SlideEdit.SlideID;

                if (groupID == tagSet.LoadValue(TagKey.ResponsePara_CanVoteGroup, 0).ToInt)
                {
                    //if (chkValue[groupIndex.ToString()] == null) { chkValue[groupIndex.ToString()] = new bool[lvwGroup.Items.Count]; }

                    for (int i = 0; i < lvwGroup.Items.Count; i++)
                    {
                        lvwGroup.Items[i].Checked = tagSet.LoadValue(TagKey.ResponsePara_CanVoteList_,
                             CurrentID.ToString() + "_" + lvwGroup.Items[i].Text, 0).ToInt == 1 ? true : false;
                        //chkValue[groupIndex.ToString()][i] = lvwGroup.Items[i].Checked;
                    }
                }
            }
            catch (Exception ex)
            {
            }

        }
        /// <summary>
        /// 获得投票人分组
        /// </summary>
        private void LoadVoterInfo()
        {
            try
            {
                lvwSlide.Items.Clear();
                DataSet ds = null;
                string sSql = "select * from ST_RosterColumn order by RC_Index";
                ds = GlobalInfo.DBOperation.OpenDataSet(sSql);
                string groupID;
                string groupIndex;
                if (ds.Tables[0].Rows.Count == 0) { return; }
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    bool[] chk = null;
                    groupIndex = ds.Tables[0].Rows[i]["RC_Index"].ToString();
                    lvwSlide.Items.Add(groupIndex);
                    lvwSlide.Items[i].SubItems.Add(ds.Tables[0].Rows[i]["RC_Name"].ToString());
                    lvwSlide.Items[i].SubItems.Add(ds.Tables[0].Rows[i]["RC_ID"].ToString());

                }
                groupID = tagSet.LoadValue(TagKey.ResponsePara_CanVoteGroup, 0).ToInt.ToString();
                if (groupID != "0")
                {
                    //杨斌 2012-03-22
                    int index = GetVoterIndex(groupID);
                    if (index >= 0)
                    {
                        lvwSlide.Items[GetVoterIndex(groupID)].Selected = true;
                        LoadCanChooseVoter(ConvertOper.Convert(groupID).ToInt);
                    }
                    else
                    {
                        lvwSlide.Items[0].Selected = true;
                        LoadCanChooseVoter(ConvertOper.Convert(lvwSlide.Items[0].SubItems[2].Text).ToInt);
                    }
                }
                else
                {
                    lvwSlide.Items[0].Selected = true;
                    LoadCanChooseVoter(ConvertOper.Convert(lvwSlide.Items[0].SubItems[2].Text).ToInt);
                }
            }
            catch (Exception ex)
            {

            }
        }
        /// <summary>
        /// 加载可选投票人列表
        /// </summary>
        private void LoadCanChooseVoter(int GroupID)
        {
            try
            {
                lvwGroup.Items.Clear();
                DataSet ds = null;
                string sSql = "select distinct RV_Text from ST_RosterValue where RC_ID=" + GroupID.ToString();
                ds = GlobalInfo.DBOperation.OpenDataSet(sSql);
                if (ds.Tables[0].Rows.Count == 0) { return; }
                if (lvwSlide.SelectedItems[0].Index == 0)//键盘编号为数字,应按数字排序,杨斌 2012-03-01
                {
                    List<string> lstKeypad = new List<string>();
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        //lstKeypad.Add(ConvertOper.Convert(ds.Tables[0].Rows[i]["RV_Text"].ToString()).ToInt);
                        lstKeypad.Add(ds.Tables[0].Rows[i]["RV_Text"].ToString());//杨斌 2015-01-14
                    }
                    lstKeypad.Sort();
                    for (int i = 0; i < lstKeypad.Count; i++)
                    {
                        lvwGroup.Items.Add(lstKeypad[i].ToString(), 0);
                    }
                }
                else
                {
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        lvwGroup.Items.Add(ds.Tables[0].Rows[i]["RV_Text"].ToString(), 0);
                        //lvwGroup.Items[i].SubItems.Add(ds.Tables[0].Rows[i]["RO_ID"].ToString());
                    }
                }
                LoadAuthorInfo(GroupID);
            }
            catch (Exception ex)
            {
            }

        }

        /// <summary>
        /// 保存授权信息
        /// </summary>
        private void SaveAuthorInfo()
        {
            string topicID = Globals.SunVoteARSAddIn.PPTEdit.SlideEdit.SlideID.ToString();
            string sSql = "select * from ST_Response where T_ID='" + topicID + "'";
            if (GlobalInfo.DBOperation.RecordIsExist(sSql))
            {
                if (MessageBox.Show(GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "UpdatePrompt",
                    "更改键盘授权信息,将清空该题目所有反馈信息,是否继续?"), GlobalInfo.GetAppName(), MessageBoxButtons.YesNo,
                      MessageBoxIcon.Question) == DialogResult.No)
                {
                    this.DialogResult = DialogResult.Cancel;
                    return;
                }
                else
                {

                    GlobalInfo.response.ClearResponseDB(topicID);
                }
            }
            try
            {
                // if (lvwSlide.sel == null) { return; }
                int CurrnetID = Globals.SunVoteARSAddIn.PPTEdit.SlideEdit.SlideID;
                //删除之前的数据,人员名单授权和幻灯片授权
                PPTOper.RemoveTags(tagSet, "ResponsePara_CanVoteList_" + CurrnetID.ToString());
                PPTOper.RemoveTags(tagSet, "ResponsePara_CanVoteOption_" + CurrnetID.ToString());
                tagSet.SetValue(TagKey.ResponsePara_CanVoteGroup, lvwSlide.SelectedItems[0].SubItems[2].Text);

                for (int i = 0; i < lvwGroup.Items.Count; i++)
                {
                    tagSet.SetValue(TagKey.ResponsePara_CanVoteList_, CurrnetID.ToString() + "_" + lvwGroup.Items[i].Text,
                        lvwGroup.Items[i].Checked == true ? 1 : 0);
                }
                //tagSet.SetValue(TagKey.ResponsePara_CanVote, CanVoteIndex);
                this.DialogResult = DialogResult.OK;
            }
            catch (Exception ex)
            { }
        }

        private void lvwSlide_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                chkSelectAllSlide.Checked = false;
                SaveOK = true;
                if (lvwSlide.FocusedItem == null) { return; }
                if (lvwSlide.FocusedItem != null)
                {
                    int groupID = 0;
                    groupID = ConvertOper.Convert(lvwSlide.SelectedItems[0].SubItems[2].Text).ToInt;
                    LoadCanChooseVoter(groupID);

                }
            }
            catch
            {
                //未选中列表
            }
        }

        private void FrmCanVoteVoterGroup_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (SaveOK != true)
            {
                if (MessageBox.Show(GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "UpdateSave",
                    "键盘授权已修改,是否保存?"), GlobalInfo.GetAppName(), MessageBoxButtons.YesNo,
                     MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    SaveOK = false;
                }
                else
                    SaveOK = true;
            }
        }

        private void lvwGroup_ItemChecked(object sender, ItemCheckedEventArgs e)
        {


        }

        private void lvwGroup_ItemCheck(object sender, ItemCheckEventArgs e)
        {
            SaveOK = false;
        }


        private void FrmCanVoteVoterGroup_FormClosed(object sender, FormClosedEventArgs e)
        {
            if (!SaveOK)
            {
                SaveAuthorInfo();
                SaveOK = true;
            }
        }

        private int GetVoterIndex(string groupID)
        {
            //杨斌 2012-03-22
            int voteIndex = -1;            
            for (int i = 0; i < lvwSlide.Items.Count; i++)
            {
                if (lvwSlide.Items[i].SubItems[2].Text.ToString() == groupID)
                {
                    //voteIndex = ConvertOper.Convert(lvwSlide.Items[i].Text.ToString()).ToInt ;
                    voteIndex = i;
                    break;
                }
            }
            return voteIndex;
        }

        private void chkSelectAllSlide_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < lvwGroup.Items.Count; i++)
            {
                lvwGroup.Items[i].Checked = chkSelectAllSlide.Checked;
            }
            SaveOK = false;
        }
    }
}