PanelSlideCompGroup.cs 10.8 KB
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 PanelSlideCompGroup : UserControl, IPanel, IPanelChange
    {
        TagSet mTagSet = null;
        public TagSet TagSet
        {
            get { return mTagSet; }
            set
            {
                mTagSet = value;
                //ucKeypadPara.TagSet = value;
            }
        }

        private bool IsLoad = false;

        public PanelSlideCompGroup()
        {
            InitializeComponent();

            FrmSystemSet_LanguageSetEvent();//杨斌 2017-03-20

            FrmSystemSet.LanguageSetEvent += new FrmSystemSet.LanguageSetEventHander(FrmSystemSet_LanguageSetEvent);
            FrmVoteBar.PanelEnabledEvent += new FrmVoteBar.PanelEnabledEventHander(FrmVoteBar_PanelEnabledEvent);
            //设置控件大小
            this.Height = gbxSet.Bottom;

            //GlobalInfo.SysLanguage.SetLanguage(this.Name, this);
            //gbxSet.Text = GlobalInfo.SysLanguage.LPT.ReadString("rbSunVoteARS", "btnAnalyzeSlideGroup", "答题分组对比");//杨斌 2014-12-12
            //chkInvert.Text = GlobalInfo.SysLanguage.LPT.ReadString("FrmAnalyzeSlideGroup", "btnInvert", "反转对比选项");
            ////杨斌 2017-02-15
            //lblSlide1.Text = GlobalInfo.SysLanguage.LPT.ReadString("FrmAnalyzeSlideGroup", "lvwSlide_1", "对比幻灯片");
            //lblSlide2.Text = GlobalInfo.SysLanguage.LPT.ReadString("FrmAnalyzeSlideGroup", "lvwGroup_1", "分组");
        }

        void FrmVoteBar_PanelEnabledEvent(bool enabled)
        {
            this.Enabled = enabled;
        }

        void FrmSystemSet_LanguageSetEvent()
        {
            GlobalInfo.SysLanguage.SetLanguage(this.Name, this);
            if (TagSet != null)
                cboChartType.SelectedIndex = TagSet.GetValue(TagKey.SlideCompGroupChartType).ToInt;//杨斌 2018-07-02
            gbxSet.Text = GlobalInfo.SysLanguage.LPT.ReadString("rbSunVoteARS", "btnAnalyzeSlideGroup", "答题分组对比");//杨斌 2014-12-12
            chkInvert.Text = GlobalInfo.SysLanguage.LPT.ReadString("FrmAnalyzeSlideGroup", "btnInvert", "反转对比选项");
            //杨斌 2017-02-15
            lblSlide1.Text = GlobalInfo.SysLanguage.LPT.ReadString("FrmAnalyzeSlideGroup", "lvwSlide_1", "对比幻灯片");
            lblSlide2.Text = GlobalInfo.SysLanguage.LPT.ReadString("FrmAnalyzeSlideGroup", "lvwGroup_1", "分组");


        }

        public Color PanelColor
        {
            get
            {
                return this.BackColor;
            }
            set
            {
                this.BackColor = value;
            }
        }

        ///// <summary>
        ///// 加载的Slide列表
        ///// </summary>
        //private List<int> LstSlideIds = new List<int>();

        //private string cResponseType = "'Group','Choice','Judge','Vote','Grade'";

        /// <summary>
        /// no.题目内容,tt_id,t_id
        /// </summary>
        List<List<object>> LstSlide = new List<List<object>>();
        private void LoadSlide()
        {
            IsLoad = true;
            try
            {
                LstSlide.Clear();
                cboSlide.Items.Clear();

                Presentation pres = Globals.SunVoteARSAddIn.Application.ActivePresentation;
                for (int i = 1; i <= pres.Slides.Count; i++)
                {
                    Slide sld = pres.Slides[i];
                    ResponseType type = PPTOper.GetSlideType(sld);
                    switch (type)
                    {
                        case ResponseType.Group://杨斌 2018-03-20
                        case ResponseType.Choice:
                        case ResponseType.Judge:
                        case ResponseType.Vote:
                        case ResponseType.Grade:
                            string showItem = i + ". " + PPTOper.GetSlideTitle(sld);
                            string showID = "'" + sld.SlideID + "'";
                            cboSlide.Items.Add(showItem);
                            LstSlide.Add(new List<object> { showID, showItem });
                            if (TagSet.GetValue(TagKey.SlideCompGroupSlideID).Value == showID)
                                cboSlide.SelectedIndex = cboSlide.Items.Count - 1;
                            break;
                    }
                }


            }
            catch (Exception ex)
            {
                SystemLog.WriterLog(ex);
            }
            IsLoad = false;
            //默认选中题目
            if ((cboSlide.Items.Count > 0) && (cboSlide.SelectedIndex < 0))
            {
                bool temp = TagSet.ReadOnlyPPT;
                TagSet.ReadOnlyPPT = false;
                cboSlide.SelectedIndex = 0;
                TagSet.ReadOnlyPPT = temp;
            }
        }

        /// <summary>
        /// 组名,'列ID'
        /// </summary>
        List<List<object>> LstGroup = new List<List<object>>();
        private void LoadGroup()
        {
            IsLoad = true;
            try
            {
                LstGroup.Clear();
                cboGroup.Items.Clear();

                //名单分组          
                string sql = "";
                System.Data.DataTable tb = null;
                if (GlobalInfo.response.EnableList)
                {
                    sql = "SELECT ST_RosterColumn.RC_Index, ST_RosterColumn.RC_Name, ST_RosterColumn.RC_ID" +
                            " FROM ST_RosterColumn" +
                            " WHERE (((ST_RosterColumn.RC_Index)>1))" +
                            " ORDER BY ST_RosterColumn.RC_Index ASC";
                    GlobalInfo.DBOperation.OpenDataSet(sql);
                    tb = GlobalInfo.DBOperation.DataSet.Tables[0];
                    for (int iRow = 0; iRow < tb.Rows.Count; iRow++)
                    {
                        DataRow row = tb.Rows[iRow];
                        string showItem = (LstGroup.Count + 1) + "." + row["RC_Name"];
                        string showID = row["RC_ID"] + "";
                        cboGroup.Items.Add(showItem);
                        LstGroup.Add(new List<object> { showID, showItem });
                        if (TagSet.GetValue(TagKey.SlideCompGroupGroupID).Value == showID)
                            cboGroup.SelectedIndex = cboGroup.Items.Count - 1;

                        //string cid = row["RC_ID"].ToString();
                        //string name = row["RC_Name"].ToString();
                        //ListViewItem item = lvwGroup.Items.Add((lvwGroup.Items.Count + 1).ToString());
                        //item.SubItems.Add(name);
                        //item.Tag = cid;//名单分组,数字类型,不带"'"
                    }
                    GlobalInfo.DBOperation.CloseDataSet();
                }

                //反馈分组
                Presentation pres = Globals.SunVoteARSAddIn.Application.ActivePresentation;
                for (int i = 1; i <= pres.Slides.Count; i++)
                {
                    Slide sld = pres.Slides[i];
                    ResponseType type = PPTOper.GetSlideType(sld);
                    switch (type)
                    {
                        case ResponseType.Group:
                        case ResponseType.Choice://杨斌 2018-03-20
                        case ResponseType.Judge:
                        case ResponseType.Vote:
                        case ResponseType.Grade:
                            string showItem = i + ". " + PPTOper.GetSlideTitle(sld);
                            string showID = "'" + sld.SlideID + "'";
                            cboGroup.Items.Add(showItem);
                            LstGroup.Add(new List<object> { showID, showItem });
                            if (TagSet.GetValue(TagKey.SlideCompGroupGroupID).Value == showID)
                                cboGroup.SelectedIndex = cboGroup.Items.Count - 1;
                            break;
                    }
                }

                //图表类型。杨斌 2018-07-02
                cboChartType.SelectedIndex = TagSet.LoadValue(TagKey.SlideCompGroupChartType, 0).ToInt;
            }
            catch (Exception ex)
            {
                SystemLog.WriterLog(ex);
            }
            IsLoad = false;
            //默认选中分组
            if ((cboGroup.Items.Count > 0) && (cboGroup.SelectedIndex < 0))
            {
                bool temp = TagSet.ReadOnlyPPT;
                TagSet.ReadOnlyPPT = false;
                cboGroup.SelectedIndex = 0;
                TagSet.ReadOnlyPPT = temp;
            }


        }

        /// <summary>
        /// 加载参数面板数据
        /// </summary>
        public void LoadData()
        {
            //分组对比图表实现 杨斌 2017-03-20
            LoadSlide();
            LoadGroup();
        }

        public void ChangeData(TagKey tagKey, object value)
        {
            //if (tagKey == TagKey.Group_OptionCount)
            //    ControlOper.TrySetNumericUpDownValue(nudOptionCount, TagSet.LoadValue(tagKey, nudOptionCount.Value).ToInt);
        }

        private void PanelSlideCompChart_Load(object sender, EventArgs e)
        {
            //GlobalInfo.SysLanguage.SetLanguage(this.Name, this);
            //InitType();
        }

        private void chkInvert_CheckedChanged(object sender, EventArgs e)
        {
            if (IsLoad) return;
            TagSet.SetValue(TagKey.SlideCompInvert, chkInvert.Checked ? 1 : 0);
            Globals.SunVoteARSAddIn.PPTEdit.InitChart(false, Globals.SunVoteARSAddIn.PPTEdit.SlideEdit);
        }

        private void cboSlide_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (IsLoad) return;
            TagSet.SetValue(TagKey.SlideCompGroupSlideID, LstSlide[cboSlide.SelectedIndex][0]);
            TagSet.SetValue(TagKey.SlideCompGroupSlideTitle, LstSlide[cboSlide.SelectedIndex][1]);
            Globals.SunVoteARSAddIn.PPTEdit.InitChart(false, Globals.SunVoteARSAddIn.PPTEdit.SlideEdit);
        }

        private void cboGroup_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (IsLoad) return;
            TagSet.SetValue(TagKey.SlideCompGroupGroupID, LstGroup[cboGroup.SelectedIndex][0]);
            Globals.SunVoteARSAddIn.PPTEdit.InitChart(false, Globals.SunVoteARSAddIn.PPTEdit.SlideEdit);
        }

        private void cboChartType_SelectedIndexChanged(object sender, EventArgs e)
        {
            //图表类型。杨斌 2018-07-02
            if (IsLoad) return;
            TagSet.SetValue(TagKey.SlideCompGroupChartType, cboChartType.SelectedIndex);
            Globals.SunVoteARSAddIn.PPTEdit.InitChart(false, Globals.SunVoteARSAddIn.PPTEdit.SlideEdit);
        }
    }
}