/*------------------------------------------------------------------------------------------- * 信德服务器Http协议Post提交界面 * 创建:杨斌 2014-07-03 * 修改:杨斌 2014-07-04 * ----------------------------------------------------------------------------------------*/ 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 System.Text.RegularExpressions; using Microsoft.Office.Interop.PowerPoint; using GeneralLib; using DataTable = System.Data.DataTable; namespace SunVoteARSPPT { public partial class FrmUploadServerXD : Form { public FrmUploadServerXD() { InitializeComponent(); } private void FrmUploadServerXD_Load(object sender, EventArgs e) { GlobalInfo.SysLanguage.SetLanguage(this.Name, this); LoadSlide(); string showMem = "text"; cboSchool.DisplayMember = showMem; cboTeacher.DisplayMember = showMem; cboGrade.DisplayMember = showMem; cboClass.DisplayMember = showMem; cboCourse.DisplayMember = showMem; string valueMem = "id"; cboSchool.ValueMember = valueMem; cboTeacher.ValueMember = valueMem; cboGrade.ValueMember = valueMem; cboClass.ValueMember = valueMem; cboCourse.ValueMember = valueMem; cboSchool.Enabled = false; cboTeacher.Enabled = false; cboGrade.Enabled = false; cboClass.Enabled = false; cboCourse.Enabled = false; btnSubmit.Enabled = false; LoadCourse(); LoadSchool(); this.Height = txtData.Top + this.Height - this.ClientSize.Height; txtData.Visible = false; btnLoad.Visible = false; } //public string PostUrl = "http://jxt.hnxind.com/interactive_teaching_interface.php";//益阳 public string PostUrl = "http://111.22.15.70:16080/xjgl/interactive_teaching_interface.php";//望城 public class ComboData { public string text { get; set; } public string id { get; set; } } private void LoadSchool() { cboSchool.Items.Clear(); cboTeacher.Items.Clear(); cboGrade.Items.Clear(); cboClass.Items.Clear(); btnSubmit.Enabled = false; string postData = XDHttpPost.GetXDPostData("01", "", "", "", "", "", null); string retData = XDHttpPost.GetPage(PostUrl, postData); txtData.Text = Regex.Unescape(retData); XDResDataSchool obj = XDHttpPost.GetXDRetObject(retData); if (obj != null) { if ((obj.retCode != null) && (obj.retCode == "00")) { if (obj.retData != null) { foreach (XDData d in obj.retData) { cboSchool.Items.Add(new ComboData() { id = d.id, text = d.text + " " + d.id }); } } } } cboSchool.Enabled = true; } private void LoadGradeTeacher() { cboTeacher.Items.Clear(); cboGrade.Items.Clear(); cboClass.Items.Clear(); btnSubmit.Enabled = false; if (cboSchool.SelectedIndex < 0) return; string school = (cboSchool.SelectedItem as ComboData).id; string postData = XDHttpPost.GetXDPostData("02", school, "", "", "", "", null); string retData = XDHttpPost.GetPage(PostUrl, postData); txtData.Text = Regex.Unescape(retData); XDResDataGradeTeacher obj = XDHttpPost.GetXDRetObject(retData); if (obj != null) { if ((obj.retCode != null) && (obj.retCode == "00")) { if (obj.retData.grades != null) { foreach (XDData d in obj.retData.grades) { cboGrade.Items.Add(new ComboData() { id = d.id, text = d.text + " " + d.id }); } } if (obj.retData.teachers != null) { foreach (XDDataTe d in obj.retData.teachers) { cboTeacher.Items.Add(new ComboData() { id = d.teachers_id, text = d.teachers_name + " " + d.teachers_id }); } } } } cboTeacher.Enabled = true; cboGrade.Enabled = true; } private void LoadClass() { cboClass.Items.Clear(); btnSubmit.Enabled = false; if (cboSchool.SelectedIndex < 0) return; string school = (cboSchool.SelectedItem as ComboData).id; if (cboGrade.SelectedIndex < 0) return; string grade = (cboGrade.SelectedItem as ComboData).id; string postData = XDHttpPost.GetXDPostData("03", school, "", grade, "", "", null); string retData = XDHttpPost.GetPage(PostUrl, postData); txtData.Text = Regex.Unescape(retData); XDResDataClass obj = XDHttpPost.GetXDRetObject(retData); if (obj != null) { if ((obj.retCode != null) && (obj.retCode == "00")) { if (obj.retData.classes != null) { foreach (XDData d in obj.retData.classes) { cboClass.Items.Add(new ComboData() { id = d.id, text = d.text + " " + d.id }); } } } } cboClass.Enabled = true; } private void UploadData() { if (cboSchool.SelectedIndex < 0) return; string school = (cboSchool.SelectedItem as ComboData).id; if (cboClass.SelectedIndex < 0) return; string aClass = (cboClass.SelectedItem as ComboData).id; string teacher = ""; if (cboTeacher.SelectedIndex >= 0) teacher = (cboTeacher.SelectedItem as ComboData).id; string course = cboCourse.Text; Dictionary dicPoint = new Dictionary(); foreach (DataGridViewRow row in dgvQuestionPoint.Rows) { string point = ""; if (row.Cells[2].Value != null) point = row.Cells[2].Value.ToString(); dicPoint.Add(row.Tag.ToString(), point); } TimerCount t = new TimerCount(); t.StartCount(); string postData = XDHttpPost.GetXDPostData("04", school, teacher, "", aClass, course, dicPoint); txtData.Text = postData; string retData = XDHttpPost.GetPage(PostUrl, postData); txtData.Text += "\r\n" + t.GetCountMS() + " ms"; XDResDataUpload obj = XDHttpPost.GetXDRetObject(retData); if (obj != null) { if (obj.retCode != null) txtData.Text += "\r\n\r\n" + "retCode=" + obj.retCode + "\r\n" + obj.retMessage; if ((obj.retCode != null) && (obj.retCode == "00")) MessageBox.Show(GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "msgSubmitOK", "提交成功!")); else MessageBox.Show(obj.retMessage); } } private void LoadCourse() { cboCourse.Items.Clear(); cboCourse.Items.Add("语文"); cboCourse.Items.Add("数学"); cboCourse.Items.Add("英语"); cboCourse.Items.Add("物理"); cboCourse.Items.Add("化学"); cboCourse.Items.Add("地理"); cboCourse.Items.Add("生物"); cboCourse.Items.Add("历史"); cboCourse.Items.Add("政治"); cboCourse.Enabled = true; } private void EnabledSubmit() { btnSubmit.Enabled = false; if (cboSchool.SelectedIndex < 0) return; //if (cboTeacher.SelectedIndex < 0) return; if (cboGrade.SelectedIndex < 0) return; if (cboClass.SelectedIndex < 0) return; if (cboCourse.Text.TrimEnd().Length < 1) return; if (dgvQuestionPoint.Rows.Count < 1) return; btnSubmit.Enabled = true; } /// /// 查询的反馈题目类型 /// private const string cResponseType = "'Choice','Order','Judge','Number','Text'"; private void LoadSlide() { Presentation pres = Globals.SunVoteARSAddIn.Application.ActivePresentation; dgvQuestionPoint.Rows.Clear(); //int i = 0; //foreach (Slide sld in pres.Slides) //{ // TagSet tag = new TagSet(sld.Tags); // dgvQuestionPoint.Rows.Add(); // DataGridViewRow row = dgvQuestionPoint.Rows[i]; // row.Tag = sld.SlideID; // row.Cells[0].Value = sld.SlideIndex; // row.Cells[1].Value = PPTOper.GetSlideTitle(sld); // row.Cells[2].Value = tag.GetValue(TagKey.Slide_KnowledgePoint).Value; // i++; //} //加载数据 string sql = "Select ST_Topic.*, ST_TopicPar.TP_Value" + " FROM ST_Topic INNER JOIN ST_TopicPar ON ST_Topic.T_ID = ST_TopicPar.T_ID" + " WHERE (((ST_Topic.TT_ID) In (" + cResponseType + ")) AND ((ST_TopicPar.TP_Name)='CorrectAnswer') AND ((ST_TopicPar.TP_Value)<>'') AND (Len(ST_Topic.T_ID)<12))" + " Order By ST_Topic.T_Index Asc"; GlobalInfo.DBOperation.OpenDataSet(sql); DataTable tb = GlobalInfo.DBOperation.DataSet.Tables[0]; int i = 0; for (int iRow = 0; iRow < tb.Rows.Count; iRow++) { DataRow row = tb.Rows[iRow]; int id = ConvertOper.Convert(row["T_ID"].ToString()).ToInt; Slide sld = null; try { sld = pres.Slides.FindBySlideID(id); } catch { } if (sld != null) { TagSet tag = new TagSet(sld.Tags); dgvQuestionPoint.Rows.Add(); DataGridViewRow gridRow = dgvQuestionPoint.Rows[i]; gridRow.Tag = sld.SlideID; gridRow.Cells[0].Value = sld.SlideIndex; gridRow.Cells[1].Value = PPTOper.GetSlideTitle(sld);//row["T_Title"].ToString(); gridRow.Cells[2].Value = tag.GetValue(TagKey.Slide_KnowledgePoint).Value; i++; } } GlobalInfo.DBOperation.CloseDataSet(); } private void btnExit_Click(object sender, EventArgs e) { this.Close(); } private void btnSubmit_Click(object sender, EventArgs e) { bool b = btnSubmit.Enabled; btnSubmit.Enabled = false; this.Cursor = Cursors.WaitCursor; UploadData(); this.Cursor = Cursors.Default; btnSubmit.Enabled = b; } private void btnLoad_Click(object sender, EventArgs e) { LoadSchool(); } private void cboSchool_SelectedIndexChanged(object sender, EventArgs e) { LoadGradeTeacher(); //LoadClass(); EnabledSubmit(); } private void cboGrade_SelectedIndexChanged(object sender, EventArgs e) { LoadClass(); EnabledSubmit(); } private void cboTeacher_SelectedIndexChanged(object sender, EventArgs e) { EnabledSubmit(); } private void cboClass_SelectedIndexChanged(object sender, EventArgs e) { EnabledSubmit(); } private void cboCourse_SelectedIndexChanged(object sender, EventArgs e) { EnabledSubmit(); } private void cboCourse_TextChanged(object sender, EventArgs e) { EnabledSubmit(); } private void FrmUploadServerXD_KeyDown(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.D: if (e.Shift) { txtData.Visible = true; btnLoad.Visible = true; this.Height = txtData.Bottom + 10 + this.Height - this.ClientSize.Height; } break; } } private void dgvQuestionPoint_CellEndEdit(object sender, DataGridViewCellEventArgs e) { if ((e.ColumnIndex == 2) && (e.RowIndex >= 0)) { Presentation pres = Globals.SunVoteARSAddIn.Application.ActivePresentation; DataGridViewRow row = dgvQuestionPoint.Rows[e.RowIndex]; if (row.Cells[e.ColumnIndex].Value == null) return; if (row.Tag == null) return; int id = ConvertOper.Convert(row.Tag.ToString()).ToInt; Slide sld = null; try { sld = pres.Slides.FindBySlideID(id); } catch { } if (sld == null) return; TagSet tag = new TagSet(sld.Tags); tag.SetValue(TagKey.Slide_KnowledgePoint, row.Cells[e.ColumnIndex].Value); } } private void dgvQuestionPoint_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { if ((e.ColumnIndex == 2) && (e.RowIndex >= 0)) { dgvQuestionPoint.BeginEdit(true); } } } }