From a8bf919d6c7af0d85ed9d9974042c8cd0caa8cfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AD=B1=E5=82=91?= <840465812@qq.com> Date: Mon, 17 Dec 2018 13:32:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=BA=90=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AuditoriumMS/Access.cs | 82 ++++ AuditoriumMS/AuditoriumMS.csproj | 229 ++++++++++ AuditoriumMS/AuditoriumMS.sln | 31 ++ AuditoriumMS/DbTicketing.accdb | Bin 0 -> 581632 bytes AuditoriumMS/FormMain.Designer.cs | 164 ++++++++ AuditoriumMS/FormMain.cs | 100 +++++ AuditoriumMS/FormMain.resx | 120 ++++++ AuditoriumMS/FormManageSystem.Designer.cs | 232 +++++++++++ AuditoriumMS/FormManageSystem.cs | 79 ++++ AuditoriumMS/FormManageSystem.resx | 126 ++++++ AuditoriumMS/Forms/FormAdminLogin.Designer.cs | 112 +++++ AuditoriumMS/Forms/FormAdminLogin.cs | 45 ++ AuditoriumMS/Forms/FormAdminLogin.resx | 120 ++++++ AuditoriumMS/Forms/FormVerify.Designer.cs | 113 +++++ AuditoriumMS/Forms/FormVerify.cs | 61 +++ AuditoriumMS/Forms/FormVerify.resx | 120 ++++++ AuditoriumMS/Program.cs | 24 ++ AuditoriumMS/Properties/AssemblyInfo.cs | 36 ++ AuditoriumMS/Properties/Resources.Designer.cs | 71 ++++ AuditoriumMS/Properties/Resources.resx | 117 ++++++ AuditoriumMS/Properties/Settings.Designer.cs | 30 ++ AuditoriumMS/Properties/Settings.settings | 7 + .../UserControls/UCBooking.Designer.cs | 261 ++++++++++++ AuditoriumMS/UserControls/UCBooking.cs | 295 +++++++++++++ AuditoriumMS/UserControls/UCBooking.resx | 120 ++++++ .../UserControls/UCModifyPassword.Designer.cs | 152 +++++++ AuditoriumMS/UserControls/UCModifyPassword.cs | 68 +++ .../UserControls/UCModifyPassword.resx | 120 ++++++ .../UserControls/UCNewAuditorium.Designer.cs | 359 ++++++++++++++++ AuditoriumMS/UserControls/UCNewAuditorium.cs | 79 ++++ .../UserControls/UCNewAuditorium.resx | 120 ++++++ .../UCReservationInfoSelect.Designer.cs | 390 ++++++++++++++++++ .../UserControls/UCReservationInfoSelect.cs | 78 ++++ .../UserControls/UCReservationInfoSelect.resx | 120 ++++++ .../UserControls/UCSeatMap.Designer.cs | 62 +++ AuditoriumMS/UserControls/UCSeatMap.cs | 128 ++++++ AuditoriumMS/UserControls/UCSeatMap.resx | 120 ++++++ .../UserControls/UCShowChart.Designer.cs | 193 +++++++++ AuditoriumMS/UserControls/UCShowChart.cs | 47 +++ AuditoriumMS/UserControls/UCShowChart.resx | 120 ++++++ .../UserControls/UCSummaryReport.Designer.cs | 244 +++++++++++ AuditoriumMS/UserControls/UCSummaryReport.cs | 89 ++++ .../UserControls/UCSummaryReport.resx | 120 ++++++ .../UCTicketCountSelect.Designer.cs | 85 ++++ .../UserControls/UCTicketCountSelect.cs | 35 ++ .../UserControls/UCTicketCountSelect.resx | 120 ++++++ .../UCTicketCountStatistics.Designer.cs | 264 ++++++++++++ .../UserControls/UCTicketCountStatistics.cs | 52 +++ .../UserControls/UCTicketCountStatistics.resx | 120 ++++++ .../UserControls/UCTicketSelect.Designer.cs | 353 ++++++++++++++++ AuditoriumMS/UserControls/UCTicketSelect.cs | 46 +++ AuditoriumMS/UserControls/UCTicketSelect.resx | 120 ++++++ .../UCTicketStatistics.Designer.cs | 180 ++++++++ .../UserControls/UCTicketStatistics.cs | 39 ++ .../UserControls/UCTicketStatistics.resx | 120 ++++++ AuditoriumMS/bin/x86/Debug/AuditoriumMS.exe | Bin 0 -> 74752 bytes AuditoriumMS/bin/x86/Debug/AuditoriumMS.pdb | Bin 0 -> 124416 bytes AuditoriumMS/bin/x86/Debug/DbTicketing.accdb | Bin 0 -> 581632 bytes AuditoriumMS/bin/x86/Release/AuditoriumMS.exe | Bin 0 -> 69120 bytes AuditoriumMS/bin/x86/Release/AuditoriumMS.pdb | Bin 0 -> 114176 bytes .../bin/x86/Release/DbTicketing.accdb | Bin 0 -> 581632 bytes 61 files changed, 6838 insertions(+) create mode 100644 AuditoriumMS/Access.cs create mode 100644 AuditoriumMS/AuditoriumMS.csproj create mode 100644 AuditoriumMS/AuditoriumMS.sln create mode 100644 AuditoriumMS/DbTicketing.accdb create mode 100644 AuditoriumMS/FormMain.Designer.cs create mode 100644 AuditoriumMS/FormMain.cs create mode 100644 AuditoriumMS/FormMain.resx create mode 100644 AuditoriumMS/FormManageSystem.Designer.cs create mode 100644 AuditoriumMS/FormManageSystem.cs create mode 100644 AuditoriumMS/FormManageSystem.resx create mode 100644 AuditoriumMS/Forms/FormAdminLogin.Designer.cs create mode 100644 AuditoriumMS/Forms/FormAdminLogin.cs create mode 100644 AuditoriumMS/Forms/FormAdminLogin.resx create mode 100644 AuditoriumMS/Forms/FormVerify.Designer.cs create mode 100644 AuditoriumMS/Forms/FormVerify.cs create mode 100644 AuditoriumMS/Forms/FormVerify.resx create mode 100644 AuditoriumMS/Program.cs create mode 100644 AuditoriumMS/Properties/AssemblyInfo.cs create mode 100644 AuditoriumMS/Properties/Resources.Designer.cs create mode 100644 AuditoriumMS/Properties/Resources.resx create mode 100644 AuditoriumMS/Properties/Settings.Designer.cs create mode 100644 AuditoriumMS/Properties/Settings.settings create mode 100644 AuditoriumMS/UserControls/UCBooking.Designer.cs create mode 100644 AuditoriumMS/UserControls/UCBooking.cs create mode 100644 AuditoriumMS/UserControls/UCBooking.resx create mode 100644 AuditoriumMS/UserControls/UCModifyPassword.Designer.cs create mode 100644 AuditoriumMS/UserControls/UCModifyPassword.cs create mode 100644 AuditoriumMS/UserControls/UCModifyPassword.resx create mode 100644 AuditoriumMS/UserControls/UCNewAuditorium.Designer.cs create mode 100644 AuditoriumMS/UserControls/UCNewAuditorium.cs create mode 100644 AuditoriumMS/UserControls/UCNewAuditorium.resx create mode 100644 AuditoriumMS/UserControls/UCReservationInfoSelect.Designer.cs create mode 100644 AuditoriumMS/UserControls/UCReservationInfoSelect.cs create mode 100644 AuditoriumMS/UserControls/UCReservationInfoSelect.resx create mode 100644 AuditoriumMS/UserControls/UCSeatMap.Designer.cs create mode 100644 AuditoriumMS/UserControls/UCSeatMap.cs create mode 100644 AuditoriumMS/UserControls/UCSeatMap.resx create mode 100644 AuditoriumMS/UserControls/UCShowChart.Designer.cs create mode 100644 AuditoriumMS/UserControls/UCShowChart.cs create mode 100644 AuditoriumMS/UserControls/UCShowChart.resx create mode 100644 AuditoriumMS/UserControls/UCSummaryReport.Designer.cs create mode 100644 AuditoriumMS/UserControls/UCSummaryReport.cs create mode 100644 AuditoriumMS/UserControls/UCSummaryReport.resx create mode 100644 AuditoriumMS/UserControls/UCTicketCountSelect.Designer.cs create mode 100644 AuditoriumMS/UserControls/UCTicketCountSelect.cs create mode 100644 AuditoriumMS/UserControls/UCTicketCountSelect.resx create mode 100644 AuditoriumMS/UserControls/UCTicketCountStatistics.Designer.cs create mode 100644 AuditoriumMS/UserControls/UCTicketCountStatistics.cs create mode 100644 AuditoriumMS/UserControls/UCTicketCountStatistics.resx create mode 100644 AuditoriumMS/UserControls/UCTicketSelect.Designer.cs create mode 100644 AuditoriumMS/UserControls/UCTicketSelect.cs create mode 100644 AuditoriumMS/UserControls/UCTicketSelect.resx create mode 100644 AuditoriumMS/UserControls/UCTicketStatistics.Designer.cs create mode 100644 AuditoriumMS/UserControls/UCTicketStatistics.cs create mode 100644 AuditoriumMS/UserControls/UCTicketStatistics.resx create mode 100644 AuditoriumMS/bin/x86/Debug/AuditoriumMS.exe create mode 100644 AuditoriumMS/bin/x86/Debug/AuditoriumMS.pdb create mode 100644 AuditoriumMS/bin/x86/Debug/DbTicketing.accdb create mode 100644 AuditoriumMS/bin/x86/Release/AuditoriumMS.exe create mode 100644 AuditoriumMS/bin/x86/Release/AuditoriumMS.pdb create mode 100644 AuditoriumMS/bin/x86/Release/DbTicketing.accdb diff --git a/AuditoriumMS/Access.cs b/AuditoriumMS/Access.cs new file mode 100644 index 0000000..72bd11c --- /dev/null +++ b/AuditoriumMS/Access.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Data; +using System.Data.OleDb; + +namespace AuditoriumMS +{ + /// + /// 数据库连接类 + /// + public class Access + { + // 这里改成解决方案目录下那个accdb文件 ↓ + static string DbPath = @"F:\C#\培优礼堂票务管理系统\AuditoriumMS" + @"\DbTicketing.accdb"; + OleDbConnection oleDb = new OleDbConnection(string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}", DbPath)); + // 私有构造函数,单例实现 + private Access() + { + oleDb.Open(); + } + + private static Access access; + /// + /// 数据库连接对象 + /// + public static Access obj + { + get + { + if (access == null) + access = new Access(); + return access; + } + } + + /// + /// 得到DataTable 适用于查询语句 返回查询结果 + /// + public DataTable GetDataTable(string SQL) + { + OleDbDataAdapter dbDataAdapter = new OleDbDataAdapter(SQL, oleDb); + DataTable dt = new DataTable(); + dbDataAdapter.Fill(dt); + return dt; + } + + /// + /// 执行命令 适用于增删改 返回受影响行数 + /// + public int Execute(string SQL) + { + OleDbCommand oleDbCommand = new OleDbCommand(SQL, oleDb); + return oleDbCommand.ExecuteNonQuery(); + } + + /// + /// 字符串过滤,防止sql注入。 + /// + /// 参数 + /// 是否有敏感字符 + public static bool IsHasSQLInject(string str) + { + bool isHasSQLInject = false; + + //字符串中的关键字更具需要添加 + string inj_str = "'|and|exec|union|create|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare|xp_|or|--|+"; + str = str.ToLower().Trim(); + string[] inj_str_array = inj_str.Split('|'); + foreach (string sql in inj_str_array) + { + if (str.IndexOf(sql) > -1) + { + isHasSQLInject = true; + break; + } + } + return isHasSQLInject; + } + } +} diff --git a/AuditoriumMS/AuditoriumMS.csproj b/AuditoriumMS/AuditoriumMS.csproj new file mode 100644 index 0000000..e2b06ba --- /dev/null +++ b/AuditoriumMS/AuditoriumMS.csproj @@ -0,0 +1,229 @@ + + + + + Debug + AnyCPU + {131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75} + WinExe + AuditoriumMS + AuditoriumMS + v4.0 + 512 + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + true + bin\x86\Debug\ + DEBUG;TRACE + full + x86 + prompt + MinimumRecommendedRules.ruleset + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + + + + + + + + + + + + + + + + + + Form + + + FormMain.cs + + + Form + + + FormManageSystem.cs + + + Form + + + FormAdminLogin.cs + + + Form + + + FormVerify.cs + + + + + UserControl + + + UCBooking.cs + + + UserControl + + + UCModifyPassword.cs + + + UserControl + + + UCNewAuditorium.cs + + + UserControl + + + UCReservationInfoSelect.cs + + + UserControl + + + UCSeatMap.cs + + + UserControl + + + UCShowChart.cs + + + UserControl + + + UCSummaryReport.cs + + + UserControl + + + UCTicketCountSelect.cs + + + UserControl + + + UCTicketCountStatistics.cs + + + UserControl + + + UCTicketSelect.cs + + + UserControl + + + UCTicketStatistics.cs + + + FormMain.cs + + + FormManageSystem.cs + + + FormAdminLogin.cs + + + FormVerify.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + UCBooking.cs + + + UCModifyPassword.cs + + + UCNewAuditorium.cs + + + UCReservationInfoSelect.cs + + + UCSeatMap.cs + + + UCShowChart.cs + + + UCSummaryReport.cs + + + UCTicketCountSelect.cs + + + UCTicketCountStatistics.cs + + + UCTicketSelect.cs + + + UCTicketStatistics.cs + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + Always + + + + + \ No newline at end of file diff --git a/AuditoriumMS/AuditoriumMS.sln b/AuditoriumMS/AuditoriumMS.sln new file mode 100644 index 0000000..86bfdd8 --- /dev/null +++ b/AuditoriumMS/AuditoriumMS.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27130.2036 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AuditoriumMS", "AuditoriumMS.csproj", "{131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}.Debug|Any CPU.Build.0 = Debug|Any CPU + {131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}.Debug|x86.ActiveCfg = Debug|x86 + {131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}.Debug|x86.Build.0 = Debug|x86 + {131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}.Release|Any CPU.ActiveCfg = Release|Any CPU + {131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}.Release|Any CPU.Build.0 = Release|Any CPU + {131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}.Release|x86.ActiveCfg = Release|x86 + {131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {9550CF8D-9B77-4C4D-9CD9-E6AD30D1A9F0} + EndGlobalSection +EndGlobal diff --git a/AuditoriumMS/DbTicketing.accdb b/AuditoriumMS/DbTicketing.accdb new file mode 100644 index 0000000000000000000000000000000000000000..ac9a3f5646ef3d28b726ad6f8119633780ca1613 GIT binary patch literal 581632 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 + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btnManagement = new System.Windows.Forms.Button(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPageLecture = new System.Windows.Forms.TabPage(); + this.treeLecture = new System.Windows.Forms.TreeView(); + this.tabPageMovie = new System.Windows.Forms.TabPage(); + this.treeMovie = new System.Windows.Forms.TreeView(); + this.btnUpdate = new System.Windows.Forms.Button(); + this.btnBooking = new AuditoriumMS.UserControls.UCBooking(); + this.tabControl1.SuspendLayout(); + this.tabPageLecture.SuspendLayout(); + this.tabPageMovie.SuspendLayout(); + this.SuspendLayout(); + // + // btnManagement + // + this.btnManagement.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnManagement.Location = new System.Drawing.Point(1182, 13); + this.btnManagement.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.btnManagement.Name = "btnManagement"; + this.btnManagement.Size = new System.Drawing.Size(104, 30); + this.btnManagement.TabIndex = 1; + this.btnManagement.Text = "管理"; + this.btnManagement.UseVisualStyleBackColor = true; + this.btnManagement.Click += new System.EventHandler(this.btnManagement_Click); + // + // tabControl1 + // + this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.tabControl1.Controls.Add(this.tabPageLecture); + this.tabControl1.Controls.Add(this.tabPageMovie); + this.tabControl1.Location = new System.Drawing.Point(12, 13); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(186, 616); + this.tabControl1.TabIndex = 2; + // + // tabPageLecture + // + this.tabPageLecture.Controls.Add(this.treeLecture); + this.tabPageLecture.Location = new System.Drawing.Point(4, 26); + this.tabPageLecture.Name = "tabPageLecture"; + this.tabPageLecture.Padding = new System.Windows.Forms.Padding(3); + this.tabPageLecture.Size = new System.Drawing.Size(178, 586); + this.tabPageLecture.TabIndex = 0; + this.tabPageLecture.Text = "讲座"; + this.tabPageLecture.UseVisualStyleBackColor = true; + // + // treeLecture + // + this.treeLecture.Dock = System.Windows.Forms.DockStyle.Fill; + this.treeLecture.Location = new System.Drawing.Point(3, 3); + this.treeLecture.Name = "treeLecture"; + this.treeLecture.Size = new System.Drawing.Size(172, 580); + this.treeLecture.TabIndex = 0; + this.treeLecture.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView_NodeMouseClick); + // + // tabPageMovie + // + this.tabPageMovie.Controls.Add(this.treeMovie); + this.tabPageMovie.Location = new System.Drawing.Point(4, 26); + this.tabPageMovie.Name = "tabPageMovie"; + this.tabPageMovie.Padding = new System.Windows.Forms.Padding(3); + this.tabPageMovie.Size = new System.Drawing.Size(178, 586); + this.tabPageMovie.TabIndex = 1; + this.tabPageMovie.Text = "电影"; + this.tabPageMovie.UseVisualStyleBackColor = true; + // + // treeMovie + // + this.treeMovie.Dock = System.Windows.Forms.DockStyle.Fill; + this.treeMovie.Location = new System.Drawing.Point(3, 3); + this.treeMovie.Name = "treeMovie"; + this.treeMovie.Size = new System.Drawing.Size(172, 580); + this.treeMovie.TabIndex = 0; + this.treeMovie.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView_NodeMouseClick); + // + // btnUpdate + // + this.btnUpdate.Location = new System.Drawing.Point(116, 13); + this.btnUpdate.Name = "btnUpdate"; + this.btnUpdate.Size = new System.Drawing.Size(75, 23); + this.btnUpdate.TabIndex = 4; + this.btnUpdate.Text = "刷新"; + this.btnUpdate.UseVisualStyleBackColor = true; + this.btnUpdate.Click += new System.EventHandler(this.btnUpdate_Click); + // + // btnBooking + // + this.btnBooking.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.btnBooking.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnBooking.ID = 0; + this.btnBooking.Location = new System.Drawing.Point(200, 51); + this.btnBooking.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.btnBooking.Name = "btnBooking"; + this.btnBooking.Size = new System.Drawing.Size(1086, 578); + this.btnBooking.TabIndex = 3; + // + // FormMain + // + this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; + this.ClientSize = new System.Drawing.Size(1298, 645); + this.Controls.Add(this.btnUpdate); + this.Controls.Add(this.btnBooking); + this.Controls.Add(this.tabControl1); + this.Controls.Add(this.btnManagement); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.MinimumSize = new System.Drawing.Size(700, 500); + this.Name = "FormMain"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "培优礼堂票务管理系统"; + this.Load += new System.EventHandler(this.FormMain_Load); + this.tabControl1.ResumeLayout(false); + this.tabPageLecture.ResumeLayout(false); + this.tabPageMovie.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.Button btnManagement; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPageLecture; + private System.Windows.Forms.TreeView treeLecture; + private System.Windows.Forms.TabPage tabPageMovie; + private System.Windows.Forms.TreeView treeMovie; + private UserControls.UCBooking btnBooking; + private System.Windows.Forms.Button btnUpdate; + } +} \ No newline at end of file diff --git a/AuditoriumMS/FormMain.cs b/AuditoriumMS/FormMain.cs new file mode 100644 index 0000000..8bc9b95 --- /dev/null +++ b/AuditoriumMS/FormMain.cs @@ -0,0 +1,100 @@ +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; + +namespace AuditoriumMS +{ + public partial class FormMain : Form + { + public FormMain() + { + InitializeComponent(); + } + + private void btnManagement_Click(object sender, EventArgs e) + { + Forms.FormAdminLogin form = new Forms.FormAdminLogin(); + if (form.ShowDialog() == DialogResult.OK) + { + FormManageSystem formManageSystem = new FormManageSystem(); + formManageSystem.ShowDialog(); + } + } + + private void FormMain_Load(object sender, EventArgs e) + { + UpdateAuditoriumInfo(); + } + + /// + /// 更新礼堂信息 + /// + private void UpdateAuditoriumInfo() + { + try + { + treeLecture.Nodes.Clear(); + treeMovie.Nodes.Clear(); + DataTable dt = Access.obj.GetDataTable("SELECT ID,名称,开始时间,类型 FROM 礼堂表 WHERE 开始时间 > now() ORDER BY 开始时间"); + // 遍历每一场 + foreach (DataRow row in dt.Rows) + { + string nodeText = string.Format("{0} {1}", + Convert.ToDateTime(row["开始时间"]).ToString("HH:mm"), + row["名称"]); + TreeNode node = new TreeNode(nodeText); + node.Name = node.Text; + node.Tag = row["ID"]; + DateTime startTime = Convert.ToDateTime(row["开始时间"]); + string DateKey = string.Format("{0} {1}", startTime.ToString("yyyy-MM-dd"), startTime.DayOfWeek); + // DateTime.Now.DayOfWeek + if (row["类型"].ToString() == "讲座") + { + // 如果没有这一场的日期,则添加一个日期节点 + if (!treeLecture.Nodes.ContainsKey(DateKey)) + { + TreeNode PNode = new TreeNode(DateKey); + PNode.Name = DateKey; + treeLecture.Nodes.Add(PNode); + } + treeLecture.Nodes[DateKey].Nodes.Add(node); + } + else + { + // 如果没有这一场的日期,则添加一个日期节点 + if (!treeMovie.Nodes.ContainsKey(DateKey)) + { + TreeNode PNode = new TreeNode(DateKey); + PNode.Name = DateKey; + treeMovie.Nodes.Add(PNode); + } + treeMovie.Nodes[DateKey].Nodes.Add(node); + } + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + } + + private void treeView_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) + { + if (e.Node.Tag == null) + return; + + this.btnBooking.ID = Convert.ToInt32(e.Node.Tag); + } + + private void btnUpdate_Click(object sender, EventArgs e) + { + UpdateAuditoriumInfo(); + } + } +} diff --git a/AuditoriumMS/FormMain.resx b/AuditoriumMS/FormMain.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/AuditoriumMS/FormMain.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/AuditoriumMS/FormManageSystem.Designer.cs b/AuditoriumMS/FormManageSystem.Designer.cs new file mode 100644 index 0000000..f98a563 --- /dev/null +++ b/AuditoriumMS/FormManageSystem.Designer.cs @@ -0,0 +1,232 @@ +namespace AuditoriumMS +{ + partial class FormManageSystem + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.票务信息ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.新建ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.信息查询ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.票务信息查询ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.票务数量信息查询ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.预订信息查询ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.信息统计ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.票务信息统计ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.预订信息统计ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.图形展示ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.汇总报表ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.班级预订汇总ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.设置ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.修改密码ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.退出登录ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.panelMain = new System.Windows.Forms.Panel(); + this.menuStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // menuStrip1 + // + this.menuStrip1.Font = new System.Drawing.Font("微软雅黑", 9F); + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.票务信息ToolStripMenuItem, + this.信息查询ToolStripMenuItem, + this.信息统计ToolStripMenuItem, + this.汇总报表ToolStripMenuItem, + this.设置ToolStripMenuItem}); + this.menuStrip1.Location = new System.Drawing.Point(0, 0); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(884, 25); + this.menuStrip1.TabIndex = 0; + this.menuStrip1.Text = "menuStrip1"; + // + // 票务信息ToolStripMenuItem + // + this.票务信息ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.新建ToolStripMenuItem}); + this.票务信息ToolStripMenuItem.Name = "票务信息ToolStripMenuItem"; + this.票务信息ToolStripMenuItem.Size = new System.Drawing.Size(68, 21); + this.票务信息ToolStripMenuItem.Text = "票务信息"; + // + // 新建ToolStripMenuItem + // + this.新建ToolStripMenuItem.Name = "新建ToolStripMenuItem"; + this.新建ToolStripMenuItem.Size = new System.Drawing.Size(100, 22); + this.新建ToolStripMenuItem.Text = "新建"; + this.新建ToolStripMenuItem.Click += new System.EventHandler(this.新建ToolStripMenuItem_Click); + // + // 信息查询ToolStripMenuItem + // + this.信息查询ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.票务信息查询ToolStripMenuItem, + this.票务数量信息查询ToolStripMenuItem, + this.预订信息查询ToolStripMenuItem}); + this.信息查询ToolStripMenuItem.Name = "信息查询ToolStripMenuItem"; + this.信息查询ToolStripMenuItem.Size = new System.Drawing.Size(68, 21); + this.信息查询ToolStripMenuItem.Text = "信息查询"; + // + // 票务信息查询ToolStripMenuItem + // + this.票务信息查询ToolStripMenuItem.Name = "票务信息查询ToolStripMenuItem"; + this.票务信息查询ToolStripMenuItem.Size = new System.Drawing.Size(172, 22); + this.票务信息查询ToolStripMenuItem.Text = "票务信息查询"; + this.票务信息查询ToolStripMenuItem.Click += new System.EventHandler(this.票务信息查询ToolStripMenuItem_Click); + // + // 票务数量信息查询ToolStripMenuItem + // + this.票务数量信息查询ToolStripMenuItem.Name = "票务数量信息查询ToolStripMenuItem"; + this.票务数量信息查询ToolStripMenuItem.Size = new System.Drawing.Size(172, 22); + this.票务数量信息查询ToolStripMenuItem.Text = "票务数量信息查询"; + this.票务数量信息查询ToolStripMenuItem.Click += new System.EventHandler(this.票务数量信息查询ToolStripMenuItem_Click); + // + // 预订信息查询ToolStripMenuItem + // + this.预订信息查询ToolStripMenuItem.Name = "预订信息查询ToolStripMenuItem"; + this.预订信息查询ToolStripMenuItem.Size = new System.Drawing.Size(172, 22); + this.预订信息查询ToolStripMenuItem.Text = "预订信息查询"; + this.预订信息查询ToolStripMenuItem.Click += new System.EventHandler(this.预订信息查询ToolStripMenuItem_Click); + // + // 信息统计ToolStripMenuItem + // + this.信息统计ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.票务信息统计ToolStripMenuItem, + this.预订信息统计ToolStripMenuItem, + this.图形展示ToolStripMenuItem}); + this.信息统计ToolStripMenuItem.Name = "信息统计ToolStripMenuItem"; + this.信息统计ToolStripMenuItem.Size = new System.Drawing.Size(68, 21); + this.信息统计ToolStripMenuItem.Text = "信息统计"; + // + // 票务信息统计ToolStripMenuItem + // + this.票务信息统计ToolStripMenuItem.Name = "票务信息统计ToolStripMenuItem"; + this.票务信息统计ToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.票务信息统计ToolStripMenuItem.Text = "票务信息统计"; + this.票务信息统计ToolStripMenuItem.Click += new System.EventHandler(this.票务信息统计ToolStripMenuItem_Click); + // + // 预订信息统计ToolStripMenuItem + // + this.预订信息统计ToolStripMenuItem.Name = "预订信息统计ToolStripMenuItem"; + this.预订信息统计ToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.预订信息统计ToolStripMenuItem.Text = "预订信息统计"; + this.预订信息统计ToolStripMenuItem.Click += new System.EventHandler(this.预订信息统计ToolStripMenuItem_Click); + // + // 图形展示ToolStripMenuItem + // + this.图形展示ToolStripMenuItem.Name = "图形展示ToolStripMenuItem"; + this.图形展示ToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.图形展示ToolStripMenuItem.Text = "图形展示"; + this.图形展示ToolStripMenuItem.Click += new System.EventHandler(this.图形展示ToolStripMenuItem_Click); + // + // 汇总报表ToolStripMenuItem + // + this.汇总报表ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.班级预订汇总ToolStripMenuItem}); + this.汇总报表ToolStripMenuItem.Name = "汇总报表ToolStripMenuItem"; + this.汇总报表ToolStripMenuItem.Size = new System.Drawing.Size(92, 21); + this.汇总报表ToolStripMenuItem.Text = "班级汇总报表"; + // + // 班级预订汇总ToolStripMenuItem + // + this.班级预订汇总ToolStripMenuItem.Name = "班级预订汇总ToolStripMenuItem"; + this.班级预订汇总ToolStripMenuItem.Size = new System.Drawing.Size(124, 22); + this.班级预订汇总ToolStripMenuItem.Text = "输出报表"; + this.班级预订汇总ToolStripMenuItem.Click += new System.EventHandler(this.班级预订汇总ToolStripMenuItem_Click); + // + // 设置ToolStripMenuItem + // + this.设置ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.修改密码ToolStripMenuItem, + this.退出登录ToolStripMenuItem}); + this.设置ToolStripMenuItem.Name = "设置ToolStripMenuItem"; + this.设置ToolStripMenuItem.Size = new System.Drawing.Size(44, 21); + this.设置ToolStripMenuItem.Text = "设置"; + // + // 修改密码ToolStripMenuItem + // + this.修改密码ToolStripMenuItem.Name = "修改密码ToolStripMenuItem"; + this.修改密码ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.修改密码ToolStripMenuItem.Text = "修改密码"; + this.修改密码ToolStripMenuItem.Click += new System.EventHandler(this.修改密码ToolStripMenuItem_Click); + // + // 退出登录ToolStripMenuItem + // + this.退出登录ToolStripMenuItem.Name = "退出登录ToolStripMenuItem"; + this.退出登录ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.退出登录ToolStripMenuItem.Text = "退出登录"; + this.退出登录ToolStripMenuItem.Click += new System.EventHandler(this.退出登录ToolStripMenuItem_Click); + // + // panelMain + // + this.panelMain.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panelMain.BackColor = System.Drawing.Color.White; + this.panelMain.Location = new System.Drawing.Point(0, 28); + this.panelMain.Name = "panelMain"; + this.panelMain.Size = new System.Drawing.Size(884, 534); + this.panelMain.TabIndex = 1; + // + // FormManageSystem + // + this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; + this.ClientSize = new System.Drawing.Size(884, 561); + this.Controls.Add(this.panelMain); + this.Controls.Add(this.menuStrip1); + this.Font = new System.Drawing.Font("微软雅黑", 9F); + this.MainMenuStrip = this.menuStrip1; + this.MinimumSize = new System.Drawing.Size(900, 600); + this.Name = "FormManageSystem"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "培优礼堂票务管理系统 - 管理模式"; + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.MenuStrip menuStrip1; + private System.Windows.Forms.ToolStripMenuItem 信息查询ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 票务信息查询ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 票务数量信息查询ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 预订信息查询ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 信息统计ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 票务信息统计ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 预订信息统计ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 图形展示ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 汇总报表ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 班级预订汇总ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 票务信息ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 新建ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 设置ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 修改密码ToolStripMenuItem; + private System.Windows.Forms.Panel panelMain; + private System.Windows.Forms.ToolStripMenuItem 退出登录ToolStripMenuItem; + } +} \ No newline at end of file diff --git a/AuditoriumMS/FormManageSystem.cs b/AuditoriumMS/FormManageSystem.cs new file mode 100644 index 0000000..7cef29a --- /dev/null +++ b/AuditoriumMS/FormManageSystem.cs @@ -0,0 +1,79 @@ +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; + +namespace AuditoriumMS +{ + public partial class FormManageSystem : Form + { + public FormManageSystem() + { + InitializeComponent(); + this.panelMain.Controls.Add(new UserControls.UCNewAuditorium { Dock = DockStyle.Fill }); + } + + private void 新建ToolStripMenuItem_Click(object sender, EventArgs e) + { + this.panelMain.Controls.Clear(); + this.panelMain.Controls.Add(new UserControls.UCNewAuditorium { Dock = DockStyle.Fill }); + } + + private void 票务信息查询ToolStripMenuItem_Click(object sender, EventArgs e) + { + this.panelMain.Controls.Clear(); + this.panelMain.Controls.Add(new UserControls.UCTicketSelect { Dock = DockStyle.Fill }); + } + + private void 票务数量信息查询ToolStripMenuItem_Click(object sender, EventArgs e) + { + this.panelMain.Controls.Clear(); + this.panelMain.Controls.Add(new UserControls.UCTicketCountSelect { Dock = DockStyle.Fill }); + } + + private void 预订信息查询ToolStripMenuItem_Click(object sender, EventArgs e) + { + this.panelMain.Controls.Clear(); + this.panelMain.Controls.Add(new UserControls.UCReservationInfoSelect { Dock = DockStyle.Fill }); + } + + private void 票务信息统计ToolStripMenuItem_Click(object sender, EventArgs e) + { + this.panelMain.Controls.Clear(); + this.panelMain.Controls.Add(new UserControls.UCTicketStatistics { Dock = DockStyle.Fill }); + } + + private void 预订信息统计ToolStripMenuItem_Click(object sender, EventArgs e) + { + this.panelMain.Controls.Clear(); + this.panelMain.Controls.Add(new UserControls.UCTicketCountStatistics { Dock = DockStyle.Fill }); + } + + private void 图形展示ToolStripMenuItem_Click(object sender, EventArgs e) + { + this.panelMain.Controls.Clear(); + this.panelMain.Controls.Add(new UserControls.UCShowChart { Dock = DockStyle.Fill }); + } + + private void 班级预订汇总ToolStripMenuItem_Click(object sender, EventArgs e) + { + this.panelMain.Controls.Clear(); + this.panelMain.Controls.Add(new UserControls.UCSummaryReport { Dock = DockStyle.Fill }); + } + + private void 修改密码ToolStripMenuItem_Click(object sender, EventArgs e) + { + this.panelMain.Controls.Clear(); + this.panelMain.Controls.Add(new UserControls.UCModifyPassword { Dock = DockStyle.Fill }); + } + + private void 退出登录ToolStripMenuItem_Click(object sender, EventArgs e) + { + this.Close(); + } + } +} diff --git a/AuditoriumMS/FormManageSystem.resx b/AuditoriumMS/FormManageSystem.resx new file mode 100644 index 0000000..48af572 --- /dev/null +++ b/AuditoriumMS/FormManageSystem.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 25 + + \ No newline at end of file diff --git a/AuditoriumMS/Forms/FormAdminLogin.Designer.cs b/AuditoriumMS/Forms/FormAdminLogin.Designer.cs new file mode 100644 index 0000000..a3c5f01 --- /dev/null +++ b/AuditoriumMS/Forms/FormAdminLogin.Designer.cs @@ -0,0 +1,112 @@ +namespace AuditoriumMS.Forms +{ + partial class FormAdminLogin + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btnEnter = new System.Windows.Forms.Button(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.txtAdminPassword = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // btnEnter + // + this.btnEnter.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.btnEnter.Location = new System.Drawing.Point(130, 212); + this.btnEnter.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.btnEnter.Name = "btnEnter"; + this.btnEnter.Size = new System.Drawing.Size(214, 44); + this.btnEnter.TabIndex = 7; + this.btnEnter.Text = "进入管理模式"; + this.btnEnter.UseVisualStyleBackColor = true; + this.btnEnter.Click += new System.EventHandler(this.btnEnter_Click); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(90, 126); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(80, 17); + this.label2.TabIndex = 6; + this.label2.Text = "管理员密码:"; + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("微软雅黑", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.label1.Location = new System.Drawing.Point(30, 44); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(412, 27); + this.label1.TabIndex = 5; + this.label1.Text = "欢迎进入培优礼堂票务信息管理系统管理模式"; + // + // txtAdminPassword + // + this.txtAdminPassword.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtAdminPassword.Location = new System.Drawing.Point(176, 123); + this.txtAdminPassword.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6); + this.txtAdminPassword.Name = "txtAdminPassword"; + this.txtAdminPassword.PasswordChar = '*'; + this.txtAdminPassword.Size = new System.Drawing.Size(206, 23); + this.txtAdminPassword.TabIndex = 4; + // + // FormAdminLogin + // + this.AcceptButton = this.btnEnter; + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(472, 299); + this.Controls.Add(this.btnEnter); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.txtAdminPassword); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FormAdminLogin"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "管理员登录"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnEnter; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox txtAdminPassword; + } +} \ No newline at end of file diff --git a/AuditoriumMS/Forms/FormAdminLogin.cs b/AuditoriumMS/Forms/FormAdminLogin.cs new file mode 100644 index 0000000..94008c7 --- /dev/null +++ b/AuditoriumMS/Forms/FormAdminLogin.cs @@ -0,0 +1,45 @@ +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; + +namespace AuditoriumMS.Forms +{ + public partial class FormAdminLogin : Form + { + public FormAdminLogin() + { + InitializeComponent(); + } + + private void btnEnter_Click(object sender, EventArgs e) + { + string password = txtAdminPassword.Text; + if (string.IsNullOrEmpty(password)) + { + MessageBox.Show("请输入管理员密码!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + try + { + DataTable dt = Access.obj.GetDataTable("SELECT * FROM 管理员密码"); + string adminPassword = dt.Rows[0][0].ToString(); + if (password == adminPassword) + this.DialogResult = DialogResult.OK; + else + MessageBox.Show("密码错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + + } + } +} diff --git a/AuditoriumMS/Forms/FormAdminLogin.resx b/AuditoriumMS/Forms/FormAdminLogin.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/AuditoriumMS/Forms/FormAdminLogin.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/AuditoriumMS/Forms/FormVerify.Designer.cs b/AuditoriumMS/Forms/FormVerify.Designer.cs new file mode 100644 index 0000000..1962720 --- /dev/null +++ b/AuditoriumMS/Forms/FormVerify.Designer.cs @@ -0,0 +1,113 @@ +namespace AuditoriumMS.Forms +{ + partial class FormVerift + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.txtNumber = new System.Windows.Forms.TextBox(); + this.txtName = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.btnAccept = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // txtNumber + // + this.txtNumber.Location = new System.Drawing.Point(114, 72); + this.txtNumber.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.txtNumber.Name = "txtNumber"; + this.txtNumber.Size = new System.Drawing.Size(152, 23); + this.txtNumber.TabIndex = 0; + // + // txtName + // + this.txtName.Location = new System.Drawing.Point(114, 115); + this.txtName.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.txtName.Name = "txtName"; + this.txtName.Size = new System.Drawing.Size(152, 23); + this.txtName.TabIndex = 1; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(59, 76); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(44, 17); + this.label1.TabIndex = 2; + this.label1.Text = "学号:"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(59, 119); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(44, 17); + this.label2.TabIndex = 2; + this.label2.Text = "姓名:"; + // + // btnAccept + // + this.btnAccept.Location = new System.Drawing.Point(219, 189); + this.btnAccept.Name = "btnAccept"; + this.btnAccept.Size = new System.Drawing.Size(102, 34); + this.btnAccept.TabIndex = 3; + this.btnAccept.Text = "确认"; + this.btnAccept.UseVisualStyleBackColor = true; + this.btnAccept.Click += new System.EventHandler(this.btnAccept_Click); + // + // FormVerift + // + this.AcceptButton = this.btnAccept; + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(333, 235); + this.Controls.Add(this.btnAccept); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.txtName); + this.Controls.Add(this.txtNumber); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FormVerift"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "学生身份验证"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox txtNumber; + private System.Windows.Forms.TextBox txtName; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button btnAccept; + } +} \ No newline at end of file diff --git a/AuditoriumMS/Forms/FormVerify.cs b/AuditoriumMS/Forms/FormVerify.cs new file mode 100644 index 0000000..4e57d7c --- /dev/null +++ b/AuditoriumMS/Forms/FormVerify.cs @@ -0,0 +1,61 @@ +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; + +namespace AuditoriumMS.Forms +{ + public partial class FormVerift : Form + { + public FormVerift() + { + InitializeComponent(); + } + + private void btnAccept_Click(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(this.txtNumber.Text)) + { + MessageBox.Show("请输入学号!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + if (string.IsNullOrEmpty(this.txtName.Text)) + { + MessageBox.Show("请输入姓名!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + // SQL防注入 + if (Access.IsHasSQLInject(this.txtNumber.Text) + || Access.IsHasSQLInject(this.txtName.Text)) + { + MessageBox.Show("格式错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + string sql = string.Format("SELECT 1 FROM [学生表] WHERE [学号]={0} AND [姓名]='{1}'", + this.txtNumber.Text, this.txtName.Text); + try + { + DataTable dt = Access.obj.GetDataTable(sql); + if (dt == null || dt.Rows.Count < 1) + { + MessageBox.Show("无该学生!请输入正确的信息", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + // 用来返回购票学生学号 + this.Tag = this.txtNumber.Text; + this.DialogResult = DialogResult.OK; + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } +} diff --git a/AuditoriumMS/Forms/FormVerify.resx b/AuditoriumMS/Forms/FormVerify.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/AuditoriumMS/Forms/FormVerify.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/AuditoriumMS/Program.cs b/AuditoriumMS/Program.cs new file mode 100644 index 0000000..aec1730 --- /dev/null +++ b/AuditoriumMS/Program.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace AuditoriumMS +{ + static class Program + { + public const int AuditoriumSeatColumnsCount = 10; + public const int AuditoriumSeatRowsCount = 10; + + /// + /// 应用程序的主入口点。 + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new FormMain()); + } + } +} diff --git a/AuditoriumMS/Properties/AssemblyInfo.cs b/AuditoriumMS/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..86b499f --- /dev/null +++ b/AuditoriumMS/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的一般信息由以下 +// 控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("AuditoriumMS")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("AuditoriumMS")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 会使此程序集中的类型 +//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 +//请将此类型的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("131a3e33-bcf0-4e9c-bf60-5f97ddb4fa75")] + +// 程序集的版本信息由下列四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 +// 方法是按如下所示使用“*”: : +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/AuditoriumMS/Properties/Resources.Designer.cs b/AuditoriumMS/Properties/Resources.Designer.cs new file mode 100644 index 0000000..11dd423 --- /dev/null +++ b/AuditoriumMS/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本: 4.0.30319.42000 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace AuditoriumMS.Properties +{ + + + /// + /// 强类型资源类,用于查找本地化字符串等。 + /// + // 此类是由 StronglyTypedResourceBuilder + // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 + // 若要添加或删除成员,请编辑 .ResX 文件,然后重新运行 ResGen + // (以 /str 作为命令选项),或重新生成 VS 项目。 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// 返回此类使用的缓存 ResourceManager 实例。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AuditoriumMS.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 覆盖当前线程的 CurrentUICulture 属性 + /// 使用此强类型的资源类的资源查找。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/AuditoriumMS/Properties/Resources.resx b/AuditoriumMS/Properties/Resources.resx new file mode 100644 index 0000000..ffecec8 --- /dev/null +++ b/AuditoriumMS/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/AuditoriumMS/Properties/Settings.Designer.cs b/AuditoriumMS/Properties/Settings.Designer.cs new file mode 100644 index 0000000..759f47b --- /dev/null +++ b/AuditoriumMS/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace AuditoriumMS.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/AuditoriumMS/Properties/Settings.settings b/AuditoriumMS/Properties/Settings.settings new file mode 100644 index 0000000..abf36c5 --- /dev/null +++ b/AuditoriumMS/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/AuditoriumMS/UserControls/UCBooking.Designer.cs b/AuditoriumMS/UserControls/UCBooking.Designer.cs new file mode 100644 index 0000000..832c55d --- /dev/null +++ b/AuditoriumMS/UserControls/UCBooking.Designer.cs @@ -0,0 +1,261 @@ +namespace AuditoriumMS.UserControls +{ + partial class UCBooking + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 组件设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要修改 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.ucSeatMap1 = new AuditoriumMS.UserControls.UCSeatMap(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.lblTitle = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.lblDate = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.lblPrice = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.lblTime = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.lblTotal = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.lblRemaining = new System.Windows.Forms.Label(); + this.lblPrompt = new System.Windows.Forms.Label(); + this.btnBooking = new System.Windows.Forms.Button(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.SuspendLayout(); + // + // ucSeatMap1 + // + this.ucSeatMap1.Dock = System.Windows.Forms.DockStyle.Fill; + this.ucSeatMap1.Location = new System.Drawing.Point(3, 19); + this.ucSeatMap1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.ucSeatMap1.MinimumSize = new System.Drawing.Size(200, 100); + this.ucSeatMap1.Name = "ucSeatMap1"; + this.ucSeatMap1.Size = new System.Drawing.Size(641, 213); + this.ucSeatMap1.TabIndex = 0; + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.ucSeatMap1); + this.groupBox1.Location = new System.Drawing.Point(3, 256); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(647, 235); + this.groupBox1.TabIndex = 1; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "座位分布图"; + // + // lblTitle + // + this.lblTitle.AutoSize = true; + this.lblTitle.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lblTitle.Location = new System.Drawing.Point(46, 28); + this.lblTitle.Name = "lblTitle"; + this.lblTitle.Size = new System.Drawing.Size(110, 31); + this.lblTitle.TabIndex = 2; + this.lblTitle.Text = "名家礼堂"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label2.Location = new System.Drawing.Point(48, 82); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(58, 21); + this.label2.TabIndex = 3; + this.label2.Text = "日期:"; + // + // lblDate + // + this.lblDate.AutoSize = true; + this.lblDate.Font = new System.Drawing.Font("微软雅黑", 12F); + this.lblDate.Location = new System.Drawing.Point(112, 82); + this.lblDate.Name = "lblDate"; + this.lblDate.Size = new System.Drawing.Size(0, 21); + this.lblDate.TabIndex = 4; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label4.Location = new System.Drawing.Point(48, 144); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(58, 21); + this.label4.TabIndex = 5; + this.label4.Text = "票价:"; + // + // lblPrice + // + this.lblPrice.AutoSize = true; + this.lblPrice.Font = new System.Drawing.Font("微软雅黑", 12F); + this.lblPrice.Location = new System.Drawing.Point(112, 144); + this.lblPrice.Name = "lblPrice"; + this.lblPrice.Size = new System.Drawing.Size(0, 21); + this.lblPrice.TabIndex = 6; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label6.Location = new System.Drawing.Point(48, 113); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(58, 21); + this.label6.TabIndex = 3; + this.label6.Text = "时间:"; + // + // lblTime + // + this.lblTime.AutoSize = true; + this.lblTime.Font = new System.Drawing.Font("微软雅黑", 12F); + this.lblTime.Location = new System.Drawing.Point(112, 113); + this.lblTime.Name = "lblTime"; + this.lblTime.Size = new System.Drawing.Size(0, 21); + this.lblTime.TabIndex = 4; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label8.Location = new System.Drawing.Point(32, 175); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(74, 21); + this.label8.TabIndex = 5; + this.label8.Text = "总票数:"; + // + // lblTotal + // + this.lblTotal.AutoSize = true; + this.lblTotal.Font = new System.Drawing.Font("微软雅黑", 12F); + this.lblTotal.Location = new System.Drawing.Point(112, 175); + this.lblTotal.Name = "lblTotal"; + this.lblTotal.Size = new System.Drawing.Size(0, 21); + this.lblTotal.TabIndex = 6; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label10.Location = new System.Drawing.Point(16, 206); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(90, 21); + this.label10.TabIndex = 5; + this.label10.Text = "剩余票数:"; + // + // lblRemaining + // + this.lblRemaining.AutoSize = true; + this.lblRemaining.Font = new System.Drawing.Font("微软雅黑", 12F); + this.lblRemaining.Location = new System.Drawing.Point(112, 206); + this.lblRemaining.Name = "lblRemaining"; + this.lblRemaining.Size = new System.Drawing.Size(0, 21); + this.lblRemaining.TabIndex = 6; + // + // lblPrompt + // + this.lblPrompt.AutoSize = true; + this.lblPrompt.ForeColor = System.Drawing.Color.Red; + this.lblPrompt.Location = new System.Drawing.Point(174, 148); + this.lblPrompt.Name = "lblPrompt"; + this.lblPrompt.Size = new System.Drawing.Size(260, 17); + this.lblPrompt.TabIndex = 6; + this.lblPrompt.Text = "请注意:该场为校园内部观看,采取实名制订票"; + this.lblPrompt.Visible = false; + // + // btnBooking + // + this.btnBooking.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnBooking.Location = new System.Drawing.Point(485, 159); + this.btnBooking.Name = "btnBooking"; + this.btnBooking.Size = new System.Drawing.Size(150, 72); + this.btnBooking.TabIndex = 7; + this.btnBooking.Text = "订票"; + this.btnBooking.UseVisualStyleBackColor = true; + this.btnBooking.Click += new System.EventHandler(this.btnBooking_Click); + // + // groupBox2 + // + this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox2.Controls.Add(this.lblTitle); + this.groupBox2.Controls.Add(this.btnBooking); + this.groupBox2.Controls.Add(this.label2); + this.groupBox2.Controls.Add(this.lblPrompt); + this.groupBox2.Controls.Add(this.label6); + this.groupBox2.Controls.Add(this.lblRemaining); + this.groupBox2.Controls.Add(this.lblDate); + this.groupBox2.Controls.Add(this.lblTotal); + this.groupBox2.Controls.Add(this.lblTime); + this.groupBox2.Controls.Add(this.lblPrice); + this.groupBox2.Controls.Add(this.label4); + this.groupBox2.Controls.Add(this.label10); + this.groupBox2.Controls.Add(this.label8); + this.groupBox2.Location = new System.Drawing.Point(6, 13); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(641, 237); + this.groupBox2.TabIndex = 8; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "场次信息"; + // + // UCBooking + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.Name = "UCBooking"; + this.Size = new System.Drawing.Size(653, 494); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private UCSeatMap ucSeatMap1; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label lblTitle; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label lblDate; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label lblPrice; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label lblTime; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label lblTotal; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label lblRemaining; + private System.Windows.Forms.Label lblPrompt; + private System.Windows.Forms.Button btnBooking; + private System.Windows.Forms.GroupBox groupBox2; + } +} diff --git a/AuditoriumMS/UserControls/UCBooking.cs b/AuditoriumMS/UserControls/UCBooking.cs new file mode 100644 index 0000000..8e692c3 --- /dev/null +++ b/AuditoriumMS/UserControls/UCBooking.cs @@ -0,0 +1,295 @@ +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; + +namespace AuditoriumMS.UserControls +{ + public partial class UCBooking : UserControl + { + public UCBooking() + { + InitializeComponent(); + // 座位被选中事件 + this.ucSeatMap1.SelectedEvent += UcSeatMap1_SelectedEvent; + } + + private void UcSeatMap1_SelectedEvent(object sender, Point point) + { + if (this.ID == 0) + return; + Booking(point); + } + #region 属性 + private int _ID; + public int ID + { + set + { + _ID = value; + this.UpdateInfo(value); + } + get + { + return _ID; + } + } + + private string Title + { + get + { + return this.lblTitle.Text; + } + set + { + this.lblTitle.Text = value; + } + } + private DateTime _startTIme; + private DateTime StartTIme + { + get + { + return _startTIme; + } + set + { + _startTIme = value; + this.lblDate.Text = string.Format("{0} {1}", + value.ToString("yyyy-MM-dd"), + value.DayOfWeek); + this.lblTime.Text = value.ToString("HH:mm"); + } + } + private string _type; + private string Type + { + get + { + return _type; + } + set + { + _type = value; + } + } + private int _price; + private int Price + { + get + { + return _price; + } + set + { + _price = value; + if (value == 0) + { + this.lblPrice.Text = "免费"; + this.lblPrompt.Visible = true; + } + else + { + this.lblPrice.Text = string.Format("{0}元", value); + this.lblPrompt.Visible = false; + } + } + } + private int _total; + private int Total + { + get + { + return _total; + } + set + { + _total = value; + this.lblTotal.Text = value.ToString(); + } + } + private int _count; + private int Count + { + get + { + return _count; + } + set + { + _count = value; + this.lblRemaining.Text = (Total - value).ToString(); + } + } + #endregion + + private bool[,] seatMap; + + /// + /// 更新显示信息 + /// + /// 场次ID + private void UpdateInfo(int id) + { + if (id == 0) return; + try + { + string sql = string.Format("SELECT * FROM 礼堂表 WHERE ID={0}", id); + DataTable dt = Access.obj.GetDataTable(sql); + if (dt == null || dt.Rows.Count < 1) + { + MessageBox.Show("未获取到数据!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + this.Title = dt.Rows[0]["名称"].ToString(); + this.StartTIme = Convert.ToDateTime(dt.Rows[0]["开始时间"]); + this.Price = Convert.ToInt32(dt.Rows[0]["票价"]); + this.Type = dt.Rows[0]["类型"].ToString(); + this.Total = Convert.ToInt32(dt.Rows[0]["票数"]); + + + sql = string.Format("SELECT 排,列 FROM 票务表 WHERE 礼堂ID={0}", id); + DataTable seatDT = Access.obj.GetDataTable(sql); + this.seatMap = new bool[Program.AuditoriumSeatRowsCount, Program.AuditoriumSeatColumnsCount]; + for (int i = 0; i < Program.AuditoriumSeatRowsCount; ++i) + for (int j = 0; j < Program.AuditoriumSeatColumnsCount; ++j) + seatMap[i,j] = false; + + this.Count = seatDT.Rows.Count; + List seatList = new List(); + foreach (DataRow row in seatDT.Rows) + { + Point p = new Point(Convert.ToInt32(row["排"]), Convert.ToInt32(row["列"])); + seatMap[p.X - 1, p.Y - 1] = true; + seatList.Add(p); + } + + this.ucSeatMap1.SetValue(seatList, Convert.ToInt32(dt.Rows[0]["票数"])); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + + private bool Booking(Point point) + { + if (point.X == 0) + return false; + int id = 0; + + // 免费为对校内开放,需要提供实名认证 + if (this.Price == 0) + { + Forms.FormVerift formVerift = new Forms.FormVerift(); + if (formVerift.ShowDialog() == DialogResult.OK) + { + id = Convert.ToInt32(formVerift.Tag); + string sql = string.Format("SELECT 排,列,购票时间 FROM 票务表 WHERE 购买者ID={0} AND 礼堂ID={1}", + id, this.ID); + try + { + DataTable dt = Access.obj.GetDataTable(sql); + if (dt != null && dt.Rows.Count > 0) + { + MessageBox.Show(string.Format("你在{0}已经买过本场的票,座位号:{1:00}-{2:00}", + Convert.ToDateTime(dt.Rows[0]["购票时间"]).ToString("yyyy-MM-dd HH:mm"), + dt.Rows[0]["排"], dt.Rows[0]["列"]), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + else + { + return false; + } + } + InsertTicketInfo(point, id); + UpdateInfo(this.ID); + + // 每张票上的信息包括日期(年、月、日)、星期、时间(时、分)、排、号、类型、票价、编号,以及“名家礼堂”这一固定名称。 + MessageBox.Show(string.Format("订票成功,座位号为:{0:00}-{1:00}", point.X, point.Y), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + PrintTicket(point); + return true; + } + + /// + /// 打印票据 + /// + /// 座位坐标 + private void PrintTicket(Point point) + { + SaveFileDialog save = new SaveFileDialog(); + save.Filter = "票据文件|*.txt"; + if (MessageBox.Show("请问是否打印票据信息?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) + return; + if (save.ShowDialog() != DialogResult.OK) + return; + string savePath = save.FileName; + using (System.IO.FileStream file = new System.IO.FileStream(savePath, System.IO.FileMode.Create, System.IO.FileAccess.Write)) + { + using (System.IO.TextWriter text = new System.IO.StreamWriter(file, System.Text.Encoding.Default)) + { + text.Write(string.Format("日期:{0}\t星期:{1}\t时间:{2}\t排:{3}\t号:{4}\t类型:{5}\t票价:{6}\t编号:{7}\t名称:{8}", + this.StartTIme.ToShortDateString(), this.StartTIme.DayOfWeek, this.StartTIme.ToShortTimeString(), + point.X, point.Y, this.Type, this.Price, this.ID, this.Title)); + } + } + } + + /// + /// 插入票据信息 + /// + /// 座位 + /// 购买者ID(外来人为0) + private void InsertTicketInfo(Point p, int id) + { + string sql = string.Format("INSERT INTO 票务表(排,列,礼堂ID,购买者ID) VALUES({0}, {1}, {2}, {3})", p.X, p.Y, this.ID, id); + try + { + int n = Access.obj.Execute(sql); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + /// + /// 寻找空座位 + /// + /// 空位坐标 + private Point FindVacancy() + { + for (int i = 0; i < Program.AuditoriumSeatRowsCount; ++i) + for (int j = 0; j < Program.AuditoriumSeatColumnsCount; ++j) + if (this.seatMap[i, j] == false) + return new Point(i + 1, j + 1); + return new Point(0, 0); + } + + private void btnBooking_Click(object sender, EventArgs e) + { + if (this.ID == 0) + return; + + if (this.Count == this.Total) + { + MessageBox.Show("没有余票", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + Booking(FindVacancy()); + } + } +} diff --git a/AuditoriumMS/UserControls/UCBooking.resx b/AuditoriumMS/UserControls/UCBooking.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/AuditoriumMS/UserControls/UCBooking.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/AuditoriumMS/UserControls/UCModifyPassword.Designer.cs b/AuditoriumMS/UserControls/UCModifyPassword.Designer.cs new file mode 100644 index 0000000..aac222b --- /dev/null +++ b/AuditoriumMS/UserControls/UCModifyPassword.Designer.cs @@ -0,0 +1,152 @@ +namespace AuditoriumMS.UserControls +{ + partial class UCModifyPassword + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 组件设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要修改 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.txtOldPassword = new System.Windows.Forms.TextBox(); + this.txtNewPassword = new System.Windows.Forms.TextBox(); + this.txtNewPassword1 = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.btnAccept = new System.Windows.Forms.Button(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // txtOldPassword + // + this.txtOldPassword.Location = new System.Drawing.Point(191, 116); + this.txtOldPassword.Name = "txtOldPassword"; + this.txtOldPassword.PasswordChar = '*'; + this.txtOldPassword.Size = new System.Drawing.Size(189, 34); + this.txtOldPassword.TabIndex = 0; + // + // txtNewPassword + // + this.txtNewPassword.Location = new System.Drawing.Point(191, 156); + this.txtNewPassword.Name = "txtNewPassword"; + this.txtNewPassword.PasswordChar = '*'; + this.txtNewPassword.Size = new System.Drawing.Size(189, 34); + this.txtNewPassword.TabIndex = 0; + // + // txtNewPassword1 + // + this.txtNewPassword1.Location = new System.Drawing.Point(191, 196); + this.txtNewPassword1.Name = "txtNewPassword1"; + this.txtNewPassword1.PasswordChar = '*'; + this.txtNewPassword1.Size = new System.Drawing.Size(189, 34); + this.txtNewPassword1.TabIndex = 0; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("微软雅黑", 13F); + this.label1.Location = new System.Drawing.Point(121, 122); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(64, 24); + this.label1.TabIndex = 1; + this.label1.Text = "旧密码"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("微软雅黑", 13F); + this.label2.Location = new System.Drawing.Point(121, 162); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(64, 24); + this.label2.TabIndex = 2; + this.label2.Text = "新密码"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("微软雅黑", 13F); + this.label3.Location = new System.Drawing.Point(85, 202); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(100, 24); + this.label3.TabIndex = 2; + this.label3.Text = "确认新密码"; + // + // groupBox1 + // + this.groupBox1.Anchor = System.Windows.Forms.AnchorStyles.None; + this.groupBox1.Controls.Add(this.btnAccept); + this.groupBox1.Controls.Add(this.txtOldPassword); + this.groupBox1.Controls.Add(this.label2); + this.groupBox1.Controls.Add(this.txtNewPassword1); + this.groupBox1.Controls.Add(this.label3); + this.groupBox1.Controls.Add(this.txtNewPassword); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Font = new System.Drawing.Font("微软雅黑", 15F, System.Drawing.FontStyle.Bold); + this.groupBox1.Location = new System.Drawing.Point(183, 106); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(518, 323); + this.groupBox1.TabIndex = 3; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "修改密码"; + // + // btnAccept + // + this.btnAccept.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnAccept.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold); + this.btnAccept.Location = new System.Drawing.Point(385, 266); + this.btnAccept.Name = "btnAccept"; + this.btnAccept.Size = new System.Drawing.Size(115, 38); + this.btnAccept.TabIndex = 3; + this.btnAccept.Text = "确认"; + this.btnAccept.UseVisualStyleBackColor = true; + this.btnAccept.Click += new System.EventHandler(this.btnAccept_Click); + // + // UCModifyPassword + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.groupBox1); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.Name = "UCModifyPassword"; + this.Size = new System.Drawing.Size(884, 534); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TextBox txtOldPassword; + private System.Windows.Forms.TextBox txtNewPassword; + private System.Windows.Forms.TextBox txtNewPassword1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button btnAccept; + } +} diff --git a/AuditoriumMS/UserControls/UCModifyPassword.cs b/AuditoriumMS/UserControls/UCModifyPassword.cs new file mode 100644 index 0000000..4b016c5 --- /dev/null +++ b/AuditoriumMS/UserControls/UCModifyPassword.cs @@ -0,0 +1,68 @@ +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; + +namespace AuditoriumMS.UserControls +{ + public partial class UCModifyPassword : UserControl + { + public UCModifyPassword() + { + InitializeComponent(); + } + + private void btnAccept_Click(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(this.txtOldPassword.Text) + || string.IsNullOrEmpty(this.txtNewPassword.Text) + || string.IsNullOrEmpty(this.txtNewPassword1.Text)) + { + MessageBox.Show("不能为空!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + if (Access.IsHasSQLInject(this.txtOldPassword.Text) + || Access.IsHasSQLInject(this.txtNewPassword.Text) + || Access.IsHasSQLInject(this.txtNewPassword1.Text)) + { + MessageBox.Show("禁止输入非法字符!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + if (this.txtNewPassword.Text != this.txtNewPassword1.Text) + { + MessageBox.Show("两次密码不相同!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + string sql = string.Format("UPDATE 管理员密码 SET [密码]='{0}' WHERE [密码]='{1}'", + this.txtNewPassword.Text, this.txtOldPassword.Text); + try + { + int n = Access.obj.Execute(sql); + if (n == 0) + { + MessageBox.Show("旧密码错误,修改失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + else + { + this.txtNewPassword.Text = ""; + this.txtNewPassword1.Text = ""; + this.txtOldPassword.Text = ""; + MessageBox.Show("密码修改成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } +} diff --git a/AuditoriumMS/UserControls/UCModifyPassword.resx b/AuditoriumMS/UserControls/UCModifyPassword.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/AuditoriumMS/UserControls/UCModifyPassword.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/AuditoriumMS/UserControls/UCNewAuditorium.Designer.cs b/AuditoriumMS/UserControls/UCNewAuditorium.Designer.cs new file mode 100644 index 0000000..c65e0e0 --- /dev/null +++ b/AuditoriumMS/UserControls/UCNewAuditorium.Designer.cs @@ -0,0 +1,359 @@ +namespace AuditoriumMS.UserControls +{ + partial class UCNewAuditorium + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 组件设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要修改 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.DTPStartTIme = new System.Windows.Forms.DateTimePicker(); + this.cmbType = new System.Windows.Forms.ComboBox(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.btnNew = new System.Windows.Forms.Button(); + this.label6 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.NUDNumber = new System.Windows.Forms.NumericUpDown(); + this.NUDPrice = new System.Windows.Forms.NumericUpDown(); + this.NUDHour = new System.Windows.Forms.NumericUpDown(); + this.NUDMinute = new System.Windows.Forms.NumericUpDown(); + this.label9 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.label12 = new System.Windows.Forms.Label(); + this.txtTitle = new System.Windows.Forms.TextBox(); + ((System.ComponentModel.ISupportInitialize)(this.NUDNumber)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUDPrice)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUDHour)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUDMinute)).BeginInit(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label1.Location = new System.Drawing.Point(86, 156); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(74, 21); + this.label1.TabIndex = 0; + this.label1.Text = "总票数:"; + // + // DTPStartTIme + // + this.DTPStartTIme.Location = new System.Drawing.Point(166, 218); + this.DTPStartTIme.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.DTPStartTIme.Name = "DTPStartTIme"; + this.DTPStartTIme.Size = new System.Drawing.Size(180, 23); + this.DTPStartTIme.TabIndex = 3; + // + // cmbType + // + this.cmbType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbType.FormattingEnabled = true; + this.cmbType.Items.AddRange(new object[] { + "讲座", + "电影"}); + this.cmbType.Location = new System.Drawing.Point(166, 282); + this.cmbType.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.cmbType.Name = "cmbType"; + this.cmbType.Size = new System.Drawing.Size(180, 25); + this.cmbType.TabIndex = 4; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label2.Location = new System.Drawing.Point(70, 219); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(90, 21); + this.label2.TabIndex = 0; + this.label2.Text = "开始日期:"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label3.Location = new System.Drawing.Point(102, 281); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(58, 21); + this.label3.TabIndex = 0; + this.label3.Text = "类型:"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label4.Location = new System.Drawing.Point(102, 186); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(58, 21); + this.label4.TabIndex = 0; + this.label4.Text = "票价:"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label5.Location = new System.Drawing.Point(128, 59); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(158, 31); + this.label5.TabIndex = 0; + this.label5.Text = "新建票务信息"; + // + // btnNew + // + this.btnNew.Font = new System.Drawing.Font("微软雅黑", 12F); + this.btnNew.Location = new System.Drawing.Point(117, 335); + this.btnNew.Name = "btnNew"; + this.btnNew.Size = new System.Drawing.Size(180, 44); + this.btnNew.TabIndex = 5; + this.btnNew.Text = "新建"; + this.btnNew.UseVisualStyleBackColor = true; + this.btnNew.Click += new System.EventHandler(this.btnNew_Click); + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label6.Location = new System.Drawing.Point(70, 250); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(90, 21); + this.label6.TabIndex = 0; + this.label6.Text = "开始时间:"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label7.Location = new System.Drawing.Point(226, 250); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(26, 21); + this.label7.TabIndex = 0; + this.label7.Text = "时"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label8.Location = new System.Drawing.Point(318, 250); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(26, 21); + this.label8.TabIndex = 0; + this.label8.Text = "分"; + // + // NUDNumber + // + this.NUDNumber.Location = new System.Drawing.Point(166, 155); + this.NUDNumber.Maximum = new decimal(new int[] { + 200, + 0, + 0, + 0}); + this.NUDNumber.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUDNumber.Name = "NUDNumber"; + this.NUDNumber.Size = new System.Drawing.Size(146, 23); + this.NUDNumber.TabIndex = 6; + this.NUDNumber.Value = new decimal(new int[] { + 200, + 0, + 0, + 0}); + // + // NUDPrice + // + this.NUDPrice.Location = new System.Drawing.Point(166, 186); + this.NUDPrice.Maximum = new decimal(new int[] { + 1000, + 0, + 0, + 0}); + this.NUDPrice.Name = "NUDPrice"; + this.NUDPrice.Size = new System.Drawing.Size(146, 23); + this.NUDPrice.TabIndex = 6; + // + // NUDHour + // + this.NUDHour.Location = new System.Drawing.Point(167, 249); + this.NUDHour.Maximum = new decimal(new int[] { + 24, + 0, + 0, + 0}); + this.NUDHour.Name = "NUDHour"; + this.NUDHour.Size = new System.Drawing.Size(53, 23); + this.NUDHour.TabIndex = 6; + this.NUDHour.Value = new decimal(new int[] { + 14, + 0, + 0, + 0}); + // + // NUDMinute + // + this.NUDMinute.Location = new System.Drawing.Point(259, 249); + this.NUDMinute.Maximum = new decimal(new int[] { + 60, + 0, + 0, + 0}); + this.NUDMinute.Name = "NUDMinute"; + this.NUDMinute.Size = new System.Drawing.Size(53, 23); + this.NUDMinute.TabIndex = 6; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label9.Location = new System.Drawing.Point(318, 185); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(26, 21); + this.label9.TabIndex = 0; + this.label9.Text = "元"; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label10.Location = new System.Drawing.Point(318, 155); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(26, 21); + this.label10.TabIndex = 0; + this.label10.Text = "张"; + // + // label11 + // + this.label11.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label11.AutoSize = true; + this.label11.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label11.ForeColor = System.Drawing.Color.Red; + this.label11.Location = new System.Drawing.Point(527, 0); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(354, 22); + this.label11.TabIndex = 0; + this.label11.Text = "*对内开放不收费,对外开放收费且不使用实名制"; + // + // groupBox1 + // + this.groupBox1.Anchor = System.Windows.Forms.AnchorStyles.None; + this.groupBox1.Controls.Add(this.txtTitle); + this.groupBox1.Controls.Add(this.label5); + this.groupBox1.Controls.Add(this.NUDMinute); + this.groupBox1.Controls.Add(this.label12); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Controls.Add(this.NUDHour); + this.groupBox1.Controls.Add(this.label2); + this.groupBox1.Controls.Add(this.NUDPrice); + this.groupBox1.Controls.Add(this.label6); + this.groupBox1.Controls.Add(this.NUDNumber); + this.groupBox1.Controls.Add(this.label7); + this.groupBox1.Controls.Add(this.btnNew); + this.groupBox1.Controls.Add(this.label4); + this.groupBox1.Controls.Add(this.cmbType); + this.groupBox1.Controls.Add(this.label9); + this.groupBox1.Controls.Add(this.DTPStartTIme); + this.groupBox1.Controls.Add(this.label10); + this.groupBox1.Controls.Add(this.label3); + this.groupBox1.Controls.Add(this.label8); + this.groupBox1.Location = new System.Drawing.Point(235, 61); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(415, 412); + this.groupBox1.TabIndex = 7; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "信息录入"; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label12.Location = new System.Drawing.Point(102, 128); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(58, 21); + this.label12.TabIndex = 0; + this.label12.Text = "名称:"; + // + // txtTitle + // + this.txtTitle.Location = new System.Drawing.Point(166, 126); + this.txtTitle.Name = "txtTitle"; + this.txtTitle.Size = new System.Drawing.Size(146, 23); + this.txtTitle.TabIndex = 7; + this.txtTitle.Text = "名家礼堂"; + // + // UCNewAuditorium + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.label11); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.Name = "UCNewAuditorium"; + this.Size = new System.Drawing.Size(884, 534); + this.Load += new System.EventHandler(this.UCNewAuditorium_Load); + ((System.ComponentModel.ISupportInitialize)(this.NUDNumber)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUDPrice)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUDHour)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUDMinute)).EndInit(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.DateTimePicker DTPStartTIme; + private System.Windows.Forms.ComboBox cmbType; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Button btnNew; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.NumericUpDown NUDNumber; + private System.Windows.Forms.NumericUpDown NUDPrice; + private System.Windows.Forms.NumericUpDown NUDHour; + private System.Windows.Forms.NumericUpDown NUDMinute; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.TextBox txtTitle; + private System.Windows.Forms.Label label12; + } +} diff --git a/AuditoriumMS/UserControls/UCNewAuditorium.cs b/AuditoriumMS/UserControls/UCNewAuditorium.cs new file mode 100644 index 0000000..153e98d --- /dev/null +++ b/AuditoriumMS/UserControls/UCNewAuditorium.cs @@ -0,0 +1,79 @@ +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; + +namespace AuditoriumMS.UserControls +{ + public partial class UCNewAuditorium : UserControl + { + public UCNewAuditorium() + { + InitializeComponent(); + } + + private void btnNew_Click(object sender, EventArgs e) + { + int totalNumber = 0; + int price = 0; + string aType = ""; + DateTime startTIme; + try + { + totalNumber = (int)this.NUDNumber.Value; + price = (int)this.NUDPrice.Value; + startTIme = this.DTPStartTIme.Value.Date; + startTIme = startTIme.AddHours((int)this.NUDHour.Value); + startTIme = startTIme.AddMinutes((int)this.NUDMinute.Value); + aType = this.cmbType.Text; + + if (string.IsNullOrEmpty(txtTitle.Text)) + { + MessageBox.Show("名称不能为空!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + if (Access.IsHasSQLInject(txtTitle.Text)) + { + MessageBox.Show("名称禁止输入非法字符!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + if (startTIme < DateTime.Now) + { + MessageBox.Show("请选择正确的开始时间!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + if (string.IsNullOrEmpty(aType)) + { + MessageBox.Show("请选择类型!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + string SQL = string.Format("INSERT INTO 礼堂表(名称,开始时间,类型,票价,票数) VALUES('{0}','{1}','{2}',{3},{4})", txtTitle.Text, startTIme, aType, price, totalNumber); + int n = Access.obj.Execute(SQL); + if (n == 1) + { + MessageBox.Show("新建成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); + } + else + { + MessageBox.Show("新建失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + catch (Exception ex) + { + MessageBox.Show("处理数据出错,请输入正确的数据!\n错误信息:" + ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + } + + private void UCNewAuditorium_Load(object sender, EventArgs e) + { + this.cmbType.SelectedIndex = 0; + this.NUDNumber.Maximum = Program.AuditoriumSeatColumnsCount * Program.AuditoriumSeatRowsCount; + } + } +} diff --git a/AuditoriumMS/UserControls/UCNewAuditorium.resx b/AuditoriumMS/UserControls/UCNewAuditorium.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/AuditoriumMS/UserControls/UCNewAuditorium.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/AuditoriumMS/UserControls/UCReservationInfoSelect.Designer.cs b/AuditoriumMS/UserControls/UCReservationInfoSelect.Designer.cs new file mode 100644 index 0000000..0a2f789 --- /dev/null +++ b/AuditoriumMS/UserControls/UCReservationInfoSelect.Designer.cs @@ -0,0 +1,390 @@ +namespace AuditoriumMS.UserControls +{ + partial class UCReservationInfoSelect + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 组件设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要修改 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.NUDEndMinute = new System.Windows.Forms.NumericUpDown(); + this.NUDBeginMinute = new System.Windows.Forms.NumericUpDown(); + this.NUDEndHour = new System.Windows.Forms.NumericUpDown(); + this.NUDBeginHour = new System.Windows.Forms.NumericUpDown(); + this.DTPEndDate = new System.Windows.Forms.DateTimePicker(); + this.label5 = new System.Windows.Forms.Label(); + this.DTPBeginDate = new System.Windows.Forms.DateTimePicker(); + this.label4 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.txtNumber = new System.Windows.Forms.TextBox(); + this.label10 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.txtName = new System.Windows.Forms.TextBox(); + this.label12 = new System.Windows.Forms.Label(); + this.txtClass = new System.Windows.Forms.TextBox(); + this.btnSelect = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + ((System.ComponentModel.ISupportInitialize)(this.NUDEndMinute)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUDBeginMinute)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUDEndHour)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUDBeginHour)).BeginInit(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + this.SuspendLayout(); + // + // NUDEndMinute + // + this.NUDEndMinute.Location = new System.Drawing.Point(416, 51); + this.NUDEndMinute.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.NUDEndMinute.Maximum = new decimal(new int[] { + 60, + 0, + 0, + 0}); + this.NUDEndMinute.Name = "NUDEndMinute"; + this.NUDEndMinute.Size = new System.Drawing.Size(38, 23); + this.NUDEndMinute.TabIndex = 25; + // + // NUDBeginMinute + // + this.NUDBeginMinute.Location = new System.Drawing.Point(148, 51); + this.NUDBeginMinute.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.NUDBeginMinute.Maximum = new decimal(new int[] { + 60, + 0, + 0, + 0}); + this.NUDBeginMinute.Name = "NUDBeginMinute"; + this.NUDBeginMinute.Size = new System.Drawing.Size(40, 23); + this.NUDBeginMinute.TabIndex = 26; + // + // NUDEndHour + // + this.NUDEndHour.Location = new System.Drawing.Point(347, 51); + this.NUDEndHour.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.NUDEndHour.Maximum = new decimal(new int[] { + 24, + 0, + 0, + 0}); + this.NUDEndHour.Name = "NUDEndHour"; + this.NUDEndHour.Size = new System.Drawing.Size(38, 23); + this.NUDEndHour.TabIndex = 27; + this.NUDEndHour.Value = new decimal(new int[] { + 14, + 0, + 0, + 0}); + // + // NUDBeginHour + // + this.NUDBeginHour.Location = new System.Drawing.Point(82, 51); + this.NUDBeginHour.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.NUDBeginHour.Maximum = new decimal(new int[] { + 24, + 0, + 0, + 0}); + this.NUDBeginHour.Name = "NUDBeginHour"; + this.NUDBeginHour.Size = new System.Drawing.Size(38, 23); + this.NUDBeginHour.TabIndex = 28; + this.NUDBeginHour.Value = new decimal(new int[] { + 14, + 0, + 0, + 0}); + // + // DTPEndDate + // + this.DTPEndDate.Location = new System.Drawing.Point(346, 17); + this.DTPEndDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6); + this.DTPEndDate.Name = "DTPEndDate"; + this.DTPEndDate.Size = new System.Drawing.Size(130, 23); + this.DTPEndDate.TabIndex = 23; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label5.Location = new System.Drawing.Point(457, 52); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(23, 20); + this.label5.TabIndex = 14; + this.label5.Text = "分"; + // + // DTPBeginDate + // + this.DTPBeginDate.Location = new System.Drawing.Point(81, 17); + this.DTPBeginDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6); + this.DTPBeginDate.Name = "DTPBeginDate"; + this.DTPBeginDate.Size = new System.Drawing.Size(130, 23); + this.DTPBeginDate.TabIndex = 24; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label4.Location = new System.Drawing.Point(386, 52); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(23, 20); + this.label4.TabIndex = 16; + this.label4.Text = "时"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label8.Location = new System.Drawing.Point(194, 52); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(23, 20); + this.label8.TabIndex = 15; + this.label8.Text = "分"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label3.Location = new System.Drawing.Point(275, 52); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(79, 20); + this.label3.TabIndex = 18; + this.label3.Text = "结束时间:"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label7.Location = new System.Drawing.Point(123, 52); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(23, 20); + this.label7.TabIndex = 17; + this.label7.Text = "时"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label1.Location = new System.Drawing.Point(275, 17); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(79, 20); + this.label1.TabIndex = 21; + this.label1.Text = "结束日期:"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label9.Location = new System.Drawing.Point(211, 31); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(68, 21); + this.label9.TabIndex = 19; + this.label9.Text = "<——>"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label6.Location = new System.Drawing.Point(10, 52); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(79, 20); + this.label6.TabIndex = 20; + this.label6.Text = "起始时间:"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label2.Location = new System.Drawing.Point(10, 18); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(79, 20); + this.label2.TabIndex = 22; + this.label2.Text = "起始日期:"; + // + // txtNumber + // + this.txtNumber.Location = new System.Drawing.Point(527, 16); + this.txtNumber.Name = "txtNumber"; + this.txtNumber.Size = new System.Drawing.Size(147, 23); + this.txtNumber.TabIndex = 29; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label10.Location = new System.Drawing.Point(483, 17); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(51, 20); + this.label10.TabIndex = 18; + this.label10.Text = "学号:"; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label11.Location = new System.Drawing.Point(695, 17); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(51, 20); + this.label11.TabIndex = 18; + this.label11.Text = "姓名:"; + // + // txtName + // + this.txtName.Location = new System.Drawing.Point(740, 16); + this.txtName.Name = "txtName"; + this.txtName.Size = new System.Drawing.Size(124, 23); + this.txtName.TabIndex = 29; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label12.Location = new System.Drawing.Point(482, 53); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(51, 20); + this.label12.TabIndex = 18; + this.label12.Text = "班级:"; + // + // txtClass + // + this.txtClass.Location = new System.Drawing.Point(527, 52); + this.txtClass.Name = "txtClass"; + this.txtClass.Size = new System.Drawing.Size(147, 23); + this.txtClass.TabIndex = 29; + // + // btnSelect + // + this.btnSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnSelect.Location = new System.Drawing.Point(760, 44); + this.btnSelect.Name = "btnSelect"; + this.btnSelect.Size = new System.Drawing.Size(104, 38); + this.btnSelect.TabIndex = 30; + this.btnSelect.Text = "查询"; + this.btnSelect.UseVisualStyleBackColor = true; + this.btnSelect.Click += new System.EventHandler(this.btnSelect_Click); + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.dataGridView1); + this.groupBox1.Location = new System.Drawing.Point(3, 81); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(878, 450); + this.groupBox1.TabIndex = 31; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "查询结果"; + // + // dataGridView1 + // + this.dataGridView1.AllowUserToAddRows = false; + this.dataGridView1.AllowUserToDeleteRows = false; + this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.Location = new System.Drawing.Point(6, 22); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.ReadOnly = true; + this.dataGridView1.RowTemplate.Height = 23; + this.dataGridView1.Size = new System.Drawing.Size(866, 422); + this.dataGridView1.TabIndex = 0; + // + // UCReservationInfoSelect + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.btnSelect); + this.Controls.Add(this.txtClass); + this.Controls.Add(this.txtName); + this.Controls.Add(this.txtNumber); + this.Controls.Add(this.NUDEndMinute); + this.Controls.Add(this.NUDBeginMinute); + this.Controls.Add(this.NUDEndHour); + this.Controls.Add(this.NUDBeginHour); + this.Controls.Add(this.DTPEndDate); + this.Controls.Add(this.label5); + this.Controls.Add(this.DTPBeginDate); + this.Controls.Add(this.label12); + this.Controls.Add(this.label4); + this.Controls.Add(this.label11); + this.Controls.Add(this.label8); + this.Controls.Add(this.label10); + this.Controls.Add(this.label3); + this.Controls.Add(this.label7); + this.Controls.Add(this.label1); + this.Controls.Add(this.label9); + this.Controls.Add(this.label6); + this.Controls.Add(this.label2); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.Name = "UCReservationInfoSelect"; + this.Size = new System.Drawing.Size(884, 534); + ((System.ComponentModel.ISupportInitialize)(this.NUDEndMinute)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUDBeginMinute)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUDEndHour)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUDBeginHour)).EndInit(); + this.groupBox1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.NumericUpDown NUDEndMinute; + private System.Windows.Forms.NumericUpDown NUDBeginMinute; + private System.Windows.Forms.NumericUpDown NUDEndHour; + private System.Windows.Forms.NumericUpDown NUDBeginHour; + private System.Windows.Forms.DateTimePicker DTPEndDate; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.DateTimePicker DTPBeginDate; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox txtNumber; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.TextBox txtName; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.TextBox txtClass; + private System.Windows.Forms.Button btnSelect; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.DataGridView dataGridView1; + } +} diff --git a/AuditoriumMS/UserControls/UCReservationInfoSelect.cs b/AuditoriumMS/UserControls/UCReservationInfoSelect.cs new file mode 100644 index 0000000..d0fdc4e --- /dev/null +++ b/AuditoriumMS/UserControls/UCReservationInfoSelect.cs @@ -0,0 +1,78 @@ +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; + +namespace AuditoriumMS.UserControls +{ + public partial class UCReservationInfoSelect : UserControl + { + public UCReservationInfoSelect() + { + InitializeComponent(); + } + + private void btnSelect_Click(object sender, EventArgs e) + { + DateTime BeginTime = this.DTPBeginDate.Value.Date; + BeginTime = BeginTime.AddHours((double)this.NUDBeginHour.Value); + BeginTime = BeginTime.AddMinutes((double)this.NUDBeginMinute.Value); + DateTime EndTime = this.DTPEndDate.Value.Date; + EndTime = EndTime.AddHours((double)this.NUDEndHour.Value); + EndTime = EndTime.AddMinutes((double)this.NUDEndMinute.Value); + + string name = this.txtName.Text; + string Class = this.txtClass.Text; + string number = this.txtNumber.Text; + if (Access.IsHasSQLInject(name) || Access.IsHasSQLInject(Class) || Access.IsHasSQLInject(number)) + { + MessageBox.Show("请勿输入敏感词!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + if (!string.IsNullOrEmpty(number)) + { + try + { + number = string.Format("[学号] = {0}", int.Parse(number)); + } + catch + { + MessageBox.Show("请输入正确的学号", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + } + else + number = "1=1"; + if (!string.IsNullOrEmpty(Class)) + Class = string.Format("[班级名称] = '{0}'", Class); + else + Class = "1=1"; + if (!string.IsNullOrEmpty(name)) + name = string.Format("[姓名] = '{0}'", name); + else + name = "1=1"; + + string sql = string.Format("SELECT s.*,t.[购票时间],t.[类型] FROM " + + "(SELECT * FROM [学生表] WHERE {0} AND {1} AND {2})s " + + "INNER JOIN " + + "(SELECT * FROM " + + "(SELECT * FROM [礼堂表] WHERE [票价] = 0 AND [开始时间] Between #{3}# AND #{4}#) a " + + "INNER JOIN [票务表] t ON a.ID = t.礼堂ID) t" + + " ON s.[学号] = t.[购买者ID]", + number, name, Class, BeginTime, EndTime); + try + { + this.dataGridView1.DataSource = Access.obj.GetDataTable(sql); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } +} diff --git a/AuditoriumMS/UserControls/UCReservationInfoSelect.resx b/AuditoriumMS/UserControls/UCReservationInfoSelect.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/AuditoriumMS/UserControls/UCReservationInfoSelect.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/AuditoriumMS/UserControls/UCSeatMap.Designer.cs b/AuditoriumMS/UserControls/UCSeatMap.Designer.cs new file mode 100644 index 0000000..36f1f86 --- /dev/null +++ b/AuditoriumMS/UserControls/UCSeatMap.Designer.cs @@ -0,0 +1,62 @@ +namespace AuditoriumMS.UserControls +{ + partial class UCSeatMap + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 组件设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要修改 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.FLPMap = new System.Windows.Forms.FlowLayoutPanel(); + this.SuspendLayout(); + // + // FLPMap + // + this.FLPMap.AutoScroll = true; + this.FLPMap.BackColor = System.Drawing.Color.White; + this.FLPMap.Dock = System.Windows.Forms.DockStyle.Fill; + this.FLPMap.Location = new System.Drawing.Point(0, 0); + this.FLPMap.Margin = new System.Windows.Forms.Padding(0); + this.FLPMap.Name = "FLPMap"; + this.FLPMap.Size = new System.Drawing.Size(400, 300); + this.FLPMap.TabIndex = 0; + // + // UCSeatMap + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.FLPMap); + this.MinimumSize = new System.Drawing.Size(200, 100); + this.Name = "UCSeatMap"; + this.Size = new System.Drawing.Size(400, 300); + this.Load += new System.EventHandler(this.UCSeatMap_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.FlowLayoutPanel FLPMap; + } +} diff --git a/AuditoriumMS/UserControls/UCSeatMap.cs b/AuditoriumMS/UserControls/UCSeatMap.cs new file mode 100644 index 0000000..c1c32b2 --- /dev/null +++ b/AuditoriumMS/UserControls/UCSeatMap.cs @@ -0,0 +1,128 @@ +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; + +namespace AuditoriumMS.UserControls +{ + public partial class UCSeatMap : UserControl + { + public UCSeatMap() + { + InitializeComponent(); + + } + /// + /// 是否已经初始化 + /// + private bool isInit = false; + private void InitializerSeatMap() + { + System.Threading.Thread t = new System.Threading.Thread(() => + { + this.Invoke(new Action(() => { FLPMap.SuspendLayout(); })); + Label lblSeat = new Label(); + for (int row = 1; row <= Program.AuditoriumSeatRowsCount; ++row) + { + for (int col = 1; col <= Program.AuditoriumSeatColumnsCount; ++col) + { + lblSeat = new Label(); + lblSeat.Text = string.Format("{0:00}-{1:00}", row, col); + lblSeat.Name = lblSeat.Text; + lblSeat.AutoSize = true; + lblSeat.Margin = new Padding(6); + lblSeat.Tag = new Point(row, col); + lblSeat.Cursor = Cursors.Hand; + lblSeat.Click += LblSeat_Click; + this.Invoke(new Action(() => { FLPMap.Controls.Add(lblSeat); })); + } + this.Invoke(new Action(() => { FLPMap.SetFlowBreak(lblSeat, true); })); + } + this.isInit = true; + this.Invoke(new Action(() => { FLPMap.ResumeLayout(); })); + }); + t.Start(); + } + + public delegate void SelectedEventHandler(object sender, Point point); + /// + /// 座位选中事件 + /// + public event SelectedEventHandler SelectedEvent; + // 发出座位被选中的事件 + private void LblSeat_Click(object sender, EventArgs e) + { + Label lblSeat = sender as Label; + // 如果颜色不是可以选的颜色,则直接返回 + if (lblSeat.BackColor != Color.FromArgb(0x66, 0xFF, 0xCC)) + return; + if (SelectedEvent != null) + SelectedEvent(sender, (Point)(sender as Label).Tag); + } + + /// + /// 设置座位值 + /// + /// 售出的座位 + /// 总数量 + public void SetValue(List soldList, int max) + { + while (!this.isInit) + ; // 等待初始化完毕 + FLPMap.SuspendLayout(); + for (int i = 0; i < this.FLPMap.Controls.Count; ++i) + { + Label lblSeat = FLPMap.Controls[i] as Label; + if (i < max) + { + lblSeat.Cursor = Cursors.Hand; + lblSeat.ForeColor = Color.FromArgb(0x00, 0x00, 0x00); + lblSeat.BackColor = Color.FromArgb(0x66, 0xFF, 0xCC); + } + else + { + // 如果是无法选择的座位,则取消事件 + lblSeat.Cursor = Cursors.Default; + lblSeat.ForeColor = Color.FromArgb(0x99, 0x99, 0x99); + lblSeat.BackColor = Color.FromArgb(0xcc, 0xcc, 0xcc); + } + } + + foreach (var p in soldList) + { + string name = string.Format("{0:00}-{1:00}", p.X, p.Y); + var c = FLPMap.Controls.Find(name, false); + if (c != null && c.Length > 0) + { + Label lblSeat = c[0] as Label; + // 如果是无法选择的座位,则取消事件 + lblSeat.Cursor = Cursors.Default; + lblSeat.ForeColor = Color.FromArgb(0x00, 0x00, 0x00); + lblSeat.BackColor = Color.FromArgb(0xFF, 0xCC, 0x66); + } + } + FLPMap.ResumeLayout(); + } + + public void setValue(Point point) + { + string key = string.Format("{0:00}-{1:00}", point.X, point.Y); + var c = FLPMap.Controls.Find(key, false); + if (c != null && c.Length > 0) + { + Label lblSeat = c[0] as Label; + lblSeat.ForeColor = Color.FromArgb(0x00, 0x00, 0x00); + lblSeat.BackColor = Color.FromArgb(0xFF, 0xCC, 0x66); + } + } + + private void UCSeatMap_Load(object sender, EventArgs e) + { + InitializerSeatMap(); + } + } +} diff --git a/AuditoriumMS/UserControls/UCSeatMap.resx b/AuditoriumMS/UserControls/UCSeatMap.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/AuditoriumMS/UserControls/UCSeatMap.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/AuditoriumMS/UserControls/UCShowChart.Designer.cs b/AuditoriumMS/UserControls/UCShowChart.Designer.cs new file mode 100644 index 0000000..68fdddd --- /dev/null +++ b/AuditoriumMS/UserControls/UCShowChart.Designer.cs @@ -0,0 +1,193 @@ +namespace AuditoriumMS.UserControls +{ + partial class UCShowChart + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 组件设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要修改 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); + System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend(); + System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series(); + this.chart1 = new System.Windows.Forms.DataVisualization.Charting.Chart(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.label3 = new System.Windows.Forms.Label(); + this.DTPEndDate = new System.Windows.Forms.DateTimePicker(); + this.DTPBeginDate = new System.Windows.Forms.DateTimePicker(); + this.label1 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.btnStartStatistics = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.chart1)).BeginInit(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // chart1 + // + this.chart1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + chartArea1.AxisX.LabelStyle.Format = "MM-dd"; + chartArea1.AxisX.MajorGrid.Enabled = false; + chartArea1.AxisX.Title = "日期"; + chartArea1.AxisY.Title = "数量"; + chartArea1.Name = "ChartArea1"; + this.chart1.ChartAreas.Add(chartArea1); + legend1.Name = "Legend1"; + this.chart1.Legends.Add(legend1); + this.chart1.Location = new System.Drawing.Point(6, 22); + this.chart1.Name = "chart1"; + series1.ChartArea = "ChartArea1"; + series1.Legend = "Legend1"; + series1.LegendText = "预订数量"; + series1.Name = "Series1"; + series1.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Date; + this.chart1.Series.Add(series1); + this.chart1.Size = new System.Drawing.Size(866, 393); + this.chart1.TabIndex = 0; + this.chart1.Text = "预订信息统计图"; + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.chart1); + this.groupBox1.Location = new System.Drawing.Point(3, 110); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(878, 421); + this.groupBox1.TabIndex = 1; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "图表区"; + // + // label3 + // + this.label3.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label3.Location = new System.Drawing.Point(286, 13); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(312, 31); + this.label3.TabIndex = 41; + this.label3.Text = "预订数量信息统计-图形展示"; + // + // DTPEndDate + // + this.DTPEndDate.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.DTPEndDate.Location = new System.Drawing.Point(574, 64); + this.DTPEndDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6); + this.DTPEndDate.Name = "DTPEndDate"; + this.DTPEndDate.Size = new System.Drawing.Size(130, 23); + this.DTPEndDate.TabIndex = 39; + // + // DTPBeginDate + // + this.DTPBeginDate.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.DTPBeginDate.Location = new System.Drawing.Point(252, 64); + this.DTPBeginDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6); + this.DTPBeginDate.Name = "DTPBeginDate"; + this.DTPBeginDate.Size = new System.Drawing.Size(130, 23); + this.DTPBeginDate.TabIndex = 40; + // + // label1 + // + this.label1.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label1.Location = new System.Drawing.Point(503, 65); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(79, 20); + this.label1.TabIndex = 37; + this.label1.Text = "结束日期:"; + // + // label9 + // + this.label9.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label9.AutoSize = true; + this.label9.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label9.Location = new System.Drawing.Point(412, 65); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(68, 21); + this.label9.TabIndex = 36; + this.label9.Text = "<——>"; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label2.Location = new System.Drawing.Point(181, 65); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(79, 20); + this.label2.TabIndex = 38; + this.label2.Text = "起始日期:"; + // + // btnStartStatistics + // + this.btnStartStatistics.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnStartStatistics.Location = new System.Drawing.Point(774, 64); + this.btnStartStatistics.Name = "btnStartStatistics"; + this.btnStartStatistics.Size = new System.Drawing.Size(101, 40); + this.btnStartStatistics.TabIndex = 42; + this.btnStartStatistics.Text = "开始统计"; + this.btnStartStatistics.UseVisualStyleBackColor = true; + this.btnStartStatistics.Click += new System.EventHandler(this.btnStartStatistics_Click); + // + // UCShowChart + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.btnStartStatistics); + this.Controls.Add(this.label3); + this.Controls.Add(this.DTPEndDate); + this.Controls.Add(this.DTPBeginDate); + this.Controls.Add(this.label1); + this.Controls.Add(this.label9); + this.Controls.Add(this.label2); + this.Controls.Add(this.groupBox1); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.Name = "UCShowChart"; + this.Size = new System.Drawing.Size(884, 534); + ((System.ComponentModel.ISupportInitialize)(this.chart1)).EndInit(); + this.groupBox1.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DataVisualization.Charting.Chart chart1; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.DateTimePicker DTPEndDate; + private System.Windows.Forms.DateTimePicker DTPBeginDate; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button btnStartStatistics; + } +} diff --git a/AuditoriumMS/UserControls/UCShowChart.cs b/AuditoriumMS/UserControls/UCShowChart.cs new file mode 100644 index 0000000..98512d1 --- /dev/null +++ b/AuditoriumMS/UserControls/UCShowChart.cs @@ -0,0 +1,47 @@ +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 System.Windows.Forms.DataVisualization.Charting; + +namespace AuditoriumMS.UserControls +{ + public partial class UCShowChart : UserControl + { + public UCShowChart() + { + InitializeComponent(); + } + + private void btnStartStatistics_Click(object sender, EventArgs e) + { + DateTime BeginDate = this.DTPBeginDate.Value.Date; + DateTime EndDate = this.DTPEndDate.Value.Date; + + string sql1 = string.Format("SELECT t.购票日期,a.类型,t.预订数量 FROM " + + "(SELECT LEFT([购票时间], 10) AS 购票日期,礼堂ID,COUNT(*) AS 预订数量 " + + "FROM 票务表 WHERE [购票时间] Between #{0}# AND #{1}# GROUP BY LEFT([购票时间], 10), 礼堂ID) t " + + "LEFT JOIN [礼堂表] a ON t.礼堂ID = a.ID", + BeginDate, EndDate); + try + { + DataTable dt = Access.obj.GetDataTable(sql1); + foreach (DataRow row in dt.Rows) + { + DataPoint point = new DataPoint(); + point.SetValueXY(row["购票日期"], row["预订数量"]); + point.ToolTip = row["类型"].ToString(); + this.chart1.Series[0].Points.Add(point); + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } +} diff --git a/AuditoriumMS/UserControls/UCShowChart.resx b/AuditoriumMS/UserControls/UCShowChart.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/AuditoriumMS/UserControls/UCShowChart.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/AuditoriumMS/UserControls/UCSummaryReport.Designer.cs b/AuditoriumMS/UserControls/UCSummaryReport.Designer.cs new file mode 100644 index 0000000..69b41f8 --- /dev/null +++ b/AuditoriumMS/UserControls/UCSummaryReport.Designer.cs @@ -0,0 +1,244 @@ +namespace AuditoriumMS.UserControls +{ + partial class UCSummaryReport + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 组件设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要修改 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.cmbMonth = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.txtClassName = new System.Windows.Forms.TextBox(); + this.btnReport = new System.Windows.Forms.Button(); + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.dataGridView2 = new System.Windows.Forms.DataGridView(); + this.dataGridView3 = new System.Windows.Forms.DataGridView(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView3)).BeginInit(); + this.SuspendLayout(); + // + // tabControl1 + // + this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Location = new System.Drawing.Point(3, 114); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(878, 417); + this.tabControl1.TabIndex = 0; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.dataGridView2); + this.tabPage1.Location = new System.Drawing.Point(4, 26); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(870, 387); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "学生预订明细"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.dataGridView3); + this.tabPage2.Location = new System.Drawing.Point(4, 26); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(870, 387); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "活动预订情况"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // cmbMonth + // + this.cmbMonth.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbMonth.FormattingEnabled = true; + this.cmbMonth.Items.AddRange(new object[] { + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12"}); + this.cmbMonth.Location = new System.Drawing.Point(109, 62); + this.cmbMonth.Name = "cmbMonth"; + this.cmbMonth.Size = new System.Drawing.Size(58, 25); + this.cmbMonth.TabIndex = 1; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label1.Location = new System.Drawing.Point(52, 63); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(51, 20); + this.label1.TabIndex = 2; + this.label1.Text = "月份:"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label2.Location = new System.Drawing.Point(24, 30); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(79, 20); + this.label2.TabIndex = 3; + this.label2.Text = "班级名称:"; + // + // txtClassName + // + this.txtClassName.Location = new System.Drawing.Point(109, 29); + this.txtClassName.Name = "txtClassName"; + this.txtClassName.Size = new System.Drawing.Size(138, 23); + this.txtClassName.TabIndex = 4; + // + // btnReport + // + this.btnReport.Location = new System.Drawing.Point(278, 27); + this.btnReport.Name = "btnReport"; + this.btnReport.Size = new System.Drawing.Size(112, 27); + this.btnReport.TabIndex = 5; + this.btnReport.Text = "输出报表"; + this.btnReport.UseVisualStyleBackColor = true; + this.btnReport.Click += new System.EventHandler(this.btnReport_Click); + // + // dataGridView1 + // + this.dataGridView1.AllowUserToAddRows = false; + this.dataGridView1.AllowUserToDeleteRows = false; + this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.Location = new System.Drawing.Point(6, 22); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.ReadOnly = true; + this.dataGridView1.RowTemplate.Height = 23; + this.dataGridView1.Size = new System.Drawing.Size(443, 83); + this.dataGridView1.TabIndex = 6; + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.dataGridView1); + this.groupBox1.Location = new System.Drawing.Point(422, 3); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(455, 111); + this.groupBox1.TabIndex = 7; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "班级当月票务情况"; + // + // dataGridView2 + // + this.dataGridView2.AllowUserToAddRows = false; + this.dataGridView2.AllowUserToDeleteRows = false; + this.dataGridView2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dataGridView2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView2.Location = new System.Drawing.Point(3, 3); + this.dataGridView2.Name = "dataGridView2"; + this.dataGridView2.ReadOnly = true; + this.dataGridView2.RowTemplate.Height = 23; + this.dataGridView2.Size = new System.Drawing.Size(864, 381); + this.dataGridView2.TabIndex = 0; + // + // dataGridView3 + // + this.dataGridView3.AllowUserToAddRows = false; + this.dataGridView3.AllowUserToDeleteRows = false; + this.dataGridView3.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dataGridView3.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView3.Location = new System.Drawing.Point(3, 3); + this.dataGridView3.Name = "dataGridView3"; + this.dataGridView3.ReadOnly = true; + this.dataGridView3.RowTemplate.Height = 23; + this.dataGridView3.Size = new System.Drawing.Size(864, 381); + this.dataGridView3.TabIndex = 0; + // + // UCSummaryReport + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.btnReport); + this.Controls.Add(this.txtClassName); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.cmbMonth); + this.Controls.Add(this.tabControl1); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.Name = "UCSummaryReport"; + this.Size = new System.Drawing.Size(884, 534); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + this.groupBox1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView3)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.ComboBox cmbMonth; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox txtClassName; + private System.Windows.Forms.Button btnReport; + private System.Windows.Forms.DataGridView dataGridView1; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.DataGridView dataGridView2; + private System.Windows.Forms.DataGridView dataGridView3; + } +} diff --git a/AuditoriumMS/UserControls/UCSummaryReport.cs b/AuditoriumMS/UserControls/UCSummaryReport.cs new file mode 100644 index 0000000..08a912e --- /dev/null +++ b/AuditoriumMS/UserControls/UCSummaryReport.cs @@ -0,0 +1,89 @@ +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; + +namespace AuditoriumMS.UserControls +{ + public partial class UCSummaryReport : UserControl + { + public UCSummaryReport() + { + InitializeComponent(); + this.cmbMonth.SelectedIndex = DateTime.Now.Month - 1; + } + + private void btnReport_Click(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(txtClassName.Text)) + { + MessageBox.Show("请输入班级名称!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + if (Access.IsHasSQLInject(this.txtClassName.Text)) + { + MessageBox.Show("请输入规范字符!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + int year = DateTime.Now.Year; + int month = cmbMonth.SelectedIndex + 1; + // 如果统计的月份大于当前月,表示统计去年的 + if (month > DateTime.Now.Month) + year--; + + // 月初 + DateTime BeginDate = new DateTime(year, month, 1); + // 月末 + DateTime EndDate = new DateTime(year, month, DateTime.DaysInMonth(year, month)); + + + string sql1 = string.Format("SELECT '{0}' AS 班级名称, '{1}' AS 起始日期, '{2}' AS 终止日期, COUNT(*) AS 预订票数 FROM [票务表] " + + "WHERE [购买者ID] IN(SELECT [学号] FROM [学生表] WHERE [班级名称] = '{0}') " + + "AND [购票时间] BETWEEN #{1}# AND #{2}#", + this.txtClassName.Text, BeginDate.ToShortDateString(), EndDate.ToShortDateString()); + string sql2 = string.Format("SELECT st.学号,st.姓名,LEFT(a.开始时间,10) AS 日期,WeekDay(a.开始时间) AS 星期,Format(a.开始时间,'HH:mm') AS 时间,a.类型 FROM " + + "(SELECT * FROM " + + "(SELECT [学号],[姓名] FROM [学生表] WHERE [班级名称] = '{0}') s " + + "INNER JOIN " + + "(SELECT [礼堂ID],[购买者ID] FROM [票务表]) t " + + "ON s.学号 = t.购买者ID) st " + + "INNER JOIN " + + "(SELECT * FROM [礼堂表] WHERE [开始时间] BETWEEN #{1}# AND #{2}#) a " + + "ON st.礼堂ID = a.ID ORDER BY [学号] ASC", + this.txtClassName.Text, BeginDate.ToShortDateString(), EndDate.ToShortDateString()); + string sql3 = string.Format("SELECT LEFT(a.开始时间,10) AS 日期,WeekDay(a.开始时间) AS 星期,Format(a.开始时间,'HH:mm') AS 时间,a.类型,t.数量 FROM " + + "(SELECT [礼堂ID],COUNT(*) AS 数量 FROM [票务表] " + + "WHERE [购买者ID] IN(SELECT [学号] FROM [学生表] WHERE [班级名称] = '{0}') " + + "GROUP BY [礼堂ID]) t " + + "INNER JOIN " + + "(SELECT * FROM [礼堂表] WHERE [开始时间] BETWEEN #{1}# AND #{2}#) a " + + "ON t.礼堂ID = a.ID ORDER BY [a.开始时间] ASC", + this.txtClassName.Text, BeginDate.ToShortDateString(), EndDate.ToShortDateString()); + try + { + this.dataGridView1.DataSource = Access.obj.GetDataTable(sql1); + DataTable dt2 = Access.obj.GetDataTable(sql2); + DataTable dt3 = Access.obj.GetDataTable(sql3); + dt2.Columns.Add("序号"); + dt3.Columns.Add("序号"); + dt2.Columns["序号"].SetOrdinal(0); + dt3.Columns["序号"].SetOrdinal(0); + for (int i = 0; i < dt2.Rows.Count; ++i) + dt2.Rows[i]["序号"] = i + 1; + for (int i = 0; i < dt3.Rows.Count; ++i) + dt3.Rows[i]["序号"] = i + 1; + this.dataGridView2.DataSource = dt2; + this.dataGridView3.DataSource = dt3; + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } +} diff --git a/AuditoriumMS/UserControls/UCSummaryReport.resx b/AuditoriumMS/UserControls/UCSummaryReport.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/AuditoriumMS/UserControls/UCSummaryReport.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/AuditoriumMS/UserControls/UCTicketCountSelect.Designer.cs b/AuditoriumMS/UserControls/UCTicketCountSelect.Designer.cs new file mode 100644 index 0000000..3ce45d6 --- /dev/null +++ b/AuditoriumMS/UserControls/UCTicketCountSelect.Designer.cs @@ -0,0 +1,85 @@ +namespace AuditoriumMS.UserControls +{ + partial class UCTicketCountSelect + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 组件设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要修改 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.label1 = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + this.SuspendLayout(); + // + // dataGridView1 + // + this.dataGridView1.AllowUserToAddRows = false; + this.dataGridView1.AllowUserToDeleteRows = false; + this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.Location = new System.Drawing.Point(3, 89); + this.dataGridView1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.ReadOnly = true; + this.dataGridView1.RowTemplate.Height = 23; + this.dataGridView1.Size = new System.Drawing.Size(878, 441); + this.dataGridView1.TabIndex = 0; + // + // label1 + // + this.label1.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold); + this.label1.Location = new System.Drawing.Point(363, 31); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(158, 31); + this.label1.TabIndex = 1; + this.label1.Text = "票务数量信息"; + // + // UCTicketCountSelect + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.label1); + this.Controls.Add(this.dataGridView1); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.Name = "UCTicketCountSelect"; + this.Size = new System.Drawing.Size(884, 534); + this.Load += new System.EventHandler(this.UCTicketCountSelect_Load); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DataGridView dataGridView1; + private System.Windows.Forms.Label label1; + } +} diff --git a/AuditoriumMS/UserControls/UCTicketCountSelect.cs b/AuditoriumMS/UserControls/UCTicketCountSelect.cs new file mode 100644 index 0000000..94ef379 --- /dev/null +++ b/AuditoriumMS/UserControls/UCTicketCountSelect.cs @@ -0,0 +1,35 @@ +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; + +namespace AuditoriumMS.UserControls +{ + public partial class UCTicketCountSelect : UserControl + { + public UCTicketCountSelect() + { + InitializeComponent(); + } + + private void UCTicketCountSelect_Load(object sender, EventArgs e) + { + string sql = "SELECT a.*, t.购票量, a.票数-t.购票量 as 剩余票数 FROM " + + "(SELECT [礼堂ID],COUNT(*) as 购票量 FROM [票务表] GROUP BY [礼堂ID]) t" + + " RIGHT JOIN [礼堂表] a ON t.礼堂ID = a.ID"; + + try + { + this.dataGridView1.DataSource = Access.obj.GetDataTable(sql); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } +} diff --git a/AuditoriumMS/UserControls/UCTicketCountSelect.resx b/AuditoriumMS/UserControls/UCTicketCountSelect.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/AuditoriumMS/UserControls/UCTicketCountSelect.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/AuditoriumMS/UserControls/UCTicketCountStatistics.Designer.cs b/AuditoriumMS/UserControls/UCTicketCountStatistics.Designer.cs new file mode 100644 index 0000000..1c8f981 --- /dev/null +++ b/AuditoriumMS/UserControls/UCTicketCountStatistics.Designer.cs @@ -0,0 +1,264 @@ +namespace AuditoriumMS.UserControls +{ + partial class UCTicketCountStatistics + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 组件设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要修改 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.DTPEndDate = new System.Windows.Forms.DateTimePicker(); + this.DTPBeginDate = new System.Windows.Forms.DateTimePicker(); + this.label1 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.dataGridView2 = new System.Windows.Forms.DataGridView(); + this.tabPage3 = new System.Windows.Forms.TabPage(); + this.dataGridView3 = new System.Windows.Forms.DataGridView(); + this.btnStartStatistics = new System.Windows.Forms.Button(); + this.label3 = new System.Windows.Forms.Label(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + this.tabPage2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).BeginInit(); + this.tabPage3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView3)).BeginInit(); + this.SuspendLayout(); + // + // DTPEndDate + // + this.DTPEndDate.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.DTPEndDate.Location = new System.Drawing.Point(574, 64); + this.DTPEndDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6); + this.DTPEndDate.Name = "DTPEndDate"; + this.DTPEndDate.Size = new System.Drawing.Size(130, 23); + this.DTPEndDate.TabIndex = 28; + // + // DTPBeginDate + // + this.DTPBeginDate.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.DTPBeginDate.Location = new System.Drawing.Point(252, 64); + this.DTPBeginDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6); + this.DTPBeginDate.Name = "DTPBeginDate"; + this.DTPBeginDate.Size = new System.Drawing.Size(130, 23); + this.DTPBeginDate.TabIndex = 29; + // + // label1 + // + this.label1.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label1.Location = new System.Drawing.Point(503, 65); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(79, 20); + this.label1.TabIndex = 26; + this.label1.Text = "结束日期:"; + // + // label9 + // + this.label9.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label9.AutoSize = true; + this.label9.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label9.Location = new System.Drawing.Point(412, 65); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(68, 21); + this.label9.TabIndex = 25; + this.label9.Text = "<——>"; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label2.Location = new System.Drawing.Point(181, 65); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(79, 20); + this.label2.TabIndex = 27; + this.label2.Text = "起始日期:"; + // + // tabControl1 + // + this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Controls.Add(this.tabPage3); + this.tabControl1.Location = new System.Drawing.Point(3, 96); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(878, 435); + this.tabControl1.TabIndex = 30; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.dataGridView1); + this.tabPage1.Location = new System.Drawing.Point(4, 26); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(870, 405); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "预订信息统计"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // dataGridView1 + // + this.dataGridView1.AllowUserToAddRows = false; + this.dataGridView1.AllowUserToDeleteRows = false; + this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.Location = new System.Drawing.Point(6, 6); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.ReadOnly = true; + this.dataGridView1.RowTemplate.Height = 23; + this.dataGridView1.Size = new System.Drawing.Size(858, 393); + this.dataGridView1.TabIndex = 0; + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.dataGridView2); + this.tabPage2.Location = new System.Drawing.Point(4, 26); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(870, 395); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "学生预订信息统计"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // dataGridView2 + // + this.dataGridView2.AllowUserToAddRows = false; + this.dataGridView2.AllowUserToDeleteRows = false; + this.dataGridView2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dataGridView2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView2.Location = new System.Drawing.Point(6, 6); + this.dataGridView2.Name = "dataGridView2"; + this.dataGridView2.ReadOnly = true; + this.dataGridView2.RowTemplate.Height = 23; + this.dataGridView2.Size = new System.Drawing.Size(858, 383); + this.dataGridView2.TabIndex = 1; + // + // tabPage3 + // + this.tabPage3.Controls.Add(this.dataGridView3); + this.tabPage3.Location = new System.Drawing.Point(4, 26); + this.tabPage3.Name = "tabPage3"; + this.tabPage3.Padding = new System.Windows.Forms.Padding(3); + this.tabPage3.Size = new System.Drawing.Size(870, 395); + this.tabPage3.TabIndex = 2; + this.tabPage3.Text = "班级预订信息统计"; + this.tabPage3.UseVisualStyleBackColor = true; + // + // dataGridView3 + // + this.dataGridView3.AllowUserToAddRows = false; + this.dataGridView3.AllowUserToDeleteRows = false; + this.dataGridView3.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dataGridView3.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView3.Location = new System.Drawing.Point(6, 6); + this.dataGridView3.Name = "dataGridView3"; + this.dataGridView3.ReadOnly = true; + this.dataGridView3.RowTemplate.Height = 23; + this.dataGridView3.Size = new System.Drawing.Size(858, 383); + this.dataGridView3.TabIndex = 1; + // + // btnStartStatistics + // + this.btnStartStatistics.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnStartStatistics.Location = new System.Drawing.Point(751, 37); + this.btnStartStatistics.Name = "btnStartStatistics"; + this.btnStartStatistics.Size = new System.Drawing.Size(120, 49); + this.btnStartStatistics.TabIndex = 31; + this.btnStartStatistics.Text = "开始统计"; + this.btnStartStatistics.UseVisualStyleBackColor = true; + this.btnStartStatistics.Click += new System.EventHandler(this.btnStartStatistics_Click); + // + // label3 + // + this.label3.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label3.Location = new System.Drawing.Point(339, 13); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(206, 31); + this.label3.TabIndex = 35; + this.label3.Text = "预订数量信息统计"; + // + // UCTicketCountStatistics + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.label3); + this.Controls.Add(this.btnStartStatistics); + this.Controls.Add(this.tabControl1); + this.Controls.Add(this.DTPEndDate); + this.Controls.Add(this.DTPBeginDate); + this.Controls.Add(this.label1); + this.Controls.Add(this.label9); + this.Controls.Add(this.label2); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.Name = "UCTicketCountStatistics"; + this.Size = new System.Drawing.Size(884, 534); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + this.tabPage2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).EndInit(); + this.tabPage3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView3)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DateTimePicker DTPEndDate; + private System.Windows.Forms.DateTimePicker DTPBeginDate; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.DataGridView dataGridView1; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.DataGridView dataGridView2; + private System.Windows.Forms.TabPage tabPage3; + private System.Windows.Forms.DataGridView dataGridView3; + private System.Windows.Forms.Button btnStartStatistics; + private System.Windows.Forms.Label label3; + } +} diff --git a/AuditoriumMS/UserControls/UCTicketCountStatistics.cs b/AuditoriumMS/UserControls/UCTicketCountStatistics.cs new file mode 100644 index 0000000..1c1f611 --- /dev/null +++ b/AuditoriumMS/UserControls/UCTicketCountStatistics.cs @@ -0,0 +1,52 @@ +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; + +namespace AuditoriumMS.UserControls +{ + public partial class UCTicketCountStatistics : UserControl + { + public UCTicketCountStatistics() + { + InitializeComponent(); + } + + private void btnStartStatistics_Click(object sender, EventArgs e) + { + DateTime BeginDate = this.DTPBeginDate.Value.Date; + DateTime EndDate = this.DTPEndDate.Value.Date; + + string sql1 = string.Format("SELECT t.购票日期,a.类型,t.预订数量 FROM " + + "(SELECT LEFT([购票时间], 10) AS 购票日期,礼堂ID,COUNT(*) AS 预订数量 " + + "FROM 票务表 WHERE [购票时间] Between #{0}# AND #{1}# GROUP BY LEFT([购票时间], 10), 礼堂ID) t " + + "LEFT JOIN [礼堂表] a ON t.礼堂ID = a.ID", + BeginDate, EndDate); + string sql2 = string.Format("SELECT s.*,t.预订数量 FROM " + + "(SELECT [购买者ID],count(*) AS 预订数量 FROM 票务表 WHERE [购票时间] Between #{0}# AND #{1}# AND [购买者ID] <> 0 " + + "GROUP BY [购买者ID]) t " + + "LEFT JOIN [学生表] s ON t.购买者ID = s.学号", + BeginDate, EndDate); + string sql3 = string.Format("SELECT s.班级名称,SUM(t.预订数量) AS 总预订数量 FROM " + + "(SELECT [购买者ID],count(*) AS 预订数量 FROM 票务表 WHERE [购票时间] Between #{0}# AND #{1}# AND [购买者ID] <> 0 " + + "GROUP BY [购买者ID]) t " + + "LEFT JOIN [学生表] s ON t.购买者ID = s.学号 " + + "GROUP BY s.班级名称", + BeginDate, EndDate); + try + { + this.dataGridView1.DataSource = Access.obj.GetDataTable(sql1); + this.dataGridView2.DataSource = Access.obj.GetDataTable(sql2); + this.dataGridView3.DataSource = Access.obj.GetDataTable(sql3); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } +} diff --git a/AuditoriumMS/UserControls/UCTicketCountStatistics.resx b/AuditoriumMS/UserControls/UCTicketCountStatistics.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/AuditoriumMS/UserControls/UCTicketCountStatistics.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/AuditoriumMS/UserControls/UCTicketSelect.Designer.cs b/AuditoriumMS/UserControls/UCTicketSelect.Designer.cs new file mode 100644 index 0000000..2858cff --- /dev/null +++ b/AuditoriumMS/UserControls/UCTicketSelect.Designer.cs @@ -0,0 +1,353 @@ +namespace AuditoriumMS.UserControls +{ + partial class UCTicketSelect + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 组件设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要修改 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.NUDBeginMinute = new System.Windows.Forms.NumericUpDown(); + this.NUDBeginHour = new System.Windows.Forms.NumericUpDown(); + this.DTPBeginDate = new System.Windows.Forms.DateTimePicker(); + this.label8 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.DTPEndDate = new System.Windows.Forms.DateTimePicker(); + this.NUDEndHour = new System.Windows.Forms.NumericUpDown(); + this.NUDEndMinute = new System.Windows.Forms.NumericUpDown(); + this.label9 = new System.Windows.Forms.Label(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.btnSelect = new System.Windows.Forms.Button(); + this.label10 = new System.Windows.Forms.Label(); + this.cmbType = new System.Windows.Forms.ComboBox(); + ((System.ComponentModel.ISupportInitialize)(this.NUDBeginMinute)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUDBeginHour)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUDEndHour)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUDEndMinute)).BeginInit(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + this.SuspendLayout(); + // + // NUDBeginMinute + // + this.NUDBeginMinute.Location = new System.Drawing.Point(205, 66); + this.NUDBeginMinute.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.NUDBeginMinute.Maximum = new decimal(new int[] { + 60, + 0, + 0, + 0}); + this.NUDBeginMinute.Name = "NUDBeginMinute"; + this.NUDBeginMinute.Size = new System.Drawing.Size(62, 23); + this.NUDBeginMinute.TabIndex = 12; + // + // NUDBeginHour + // + this.NUDBeginHour.Location = new System.Drawing.Point(98, 66); + this.NUDBeginHour.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.NUDBeginHour.Maximum = new decimal(new int[] { + 24, + 0, + 0, + 0}); + this.NUDBeginHour.Name = "NUDBeginHour"; + this.NUDBeginHour.Size = new System.Drawing.Size(62, 23); + this.NUDBeginHour.TabIndex = 13; + this.NUDBeginHour.Value = new decimal(new int[] { + 14, + 0, + 0, + 0}); + // + // DTPBeginDate + // + this.DTPBeginDate.Location = new System.Drawing.Point(97, 22); + this.DTPBeginDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6); + this.DTPBeginDate.Name = "DTPBeginDate"; + this.DTPBeginDate.Size = new System.Drawing.Size(209, 23); + this.DTPBeginDate.TabIndex = 11; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label8.Location = new System.Drawing.Point(274, 66); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(26, 21); + this.label8.TabIndex = 7; + this.label8.Text = "分"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label7.Location = new System.Drawing.Point(167, 66); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(26, 21); + this.label7.TabIndex = 8; + this.label7.Text = "时"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label6.Location = new System.Drawing.Point(12, 66); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(90, 21); + this.label6.TabIndex = 9; + this.label6.Text = "起始时间:"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label2.Location = new System.Drawing.Point(12, 23); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(90, 21); + this.label2.TabIndex = 10; + this.label2.Text = "起始日期:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label1.Location = new System.Drawing.Point(386, 23); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(90, 21); + this.label1.TabIndex = 10; + this.label1.Text = "结束日期:"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label3.Location = new System.Drawing.Point(386, 66); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(90, 21); + this.label3.TabIndex = 9; + this.label3.Text = "结束时间:"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label4.Location = new System.Drawing.Point(543, 67); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(26, 21); + this.label4.TabIndex = 8; + this.label4.Text = "时"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label5.Location = new System.Drawing.Point(651, 67); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(26, 21); + this.label5.TabIndex = 7; + this.label5.Text = "分"; + // + // DTPEndDate + // + this.DTPEndDate.Location = new System.Drawing.Point(473, 23); + this.DTPEndDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6); + this.DTPEndDate.Name = "DTPEndDate"; + this.DTPEndDate.Size = new System.Drawing.Size(209, 23); + this.DTPEndDate.TabIndex = 11; + // + // NUDEndHour + // + this.NUDEndHour.Location = new System.Drawing.Point(474, 67); + this.NUDEndHour.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.NUDEndHour.Maximum = new decimal(new int[] { + 24, + 0, + 0, + 0}); + this.NUDEndHour.Name = "NUDEndHour"; + this.NUDEndHour.Size = new System.Drawing.Size(62, 23); + this.NUDEndHour.TabIndex = 13; + this.NUDEndHour.Value = new decimal(new int[] { + 14, + 0, + 0, + 0}); + // + // NUDEndMinute + // + this.NUDEndMinute.Location = new System.Drawing.Point(582, 67); + this.NUDEndMinute.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.NUDEndMinute.Maximum = new decimal(new int[] { + 60, + 0, + 0, + 0}); + this.NUDEndMinute.Name = "NUDEndMinute"; + this.NUDEndMinute.Size = new System.Drawing.Size(62, 23); + this.NUDEndMinute.TabIndex = 12; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label9.Location = new System.Drawing.Point(312, 45); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(68, 21); + this.label9.TabIndex = 9; + this.label9.Text = "<——>"; + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.dataGridView1); + this.groupBox1.Location = new System.Drawing.Point(3, 98); + this.groupBox1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.groupBox1.Size = new System.Drawing.Size(878, 432); + this.groupBox1.TabIndex = 14; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "查询结果"; + // + // dataGridView1 + // + this.dataGridView1.AllowUserToAddRows = false; + this.dataGridView1.AllowUserToDeleteRows = false; + this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.Location = new System.Drawing.Point(6, 23); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.ReadOnly = true; + this.dataGridView1.RowTemplate.Height = 23; + this.dataGridView1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.dataGridView1.Size = new System.Drawing.Size(866, 402); + this.dataGridView1.TabIndex = 0; + // + // btnSelect + // + this.btnSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnSelect.Location = new System.Drawing.Point(710, 61); + this.btnSelect.Name = "btnSelect"; + this.btnSelect.Size = new System.Drawing.Size(167, 36); + this.btnSelect.TabIndex = 15; + this.btnSelect.Text = "查询"; + this.btnSelect.UseVisualStyleBackColor = true; + this.btnSelect.Click += new System.EventHandler(this.btnSelect_Click); + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label10.Location = new System.Drawing.Point(706, 22); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(51, 20); + this.label10.TabIndex = 10; + this.label10.Text = "类型:"; + // + // cmbType + // + this.cmbType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbType.FormattingEnabled = true; + this.cmbType.Items.AddRange(new object[] { + "全部", + "讲座", + "电影"}); + this.cmbType.Location = new System.Drawing.Point(753, 21); + this.cmbType.Name = "cmbType"; + this.cmbType.Size = new System.Drawing.Size(86, 25); + this.cmbType.TabIndex = 16; + // + // UCTicketSelect + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.cmbType); + this.Controls.Add(this.btnSelect); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.NUDEndMinute); + this.Controls.Add(this.NUDBeginMinute); + this.Controls.Add(this.NUDEndHour); + this.Controls.Add(this.NUDBeginHour); + this.Controls.Add(this.DTPEndDate); + this.Controls.Add(this.label5); + this.Controls.Add(this.DTPBeginDate); + this.Controls.Add(this.label4); + this.Controls.Add(this.label8); + this.Controls.Add(this.label3); + this.Controls.Add(this.label7); + this.Controls.Add(this.label10); + this.Controls.Add(this.label1); + this.Controls.Add(this.label9); + this.Controls.Add(this.label6); + this.Controls.Add(this.label2); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.Name = "UCTicketSelect"; + this.Size = new System.Drawing.Size(884, 534); + ((System.ComponentModel.ISupportInitialize)(this.NUDBeginMinute)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUDBeginHour)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUDEndHour)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUDEndMinute)).EndInit(); + this.groupBox1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.NumericUpDown NUDBeginMinute; + private System.Windows.Forms.NumericUpDown NUDBeginHour; + private System.Windows.Forms.DateTimePicker DTPBeginDate; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.DateTimePicker DTPEndDate; + private System.Windows.Forms.NumericUpDown NUDEndHour; + private System.Windows.Forms.NumericUpDown NUDEndMinute; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.DataGridView dataGridView1; + private System.Windows.Forms.Button btnSelect; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.ComboBox cmbType; + } +} diff --git a/AuditoriumMS/UserControls/UCTicketSelect.cs b/AuditoriumMS/UserControls/UCTicketSelect.cs new file mode 100644 index 0000000..b9df67f --- /dev/null +++ b/AuditoriumMS/UserControls/UCTicketSelect.cs @@ -0,0 +1,46 @@ +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; + +namespace AuditoriumMS.UserControls +{ + public partial class UCTicketSelect : UserControl + { + public UCTicketSelect() + { + InitializeComponent(); + this.cmbType.SelectedIndex = 0; + } + + private void btnSelect_Click(object sender, EventArgs e) + { + DateTime BeginTime = this.DTPBeginDate.Value.Date; + BeginTime = BeginTime.AddHours((double)this.NUDBeginHour.Value); + BeginTime = BeginTime.AddMinutes((double)this.NUDBeginMinute.Value); + DateTime EndTime = this.DTPEndDate.Value.Date; + EndTime = EndTime.AddHours((double)this.NUDEndHour.Value); + EndTime = EndTime.AddMinutes((double)this.NUDEndMinute.Value); + + string selectType; + if (this.cmbType.SelectedIndex == 0) + selectType = ""; + else + selectType = string.Format("[类型] = '{0}' AND ", this.cmbType.SelectedItem as string); + string sql = string.Format("SELECT * FROM 礼堂表 WHERE {0} [开始时间] Between #{1}# AND #{2}#", + selectType, BeginTime.ToString("yyyy-MM-dd HH:mm:ss"), EndTime.ToString("yyyy-MM-dd HH:mm:ss")); + try + { + this.dataGridView1.DataSource = Access.obj.GetDataTable(sql); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } +} diff --git a/AuditoriumMS/UserControls/UCTicketSelect.resx b/AuditoriumMS/UserControls/UCTicketSelect.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/AuditoriumMS/UserControls/UCTicketSelect.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/AuditoriumMS/UserControls/UCTicketStatistics.Designer.cs b/AuditoriumMS/UserControls/UCTicketStatistics.Designer.cs new file mode 100644 index 0000000..cdb860a --- /dev/null +++ b/AuditoriumMS/UserControls/UCTicketStatistics.Designer.cs @@ -0,0 +1,180 @@ +namespace AuditoriumMS.UserControls +{ + partial class UCTicketStatistics + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 组件设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要修改 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.btnStartStatistics = new System.Windows.Forms.Button(); + this.DTPEndDate = new System.Windows.Forms.DateTimePicker(); + this.DTPBeginDate = new System.Windows.Forms.DateTimePicker(); + this.label1 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.dataGridView1); + this.groupBox1.Location = new System.Drawing.Point(3, 95); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(878, 436); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "统计结果"; + // + // dataGridView1 + // + this.dataGridView1.AllowUserToAddRows = false; + this.dataGridView1.AllowUserToDeleteRows = false; + this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.Location = new System.Drawing.Point(6, 22); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.ReadOnly = true; + this.dataGridView1.RowTemplate.Height = 23; + this.dataGridView1.Size = new System.Drawing.Size(866, 408); + this.dataGridView1.TabIndex = 0; + // + // btnStartStatistics + // + this.btnStartStatistics.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnStartStatistics.Location = new System.Drawing.Point(755, 34); + this.btnStartStatistics.Name = "btnStartStatistics"; + this.btnStartStatistics.Size = new System.Drawing.Size(120, 49); + this.btnStartStatistics.TabIndex = 37; + this.btnStartStatistics.Text = "开始统计"; + this.btnStartStatistics.UseVisualStyleBackColor = true; + this.btnStartStatistics.Click += new System.EventHandler(this.btnStartStatistics_Click); + // + // DTPEndDate + // + this.DTPEndDate.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.DTPEndDate.Location = new System.Drawing.Point(574, 60); + this.DTPEndDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6); + this.DTPEndDate.Name = "DTPEndDate"; + this.DTPEndDate.Size = new System.Drawing.Size(130, 23); + this.DTPEndDate.TabIndex = 35; + // + // DTPBeginDate + // + this.DTPBeginDate.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.DTPBeginDate.Location = new System.Drawing.Point(252, 60); + this.DTPBeginDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6); + this.DTPBeginDate.Name = "DTPBeginDate"; + this.DTPBeginDate.Size = new System.Drawing.Size(130, 23); + this.DTPBeginDate.TabIndex = 36; + // + // label1 + // + this.label1.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label1.Location = new System.Drawing.Point(503, 61); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(79, 20); + this.label1.TabIndex = 33; + this.label1.Text = "结束日期:"; + // + // label9 + // + this.label9.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label9.AutoSize = true; + this.label9.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label9.Location = new System.Drawing.Point(412, 61); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(68, 21); + this.label9.TabIndex = 32; + this.label9.Text = "<——>"; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("微软雅黑", 10F); + this.label2.Location = new System.Drawing.Point(181, 61); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(79, 20); + this.label2.TabIndex = 34; + this.label2.Text = "起始日期:"; + // + // label3 + // + this.label3.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label3.Location = new System.Drawing.Point(363, 9); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(158, 31); + this.label3.TabIndex = 34; + this.label3.Text = "票务信息统计"; + // + // UCTicketStatistics + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.btnStartStatistics); + this.Controls.Add(this.DTPEndDate); + this.Controls.Add(this.DTPBeginDate); + this.Controls.Add(this.label1); + this.Controls.Add(this.label9); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.groupBox1); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.Name = "UCTicketStatistics"; + this.Size = new System.Drawing.Size(884, 534); + this.groupBox1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.DataGridView dataGridView1; + private System.Windows.Forms.Button btnStartStatistics; + private System.Windows.Forms.DateTimePicker DTPEndDate; + private System.Windows.Forms.DateTimePicker DTPBeginDate; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + } +} diff --git a/AuditoriumMS/UserControls/UCTicketStatistics.cs b/AuditoriumMS/UserControls/UCTicketStatistics.cs new file mode 100644 index 0000000..2becb98 --- /dev/null +++ b/AuditoriumMS/UserControls/UCTicketStatistics.cs @@ -0,0 +1,39 @@ +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; + +namespace AuditoriumMS.UserControls +{ + public partial class UCTicketStatistics : UserControl + { + public UCTicketStatistics() + { + InitializeComponent(); + } + + private void btnStartStatistics_Click(object sender, EventArgs e) + { + DateTime BeginDate = this.DTPBeginDate.Value.Date; + DateTime EndDate = this.DTPEndDate.Value.Date; + + string sql = string.Format("SELECT LEFT([开始时间], 10) AS 日期,COUNT(*) AS 总场次," + + "SUM(IIF([类型] = '讲座', 1, 0)) AS 讲座场次, 总场次-讲座场次 AS 电影场次 " + + "FROM [礼堂表] " + + "WHERE [开始时间] Between #{0}# AND #{1}# GROUP BY LEFT([开始时间], 10)", + BeginDate, EndDate); + try + { + this.dataGridView1.DataSource = Access.obj.GetDataTable(sql); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } +} diff --git a/AuditoriumMS/UserControls/UCTicketStatistics.resx b/AuditoriumMS/UserControls/UCTicketStatistics.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/AuditoriumMS/UserControls/UCTicketStatistics.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/AuditoriumMS/bin/x86/Debug/AuditoriumMS.exe b/AuditoriumMS/bin/x86/Debug/AuditoriumMS.exe new file mode 100644 index 0000000000000000000000000000000000000000..e069deb88d97eaebe93b0102a1b9410464a126e7 GIT binary patch literal 74752 zcmd44dwf*Y)jqz@naL!XTwn-E$OUFV!I1!hPzAI~AfPDs1Qby*Bm+c4PCSzUX~crs zT8q|Owc1)0s%>p;Ywy*zYPHqcyS4XPTibeTwQp_vYPEgg`#fu(`%Ex?e*gRivS+Vn z-_~Ax?Y-At=Q1nLxlYBDQgQqpKCIN&@XgO636C7?MRIlefok=o@*htAnz7=ClRLKe z$3(jTXGqDurJfomuXwwp4nk_=Vnz^C69KhUb9rG6-G?m^pEwM z+}8e}Orye>tyH6-RGCI!TYz{5@kRJ1cZ{2wZ^VRueyhDm2hNYF7QIKQvGU*lc1WE? z-GzErGmd(HP~w2WuL}%S3A%T_p_+sETg5XT>yon!^yz^zvj%dz2SER~0sJCO`s(oQ zW&?b|EIV&^0TAB6qe_5i#&_Ve2;9%IbG;Tal2-+uMFvv}@+}S&ljyG~SA58usY+Dl zVYJn&L?_VS#LF`bwYP#fM)!Hpv{7OIr3m8LTBVZtIs|(-Qf9UuQ8Y75%9=o8dd+N8 zO-9wopHi1X6XW9#8Og+qWFAOjF9AU-T2$$DD6y;e|HO-EzaS#&JB}I{A8pSPCmb9j_5px(BgFu#f z?YqE~1yLoEDq&4y?qd*C%)c6pmRecF2Ou<~QrS~X)n8^GkI*_6a28D_Yf8tJ+9w0b zwtyqG?TkWO#u4vIF=N=2$7&`M>h(r?8ZiBzT6ijNg*1!FNE ztuE|2bolTywWWj5Mx&-GRW+k5Rb?$eih5c-(^v!DtF{(`w0A-hb?LF$lR!*+hWgQp z?qkSREB8smn6BOjq-fXO;v6+NmmpYGN}Y;ZC!;d!oe1=dHCvj^VXPGK zKuY!$=7A!KPO>~SLzj=us4$1A_Tvx5T8uhO`D%!cfbM}ZW7$(tTINAQRX~yDW9AnD z-Gez1H}kEGA_dXKjDj;nmoQ3&chGVlrCgmFuu>w5DUsMiuFYZAW3{0y_+UkDoW-4Z z)=6gT>2hnS&P*zEJ6KOw<(C1nPV@1G#)if`7T2V;+z0JTsHkW7Kze(6QvOWlTH%BB z)=HnSZ()&DK2UFAH6p7bi9-qWH<4ch$Xcs$c4wl?qV#PY5}dBJ`*|!4OD_X(x-!xm zR$<>BV4Ogm)#2Bac>p7n*$%Y|^@aH+xP1}9>J~XdmeV5P#&n|=ALg_>2KHA14KhoprXKPnH8$f=sQqHtJL|(qx_E6AcZaab&vvvj8ImGWW9C zwrI0Vs&hL_!aS6KdL{C(Zj#oyx($)F7J^K4M+k(YLLg?p9B7+BSO`Q$5CW6xT_H$S ziI}fOI@J*Z8S#WbA|eDrb|p)np*ul93jynVc*L3H34ug0A#nbs2O>&F(9Q%}kz8k{ z>q8nvu+bH=6qy(376ET|kU;DB3eOHs`ScifdXTagqK+xB4qNLQGVjIU=Fj7hov(Y# z9Cdmn)2m$OyU3EB8&VWzDwyz6cUz!K1Tv>!xyUSz3Qj6;ItErAUMxX=GkC~eAdF1N zcFK2V9OixIJ#GcrErMpXQnAy{%yJM`97Z@R!w44=2RWiFydGv@Fkzx*z5y;W|H4M0 z2dP_7`y6yRt97M5o6}gYKTH@D=${^x>{dyZ6}ZmYrU^ZP9fGRrrqpExoc;^gO;x~s zy9t(G0xKd+l(?*F+$s`N9j(?~oBmiZgSB0^_5Y;=cz>I1K&9ShiKTD5#D#CW1T^Sv za)p)nZI-|q`!-9!$cUDJ6_)McxJ}0lEVL=85+R#{KoOgwL_G}^laHB)xRQHdcEcjL zh*2CF+$gLcHwtsxjp9`4MpJ%toFA?6qvQQ3Of0t;&P8q%=OQI8F`ydRv} zU=EY9gHs#LVe)d&vQQ4whjrA|g;qXk@v^`oM<6qRqeQwPv~){Zcj@*^t*|^U)YqgIj;B=RO?70!vCF7Pz zNw5xX!mN`$yFXAPfnqgE#=8PF5@uUhCeSW{^o$6*l52OMT~=ma8Yo5}b4%gaOU6${N`hnbB+N0nvcD9lkwCE;CF36g zH4;FLSlq%ja((x0R8rYND5|wnYb$}ebaQAOCT9PIb)Vs9l65#!=h}+y8IyV4Gv<^d z8=G9nGjrSu!p0`62^*4J)(Z^D;4Y-MknApDF>?hgKijR`a?Hm==tR_f%#@;I&Q`%j zT#HcefxD$T$2v5#LQcO>Wrv8@W#7fGJhuEqc9_xW(_Dw7Yey`==;O!+KP0>zjvsQ0 zvfI$=Phc*a*-KE)+Jhi}DT0d9z09X`JMKo;uXTGf_G~ z99sa>h|dCUT?Sqx@e~J%>A}(R)b+slVtz2_))UwMcGShznP3jjMkp@6F^2Er8)HOV zeD2VL)i^SGo<_G-mv@K9X>OY^7-M@#iCjYcgIrv`V(NUbq~#Uc!-SZY7{+e+c#!t{ z0_q1{!Q{DIMx&+0&G7-`h+S>dCyA9j=`zgBbx!6&9a$H+aeGSkU)GJhpn z-GkAH*VQCiX4b)<4-=YnDv>I!%f1iEsZx0SOH-xk4jrw6vNV^q9>GkrfDRf zv!c`4^*Mh8u7W=3SvhnA=85-#{i`sk)tUIihAlqlrr9OxD&$96N?}H@H<*^V{83t0 zIsam$)FsU8EAz;^_3elUSy$Etk$b8jHq@KDn zkfA1_MC;+E$M%HFHmTAXsZ^;yXmy87xUJ>N!l1J6MMX}kDWw&mZXHLclS91M-GnS$5KYqWav!O?1XB8>;dCi)wQT9 znXp%(5$ig{mEDb~RN0u$NR`cp42&3-lal$bp{9g&J@VngmJB1nX9c_gU`6SK3Hcil z!Q@EAvmZn(e-p_Pl`63>LB;9vYtSwav%C(Ks7Z`VWN$_eT8ln{8LqDv@c`k&ACim> zL1Ey?8sADq5mi_j%Wz>3 zTYy}ZsY=B`JN}5Lrz->YrKx(i)&RQv7efhK@Em{R}f(A7&Pv z!{VXU8mIWUW>&aLYNbwCab&1a&otl~W^w(29F-p9)703rR0GGD`^u2xeXciU{68xql{wxaiiFa+~{mS3f*&2^udi{-FKt3X`ISn zo4HZUIX8+q>_%m0*A3IMaIR-9l&Ek9;}8Y_`E##f5s5g7*b~p;Pog1R6FN%>7QK8$ zP`kdngWg^-MD3jz4ENw68TVl&&-@(n3;BSUP^QvMMzf~G79TU zh(qSKuMRXyAaf-f{cE&QCb_2_sjtquox`lf(&CfMY5S&IBO&}Gg}j|UPX@W7;We<2T2Bwpdq0|L=r z6Ki%^;3D9)NMeK*nS@ckIMijyUl(Xjaz(pL&>Lkbax{yq(mKGU$76uR2n;X@qa0>H z^3Mn`Kp@&*V%{iodGnehF+y`pN@p^ki;l7sIXTdxWIQ9HSOmRMmLg{ay3BRezpkQjjnCZX2_JV=qt0z43i_L`X2Yi>_oizKpla=sqWibo*xS@cx=nIXMql6_mC zDajkh29QpLR#4)h=Ir|dJ!YzN@HU6JLHajskjgxV3Nu*f!|Mo>?BEq!$$K-hrB4qv zPJE&}kEPVpfyN1V*P%(kQ3Hk?AKzLn18&UeD)&0HY}4zI;&@ov{Y=hn8m!0N6$81s zbQgiy{~|D#fFdx5t_aLEx(H15E&_9|7lFCt6@j__7J;d{MPSb3Alw|edw>G5{}|93 z0vRzvUg030330mKPbN)r$Bu+&4@fPq`2#scsXr`2@V?gIh4^~sLcDWVk)%rthtOP{j~uXl57L)W_r6g|s)2=bMWnZFA?-b3!3D7)fB*$L+)vdE9N`q9M_ zm4n6-i6UEaPaC7d1S01Qwvu@W?WPApOT5VDdz9W8DDUV>db)MDPi4NzVpBr%mc_io z1KF0kGhipYh|A!-7^t3rU%iwpQay36dWu3<|Lth?GSrDGpL+s+^-{7(^~AmE7lH70 zM-uKju_kQaGbufkepg6*l7Cu&0m-!}Js~75g5Ie|ip*mX$MWN#dJK>lfdM9^hcZ|e z!ZMa3!83+rjPgLxJLE`_lLI_Zn>-#!jKBkv((5zdi}D~v+5&QrjNK7A5cGJEBI^P? zP;2YlJy=v&@4?h*cfSe1RKX%JyH*6|kQaf;L=l+!R|MwJ1z}f6{jK%+k7L5Pw|9`s z%vT|!^o1d9As#v@OGY~9GfRxf&d4P1v_Qh!8KoAv7V0Pv1(Z&@k|X6ZwkX0F(=z+e zR3^#xg2y%~c79+4rPh3UT1b-#dR$2nJ1~L-JX?zdY%L5^$kv)NnthyIbOh~oWpumt zZgAsVuZ&!8b$4woN@t^%b_zG@rDWZ^$cK(_qoyD5H;`Jb_PfzPLKNldG0mW#b;Qh!o%hKDq`EOk9N&Tyuf_p3LGrS@fR#X0VJ; z1^zw-*?k#*MWSQ6Pjw2}1_X-Q z22WR`AV1F5j|mDZ;ESku4^_y_!-h)kAqP$d7^`j+`?niC(~rVd1-gjER{AIw4ma;= zKe|SuUuIsaw3(MEmD!0>U!5p5)Zt;hAKlT1vYIBo6!p3mXfiMWWvNnon5wBR;{I zW^$iBCYa4z%@0}+_}Mg@e5fzPCaWu8lc4=%fK37!VKaO~A#u;QM5Xiwgv1B~!ld-F z%x|L-lOjQbMlwddECjs)ks{BMQD;x&Z18v>F#-=vN^i~Z`M;1jq)5=9k&IE79zl-> zDe_8y2Tnte2NEOjz$Ea1F$(h_MS`AG$r$B}(mmrsc$n0cNdN8v(IuKGM#X2Bg>OBFif-^#< z331QsCZ*&qQb!*Mc%}&nm?o_e(`1;-q9-g8Bk;;3DDIol0h1y@Kd@wsDlS1!L{cOj z5E0j7j|UPX@W7K z#FBPvKt9sS4OHgv6E4I(x8_Lg;e6?CUYgT_dCYyyWhL`s43GMSIAyZEKEMuvOc8d7 zd+cz7%zT35|3*|YOmf>xPY5^0G<#d1F#_p#L^@6|)RI?SwNstbYi`Y%7>B=r3nqER zP7ZUyG<#Qo3jzgP5cIg9mEkEQi4hc%Nm?PX9fsFaDYZY)DuDupB0XAq|`CfEV9#bTIrixuEWsdBfoGS-( zrwC-m;20WyoIq+i5RjMT+k(+{?(2C@yUKfFBJrsdC--^IovWvi6ABw$uZqCb z&LS{v#v(A4s0d86r3lQWI0(zN{Pa6RRslyXmXa$*LzTb z=Q2r-!&0-EFt)v9_F)9tWg-dZMH22sG8UN&3aY6XXPCq1M{<7}xh3J;NCK;Y1E-Jh zWr)M`((lIMk-5l?*Tl=R^sLNGmFsW3jzS{5F_*V3!aXtMaF}unO8da zhJ=N1m@Gw3z~2I_?**(y3^(3A(>P7pn+mG=-Pcf!YALmMAgLx^?$t-8+dqVyc0!95P z?;k_K;Ny5LIJ!=h`r<^X3{I5lYDj z?nit4=!Fs$#|U-GX`}aN;t_oH#3R?_XmLmd4$8FtEDJofxplL)gR%+zA9nG6|Vx-!RT!SP7)3MGR8` zJqI-T*H2-Ep8zLb&^W=78fTh)Z=i7k>1?EN0X;7V1(w-V*mL3qjT7`5kC^04v%eQ; zoIpX(1@z9hq52{=IY%$OE;1ej3%DXU5?4&K{}A9xs*R3^fS!#WsxQJ7r&Hz}iYpb` zP>DA*H#CP{&q2_BGtjt{#`+sQp%G7em)1B>J;Q;7yGv%mm-3jDd4jym3-KaFf?f^+ z>H75ekR>Bvwd<3UGQlG&SBUi5NG}N%^pc=Gw#HX^0-4JSdr3U)T{z>qI>t04Go&1_5hbCZx;>0Wok}^Ozvv zG7<6fF)8yD6(Sv)dr~BLI49sgJ&aQ!g)Lx>%Y>9!9AJVQs>cKgmx;&%z$83J6jn*e zAN1ZyuBbK$INs$z%B%=*zpK*NYIl(pnwShJtm~g-T)IcyE1=foGs68U8kO&%4E*8SGyKWJsXidfYEzeHU>UMo;)q zW(zy;@n{D$A1fu_l+oOq!ES}!5*&aqLd6IpRR1u-WhRW!xDO+=xWfny-!MX>GmKnN zfOHlhTM7_Pk8nLSdcp|TgfK#zB#dzJ3L`Wb!U(tUFv9&bjBs-cBiwAl2p4|`aTk!$ zIfVWJJ+rWdI<}hUi zH%&4z^B?9g@;PVmx{CRCqBUd?48lv6T2CPqzA8)OhvK*o_e9*E^D}_f&k?Ayy1F`H zPrLog3fR`Kv`{T=DE14#SmstVRP1dd0saZ~TYw!?VK zam@M^keZVDA4YDxN%YsG@bveT@v0w>j=mqHIKL3z@5c2@MoRh3o3y*> zX@`-gk%9Me^FCoyy`(;KvoQvplIJLg@C|*&v!m=-@R`xz1EbP0>`mTqCUm#>h;^yc zC#cZzs?_OFRe87vn< z!+c5rhYl=G$?OGEUF0bN7I0S0A`em8E6}XFHilbt?jeM+v4)Ehf~4atcW?8DfcWez zUz^;FG0(pX`H~5950-{Fp8YKr;0Ked*d1{_0E6U_lRYoxSHjEk#fDS8%FDvbx0 z4h?{P*a@M#ITOQJZsSvD)=f(!4kd=&&P}b_L%dvfQkB)8U0H^=E|_#UbN;6>m(0ZQ zj{;>c36v%7mUW+7ma@3}Z{ct8x?QtgZzAAmy<1MVHGQGGCbqFBKB=cDFFx!>?f$;A z5#>2`aers2s>1+G9-evlw z1$yLR8v#ZvI|e5XAzaRIAg`j|B*N@5~LFL|JFk1v900VYgkKgYXh*uE_TrR z6H@TzYJlNaYgm6~f;o)ECT=~4c%Ah;LhA(tc%i|IOvQ8h`W+K{@s5d-!3?T*7fok1 z-1{;vot&HT&w+QW`HPkduex$bW$9HL)j29Avr<g&Kut$+LZqvrzhX`jYoXE0NlZr}|am+IcsanY#%==gfC znKGQ-{!1{RM`hOk`G`J3@I@ec0Y2m>dHx9DA;&sb=~T+o6`mtqnk!BluCSQ zryLdx9m5FdW7ypu3oHEco*S6?yi=IeG8o{8I#ci7EU$?>bR{HQGrIWgammC=S*q#7yRAP@e5}8v>)UhZe7vcrJWP%}&xs<*P>srJQ zK|Fno%K@i~*C2_^e_15lAn}3*35J~4Qo2Zk#M4=~K~6}oK}|T)C*evz;;v&-hVMX6 zw}vDkMS_k?0tJps0jCBTu!D|Et_vPVns7KG;c^u5VlqkYafomvMS@;T0tH@70grY$ zk}^RrCYL9VBTd|)HI#(QQA9>e%6wTB$ViF=eToDMWF+7;mm?_?^eOIR8ShQ&q%yd# zII1Va?OUnNviz9CQY@FwhRihqr@Ku_nTG;XfPm-PA%Q*qEbj5Nwj9^al+pMpST=lG z=5z}qoD5-v+8RcvK4F9d7DgzrFv4ZWLEHfw-O2n3$ilTg<%NIV8w1@ZSh&JEhiloa z+-FcDCvBdOVbZB8?5nVPFf#*I&v~?Z%;EO}%zg%f#Vr)s!}zY>sGn?@PJ5_C!N^c) zZ4X_=R#Az5F4euI;aPASxuszN%9z7`_7XJZK5z2R!t6<87Z&((rmQl=&>~-!fjD1U zh+xXy%r1NY zK@Hv!I^iudmDrP;-ZB$Kxu2p$UlK6(Ff|hT)`#HD5HtkJ2aYFHFRY zDM4%+o=k}%!8{4%sk2HEs!+}VURQ%x{h;D$=pcTD0&>*#r>g4DmNSD@CdEPWrz)JB z)_af-NAv1b^~^`=YQ~_7N?pa6Kow)cRe-D+lN#gXbgLMf8awk5bNCua1C>95dLbK# zn{PT3iZ*6SrBWl>n61rFT6{8wQnT=fUnTM0Lsn>GUWTeeHYS0hHfB}1t{3-$w1TZY zmm{O|(-c?uQAh&lmzaS{=$MgL`qB4E^e$$gb~$%kykDY^5~U(Img?0$N`aVp$v|nC z!))HYuY&EnaWde>S(S6Y#W3q~aaQKytSxd+2CMchE@?~tWT_)d6cBOnb z+hgT>qCH-|C)pF^J6&!!>qyd`q9YY{mJ#>CAvT@fkv=7)7X}fI$KtgCrsh z5*mR)CbqLTX=-1@; zV3@o3b;vA6t$rh`YtuDU;MdR=f{pNDfG?cY?@lRIO;g;lR=v-uytLnq-kLLu?#2tE=Nx0euH&y7(6HLoogo-0~S4o-R)+rfphb$w{ZxZ)* zYbjNd@pjKq%|8|j&k~V>UT$5!M>k7q(DV^!2{xt8?xy5EwjiyIsO&d@J73vzjn|aU$@;AOL3ZIDNV}#4SN}eR2;7x77Jwsp|Lv2&cfm!0D*MBei@><6-yHrh>Xuoh zFB!P!rrTV&JaD8mhcRqLj+#7J9qA=TdLCY^&iMLB{(8zLG!F?BorieetNu71cgn_z zQg+UiyvdK^)a{}ll4vW0y5|;&E@t#ri9X6Gh2b2`KH{U4g@b<7M=1*D2!`3=HgPAT z!>rvsF|m3#&idWc6B}@Gw&3Dy!o}G}WKCgzy~#!74y?dk>J^aK!J<|^sII%6ZF$k<^3H^CcrvODRWr#za3F5HUU`FzYrGf55NuS z3qm^~YX~_62zU+w5_*UGVswXNQrf$%PngpD$((drBpf|`6AO6+2!v1HMD*$Vrf9QF z@;m}kmHg<>DlHEJo=1R;c-Dd@9BYAuFI!TcwLqdd{1Y&QLUsWG&n_Slu?q-g@N0c4 z<6mD}p&4Y7XBWtjX`#u2Q#Wb` z$%rR3O*ld$;R}tFCo~cfp%DrlYzTNlBM}iAAuY6bN7>g!S84`Dp|#LtHFtzYI4U$^ z_Dc5j48LqxXv{K#(3mvA{i#o>YI8tn1UyY6Bc9MS;Rua{FEmn~&`3mtMksXHBH#&) zL_}zWMi81V>IjV+s(*YYmH8hN`_$CXT0lH>(MO8yPR|LQk_Gf`la(^Ti#`NAZvzP! zc3rMv=iblDUEN!5HG!;L(MY(WBiyUP2=@vHaYZ#cBm8o7^N2>cY$)D= zRIjzpAyn46hx8zE#qe^;Ty_#TE4&2JSDg?!s@{O3>H%c+t@j>U@8uj}UqIb*hzOn*-s)7K?^#spFRH0zq~~oZ_0YM1K+$u-->WbH z{5X%(QkYJZ0(XuG91`bI;ca5)Wg zh@2<~#c3Gof+*B5x##l|eUwp(&^b<^8aMBkB#JP(hvR1si;jE+w5v!?T(rT7ivl=t zw&0#7*hJ(s!Rj(Ugw)cDLrW|1f@d}fde3Y|UaP{i&||Cw(x*gD76MkfOBu%{y(Q8z z!Ge|vdM!tuVP#tAX;G;*+OmLE!Ir)HB2SA_Mbe#-#~uh4oNow*&Nl=yPg0uU2XLgy z3b%18o_8I9gu5t44iHSrjKgvgk&qM#KEFty;3X~uJ?F3#2|m6^jrVvUF#-=vl2`pi zc#tA3f%jYxDByvhXL3uC;Io6AY90?HM&N--_%Zshf=d426LXR)`o1dx%U!`sncx$1 zoZ%h^Bu3zXN#LM9G({wT@YE!^q8tdAbUBbR!BZ0#7LNlGBXGbZ{XlJ)2`Lgh-V#Vh znGn!pLdpb>w_MUZCP<9H1d}uq;jxe+K}&`}0TTjxVi^Ac7&6j+8F40ufJpD-bt}3|}Z4ksW9S9UKCZM++abNaEpTr2G&!mjpU^z3Sfl?&s z*db8h*b&g122v*I*x`QdAHZby)`v&gyq&`%;fC~-Z7H|j+xt{$4pv#o(7U|H8A4HV^Zc3G8=w4Q;Gy1cqUNrXs&?XZXjh|3A{R# zcBXd|2np{d5II5Ik0EVv?*SRaset!@^qc&i5Pst;vu9ojqa$99}0epqq>OIId_ZroVW+Be0!ndEhm(?DKVioqS=tjZi zGrnm3Ysg!0nT#h~dBkQRDlWYI?EHS>BGt5Mr0ZVfJaoP#Q1pCzM*^MU$2mHF6&amN z(d5lJI%0Mr3cXM6VegzMJMSDmzu`x}=|>;*qmVw1nXKJCHnRH2v60FCf-afYp-n9& zM}MS_hVgvp|}^=QJ`dPw-3lJd45 z64ASXh=sNu0^Zg`BC_=m(!0$qQU00a@y~(rcN`ZD6lA$Eut*qj7IHm8)n44N4^^%D2}mefJ7K@$2h zVz@!#1q~7m9kZo$kp_vUy=NP!>0X1HxI?QC33qji?5s@Eml4BefD{Ryvj`MiA`@`3 zd)SjQ!E+WToX3$S9F9o197VhUOwyMT!yHMGptVV$z}gfr<8mZrg4QPIy~mLz9F9o1 z97SZrBz+k%%#joc9*7AP$Vk8`E=N)(cp&ET<8h=3ha(a$N5wtu%%Sfso)nVi#Ow(3CR5|JmQ{9LQ3srsa1X{Z$n`!HWVwmp|CUF z*@XlgK;ie-610QsgXCHh`8`L1-n}PM;HJ~hd%#jx5&_EwN=M44=*$vm@vYw zhY@n}_7v2CUEKB#)gq#?#LtD-evozzQ^|S0G-Wi>njS z#i@D?dW;NShWgwU2rtSVhkC;+(0n|$gsJm*D6{hmg@u`aixDx0{hCYA_DuZ7pZHNo;Tz_9mQg)vkn>s`uy(EmM1u0Is#yMK9+4~y#U1#LVt z-wafqeO5&3te0UPFAjRfHDKBT4{H`B; zLZXYn@1E~5>b?Vn1=BWuoOKzJ+(#w|7A%PbL$9JEkhuk1MCK83&w3{}s6QX7pI|}# z1Ve9RBT%e<;@;h^?4q}jkw~AEUJ+`HpdDO~B-f0{;z`hZ07Z)I4!i`6((_s&fmU{f zS|J!(q9s?f6@p$XQY84UIu4Bdu#WtAW2ky2*})%rBaq&TLr`!tBIw=uCPjij^hUtj zj7VTJ%3~G;pAIpHnJ~I_ZzX28|6}ptb&s`#*EIGvj8Mv9gd-b9s7nsw?oe-GmW{9y zK7gqlT?u~z%-N|UE8!F~ThFOI{asj+egGc)SNxdrS{KdJ^b3Q@I;Gwk%e8m9Qj6Qq zSZpW=37<;*?VLAj_N=+H=gwI`q(t>1{ChL}ESD;E?nJ!)CXIOefZfx#4a1_;Z6{;j zIR@DJc6CX&Qe%M~b=vynZTP+#^rAA*i+e3>IPx)JZ=E&qE9K=CAm23R@@*e%{bu|j zs<`D{g1;X8fk(XaNZ#MUHC^&CZybLtUW>m{{1Hpwk8LwQX{Bz!y$<{&)W^&IuQs7- z${BvV^r6}@YC!{Wv+U=ogt|(?3nhG0!p9{1y@U-C{;l*GlX>DciT>k?{S%?+t>c(2Rs>T&Al5)LKyq^i{?gp)_WL$#_v zyiWbG`3LAxk7@@GzfH2{hpK;QB-D-Le`r*z?@P|ic;>%f;?snaNz#iq6KwYZv|g>2 z30Hk)Ecs(~0*0tseN~VjrP!BWB^WMfX86vE$Hz9R%@c1+HmYZu8P=E#=f@asXt)jh z>`zj{kB&PuE~&mep5gS^p>YZIat&p2Ml<=T9M=ZveRdq>-=3IgCe+0fS^xK{nCAn+ z?RAaJxjx14ph$88`dFu)D*r*UTJYlBs1lLD_hn@NXVT9xI#*ys z66&{#-2NV1Rja><{9lSu{@-t8m`VO+VnV$aW06pg%DDVYdiO=tKTiFsoH}*}cz!`y z!v8qYu{If<+{73p`K+}2bBs&1`n*UZQ_HsYj=ODQwHib{jcO1wZ&c@xqvX$3sp>}c zVZPOpsD3n?Q1(IHZkYPpQU87XS=$EB4kQ8VY^y)qrS))<(nKW_Y` z(JFCL$E1E~tjD}Am9%e;B~_)ysJ$>pzE{nhX}Z1O)1-^2;@XrbN}BXu(Vv4vlaCACy75~{C>)F#kO+g(FyKrI()<3v)s)drz1 z7wR%~j!-vAxog$=LVd87Id4!~gnF-}9Z*|^+9zpWQ5Om|J2j_qy?R*n3H8k;Qr}Uw z!V3n}apUnO1>^f_r;4FRN28am>igh}5=4%mN zr*1^pocIvJv5Ai$ygbhMP@M6($vY7KD8Zb%)F;%(5Wi#WClQ`0;f)en63&z`CgCv> zer^nNJ}2R73G)&*Ncckuua|IQ>NChW2k{MiD<*yc;WUIPSm9qrxFqoa!mq_1LY{|= zFCg4k@+iV&g1!5Ej7Yqi;VCF(sGDjYN2qzeP5lJ%$JNge#!7yTu*6_^e}ds<68~h3 z@#`f1h~&9l;{T~4ZYYMQBpI%r$Z&3wGHEner*7rU*fWS+gd5LX&#nN z^yR7ZoL%xKx%-&ygB(5`H#8u5|0)lDOtax2t=kInlk)EovF+Ui_zqZ3TJw zT%h$w8kySN#C~bs?pOan{Pm{S5&oq4O@x}mi)#*f@h_+tUMQjSYaTS8n!_L`numL9 zeQ9fL->azM|CO+&f-(<|)Is5JNXAI>tS@zUC;TMy>ZydAlx zLC)_PPxt z+v-D!T3E$*IXN$FPGDF1I;>`;bbD3mRiXB&ccWaDI;ut2d1d8<#2B^Sp?(W0rLJ_S z&x5K__dC>FP_^o>4s{-=dNmO~0CF}4RD)XWP~SoeO=_P*{T0+i^+kvJD5$i0SSZc) zWc6<+ja*Mrf0)NQuU9Rp2aGA|KSEtDGMl2x-odmR%PPkolbE8`I8;kwCa7%=bz)*J zsD7btE~{u>m^eyZDU_DPQR+IO^r#%AJ|0T@l~DWC?aim6-2dscvTqm$?E0}Mu=V$r zec9Ncrm3t@`^x?&z75n;hk7GE7S!1el`A=9;#A~N`I6J%E&72&{j_A8%Bnv*)Nf11 zg8I8deK58G@AWM^k?rj(yB)9eIaUog)C*M`a2&eYpG# zN?X*wHKi8e#~)^>I~Piw>V)LV#7uQM&O{u)&o@mnW~tlWsi_NUIuggJ8K-FKsY&N1 z=BVo&st@BgNBvnSJ$`dlGrY{Kh2u9*{c$-dE$eyeze4R(IcWJjb>Epx)8$T3FAAm0 zov8M&^~;^8?hh$s^$sx-ma-E zPR_Y#p;eXblv-52e0ySv`qeH?T~a>DSgOw3t?N91J}gt)h0?s7uI_ZwD8c3G2SYk% zIZl4d)tSSZY8C1nhk9119-%bX%heT5S|fN_uD;E~sngpt)qjQ3yH?v3xz%duI=|d%^+BQbsr%5Q)#_!TbdT1mqpxR9U2dJ)dZS-% zo!TqZK1Dv)seunNO_%FX_X?%Utyf3$LXE@cdbL6*J(}y))ps&Ympe;+TPR)bZ1phi z<#5ZLt$rnxZtrZ>i+elVa_6YKgwo|UsnuWc%WYEIh1#boz~?4)^jH0I=c#jr(&f%q zPvY8|+ur%=WudgrpRX2u!!LJ%+AWkW*U1DGlm4A#xYT3D9r087TFWK$CV!BtVE!9% z95mI&Nj^Wp)WWv@|A4G&BF}9iL(Q$0p&yT_Gb`xrVopPy)m*MxYYm(WX+1R{Ok)3P ztsSf8NVq`4Rtc9&xK_fA5_Tf2g?ESfFP3mf!Z`+OTY#`pwMu-sggpo|>LrB7sEy{L zrdhDGSr+RA@^_jO;IX(B@g=Y+i1e5ns?Sgd1i9EONpC=@N5^kN_@l85f8TTw!oR|r zyGQchqh3$G8)uo*8$PD4GJk^|;d=GY#(UJQ=G@xPsb|#<&0oUX&VO3{HFd!JYRNa% z8|td$qo`p~(|6UYs9`L^*CuX5cs2I;SJi*Ye~dhjRs9ScUX^5vwdvoW=HE~H1HvcF z=Met1`me~z7N1qmPJC4v#)n`PmKz5jaSt_%fEznf2}Hwd&CC3 zUwHnOgilELq=e<>*Wi^YH@`nVWn2$gO)$#M{?sJnNwc+fD&nW6W+EhqzXrn8kCo3u zcpl#LT5cYmI95GtDvZlZNIeO7M@1{bzcrk0yb7LI8Q)TuAmTYQ15^Si_U*hN^Roa>Tn>PjkO98S!1lv9Vm^9)!P)U4b4w0UqvAnzwr; z{*!V0fee~#{jrI)>Qxz$d(`!iPlM>gWC@RzkoDhSw8m;1Z!wm~E{NZ5Y>cH5UmIgj z*T&e#wK4W?ZHztYj7=;3IBNdK_Wux+qy&Be32ZcvOMlPYXikQH-Y+@tH~vubW0O+-nfau#x%^f0$=Fj(ubbaO z{1Do`JHhb&##rnP^|=Oy^Cp!etV~tMHkvb=>SDi+QBR&k4G4{Yjcty7OKN^X!Y3ts zHug$W0=w3%lB1CS6|)xc+Q#XzS22RKV=Q|@>`CKAlzr0ZDQ}Jq8PtboW6z-!`B@XY zK6Xdqtk|!O@5X+tel2zW+W2o{E#fsz4F3^37pecA#Q0wlT`?p6-6m*koSOLt@>{Vt zjEgYtsrdIw-W_X*_r&+dQt|!e?~aw5e;$8#tTWbXej4HA^p|3byjf;6wKt(&72X!aH&xf-1*Ljs-4Q=F zUT$)gSO5eop7}3hdAv3LQT%}I9CKa6n)uOJZ8pc(nlCoy;xj}~S|#Ul3D-(EN5WR~ zFUH<@XFOfwM*1%J{OT7oa)F+I; z7=Jeo8K#*qE6jD~4)ad)lji;AgXZtdlVd%xow1L`9)$i)jL(h_#J?Kp$%Rsf@eAopFs)G85Qrx#ip_2uSIxf;wFT1nm>Z@VdGAOV@mEq zxU1xo2ul)-e>z6|P!+@Z6Yqqt;Y`#wR;@tDe=+<`Ld_<8-1L8E5Ss94mm@p|qhR3V zTY-2Mz6YLI@jx!lrehFqL1^OinL>OfLQ`?P40RkrQ_aTpF?eMWns{4pJ>qi_&NG*o zZ^kynFN)t1|3o~#mzG8F^GlHN0B}Lc8N8$x!6p{Lw3k0z_Hka43zhA`Rg@@ZmwX~c zj309IN}W<)bK=({-Vcy?RlUAhjPcJ*Q0fohg7Mz~zeVgQrMi%R4VWN43-K}x8RPdO z{;(5IpzLmp2Jr{@x8!=~%vL8a@9P=p>Fn)!SI%zFbq=iT>_278=FP`%M$#!=n>V-h zOky}h}vfgY>xf;nnMPksPj1G@)S<#w$>CA%!U8+7NE zHJ#gXbDa7}FR}UtY^!&U8tifynWJ{(`UZJLw||c6+TLjo%u(H)1D&VYJ>466a=YfJ zZMHSozu4OC)^oh-u$K1?%sqZ&{*HIsK3=zde5lIfy(&?~DGN4lo;y-abKQF8>U!pe z>OnDTkxSF6^+?w$e5?it*%vR$&DEn(~Kp8VOWJvXqSvv)9e_C^79$fS)@Z>5qPX)@ixEoZZuv((A-od*{Fa?hSC!_MyJ6?Y7kiG3qK-c3x=N)Gev-^v=F+ zB|TnZ?btzra$k|#mP2$|4}u-Jf$df|ReN=Bx2xJDTf2Ak^aX){>Z9)%&YrD9Uizx_ zZEGN;oV2QAY)Qv@xAf}B=6=c3o!i zVN}bx6j^zRvojld@;$`YK_hy0a~v}uC`O7Z>L6sgqh|nVEU9A^eST+F|ME2Jhx%C^BiV=-9tvYc5Ly0vt{NBDf8SX zHxDo`hh+sO)u8PSj7w4$OQ3U1BCBrP&gDhvTv}#dUuQ2z%wGf+cjhssg98IrpF~^x z`+Ix3I=MTv=VU(S1z*x@A)_ARoLbXqgJR3-)Qzb0ru> z_4$D|tP$IYu#$Dwu8!Oe>|?Aew`FkKww%4#wswg!VN3uom4!0`vg}#gdyssV&9J?r zRWD_&1K5QGU)pLE(_PmtnT$P7y`dHhT+JFBd|_4%A#ERh;tSiob| zPm1)xPXLq7Z1J(yd_K2hOYe}Vei7KlBC(^>zQ|AN=(Hh_Wj0h5n|L6>t%|z40V@l} z)-UBIVte1(vuzL}D4N`s%XeX)4<~BjN{My3-p<_;%NN$Y#>NiWHBgwa#Ofcixy%(y z!ot)y`m2-`$ETY7qX1_G%|cjvk|-dL?y_VhV1D5Xz`Iyxj3N2Zv}7#)MUdytOo zK>@@EbOtEqO-Vj=VzfvCvI?jQ#wp>WtX<4teYccGYi&SeKro)oX-rg;pT^A{AwK_uc215bJTaSF&5uF1( zfAf9Mef@zB%fbc&tzQWF_99{9vd2d{YX zvj?C5{FTq|{rX5b|NPKrpa0}c3q27?M?CgW-gCk2IPit3Ku0KGp%W-!4 zb-*%o2x4XKBw#Crp$9r6z48XTgBNRhgNSrE0?S`O47g4Hj zhc$p0%jg&l2Z1&Z$d}kT?kx5LUghN2?D#)F`LKiq0Wxa9~Ym zA97*Z>6Ww&iql-Lg7M~@>{NRf5pHKLvRqpRF3E4KD%=L;EU5IBsN+0Ix;W=IW=^hi zhr-&w4O^0Qm2*gXDiL;G9~E-l0(iRB=Gby!RHzYVraI!BRHK-UDyZuoC+^J0CA}le zQgy`nsb2i-gD-sZvxRl)b>aE<-~Hl&PZp*I`59q8t5MA4P`^f)X`y;X$}{SDtMo~c zlTE87jv_rf1dX07MH!sEQ^z}Zb01Z%@rpUCtbQEp^7#%NP}J)FT%Uqnkn819)M?3y z$gysPh2x1+mCYzOCVgH~&fy1#f#qFRp9+||QecIp?OuN}1uP;LJPr4wdwZMiA!jcc%B}wbDn}0MOwaY{#iTmk$7XDG30r zw$0;U_tIWjFas&9aE;Z|hq>;$kwnI@;RA?sFz@TrjwX?>EZb|WJS-nbpGp!&a0bO% z%rs{;V^g!VeIOO+#ab^(JXWezgFEQIST6@Z$KI9UWQ!mT@M45fOac-vn6MXD^ADqaAg4CI=Rj{%;`PMro`o#xrRNkv87O>FkCya z_UkjX?KuGa9V?XVZ5iFUHfsmvEC(gEoXRDuywXd!oUKq@Zufu_CHGk3u_@D(lHFOm zVmM;0-JShR>9AH8+mHc~`$(lUz>bRzGItPWYJ$lHHLhNOyE1A3mD|_T>Dm zs5fhtyRaU)kYf#xlsme>kCZRMO30}=QW;%$Pv4Q!^`XOG??=iTY2TUJqs$#0|F=~v zq9Y@fg>lr6bqI^`EO&SPG5US+v|Zc+FyfnCN1E+%sN`_I))hpQHQ6CKLoOk>8))r zKVa<$q-dXXU^PM|vZTq<1fttNUbB&wUpVFSxcD${^X7r=JtztPzHsSm=@IUN zQj%=k-gSYXksK){W8khbA>+hpif-n-UYT8QbQ`yN*k=L4pb-hOpqePCD& zXCO9TF32JYE~j~JW8xnb4>x!2d|q|xuP*nLqB|lY*HIV|4qLrAy0G&d7GzrtrUP*x zCn*peEH`>wIm4w}lmMdIu2Jw1V0%={^QU*_aY1HzpO9R)WeQ+rFFKpN72nIICr)4% zaM$6GhuqEyW^ndl{xFN3-69MY(=2+fJ=Lfn2N2|21-6;-WYaBiI55w9BrTf~o z_5!vKTayE&R-8fGhJm5hdshIx1Du!^as?@5i@=bl_biglvmx<(D#YfD7$UL>^AeIk zBIm$t<>*2wsk_CJs0$k3+$D9Oo7!ZgYG5|+=m+adyp_he>?M0Q+)#Zxu@ZAL*J}!M z2Gh07|rRTx0GHV&qAUm`Sy zyok0MgamikL}j6JuLa3ELobAsUS;W2$Rd=BG&`<#bnX_};@B^aM=9kFnMT-n81WBI zQdSOZ@Mhv5rD-1892yEEms_C2`qHo1jm*hwavM6ka9M1K(x!=-KQlKZ47g5cscs#v zf35E89a4@@7q0iUgE@OhX3)j-Fb+t3d0)<@mgiRu_V%u}mtu&A^r1iBNsI#mYu zrdVnaWxG(6vfRKE21?t$2 zIMdit7uq7l+IOR^&G@z?btY~IxdbjrkHafpra7Jan^*@Cl8rtZy!3a?!a(j z;6IoA{?cZ9z8dMecx^qV@uk+LuvbCjB>@ik7V6)4q(bShp>DU{-O4l)bj4dGHNQ5)4BB}(2g zc=2YV#w`~}snI;H4``VxIdR>6Iiviuo2_fVbMuq88?`#mV$^406!i$I)G|=EjB}@8 zs zMTv4ZuhF8edvopZ&h?u|Q_9V2)bz_b!@Ywm4ri&F9Gs)>8q|)}OYaX@*N!SSXERvS zGKwqI#G>{=ZvM{ns4Zuq3YKKYv*j+ z9@#m#n}k}3-Oy#k>em?;6{~HAnt9FkA?{0WRqxDe`d5|g4c45&UbzZ=(L0!%!kx!B z^@7#ev$TZ%ao&$F?O*lywKKLYJnM>`+lML-f8zX=t6y(#Jj`8cAeIW_xwA1;0I`c00}#SLR+@ zbqQ`CorMwKjX$IQ_5FXl>A0=aI@-7Nw=)Mipj;K3Qv==sDlvb$qsG%JegdUR_z_pE_W8_@N$oH|>rw;U%Z`-(f z`;bvPi2b@9vw(IRXQS+SHQQvi(4ymBx|{o81;;h9E_VK*4MwULwg4`~VIJWSi_)sR zs^cr0sGCL=t+Xw`dLc1YswHcT(IvEbiu{3G^N>r+%dMAlm3CM--wDX4$HJ|R?Q_o# z);1r!oOA)_SL0!~KCVu*IC^o%vd`TdXpgGsSw}fY?gq^x*MuF&&2`DKAZm1qUPE?3 zDzJ-MUf=&>@0iZU!_Vzsc-F#IlefRJ;XP|#yzY^!Dt1*Ke*F4hwBNp|s^f%p)LWxO z!UCy6KIIF~ntTzp(5P7t>ndWoR8+0{zr71rz3W|AIcoL|ZMo>iYjbPQ|Ip8S&)PI? z7+C7)Rg*8`s$I3}-#aTifNWfkm97ms(IIvwSH`nDn1cs`rJ`e-6zTJ@Mjhkm%Q4WG zpmiF~!C7z&=FSVUKhR#RJj@+n&c>w+W2|cx3s~! z#bRXYDoA-(VQN~JEuIQ34CoE0Qq7Z5dY|wX)V;YF+rHg*?RQcf>#-GDMZJ;{EMdAa znR2I{$y32r>^KD+kKv3Bj6^-@BBO!TrTn^=wsc+8xBH5no^5{EsM5Gt-G`06SB^C0 z^+5r5zN7l+fno+0gx6Ow?9UZWdw(Ej$e`*W({WDzV=(>oqQ!46SXcxqXnHzBCUIv# zXT~=s2Dn|lxwhe^%EPbkr_$+8=}j!Ds0376OtFSGDAgJ$7bh6E)()7%GAYM&;hRUQ zA&483w1OgWmV;8gTm}d19T;44#Dz~LM3pw?wJPY+&h!r`!HIbI^|hQ4ORO_$R$&=z zgJSVW#|6m7J6SXqSWw1jtnh%=|F zH#WUzt=fD_u4>f@xdqo$9)4p}-A2-+#;>Yc_3qW#LA?wZVz#f}oLd{NhfAd15R8;o z{lKD{rfTZ`7c*>B>h=AH*Ku@K=hB@&+>fbOyGd=`^m_Ywn9%Q(O@N!PfqecLGTkVh zgLL#^;wD7{lN`8Zd|fgcHmRpJR&^9f+4rZgwLx2II+TnKicOx)ah`{8xLJ*FIb~%% z^3T#?yNcaN4{m=S%LG>@y}$XEiQeUcG}ZlBtT#NJufjill0E~g5$O!}$S~*Oc8{F8 z$vMkMxx!=Kn4GSdW}_9?a@ypb^qIOC$~Ayhk0;_j&__9w@~A)wVw|8yi8p|boZ|gp zo3svD?*RT*OYb@%e_9E8_&FM`y~stw&&Tl!tBN~vu5EFiG8*($Sqfgeu|ftW$V8pO z{%jLGlv*1s=S?)HHouIQQmdB`-HvA=I17uP-%F`@>e9{IoTWhG&Z1I&vKpTmpE(6f z+pcT0HwFuo#GM@QE9ku^utbz{LLgr$RUO}B+&rCn87t)k0q#uCCD_&Uj;5SFh1L^o zAo@L23D4q2Im4$ey=|M(q&;Gt>NG4ibnIJ6xeFEWPwG;L7WI_+ia{O&Y zEL3;X5$xTnWv~L*I2N1|TOw@LseLzw6`uo6Gn}HCfu?7P<4R9q9ysY5IMRgW)Ln+v zJsX+u8FX#7C~qs+#{tc2!&Su@==N%?)iiapST?AdI&ZOdiyeZ3OHA=;#dR+_t+*=^ zI}Ji-`)d%_F1EMo3yo)&dv_waWirZNT!IS(r>>rq!D*-`raMjbL5L$@l)HU5DuS*$ zNh{%47^7gO~#x63KS##`&yGlBP+q)TAGA5~?~)&+$32 zYCEYfu4*KgThl<(Qri4c2@t3S6^RH11p%r`Q>uW12TOXyqS4>EcK;Opbd&iB8>(kO(Hrun}nfC)X|~r z_llrZs1km3=&v6cd_afJM}icx;-nwvweiu2WEk;F#i?sYkci7hW8Yk(+kAtu>LhAD zUQ7Oz>-V5LZk1yIM-WZwdK{u3ak0cOXI@C6m~Gf0rG_@yo*i<`Zv#8g{hQRP#o0E1 zj`wbb&OM;75)`gv(NpNt@f1<-=CryEJVPmC$?TFbDX&Ho|79`0KxQBDsCd)VqI>?~ zTsKA=c$SuIK6l9^?DA3rvW$`x^#OWG zn#-?TBF7#KG+cGk5$sK(Gd>&Fg5CURiiQymOwro?$043;nWc7k?2&8boL$#zl6Va? z_t7InvPmM%0?8;6(IW_IaMFXV89X~1y}FaNp(S=<+O=F#s75vmpk_2T->>}^8bB#v z;==FcH9)-vXXEHLFg?w1_3WjV>4GIm=Ek;&;^>yC`p60ST>Xt~zGlv|qM^6BwIJaY1Q+hI0#SQ+0k zT{lbL%8%5~-(WGxb@Lh9vV`N*GA&oEwL!$8(y%v)xH9N9u$+VnDVAwZyNBY@D-InRE{E!2ml^#UmEU%0G0=o zyqm$I!ZiP)oJI;I<9{spv2lcj;i)K+fU;md<;fZlrcuhU(E**Ov>U-sfUb;Fs+_~oS!k>oEIGPf+uB= z2v8@>%;i+PgU@M?>PzYdp3Z#ir_>BBS)YbLH&rzlQh1B5~HEuh+PeK$`X|m z_&Np(^r9EMEMc6nW%C4QGPWryCt+$)B6zz2g%!bh{L7NmTJs^LAN*C9#aQq<%H@4*zhgC8`zH;rO@)6Hq1cp6r~ zP-1v7b4B}zi)wknKO{CkU>#dQVQ`(rc8-w|QmcC6%+RF`M5pQgj^$R>~~=!?)FLvVa{# zY4HMf)N}Z{pqLD*dKQ`CAFXkTnHH6EOM`F7sEZ9pCjk=hq5xZZwrkJUCR8i9K?F-> z1jO%>5mrlgy>vJ0$T!Hxt@?2(tKrS`U1x&>I_K%UN9V7w z&xe@({Qm)*;2Js&X;2C}f59@7pphl70Ro}@=UwcK!UyXocVo_K8_%){Y= z;Z3~!!TQV|ocF*k_v!&y*!;j*1{3jYjCJVIrjd&du)=g0-mF0Xt4u>wO{n<4IN|#@ zb#_6^vBETN>{``TTvb}Ns(o<(aA$jWY5o58!QnNX?W>2^uN@j1>>e(zg>EE=EV}U8 zE_@8*HoV)UW5?G1stK94&{#+>U+smGx>r_%Lc4Q2aBO4|)A-d8zdOys@!g2>+63!? z;dw}$hmaGr)bKaSe@TaS=Oy?GOqW9uZB&xsoXWyVeI0+stI$bY zDn6FlD+zB2#V}rlTJY&jrqQFUq01;eT+lamV~ubhTy90)iDeEhIqt*n4ydW`knvtl zzyEJ#SzY5s{ca31O5<0DgkIP~M8Dl~d3_s{&Rh-F+eR7ZMuVyPp^)aG-m=`b%JnO5 z7*N-#^tV8`Cd#CayYjg6Y)B8wI6TIsKHb>tfSI>(EmE3TpFRXdKerTcA)y>XF2usr zVZSNVHr#p;#<@jW_}BT}3J7H^JX3wn!x>RI>+O8!fo)!$&`OxqGAs3aIhM8ytAw4^ z+rVy5zCD0gQi~ouXgC@x*<5*bpmaPc&+BuB01UP3lBtP-!`R@!k{`fEj3bCM+t0_l zCwzQvLV3DKbJ*`d{6%n7OYxw)+A{G#6`KZj6tLWPgn4jTg*j{7@kws#z?yUY!|n0% zZ;*IbN128YpWBw>Z8H}P*1cQeJDIi?>$NyvC(~?3ZOXE4JUBK5Ok676AGessUt&c6 z{!6d)YfhGBuHctp#(W5NTE|Phg{e}xu<^6a zjm?cc#n3ph4-n(!-ooU>_=fWSgRnVUZXeUCns(TE*-$Kxbv)En@W+bdBg3Wg5v?qd z`2m>kSAq2n!L|r&J0!|P6;Qz+hnlIkuzf0Kvah3f_;6vRf^cL42771)=`zc6Q$eOf z-ep(~hUw_3@EJZ6Fe-s^mWE)_GqrI2|6$<2mS|1^ literal 0 HcmV?d00001 diff --git a/AuditoriumMS/bin/x86/Debug/AuditoriumMS.pdb b/AuditoriumMS/bin/x86/Debug/AuditoriumMS.pdb new file mode 100644 index 0000000000000000000000000000000000000000..bdc499af0f34ddf078f943c32ca6eb079e8d0ef7 GIT binary patch literal 124416 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 qH*r=Q_J@8CR=vB^unlx=!h$5*Bl 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 K%F_SO0)GRO46EA! literal 0 HcmV?d00001 diff --git a/AuditoriumMS/bin/x86/Release/AuditoriumMS.pdb b/AuditoriumMS/bin/x86/Release/AuditoriumMS.pdb new file mode 100644 index 0000000000000000000000000000000000000000..57647982527ca80a6d76b1f3a0ae0555db70b943 GIT binary patch literal 114176 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 literal 0 HcmV?d00001 diff --git a/AuditoriumMS/bin/x86/Release/DbTicketing.accdb b/AuditoriumMS/bin/x86/Release/DbTicketing.accdb new file mode 100644 index 0000000000000000000000000000000000000000..196a6225d7d3305ced73a2beffa6f2696d08575a GIT binary patch literal 581632 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