HistoryGrade.xaml.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455
  1. using AIRS.usercontrol;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Collections.ObjectModel;
  5. using System.Data;
  6. using System.Data.SQLite;
  7. using System.IO;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows;
  12. using System.Windows.Controls;
  13. using System.Windows.Data;
  14. using System.Windows.Documents;
  15. using System.Windows.Input;
  16. using System.Windows.Media;
  17. using System.Windows.Media.Imaging;
  18. using System.Windows.Shapes;
  19. namespace AIRS
  20. {
  21. /// <summary>
  22. /// HistoryGrade.xaml 的交互逻辑
  23. /// </summary>
  24. public partial class HistoryGrade : Window
  25. {
  26. private int m_Pyte = 0;//打开窗体类型 0历史评级 1检查报告
  27. #region 分页变量
  28. /// <summary>
  29. /// 当前页码
  30. /// </summary>
  31. private int m_Page = 1;
  32. /// <summary>
  33. /// 总条数
  34. /// </summary>
  35. private int m_Total = 0;
  36. /// <summary>
  37. /// 总页数
  38. /// </summary>
  39. private int m_Count = 1;
  40. /// <summary>
  41. /// 每页条数
  42. /// </summary>
  43. private int m_Page_Count = 15;
  44. #endregion
  45. /// <summary>
  46. /// 数据库
  47. /// </summary>
  48. SQLiteConnection conn = null;
  49. SQLiteConnectionStringBuilder connstr = null;
  50. /// <summary>
  51. /// 程序工作目录
  52. /// </summary>
  53. private string path = Directory.GetCurrentDirectory();
  54. /// <summary>
  55. /// 构造方法
  56. /// </summary>
  57. /// <param name="type">0历史评级 1检查报告</param>
  58. public HistoryGrade(int type)
  59. {
  60. m_Pyte = type;
  61. InitializeComponent();
  62. }
  63. /// <summary>
  64. /// 关闭窗体事件
  65. /// </summary>
  66. /// <param name="sender"></param>
  67. /// <param name="e"></param>
  68. private void btnCancel_Click(object sender, RoutedEventArgs e)
  69. {
  70. this.DialogResult = false;
  71. }
  72. /// <summary>
  73. /// 窗体加载完成后执行事件
  74. /// </summary>
  75. /// <param name="sender"></param>
  76. /// <param name="e"></param>
  77. private void Window_ContentRendered(object sender, EventArgs e)
  78. {
  79. if (m_Pyte == 1)
  80. {
  81. //切换到检查报告
  82. this.HisorReport.Content = "检查报告";
  83. this.HisGrad.Visibility = Visibility.Collapsed;//隐藏历史评级
  84. this.CheckReport.Visibility = Visibility.Visible;//显示检查报告
  85. this.CheckBtnSave.Visibility = Visibility.Visible;//显示报告另存按钮
  86. this.btn_Query.Visibility = Visibility.Collapsed;//隐藏查询按钮
  87. this.lable1.Visibility = Visibility.Collapsed;//隐藏lable
  88. this.startdatePickerCtl.Visibility = Visibility.Collapsed;//隐藏开始时间
  89. this.enddatePickerCtl.Visibility = Visibility.Collapsed;//隐藏结束时间
  90. //#region 隐藏分页按钮
  91. //this.first_btn.Visibility = Visibility.Collapsed;
  92. //this.last_btn.Visibility = Visibility.Collapsed;
  93. //this.next_btn.Visibility = Visibility.Collapsed;
  94. //this.pro_btn.Visibility = Visibility.Collapsed;
  95. //#endregion
  96. }
  97. else if (m_Pyte == 0)
  98. {
  99. //切换到历史评级
  100. this.HisorReport.Content = "历史评级";
  101. this.HisGrad.Visibility = Visibility.Visible;//显示历史评级
  102. this.CheckReport.Visibility = Visibility.Collapsed;//隐藏检查报告
  103. this.CheckBtnSave.Visibility = Visibility.Collapsed;//隐藏报告另存按钮
  104. this.btn_Query.Visibility = Visibility.Visible;//显示查询按钮
  105. this.lable1.Visibility = Visibility.Visible;//显示lable
  106. this.startdatePickerCtl.Visibility = Visibility.Visible;//显示开始时间
  107. this.enddatePickerCtl.Visibility = Visibility.Visible;//显示结束时间
  108. //#region 显示分页按钮
  109. //this.first_btn.Visibility = Visibility.Visible;
  110. //this.last_btn.Visibility = Visibility.Visible;
  111. //this.next_btn.Visibility = Visibility.Visible;
  112. //this.pro_btn.Visibility = Visibility.Visible;
  113. //#endregion
  114. GetGrade();
  115. }
  116. }
  117. /// <summary>
  118. /// 根据路径获取报告
  119. /// </summary>
  120. /// <param name="path"></param>
  121. private void GetReport(string path)
  122. {
  123. try
  124. {
  125. string strSql = "SELECT * FROM t_grade where \"图像目录\"=='" + path + "'";
  126. conn = new SQLiteConnection();
  127. connstr = new SQLiteConnectionStringBuilder();
  128. connstr.DataSource = path + "\\datas.db";
  129. conn.ConnectionString = connstr.ToString();
  130. conn.Open();
  131. SQLiteDataAdapter da = new SQLiteDataAdapter(strSql, conn);
  132. DataTable ds = new DataTable();
  133. da.Fill(ds);
  134. if (ds.Rows.Count > 0)
  135. {
  136. }
  137. else
  138. {
  139. MessageBox.Show("没有该图像路径的检查结果!");
  140. }
  141. }
  142. catch (Exception ex)
  143. {
  144. }
  145. finally
  146. {
  147. }
  148. }
  149. /// <summary>
  150. /// 获取历史评级数据
  151. /// </summary>
  152. /// <returns></returns>
  153. private void GetGrade()
  154. {
  155. try
  156. {
  157. string startTime = "";
  158. string endTime = "";
  159. try
  160. {
  161. startTime = DateTime.Parse(startdatePickerCtl.Text.Trim()).ToString("yyyy-MM-dd 00:00:00");
  162. endTime = DateTime.Parse(enddatePickerCtl.Text.Trim()).ToString("yyyy-MM-dd 23:59:59");
  163. }
  164. catch
  165. {
  166. MessageBox.Show("时间格式不正确,请重新填写!");
  167. return;
  168. }
  169. string strSql = "SELECT * FROM t_grade where 1=1";
  170. string strcountsql = "SELECT count(*) as count FROM t_grade where 1=1";
  171. if (startTime.Length > 0)
  172. {
  173. strSql += " and \"评级时间\">'" + startTime + "'";
  174. strcountsql += " and \"评级时间\">'" + startTime + "'";
  175. }
  176. if (endTime.Length > 0)
  177. {
  178. strSql += " and \"评级时间\"<'" + endTime + "'";
  179. strcountsql += " and \"评级时间\"<'" + endTime + "'";
  180. }//desc
  181. strSql += "order by \"评级时间\" desc limit " + ((m_Page - 1) * m_Page_Count) + ","+ m_Page_Count + "";
  182. conn = new SQLiteConnection();
  183. connstr = new SQLiteConnectionStringBuilder();
  184. connstr.DataSource = path + "\\datas.db";
  185. conn.ConnectionString = connstr.ToString();
  186. conn.Open();
  187. SQLiteDataAdapter da = new SQLiteDataAdapter(strSql, conn);
  188. DataTable ds = new DataTable();
  189. da.Fill(ds);
  190. da = new SQLiteDataAdapter(strcountsql, conn);
  191. DataTable dsCount = new DataTable();
  192. da.Fill(dsCount);
  193. m_Total = Convert.ToInt32(dsCount.Rows[0][0]);//总条数
  194. m_Count = (int)Math.Ceiling(((double)m_Total / (double)m_Page_Count));
  195. ObservableCollection<HisData> list = new ObservableCollection<HisData>();
  196. for (int i = 0; i < ds.Rows.Count; i++)
  197. {
  198. HisData data = new HisData();
  199. //data.num = (i + 1);
  200. data.gradeproject = ds.Rows[i]["评级项目"] == null ? "" : ds.Rows[i]["评级项目"].ToString();
  201. data.gradetime = ds.Rows[i]["评级时间"] == null ? "" : ds.Rows[i]["评级时间"].ToString(); // ds.Rows[i]["评级时间"].ToString();
  202. data.operation = ds.Rows[i]["操作员"] == null ? "" : ds.Rows[i]["操作员"].ToString(); //ds.Rows[i]["操作员"].ToString();
  203. data.checke = ds.Rows[i]["复合员"] == null ? "" : ds.Rows[i]["复合员"].ToString(); //ds.Rows[i]["复合员"].ToString();
  204. data.imgurl = ds.Rows[i]["图像目录"] == null ? "" : ds.Rows[i]["图像目录"].ToString();
  205. data.catagory = ds.Rows[i]["catagory"] == null ? "" : ds.Rows[i]["catagory"].ToString();//类别
  206. data.gangzhong = ds.Rows[i]["钢种"] == null ? "" : ds.Rows[i]["钢种"].ToString();//钢种
  207. data.imgcount = ds.Rows[i]["图像数量"] == null ? "" : ds.Rows[i]["图像数量"].ToString();//图像数量
  208. data.pingji = ds.Rows[i]["评级标准"] == null ? "" : ds.Rows[i]["评级标准"].ToString();//评级标准
  209. data.instrument = ds.Rows[i]["检测仪器"] == null ? "" : ds.Rows[i]["检测仪器"].ToString();//图像数量
  210. list.Add(data);
  211. }
  212. date_grid.DataContext = list;
  213. //this.pageuser.FontSize = 36;
  214. this.pageuser.Page = m_Page;
  215. //this.pageuser.PageCount = m_Count;
  216. this.pageuser.PageSize = m_Page_Count;
  217. this.pageuser.RecordCount = m_Total;
  218. }
  219. catch (Exception ex)
  220. {
  221. }
  222. finally
  223. {
  224. try
  225. {
  226. conn.Close();
  227. }
  228. catch
  229. {
  230. }
  231. }
  232. }
  233. /// <summary>
  234. /// 序号列
  235. /// </summary>
  236. /// <param name="sender"></param>
  237. /// <param name="e"></param>
  238. private void date_grid_LoadingRow(object sender, DataGridRowEventArgs e)
  239. {
  240. e.Row.Header = e.Row.GetIndex() + 1;
  241. }
  242. /// <summary>
  243. /// 生成/查看报告单击事件(表格内按钮单击事件)
  244. /// </summary>
  245. /// <param name="sender"></param>
  246. /// <param name="e"></param>
  247. private void Button_Click(object sender, RoutedEventArgs e)
  248. {
  249. //MessageBox.Show(((Button)sender).Tag == null ? "" : ((Button)sender).Tag.ToString());
  250. try
  251. {
  252. string imgUrl = ((Button)sender).Tag == null ? "" : ((Button)sender).Tag.ToString();
  253. conn = new SQLiteConnection();
  254. connstr = new SQLiteConnectionStringBuilder();
  255. connstr.DataSource = path + "\\datas.db";
  256. conn.ConnectionString = connstr.ToString();
  257. conn.Open();
  258. string strSql = "select * from t_grade where \"图像目录\"='" + imgUrl + "'";
  259. SQLiteDataAdapter da = new SQLiteDataAdapter(strSql, conn);
  260. DataTable ds = new DataTable();
  261. da.Fill(ds);
  262. if (ds.Rows.Count > 0)
  263. {
  264. string check_Project = "";// 评级项目/检测项目
  265. string standard = "";//检测标准及技术文件
  266. string device = "";//检测使用设备
  267. string result = "";//结果
  268. string check_user = "";//检查员
  269. }
  270. }
  271. catch
  272. {
  273. }
  274. finally
  275. {
  276. try
  277. {
  278. conn.Close();
  279. }
  280. catch
  281. {
  282. }
  283. }
  284. }
  285. #region 分页事件
  286. /// <summary>
  287. /// 上一页
  288. /// </summary>
  289. /// <param name="sender"></param>
  290. /// <param name="e"></param>
  291. private void pro_btn_Click(object sender, RoutedEventArgs e)
  292. {
  293. if (m_Page == 1)
  294. {
  295. MessageBox.Show("已经是第一页!");
  296. return;
  297. }
  298. m_Page--;
  299. GetGrade();
  300. }
  301. /// <summary>
  302. /// 首页
  303. /// </summary>
  304. /// <param name="sender"></param>
  305. /// <param name="e"></param>
  306. private void first_btn_Click(object sender, RoutedEventArgs e)
  307. {
  308. if (m_Page == 1)
  309. {
  310. MessageBox.Show("已经是第一页!");
  311. return;
  312. }
  313. m_Page = 1;
  314. GetGrade();
  315. }
  316. /// <summary>
  317. /// 下一页
  318. /// </summary>
  319. /// <param name="sender"></param>
  320. /// <param name="e"></param>
  321. private void next_btn_Click(object sender, RoutedEventArgs e)
  322. {
  323. if (m_Page >= m_Count)
  324. {
  325. MessageBox.Show("已经是最后一页!");
  326. return;
  327. }
  328. m_Page++;
  329. GetGrade();
  330. }
  331. /// <summary>
  332. /// 尾页
  333. /// </summary>
  334. /// <param name="sender"></param>
  335. /// <param name="e"></param>
  336. private void last_btn_Click(object sender, RoutedEventArgs e)
  337. {
  338. if (m_Page >= m_Count)
  339. {
  340. MessageBox.Show("已经是最后一页!");
  341. return;
  342. }
  343. m_Page = m_Count;
  344. GetGrade();
  345. }
  346. #endregion
  347. /// <summary>
  348. /// 查询按钮
  349. /// </summary>
  350. /// <param name="sender"></param>
  351. /// <param name="e"></param>
  352. private void btn_Query_Click(object sender, RoutedEventArgs e)
  353. {
  354. m_Page = 1;
  355. GetGrade();
  356. }
  357. private void Window_Loaded(object sender, RoutedEventArgs e)
  358. {
  359. this.pageuser.PageChanged += new EventHandler<PageChangedEventArgs>(Eventpage);
  360. }
  361. /// <summary>
  362. /// 自定义分页事件
  363. /// </summary>
  364. /// <param name="sender"></param>
  365. /// <param name="a"></param>
  366. public void Eventpage(object sender, PageChangedEventArgs a)
  367. {
  368. m_Page = a.Page;
  369. GetGrade();
  370. }
  371. }
  372. #region 显示列类
  373. /// <summary>
  374. /// 显示列类
  375. /// </summary>
  376. public class HisData
  377. {
  378. //public int num { get; set; }
  379. /// <summary>
  380. /// 评级项目
  381. /// </summary>
  382. public string gradeproject { get; set; }
  383. /// <summary>
  384. /// 评级时间
  385. /// </summary>
  386. public string gradetime { get; set; }
  387. /// <summary>
  388. /// 操作员
  389. /// </summary>
  390. public string operation { get; set; }
  391. /// <summary>
  392. /// 复核员
  393. /// </summary>
  394. public string checke { get; set; }
  395. /// <summary>
  396. /// 图像目录
  397. /// </summary>
  398. public string imgurl { get; set; }
  399. /// <summary>
  400. /// 类别
  401. /// </summary>
  402. public string catagory { get; set; }
  403. /// <summary>
  404. /// 钢种
  405. /// </summary>
  406. public string gangzhong { get; set; }
  407. /// <summary>
  408. /// 图片数量
  409. /// </summary>
  410. public string imgcount { get; set; }
  411. /// <summary>
  412. /// 评级标准
  413. /// </summary>
  414. public string pingji { get; set; }
  415. /// <summary>
  416. /// 检测仪器
  417. /// </summary>
  418. public string instrument { get;set;}
  419. //public string 查看报告 { get; set; }
  420. }
  421. #endregion
  422. }