123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using PaintDotNet.Base.CommTool;
- namespace PaintDotNet.GeneralAnalysis.Countometer
- {
- public class DetailDialog : PdnBaseForm
- {
- #region
- /// <summary>
- /// Required designer variable.
- /// </summary>
- private System.ComponentModel.IContainer components = null;
- /// <summary>
- /// Clean up any resources being used.
- /// </summary>
- /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
- #region Windows Form Designer generated code
- private void InitializeLanguageText()
- {
- this.groupBox1.Text = PdnResources.GetString("Menu.operation.text");
- this.btnClose.Text = PdnResources.GetString("Menu.File.Close.Text");
- this.btnExport.Text = PdnResources.GetString("Menu.Imagement.Bitmapanalysis.exportdata.text");
- this.groupBox2.Text = PdnResources.GetString("Menu.Organizationinformation.text");
- this.name.HeaderText = PdnResources.GetString("Menu.name.text");
- this.hotKey.HeaderText = PdnResources.GetString("Menu.Keyname.Text");
- this.color.HeaderText = PdnResources.GetString("Menu.color.text");
- this.count.HeaderText = PdnResources.GetString("Menu.Generalanalysis.Integrator.Quantity.text");
- this.ratio.HeaderText = PdnResources.GetString("Menu.proportion.text");
- this.groupBox3.Text = PdnResources.GetString("Menu.Thepiechart.Text");
- this.lblTotal.Text = PdnResources.GetString("Menu.Generalanalysis.Integrator.total.text") + ":0";
- this.Text = PdnResources.GetString("Menu.GeneralAnalysis.Countometer.Text");
- }
- /// <summary>
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- /// </summary>
- private void InitializeComponent()
- {
- System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea5 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
- System.Windows.Forms.DataVisualization.Charting.Legend legend5 = new System.Windows.Forms.DataVisualization.Charting.Legend();
- System.Windows.Forms.DataVisualization.Charting.Series series5 = new System.Windows.Forms.DataVisualization.Charting.Series();
- this.groupBox1 = new System.Windows.Forms.GroupBox();
- this.btnClose = new System.Windows.Forms.Button();
- this.btnExport = new System.Windows.Forms.Button();
- this.groupBox2 = new System.Windows.Forms.GroupBox();
- this.dgvInfo = new System.Windows.Forms.DataGridView();
- this.name = new System.Windows.Forms.DataGridViewTextBoxColumn();
- this.hotKey = new System.Windows.Forms.DataGridViewTextBoxColumn();
- this.color = new System.Windows.Forms.DataGridViewTextBoxColumn();
- this.count = new System.Windows.Forms.DataGridViewTextBoxColumn();
- this.ratio = new System.Windows.Forms.DataGridViewTextBoxColumn();
- this.groupBox3 = new System.Windows.Forms.GroupBox();
- this.chart1 = new System.Windows.Forms.DataVisualization.Charting.Chart();
- this.lblTotal = new System.Windows.Forms.Label();
- this.groupBox1.SuspendLayout();
- this.groupBox2.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.dgvInfo)).BeginInit();
- this.groupBox3.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.chart1)).BeginInit();
- this.SuspendLayout();
- //
- // groupBox1
- //
- this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.groupBox1.Controls.Add(this.btnClose);
- this.groupBox1.Controls.Add(this.btnExport);
- this.groupBox1.Location = new System.Drawing.Point(12, 12);
- this.groupBox1.Name = "groupBox1";
- this.groupBox1.Size = new System.Drawing.Size(684, 80);
- this.groupBox1.TabIndex = 0;
- this.groupBox1.TabStop = false;
- this.groupBox1.Text = "操作";
- //
- // btnClose
- //
- this.btnClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.btnClose.Location = new System.Drawing.Point(577, 28);
- this.btnClose.Name = "btnClose";
- this.btnClose.Size = new System.Drawing.Size(84, 31);
- this.btnClose.TabIndex = 3;
- this.btnClose.Text = "关闭";
- this.btnClose.UseVisualStyleBackColor = true;
- this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
- //
- // btnExport
- //
- this.btnExport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.btnExport.Location = new System.Drawing.Point(475, 28);
- this.btnExport.Name = "btnExport";
- this.btnExport.Size = new System.Drawing.Size(84, 31);
- this.btnExport.TabIndex = 2;
- this.btnExport.Text = "导出数据";
- this.btnExport.UseVisualStyleBackColor = true;
- this.btnExport.Click += new System.EventHandler(this.btnExport_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.dgvInfo);
- this.groupBox2.Location = new System.Drawing.Point(12, 98);
- this.groupBox2.Name = "groupBox2";
- this.groupBox2.Size = new System.Drawing.Size(684, 266);
- this.groupBox2.TabIndex = 1;
- this.groupBox2.TabStop = false;
- this.groupBox2.Text = "组织信息";
- //
- // dgvInfo
- //
- this.dgvInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.dgvInfo.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
- this.dgvInfo.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
- this.dgvInfo.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
- this.name,
- this.hotKey,
- this.color,
- this.count,
- this.ratio});
- this.dgvInfo.Enabled = false;
- this.dgvInfo.Location = new System.Drawing.Point(13, 23);
- this.dgvInfo.Name = "dgvInfo";
- this.dgvInfo.RowHeadersVisible = false;
- this.dgvInfo.RowHeadersWidth = 51;
- this.dgvInfo.RowTemplate.Height = 27;
- this.dgvInfo.Size = new System.Drawing.Size(660, 233);
- this.dgvInfo.TabIndex = 0;
- //
- // name
- //
- this.name.DataPropertyName = "name";
- this.name.MinimumWidth = 6;
- this.name.Name = "name";
- this.name.ReadOnly = true;
- //
- // hotKey
- //
- this.hotKey.DataPropertyName = "hot_key";
- this.hotKey.MinimumWidth = 6;
- this.hotKey.Name = "hotKey";
- this.hotKey.ReadOnly = true;
- //
- // color
- //
- this.color.DataPropertyName = "color";
- this.color.MinimumWidth = 6;
- this.color.Name = "color";
- this.color.ReadOnly = true;
- //
- // count
- //
- this.count.DataPropertyName = "count";
- this.count.MinimumWidth = 6;
- this.count.Name = "count";
- this.count.ReadOnly = true;
- //
- // ratio
- //
- this.ratio.DataPropertyName = "ratio";
- this.ratio.MinimumWidth = 6;
- this.ratio.Name = "ratio";
- this.ratio.ReadOnly = true;
- //
- // groupBox3
- //
- this.groupBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.groupBox3.Controls.Add(this.chart1);
- this.groupBox3.Location = new System.Drawing.Point(12, 370);
- this.groupBox3.Name = "groupBox3";
- this.groupBox3.Size = new System.Drawing.Size(684, 251);
- this.groupBox3.TabIndex = 2;
- this.groupBox3.TabStop = false;
- this.groupBox3.Text = "饼状图";
- //
- // chart1
- //
- this.chart1.BackColor = System.Drawing.SystemColors.Control;
- chartArea5.BackColor = System.Drawing.SystemColors.Control;
- chartArea5.Name = "ChartArea1";
- this.chart1.ChartAreas.Add(chartArea5);
- legend5.BackColor = System.Drawing.SystemColors.Control;
- legend5.Name = "Legend1";
- this.chart1.Legends.Add(legend5);
- this.chart1.Location = new System.Drawing.Point(74, 24);
- this.chart1.Name = "chart1";
- series5.ChartArea = "ChartArea1";
- series5.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Pie;
- series5.Color = System.Drawing.SystemColors.Control;
- series5.LabelBackColor = System.Drawing.SystemColors.Control;
- series5.Legend = "Legend1";
- series5.Name = "Series1";
- this.chart1.Series.Add(series5);
- this.chart1.Size = new System.Drawing.Size(524, 221);
- this.chart1.TabIndex = 1;
- this.chart1.Text = "chart1";
- //
- // lblTotal
- //
- this.lblTotal.AutoSize = true;
- this.lblTotal.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.lblTotal.Location = new System.Drawing.Point(9, 633);
- this.lblTotal.Name = "lblTotal";
- this.lblTotal.Size = new System.Drawing.Size(0, 16);
- this.lblTotal.TabIndex = 3;
- //
- // DetailDialog
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(708, 663);
- this.Controls.Add(this.lblTotal);
- this.Controls.Add(this.groupBox3);
- this.Controls.Add(this.groupBox2);
- this.Controls.Add(this.groupBox1);
- this.MaximizeBox = false;
- this.MinimizeBox = false;
- this.Name = "DetailDialog";
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
- this.Controls.SetChildIndex(this.groupBox1, 0);
- this.Controls.SetChildIndex(this.groupBox2, 0);
- this.Controls.SetChildIndex(this.groupBox3, 0);
- this.Controls.SetChildIndex(this.lblTotal, 0);
- this.groupBox1.ResumeLayout(false);
- this.groupBox2.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)(this.dgvInfo)).EndInit();
- this.groupBox3.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)(this.chart1)).EndInit();
- this.ResumeLayout(false);
- this.PerformLayout();
- }
- #endregion
- private System.Windows.Forms.GroupBox groupBox1;
- private System.Windows.Forms.Button btnClose;
- private System.Windows.Forms.Button btnExport;
- private System.Windows.Forms.GroupBox groupBox2;
- private System.Windows.Forms.DataGridView dgvInfo;
- private System.Windows.Forms.GroupBox groupBox3;
- private System.Windows.Forms.Label lblTotal;
- private System.Windows.Forms.DataGridViewTextBoxColumn name;
- private System.Windows.Forms.DataGridViewTextBoxColumn hotKey;
- private System.Windows.Forms.DataGridViewTextBoxColumn color;
- private System.Windows.Forms.DataGridViewTextBoxColumn count;
- private System.Windows.Forms.DataGridViewTextBoxColumn ratio;
- private System.Windows.Forms.DataVisualization.Charting.Chart chart1;
- #endregion
- private string m_id;
- private SQLiteHelper m_sqlHelper;
- private int m_total = 0;
- private DataTable m_history;
- private DataTable m_history_info;
- public DetailDialog(string id)
- {
- m_id = id;
- InitializeComponent();
- InitializeLanguageText();
- InitializeData();
- }
- private void InitializeData()
- {
- dgvInfo.DefaultCellStyle.SelectionBackColor = dgvInfo.DefaultCellStyle.BackColor;
- dgvInfo.DefaultCellStyle.SelectionForeColor = dgvInfo.DefaultCellStyle.ForeColor;
- dgvInfo.AutoGenerateColumns = false;
- dgvInfo.AllowUserToAddRows = false;
- m_sqlHelper = new SQLiteHelper(); //连接数据库
- m_sqlHelper.Connect();
- string select_sql = "select * from mic_assay_history where delete_flag = 0 and id ='"+ m_id + "'"; //查询的SQL语句
- m_history = m_sqlHelper.ExecuteDataTable(select_sql, null); //执行查询操作,结果存放在dt中
- select_sql = "select * from mic_assay_history_info where history_id ='" + m_id + "'"; //查询的SQL语句
- m_history_info = m_sqlHelper.ExecuteDataTable(select_sql, null); //执行查询操作,结果存放在dt中
- if (m_history_info == null || m_history_info.Rows.Count <= 0)
- {
- return;
- }
- dgvInfo.Rows.Clear();
- dgvInfo.Rows.Add(m_history_info.Rows.Count);
- for (int i = 0; i < m_history_info.Rows.Count; ++i)
- {
- m_total += int.Parse(m_history_info.Rows[i]["count"].ToString());
- dgvInfo.Rows[i].Cells["name"].Value = m_history_info.Rows[i]["name"].ToString();
- dgvInfo.Rows[i].Cells["hotKey"].Value = m_history_info.Rows[i]["hot_key"].ToString();
- dgvInfo.Rows[i].Cells["color"].Value = m_history_info.Rows[i]["color"].ToString();
- dgvInfo.Rows[i].Cells["color"].Style.BackColor = ColorTranslator.FromHtml(m_history_info.Rows[i]["color"].ToString());
- dgvInfo.Rows[i].Cells["color"].Style.ForeColor = Color.White;
- dgvInfo.Rows[i].Cells["color"].Style.SelectionBackColor = ColorTranslator.FromHtml(m_history_info.Rows[i]["color"].ToString());
- dgvInfo.Rows[i].Cells["color"].Style.SelectionForeColor = Color.White;
- dgvInfo.Rows[i].Cells["count"].Value = m_history_info.Rows[i]["count"].ToString();
- dgvInfo.Rows[i].Cells["ratio"].Value = m_history_info.Rows[i]["ratio"].ToString();
- }
- lblTotal.Text = PdnResources.GetString("Menu.Generalanalysis.Integrator.total.text")+":" + m_total;
- // 饼图
- List<string> xData = new List<string>();
- List<decimal> yData = new List<decimal>();
- DataRow[] dr = m_history_info.Select("ratio <> '0'");
- for (int i=0; i< dr.Length; ++i)
- {
- string name = dr[i]["name"].ToString();
- decimal count = decimal.Parse(dr[i]["count"].ToString());
- xData.Add(name + "(" + dr[i]["ratio"].ToString() + ")");
- yData.Add(count);
- }
- chart1.Series[0]["PieLabelStyle"] = "Disabled";//将文字移到外侧Outside Inside
- chart1.Series[0].Points.DataBindXY(xData, yData);
- for (int i = 0; i < dr.Length; ++i)
- {
- chart1.Series[0].Points[i].Color = ColorTranslator.FromHtml(dr[i]["color"].ToString());
- }
- }
- /// <summary>
- /// 导出
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnExport_Click(object sender, EventArgs e)
- {
- string fileName = m_history.Rows[0]["file_name"].ToString();
- SaveFileDialog exe = new SaveFileDialog();
- exe.Filter = "Execl files (*.xls)|*.xls";
- exe.FilterIndex = 0;
- exe.RestoreDirectory = true;
- //exe.CreatePrompt = true;
- exe.Title = "Export Excel File";
- exe.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
- exe.FileName = fileName;
- DialogResult dr = exe.ShowDialog();
- if (dr != DialogResult.OK)
- {
- return;
- }
- //List<DataTable> list = new List<DataTable>();
- //list.Add(m_history_info/*dtb*/);
- //OfficeFileHandleHelper.ExportDataToExcelWithProgress(list, exe.FileName);
- Stream ms;
- StreamWriter sw;
- try
- {
- ms = exe.OpenFile();
- sw = new StreamWriter(ms, System.Text.Encoding.GetEncoding(-0));
- string title = PdnResources.GetString("Menu.name.text") + "\t" + PdnResources.GetString("Menu.Keyname.Text") + "\t" + PdnResources.GetString("Menu.color.text") + "\t" + PdnResources.GetString("Menu.Generalanalysis.Integrator.Quantity.text") + "\t" + PdnResources.GetString("Menu.proportion.text");
- sw.WriteLine(title);
- for (int j = 0; j < m_history_info.Rows.Count; j++)
- {
- string temp = "";
- for (int k = 2; k < m_history_info.Columns.Count; k++)
- {
- if (k > 2)
- {
- temp += "\t";
- }
- string cell = m_history_info.Rows[j][k].ToString();
- cell = cell.Replace(" ", "").Replace("\r", "").Replace("\n", "").Replace("\r\n", "");
- temp += cell;
- }
- sw.WriteLine(temp);
- }
- sw.Close();
- ms.Close();
- if (OfficeFileHandleHelper.ConvertWorkbook(exe.FileName, fileName))
- {
- if (System.IO.File.Exists(exe.FileName))
- System.IO.File.Delete(exe.FileName);
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- return;
- }
-
- }
- private void btnClose_Click(object sender, EventArgs e)
- {
- this.Close();
- }
- }
- }
|