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 Model;
using DevExpress.XtraEditors;
using ViewController;
namespace View
{
public partial class ctlQAResult : UserControl
{
private ctlQAlogController _ctlQAlogController = new ctlQAlogController();
public ctlQAResult()
{
InitializeComponent();
}
public ctlQAResult(string userName, List<tb_question_answer> lstQa) : this()
{
try
{
DataTable dt = new DataTable();
dt.Columns.Add("序号", typeof(Int32));
dt.Columns.Add("问题", typeof(String));
dt.Columns.Add("你的回答", typeof(String));
dt.Columns.Add("正确回答", typeof(String));
for (int i = 1; i < 6; i++)
{
dt.Rows.Add();
dt.Rows[i - 1]["序号"] = (i);
dt.Rows[i - 1]["问题"] = lstQa[i].Question;
dt.Rows[i - 1]["你的回答"] = lstQa[i].UserAnswer;
dt.Rows[i - 1]["正确回答"] = lstQa[i].Answer;
InsertLog(userName, lstQa[i].UserAnswer, lstQa[i].Answer);
}
for (int i = 1; i < 6; i++)
{
if (lstQa[i].Answer == lstQa[i].UserAnswer)
{
panelControlResult.BackColor = Color.DarkGreen;
labelControlResult.ForeColor = Color.White;
labelControlResult.Text = "挑战成功";
labelControl1.Text = "恭喜您获得一次抽奖资格";
}
else
{
panelControlResult.BackColor = Color.Red;
labelControlResult.ForeColor = Color.White;
labelControlResult.Text = "挑战失败";
labelControl1.Text = "谢谢参与,请至工作人员处领取纪念品";
break;
}
}
gridControl1.DataSource = dt;
gridView1.BestFitColumns();
this.textEditreturn.Focus();
}
catch (Exception ex)
{
XtraMessageBox.Show(ex.Message, "出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void btnNext_Click(object sender, EventArgs e)
{
this.FindForm().DialogResult = DialogResult.OK;
}
private void gridView1_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)
{
try
{
if (gridView1.RowCount > 0)
{
if (gridView1.GetRowCellDisplayText(e.RowHandle, "你的回答") != gridView1.GetRowCellDisplayText(e.RowHandle, "正确答案"))
{
e.Appearance.ForeColor = Color.White;
e.Appearance.BackColor = Color.Red;
}
else
{
e.Appearance.ForeColor = Color.Black;
e.Appearance.BackColor = Color.White;
}
}
this.textEditreturn.Focus();
}
catch (Exception ex)
{
XtraMessageBox.Show(ex.Message, "出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void InsertLog(string empId, string UserAnswer, string trueAnswer)
{
try
{
string A = "N";
if (UserAnswer == trueAnswer)
A = "Y";
else
A = "N";
string sql = $"Insert into tb_QaLog (EmpId,QType,UserAnswer,TrueAnswer,ResultA,QAtime) values('{empId}','SELECT','{UserAnswer}','{trueAnswer}','{A}',datetime('now'))";
int r = SQLiteHelper.SQLiteHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
XtraMessageBox.Show(ex.Message, "出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void labelControlResult_Click(object sender, EventArgs e)
{
}
private void panelControlResult_Paint(object sender, PaintEventArgs e)
{
}
private void textEditreturn_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
//tb_UserCardInfo info = _ctlSignController.QueryUserCardInfoByCard_NUM(textEditCardNum.Text.Trim());
//tb_UserCardInfo info = DicUserCardInfo[textEditreturn.Text.Trim()];
//tb_AdminInfo admininfo = DicUserAdminInfo[textEditreturn.Text.Trim()];
if (_ctlQAlogController.QueryREMARK(textEditreturn.Text.Trim()) > 0)
{
this.FindForm().DialogResult = DialogResult.OK;
}
else
{
XtraMessageBox.Show("你没有这个权限,请联系系统管理员!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
}
private void textEdit1_EditValueChanged(object sender, EventArgs e)
{
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Linq;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using ViewController;
using Model;
using log4net;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace View
{
public partial class ctlQASelect : DevExpress.XtraEditors.XtraUserControl
{
private SimpleButton btn;
private ctlQASelectController _ctlQaSelectController = new ctlQASelectController();
private ctlQAlogController _ctlQAlogController = new ctlQAlogController();
private List<tb_question_answer> lstQA = new List<tb_question_answer>();
private static readonly ILog logger = LogManager.GetLogger(typeof(ctlQASelect));
public ctlQASelect()
{
InitializeComponent();
this.textEditEmpId.Focus();
}
private void simpleButton2_MouseDown(object sender, MouseEventArgs e)
{
this.textEditEmpId.Focus();
btn = simpleButton2;
this.simpleButton2.DoDragDrop(simpleButton2.Text, DragDropEffects.Move);
}
private void pictureEditA1_DragDrop(object sender, DragEventArgs e)
{
//lstQA[1].UserAnswer = e.Data.GetData(DataFormats.Text).ToString();
//lblQ1.Text = lstQA[1].Question.Replace("(", $"({lstQA[1].UserAnswer}");
//btn.Enabled = false;
}
private void pictureEditA1_DragEnter(object sender, DragEventArgs e)
{
//if (e.Data.GetDataPresent(DataFormats.Text))
//{
// e.Effect = DragDropEffects.Move;
//}
}
private void pictureEditA2_DragEnter(object sender, DragEventArgs e)
{
//if (e.Data.GetDataPresent(DataFormats.Text))
//{
// e.Effect = DragDropEffects.Move;
//}
}
private void pictureEditA2_DragDrop(object sender, DragEventArgs e)
{
拖放
//lstQA[2].UserAnswer = e.Data.GetData(DataFormats.Text).ToString();
//lblQ2.Text = lstQA[2].Question.Replace("(", $"({lstQA[2].UserAnswer}");
//btn.Enabled = false;
}
private void pictureEditA3_DragEnter(object sender, DragEventArgs e)
{
//if (e.Data.GetDataPresent(DataFormats.Text))
//{
// e.Effect = DragDropEffects.Move;
//}
}
private void pictureEditA3_DragDrop(object sender, DragEventArgs e)
{
//lstQA[3].UserAnswer = e.Data.GetData(DataFormats.Text).ToString();
//lblQ3.Text = lstQA[3].Question.Replace("(", $"({lstQA[3].UserAnswer}");
//btn.Enabled = false;
}
private void pictureEditA4_DragEnter(object sender, DragEventArgs e)
{
//将拖动到这个钮上
//if (e.Data.GetDataPresent(DataFormats.Text))
//{
// e.Effect = DragDropEffects.Move;
//}
}
private void pictureEditA4_DragDrop(object sender, DragEventArgs e)
{
//lstQA[4].UserAnswer = e.Data.GetData(DataFormats.Text).ToString();
//lblQ4.Text = lstQA[4].Question.Replace("(", $"({lstQA[4].UserAnswer}");
//btn.Enabled = false;
}
private void pictureEditA5_DragEnter(object sender, DragEventArgs e)
{
//if (e.Data.GetDataPresent(DataFormats.Text))
//{
// e.Effect = DragDropEffects.Move;
//}
}
private void pictureEditA5_DragDrop(object sender, DragEventArgs e)
{
lstQA[5].UserAnswer = e.Data.GetData(DataFormats.Text).ToString();
lblQ5.Text = lstQA[5].Question.Replace("(", $"({lstQA[5].UserAnswer}");
btn.Enabled = false;
}
private void btnStart_Click(object sender, EventArgs e)
{
this.textEditEmpId.Focus();
try
{
if (string.IsNullOrWhiteSpace(textEditEmpId.Text.Trim()))
{
XtraMessageBox.Show("工号不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
ctlSignController _ctlSignController = new ctlSignController();
string name = _ctlSignController.QueryUserCardInfoByEmpId(textEditEmpId.Text.Trim()).NAME;
if (string.IsNullOrWhiteSpace(name))
{
XtraMessageBox.Show("用户不存在!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
else
{
lblUserName.Text = name;
}
if (_ctlQAlogController.QueryQALog(textEditEmpId.Text.Trim()) > 0)
{
XtraMessageBox.Show("很抱歉您已参加过答题,请下次再来!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
lblUserName.Text = "";
textEditEmpId.Text = "";
textEditEmpId.Focus();
return;
}
panelControlMain.Visible = true;
lstQA = _ctlQaSelectController.QuestionInfo();
if (lstQA.Count == 10)
{
lblQ1.Text = lstQA[1].Question;
lblQ2.Text = lstQA[2].Question;
lblQ3.Text = lstQA[3].Question;
lblQ4.Text = lstQA[4].Question;
lblQ5.Text = lstQA[5].Question;
}
int[] intArr = _ctlQaSelectController.GetRandomArray(10, 0, 9);
panelControlAnswer.Controls.Clear();
foreach (var item in intArr)
{
SimpleButton button = new SimpleButton();
button.Text = lstQA[item].Answer;
button.Dock = DockStyle.Top;
button.AllowDrop = true;
button.Font = new Font("微软雅黑", 10.5F);
button.Height = 27;
button.MouseDown += new System.Windows.Forms.MouseEventHandler(simpleButtonMouseDown);
panelControlAnswer.Controls.Add(button);
}
btnStart.Enabled = false;
}
catch (Exception ex)
{
XtraMessageBox.Show(ex.Message, "出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void simpleButtonMouseDown(object sender, MouseEventArgs e)
{
SimpleButton sb = sender as SimpleButton;
btn = sb;
sb.DoDragDrop(sb.Text, DragDropEffects.Move);
}
private void btnSubmit_Click(object sender, EventArgs e)
{
try
{
DevExpress.XtraEditors.XtraForm frm = new XtraForm();
frm.StartPosition = FormStartPosition.CenterParent;
ctlQAResult ctlQa = new ctlQAResult(textEditEmpId.Text, lstQA);
ctlQa.Dock = DockStyle.Fill;
frm.Text = "挑战结果";
frm.FormBorderStyle = FormBorderStyle.None;
frm.Height = 715;
frm.Width = 456;
frm.MaximizeBox = false;
frm.MinimumSize = new Size(715, 456);
frm.MaximumSize = new Size(715, 456);
frm.Icon = this.ParentForm.Icon;
frm.Controls.Add(ctlQa);
frm.ShowDialog();
if (frm.DialogResult == DialogResult.OK)
{
panelControlMain.Visible = false;
btnStart.Enabled = true;
textEditEmpId.Text = "";
lblUserName.Text = "";
}
}
catch (Exception ex)
{
XtraMessageBox.Show(ex.Message, "出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void lblQ1_DragDrop(object sender, DragEventArgs e)
{
lstQA[1].UserAnswer = e.Data.GetData(DataFormats.Text).ToString();
lblQ1.Text = lstQA[1].Question.Replace("(", $"({lstQA[1].UserAnswer}");
btn.Enabled = false; lstQA[1].UserAnswer = e.Data.GetData(DataFormats.Text).ToString();
lblQ1.Text = lstQA[1].Question.Replace("(", $"({lstQA[1].UserAnswer}");
btn.Enabled = false;
}
private void lblQ1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))
{
e.Effect = DragDropEffects.Move;
}
}
private void lblQ2_DragDrop(object sender, DragEventArgs e)
{
lstQA[2].UserAnswer = e.Data.GetData(DataFormats.Text).ToString();
lblQ2.Text = lstQA[2].Question.Replace("(", $"({lstQA[2].UserAnswer}");
btn.Enabled = false;
}
private void lblQ2_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))
{
e.Effect = DragDropEffects.Move;
}
}
private void lblQ3_DragDrop(object sender, DragEventArgs e)
{
lstQA[3].UserAnswer = e.Data.GetData(DataFormats.Text).ToString();
lblQ3.Text = lstQA[3].Question.Replace("(", $"({lstQA[3].UserAnswer}");
btn.Enabled = false;
}
private void lblQ3_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))
{
e.Effect = DragDropEffects.Move;
}
}
private void lblQ4_DragDrop(object sender, DragEventArgs e)
{
lstQA[4].UserAnswer = e.Data.GetData(DataFormats.Text).ToString();
lblQ4.Text = lstQA[4].Question.Replace("(", $"({lstQA[4].UserAnswer}");
btn.Enabled = false;
}
private void lblQ4_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))
{
e.Effect = DragDropEffects.Move;
}
}
private void lblQ5_DragDrop(object sender, DragEventArgs e)
{
lstQA[5].UserAnswer = e.Data.GetData(DataFormats.Text).ToString();
lblQ5.Text = lstQA[5].Question.Replace("(", $"({lstQA[5].UserAnswer}");
btn.Enabled = false;
}
private void lblQ5_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))
{
e.Effect = DragDropEffects.Move;
}
}
private void btnNext_Click(object sender, EventArgs e)
{
lblQ1.Text = lstQA[1].Question;
lblQ2.Text = lstQA[2].Question;
lblQ3.Text = lstQA[3].Question;
lblQ4.Text = lstQA[4].Question;
lblQ5.Text = lstQA[5].Question;
int[] intArr = _ctlQaSelectController.GetRandomArray(10, 0, 9);
panelControlAnswer.Controls.Clear();
foreach (var item in intArr)
{
SimpleButton button = new SimpleButton();
button.Text = lstQA[item].Answer;
button.Dock = DockStyle.Top;
button.AllowDrop = true;
button.Font = new Font("微软雅黑", 10.5F);
button.Height = 27;
button.MouseDown += new System.Windows.Forms.MouseEventHandler(simpleButtonMouseDown);
panelControlAnswer.Controls.Add(button);
}
}
private void textEditEmpId_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
btnStart_Click(null, null);//调用btnstart_click方法
}
//btnStart_Click(null, null);//调用btnstart_click方法
}
private void textEditEmpId_EditValueChanged(object sender, EventArgs e)
{
}
}
}
app.conflg
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\\SignLottery\\SysLog\\" />
<appendToFile value="true" />
<datePattern value="MMdd\\Clien\t_yyyy-MM-dd_HH.lo\g" />
<rollingStyle value="Date" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%-5p] %-45c - %m%n" />
</layout>
</appender>
<appender name="ErrLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\\SignLottery\\SysLog\\Err_Client_" />
<appendToFile value="true" />
<datePattern value="yyyy-MM-dd.lo\g" />
<rollingStyle value="Date" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%-5p] %-45c - %m%n" />
</layout>
<threshold value="WARN" />
</appender>
<root>
<level value="ALL" />
<!--<appender-ref ref="ConsoleAppender" />-->
<appender-ref ref="LogFileAppender" />
<appender-ref ref="ErrLogFileAppender" />
</root>
</log4net>
<appSettings>
<!--ReportDB Connect-->
<add key="KeyWord" value="" />
<add key="Username" value="litmfdm10" />
<add key="Password" value="f10litmfdm10" />
<add key="JsonDataChannel" value="https://f10litjboss:8443/si_mfdm10/listener?" />
<add key="JsonDataChannel2" value="https://f10litjboss:8443/si_odsf10/listener?" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
<add key="MySql_difserver" value="server=difserver;user id=root;password=root;database=web_2018;persist security info=true;charset=utf8" />
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v13.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite.EF6" />
<add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
<remove invariant="System.Data.SQLite" /><add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /></DbProviderFactories>
</system.data>
</configuration>
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 DevExpress.XtraEditors;
using log4net;
using ViewController;
using Model;
using DevExpress.XtraPrinting;
using DevExpress.XtraCharts;
using System.Threading;
namespace View
{
public partial class ctlLottery : UserControl
{
private static readonly ILog logger = LogManager.GetLogger(typeof(ctlLottery));
private ctlLotteryController _ctlLotteryController = new ctlLotteryController();
private Dictionary<string, tb_UserCardInfo> DicLottery = new Dictionary<string, tb_UserCardInfo>();
private List<string> lstEmp = new List<string>();
private DataTable dtLuckyUser = new DataTable();
private Random ra = new Random();
public ctlLottery()
{
InitializeComponent();
DataInit();
}
private void DataInit()
{
List<string> lstCondition = new List<string> { "全部","自定义" };
lstCondition.AddRange(_ctlLotteryController.QueryDeptList());
DataTable dataS = null;
DicLottery = _ctlLotteryController.QueryUserCardInfo(out dataS);
gridControlSignList.DataSource = dataS;
gridViewSignList.BestFitColumns();
comboBoxEditCondition.Properties.Items.AddRange(lstCondition);
comboBoxEditCondition.SelectedIndex = 0;
dtLuckyUser.Columns.Add("ID", typeof(Int32));
dtLuckyUser.Columns.Add("EMPLID", typeof(String));
dtLuckyUser.Columns.Add("NAME", typeof(String));
dtLuckyUser.Columns.Add("DESCRSHORT", typeof(String));
dtLuckyUser.Columns.Add("DESCR", typeof(String));
}
private void groupControl_CustomButtonClick(object sender, DevExpress.XtraBars.Docking2010.BaseButtonEventArgs e)
{
if(e.Button.Properties.Tag.ToString()=="SAVE")
{
string strSaveFileName = "";
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.DefaultExt = "xls";
saveDialog.FileName += $"{DateTime.Now.ToString("yyyyMMddHHMMss")}_抽奖清单_{UserInfo.ACTION_CODE}";
saveDialog.Filter = "Excel 文件|*.xls";
if (DialogResult.OK == saveDialog.ShowDialog())
{
strSaveFileName = saveDialog.FileName;
gridViewSignList.ExportToXls(strSaveFileName);
}
}
else if( e.Button.Properties.Tag.ToString() == "PRINT")
{
PrintingSystem print = new DevExpress.XtraPrinting.PrintingSystem();
PrintableComponentLink link = new PrintableComponentLink(print);
//link.Landscape = true;
link.Margins = new System.Drawing.Printing.Margins(20, 20, 60, 60);
//print.PageSettings.Landscape = true;
link.PaperKind = System.Drawing.Printing.PaperKind.A4;
print.Links.Add(link);
link.Component = gridControlSignList;//这里可以是可打印的部件
string _PrintHeader = $"{UserInfo.ACTION_CODE}_{DateTime.Now.ToString("yyyyMMdd")}_抽奖清单";
PageHeaderFooter phf = link.PageHeaderFooter as PageHeaderFooter;
phf.Header.Content.Clear();
phf.Header.Content.AddRange(new string[] { "", _PrintHeader, "" });
phf.Header.Font = new System.Drawing.Font("微软雅黑", 14, System.Drawing.FontStyle.Bold);
phf.Header.LineAlignment = BrickAlignment.Center;
link.CreateDocument(); //建立文档
print.PreviewFormEx.Show();//进行预览
}
}
private void btnStartLottery_Click(object sender, EventArgs e)
{
timer1.Interval = 20;
lstEmp = DicLottery.Keys.ToList();
if(lstEmp.Count<1)
{
}
btnStartLottery.Enabled = false;
btnStopLottery.Enabled = true;
timer1.Start();
}
private void btnStopLottery_Click(object sender, EventArgs e)
{
btnStartLottery.Enabled = true;
btnStopLottery.Enabled = false;
timer1.Stop();
int num = Convert.ToInt32(comboBoxEditQty.Text);
for (int i = 0; i < num; i++)
{
RandomDisPic();
Thread.Sleep(20);
int cnt = dtLuckyUser.Rows.Count;
dtLuckyUser.Rows.Add(cnt + 1, lblEMPID.Text, lblChsName.Text, lblDept.Text,lblSection.Text);
}
gridControlLottery.DataSource = dtLuckyUser;
gridViewLottery.BestFitColumns();
}
private void RandomDisPic()
{
if (lstEmp.Count > 0)
{
int RandKey = ra.Next(0, lstEmp.Count);
lblEMPID.Text = lstEmp[RandKey];
lblChsName.Text = DicLottery[lstEmp[RandKey]].NAME;
lblDept.Text = DicLottery[lstEmp[RandKey]].DESCRSHORT;
lblSection.Text = DicLottery[lstEmp[RandKey]].DESCR;
try
{
pictureEditTSMCEMP.Image = Image.FromFile($@"{SQLiteHelper.SQLiteHelper.MdfEmpPicPath}\{lblEMPID.Text}.jpg");
}
catch
{
pictureEditTSMCEMP.Image = null;
}
}
}
private void timer1_Tick(object sender, EventArgs e)
{
RandomDisPic();
}
private void groupControl_Paint(object sender, PaintEventArgs e)
{
}
}
}