f_impvehi.cs 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading;
  8. using System.Windows.Forms;
  9. using System.Xml.Linq;
  10. using Excel = Microsoft.Office.Interop.Excel;
  11. namespace Fuel01
  12. {
  13. public partial class F_impvehi : Form
  14. {
  15. private readonly string mode;
  16. private bool hasChanged = false;
  17. private List<Produit> lcarbu = new List<Produit>();
  18. private List<Famille> lfamille = new List<Famille>();
  19. private List<Produit> lproduit = new List<Produit>();
  20. private DataSet1.tb_vehiDataTable tb_vehi = new DataSet1.tb_vehiDataTable();
  21. public F_impvehi(string _mode)
  22. {
  23. InitializeComponent();
  24. mode = _mode;
  25. }
  26. private void Bt_ok_Click(object sender, EventArgs e)
  27. {
  28. if (checkZero.Checked)
  29. {
  30. tb_vehi.Clear();
  31. }
  32. if (mode == "tdf")
  33. {
  34. Import_tdf();
  35. }
  36. else if (mode == "parc")
  37. {
  38. Import_parc();
  39. }
  40. else
  41. {
  42. Import_PN();
  43. }
  44. }
  45. private void Bt_openFile_Click(object sender, EventArgs e)
  46. {
  47. System.Windows.Forms.DialogResult res = openFileParc.ShowDialog();
  48. if (res == System.Windows.Forms.DialogResult.OK)
  49. {
  50. textNomFile.Text = openFileParc.FileName;
  51. }
  52. bt_ok.Enabled = (res == System.Windows.Forms.DialogResult.OK);
  53. }
  54. private void Combo_energy_TextUpdate(object sender, EventArgs e)
  55. {
  56. Produit cur_Prod = lproduit.Find(p => p.key_prod == combo_energy.Text);
  57. if (cur_Prod != null)
  58. StatusLabel1.Text = cur_Prod.lib_prod;
  59. else
  60. StatusLabel1.Text = "...";
  61. }
  62. private void F_vehi_FormClosing(object sender, FormClosingEventArgs e)
  63. {
  64. if (hasChanged) SaveData();
  65. DataTable tb_vehi_change = tb_vehi.GetChanges();
  66. if (tb_vehi_change != null)
  67. {
  68. MessageBox.Show("Veuillez Valider ou Abandonner", "Modifications en cours");
  69. }
  70. e.Cancel = (tb_vehi_change != null);
  71. }
  72. private void Import_parc()
  73. {
  74. Excel.Application xlApp;
  75. Excel.Workbook xlWorkBook;
  76. Excel.Worksheet xlWorkSheet;
  77. object misValue = System.Reflection.Missing.Value;
  78. try
  79. {
  80. xlApp = new Excel.Application();
  81. xlWorkBook = xlApp.Workbooks.Open(textNomFile.Text, misValue);
  82. xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
  83. }
  84. catch (Exception ex)
  85. {
  86. MessageBox.Show($"Vérifier que le fichier n'est pas ouvert et est un fichier Excel correct {ex.Message}", "Ouverture de " + textNomFile.Text + " impossible", MessageBoxButtons.OK, MessageBoxIcon.Error);
  87. return;
  88. }
  89. uint[] indexCol = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15 };
  90. for (uint row = 3; row < 800; row++)
  91. {
  92. string model = "";
  93. string immat = "";
  94. string bandeau = "";
  95. string famille = "";
  96. string pilote = "";
  97. string carbu = "D";
  98. string cmp = "";
  99. string categ = "A";
  100. int vide = 0;
  101. for (int colNdx = 0; colNdx < indexCol.Length; colNdx++)
  102. {
  103. uint col = indexCol[colNdx];
  104. var varex = xlWorkSheet.Cells[row, col].Value;
  105. if (varex != null)
  106. {
  107. string b = "";
  108. string mytype = varex.GetType().ToString();
  109. switch (mytype)
  110. {
  111. case "System.Int16":
  112. case "System.Int32":
  113. case "System.Int64":
  114. case "System.Double":
  115. b = ((Int32)varex).ToString();
  116. break;
  117. default:
  118. b = (string)varex;
  119. break;
  120. }
  121. while (b.Contains(" "))
  122. b = b.Replace(" ", " ");
  123. switch (col)
  124. {
  125. case 1:
  126. bandeau = b;
  127. break;
  128. case 2:
  129. famille = b;
  130. break;
  131. case 3:
  132. pilote = b;
  133. break;
  134. case 4:
  135. pilote = new StringBuilder(pilote).Append(" ").Append(b).ToString();
  136. break;
  137. case 5:
  138. carbu = b;
  139. break;
  140. case 6:
  141. model = b;
  142. break;
  143. case 7:
  144. immat = new StringBuilder(immat).Append(b).Append(" ").ToString();
  145. break;
  146. case 8:
  147. immat = new StringBuilder(immat).Append(b).Append(" ").ToString();
  148. break;
  149. case 9:
  150. immat = new StringBuilder(immat).Append(b).Append(" ").ToString();
  151. break;
  152. case 15:
  153. categ = b.ToUpper() == "M" ? "M" : "A";
  154. break;
  155. }
  156. }
  157. }
  158. if (bandeau != "")
  159. {
  160. vide = 0;
  161. DataSet1.tb_vehiRow myNewRow = null;
  162. string key = "999999";
  163. bool newrow = false;
  164. try
  165. {
  166. if (!checkZero.Checked)
  167. {
  168. myNewRow = FindOnekey(bandeau);
  169. if (myNewRow == null)
  170. {
  171. continue;
  172. }
  173. else
  174. {
  175. key = myNewRow["key_vehi"].ToString();
  176. }
  177. }
  178. if (myNewRow == null)
  179. {
  180. key = FindNewkey();
  181. myNewRow = tb_vehi.Newtb_vehiRow();
  182. newrow = true;
  183. }
  184. myNewRow["key_vehi"] = key;
  185. myNewRow["ope_vehi"] = Program.key_ope;
  186. myNewRow["num_vehi"] = bandeau;
  187. myNewRow["cmpnum_vehi"] = cmp;
  188. myNewRow["immat_vehi"] = immat;
  189. myNewRow["type_vehi"] = model;
  190. myNewRow["famille_vehi"] = famille;
  191. myNewRow["categ_vehi"] = categ;
  192. myNewRow["cond_vehi"] = pilote;
  193. myNewRow["sort1_vehi"] = string.Format("{0}{1:00000}{2}", myNewRow["categ_vehi"], myNewRow["num_vehi"], myNewRow["cmpnum_vehi"]);
  194. switch (carbu)
  195. {
  196. case "D":
  197. carbu = "DIESEL";
  198. break;
  199. case "E":
  200. carbu = "SP98";
  201. break;
  202. default:
  203. carbu = "?";
  204. break;
  205. }
  206. if (carbu == "?")
  207. {
  208. if (categ == "M")
  209. {
  210. myNewRow["carbu_vehi"] = "SP98";
  211. }
  212. else
  213. {
  214. myNewRow["carbu_vehi"] = "DIESEL";
  215. }
  216. }
  217. else
  218. {
  219. myNewRow["carbu_vehi"] = carbu;
  220. }
  221. if (newrow)
  222. tb_vehi.Addtb_vehiRow(myNewRow);
  223. StatusLabel1.Text = string.Format("{0}{1:00000}{2}-{3}-{4}", myNewRow["categ_vehi"], myNewRow["num_vehi"], myNewRow["cmpnum_vehi"], myNewRow["cond_vehi"], myNewRow["immat_vehi"]);
  224. Application.DoEvents();
  225. Thread.Sleep(5);
  226. }
  227. catch (Exception ex)
  228. {
  229. MessageBox.Show(string.Format("{3}\r\nPb. à insertion de {0} {1} {2}", bandeau, pilote, model, ex.Message));
  230. }
  231. }
  232. else
  233. { vide++; }
  234. if (vide > 10)
  235. {
  236. break;
  237. }
  238. }
  239. xlApp?.Quit();
  240. StatusLabel1.Text = "F I N I .................";
  241. }
  242. private void Import_PN()
  243. {
  244. Excel.Application xlApp;
  245. Excel.Workbook xlWorkBook;
  246. Excel.Worksheet xlWorkSheet;
  247. object misValue = System.Reflection.Missing.Value;
  248. try
  249. {
  250. xlApp = new Excel.Application();
  251. xlWorkBook = xlApp.Workbooks.Open(textNomFile.Text, misValue);
  252. xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
  253. }
  254. catch (Exception ex)
  255. {
  256. MessageBox.Show($"Vérifier que le fichier n'est pas ouvert et est un fichier Excel correct \r\n {ex.Message}", "Ouverture de " + textNomFile.Text + " impossible", MessageBoxButtons.OK, MessageBoxIcon.Error);
  257. return;
  258. }
  259. uint[] indexCol = { 1, 3, 4, 6, 7, 8, 9 };
  260. string categ = "A";
  261. for (uint row = 2; row < 200; row++)
  262. {
  263. string model = "";
  264. string immat = "";
  265. string bandeau = "";
  266. string carbu = "";
  267. string famille = "";
  268. string pilote = "";
  269. int vide = 0;
  270. for (int colNdx = 0; colNdx < indexCol.Length; colNdx++)
  271. {
  272. uint col = indexCol[colNdx];
  273. var varex = xlWorkSheet.Cells[row, col].Value;
  274. if (varex != null)
  275. {
  276. string b = "";
  277. string mytype = varex.GetType().ToString();
  278. switch (mytype)
  279. {
  280. case "System.Int16":
  281. case "System.Int32":
  282. case "System.Int64":
  283. case "System.Double":
  284. b = ((Int32)varex).ToString();
  285. break;
  286. default:
  287. b = (string)varex;
  288. break;
  289. }
  290. b = b.Replace('\n', ' ');
  291. while (b.Contains(" "))
  292. b = b.Replace(" ", " ");
  293. switch (col)
  294. {
  295. case 1:
  296. bandeau = b;
  297. break;
  298. case 3:
  299. famille = b;
  300. break;
  301. case 4:
  302. pilote = b;
  303. break;
  304. case 6:
  305. model = b;
  306. break;
  307. case 7:
  308. carbu = b;
  309. break;
  310. case 8:
  311. immat = b;
  312. break;
  313. case 9:
  314. categ = b;
  315. break;
  316. }
  317. }
  318. }
  319. if (bandeau != "")
  320. {
  321. vide = 0;
  322. DataSet1.tb_vehiRow myNewRow = null;
  323. string key = "999999";
  324. bool newrow = false;
  325. try
  326. {
  327. if (!checkZero.Checked)
  328. {
  329. myNewRow = FindOnekey(bandeau);
  330. if (myNewRow != null)
  331. {
  332. key = myNewRow["key_vehi"].ToString();
  333. }
  334. }
  335. if (myNewRow == null)
  336. {
  337. key = FindNewkey();
  338. myNewRow = tb_vehi.Newtb_vehiRow();
  339. newrow = true;
  340. }
  341. myNewRow["key_vehi"] = key;
  342. myNewRow["ope_vehi"] = Program.key_ope;
  343. myNewRow["num_vehi"] = bandeau;
  344. myNewRow["cmpnum_vehi"] = "";
  345. myNewRow["immat_vehi"] = immat;
  346. myNewRow["type_vehi"] = model;
  347. myNewRow["famille_vehi"] = famille;
  348. myNewRow["categ_vehi"] = categ;
  349. myNewRow["cond_vehi"] = pilote;
  350. myNewRow["sort1_vehi"] = string.Format("{0}{1:00000}{2}", myNewRow["categ_vehi"], myNewRow["num_vehi"], myNewRow["cmpnum_vehi"]);
  351. myNewRow["carbu_vehi"] = carbu == "E" ? "SP98" : "DIESEL";
  352. if (newrow)
  353. tb_vehi.Addtb_vehiRow(myNewRow);
  354. StatusLabel1.Text = string.Format("{0}{1:00000}{2}-{3}-{4}", myNewRow["categ_vehi"], myNewRow["num_vehi"], myNewRow["cmpnum_vehi"], myNewRow["cond_vehi"], myNewRow["immat_vehi"]);
  355. Application.DoEvents();
  356. }
  357. catch (Exception ex)
  358. {
  359. MessageBox.Show(string.Format("{3}\r\nPb. à insertion de {0} {1} {2}", bandeau, pilote, model, ex.Message));
  360. }
  361. }
  362. else
  363. vide++;
  364. if (vide > 10)
  365. break;
  366. }
  367. xlApp?.Quit();
  368. StatusLabel1.Text = "F I N I .................";
  369. }
  370. private void Import_tdf()
  371. {
  372. Excel.Application xlApp;
  373. Excel.Workbook xlWorkBook;
  374. Excel.Worksheet xlWorkSheet;
  375. object misValue = System.Reflection.Missing.Value;
  376. try
  377. {
  378. xlApp = new Excel.Application();
  379. xlWorkBook = xlApp.Workbooks.Open(textNomFile.Text, misValue);
  380. xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
  381. }
  382. catch (Exception ex)
  383. {
  384. MessageBox.Show($"Vérifier que le fichier n'est pas ouvert et est un fichier Excel correct\r\n{ex.Message}", "Ouverture de " + textNomFile.Text + " impossible", MessageBoxButtons.OK, MessageBoxIcon.Error);
  385. return;
  386. }
  387. uint[] indexCol = { 2, 4, 5, 6, 7, 8, 11, 12 };
  388. string categ = "A";
  389. for (uint row = 2; row < 800; row++)
  390. {
  391. string model = "";
  392. string immat = "";
  393. string bandeau = "";
  394. string cmp = "";
  395. string famille = "";
  396. string pilote = "";
  397. bool ligneVide = true;
  398. int vide = 0;
  399. for (int colNdx = 0; colNdx < indexCol.Length; colNdx++)
  400. {
  401. uint col = indexCol[colNdx];
  402. var varex = xlWorkSheet.Cells[row, col].Value;
  403. if (varex != null)
  404. {
  405. string b = "";
  406. string mytype = varex.GetType().ToString();
  407. switch (mytype)
  408. {
  409. case "System.Int16":
  410. case "System.Int32":
  411. case "System.Int64":
  412. case "System.Double":
  413. b = ((Int32)varex).ToString();
  414. break;
  415. default:
  416. b = (string)varex;
  417. break;
  418. }
  419. int p;
  420. if (col == 12 && (p = b.IndexOf('\n')) != -1)
  421. b = b.Substring(0, p);
  422. b = b.Replace('\n', ' ');
  423. while (b.Contains(" "))
  424. b = b.Replace(" ", " ");
  425. switch (col)
  426. {
  427. case 2:
  428. model = b;
  429. break;
  430. case 4:
  431. immat = new StringBuilder(immat).Append(" ").Append(b).ToString();
  432. break;
  433. case 5:
  434. immat = new StringBuilder(immat).Append(" ").Append(b).ToString();
  435. break;
  436. case 6:
  437. immat = new StringBuilder(immat).Append(" ").Append(b).ToString();
  438. break;
  439. case 7:
  440. bandeau = b;
  441. break;
  442. case 8:
  443. cmp = b;
  444. break;
  445. case 11:
  446. famille = b;
  447. break;
  448. case 12:
  449. pilote = b;
  450. break;
  451. }
  452. }
  453. }
  454. if (ligneVide)
  455. {
  456. try
  457. {
  458. string m = (string)(xlWorkSheet.Cells[row, 4].Value);
  459. if (m != null && m.Contains("MOTOS"))
  460. {
  461. categ = "M";
  462. }
  463. }
  464. catch (Exception e)
  465. {
  466. Console.WriteLine(e.Message);
  467. }
  468. }
  469. if (bandeau != "")
  470. {
  471. vide = 0;
  472. DataSet1.tb_vehiRow myNewRow = null;
  473. string key = "999999";
  474. bool newrow = false;
  475. try
  476. {
  477. if (!checkZero.Checked)
  478. {
  479. myNewRow = FindOnekey(bandeau);
  480. if (myNewRow != null)
  481. {
  482. key = myNewRow["key_vehi"].ToString();
  483. }
  484. }
  485. if (myNewRow == null)
  486. {
  487. key = FindNewkey();
  488. myNewRow = tb_vehi.Newtb_vehiRow();
  489. newrow = true;
  490. }
  491. myNewRow["key_vehi"] = key;
  492. myNewRow["ope_vehi"] = Program.key_ope;
  493. myNewRow["num_vehi"] = bandeau;
  494. myNewRow["cmpnum_vehi"] = cmp;
  495. myNewRow["immat_vehi"] = immat;
  496. myNewRow["type_vehi"] = model;
  497. myNewRow["famille_vehi"] = famille;
  498. myNewRow["categ_vehi"] = categ;
  499. myNewRow["cond_vehi"] = pilote;
  500. myNewRow["sort1_vehi"] = string.Format("{0}{1:00000}{2}", myNewRow["categ_vehi"], myNewRow["num_vehi"], myNewRow["cmpnum_vehi"]);
  501. myNewRow["carbu_vehi"] = categ == "M" ? "SP98" : "DIESEL";
  502. if (newrow)
  503. tb_vehi.Addtb_vehiRow(myNewRow);
  504. StatusLabel1.Text = string.Format("{0}{1:00000}{2}-{3}-{4}", myNewRow["categ_vehi"], myNewRow["num_vehi"], myNewRow["cmpnum_vehi"], myNewRow["cond_vehi"], myNewRow["immat_vehi"]);
  505. Application.DoEvents();
  506. }
  507. catch (Exception ex)
  508. {
  509. MessageBox.Show(string.Format("{3}\r\nPb. à insertion de {0} {1} {2}", bandeau, pilote, model, ex.Message));
  510. }
  511. }
  512. else
  513. vide++;
  514. if (vide > 10)
  515. break;
  516. }
  517. xlApp?.Quit();
  518. StatusLabel1.Text = "F I N I .................";
  519. }
  520. private void Init_list_famille()
  521. {
  522. XDocument xRoot = XDocument.Load(Program.folder + @"\param\famille.xml");
  523. var data = from item in xRoot.Descendants("tb_famille")
  524. orderby item.Element("key_fam").Value
  525. select new Famille()
  526. {
  527. key_fam = item.Element("key_fam").Value
  528. };
  529. lfamille = data.ToList();
  530. combo_famille.Items.Clear();
  531. combo_famille.DisplayMember = "key_fam";
  532. foreach (Famille f in lfamille)
  533. combo_famille.Items.Add(f);
  534. }
  535. private void Init_list_produit()
  536. {
  537. XDocument xRoot = XDocument.Load(Program.folder + @"\param\produit.xml");
  538. var data = from item in xRoot.Descendants("tb_prod")
  539. orderby item.Element("type_prod").Value, item.Element("lib_prod").Value
  540. select new Produit()
  541. {
  542. key_prod = item.Element("key_prod").Value,
  543. lib_prod = item.Element("lib_prod").Value,
  544. type_prod = item.Element("type_prod").Value
  545. };
  546. lproduit = data.ToList();
  547. lcarbu = lproduit.Where(p => p.type_prod == "Carburant").ToList();
  548. combo_energy.Items.Clear();
  549. combo_energy.DisplayMember = "key_prod";
  550. foreach (Produit p in lcarbu)
  551. combo_energy.Items.Add(p);
  552. }
  553. private void SaveData()
  554. {
  555. if (File.Exists(Program.subfolder + @"\vehicule.json"))
  556. File.Copy(Program.subfolder + @"\vehicule.json", Program.subfolder + @"\vehicule.back.json", true);
  557. DbUtil.SaveToJson<DataSet1.tb_vehiDataTable>(Program.subfolder + @"\statvehiculeion.json", tb_vehi);
  558. }
  559. private void Tb_allValid_Click(object sender, EventArgs e)
  560. {
  561. hasChanged = true;
  562. this.Close();
  563. }
  564. private void Vehi_Load(object sender, EventArgs e)
  565. {
  566. if (!Directory.Exists(Program.subfolder))
  567. Directory.CreateDirectory(Program.subfolder);
  568. else
  569. {
  570. if (File.Exists(Program.subfolder + @"\vehicule.json"))
  571. tb_vehi = DbUtil.LoadFromJson<DataSet1.tb_vehiDataTable>(Program.subfolder + @"\vehicule.json", tb_vehi);
  572. }
  573. tb_vehi.AcceptChanges();
  574. tbvehiculeBindingSource.DataSource = tb_vehi;
  575. Turn_txt(false);
  576. Turn_bt(false);
  577. if (Program.key_ope != null)
  578. this.Text = "Importation Véhicules " + Program.nom_ope;
  579. if (File.Exists(Program.folder + @"\param\famille.xml"))
  580. Init_list_famille();
  581. if (File.Exists(Program.folder + @"\param\produit.xml"))
  582. Init_list_produit();
  583. }
  584. #region affichage
  585. private void Turn_bt(bool act)
  586. {
  587. Bt_Abort.Enabled = act;
  588. bt_Valid.Enabled = act;
  589. bt_Mod.Enabled = !act;
  590. bt_Aj.Enabled = !act;
  591. bt_Sup.Enabled = !act;
  592. dg_vehi.Enabled = !act;
  593. }
  594. private void Turn_txt(bool act)
  595. {
  596. text_immat_vehi.Enabled = act;
  597. text_num_vehi.Enabled = act;
  598. text_cmpnum_vehi.Enabled = act;
  599. text_type_vehi.Enabled = act;
  600. text_kmdep_vehi.Enabled = act;
  601. text_kmarr_vehi.Enabled = act;
  602. text_cond_vehi.Enabled = act;
  603. combo_energy.Enabled = act;
  604. combo_famille.Enabled = act;
  605. text_sort_vehi.Enabled = act;
  606. }
  607. #endregion affichage
  608. #region Boutons
  609. private void Bt_Abort_Click(object sender, EventArgs e)
  610. {
  611. tb_vehi.RejectChanges();
  612. Turn_txt(false);
  613. Turn_bt(false);
  614. }
  615. private void Bt_Aj_Click(object sender, EventArgs e)
  616. {
  617. Turn_txt(true);
  618. Turn_bt(true);
  619. string key = FindNewkey();
  620. DataSet1.tb_vehiRow myNewRow = tb_vehi.Newtb_vehiRow();
  621. myNewRow["key_vehi"] = key;
  622. myNewRow["ope_vehi"] = Program.nom_ope;
  623. tb_vehi.Addtb_vehiRow(myNewRow);
  624. tbvehiculeBindingSource.MoveFirst();
  625. DataRowView myRow = tbvehiculeBindingSource.Current as DataRowView;
  626. while (myRow.Row["key_vehi"].ToString() != key)
  627. {
  628. tbvehiculeBindingSource.MoveNext();
  629. myRow = tbvehiculeBindingSource.Current as DataRowView;
  630. }
  631. }
  632. private void Bt_Mod_Click(object sender, EventArgs e)
  633. {
  634. Turn_bt(true);
  635. Turn_txt(true);
  636. }
  637. private void Bt_Sup_Click(object sender, EventArgs e)
  638. {
  639. DataRowView myRow = tbvehiculeBindingSource.Current as DataRowView;
  640. if (myRow == null) return;
  641. string msg = string.Format("Vehicule {0}\nEtes-vous certain de vouloir supprimer \n{1}", myRow.Row["num_vehi"].ToString(), myRow.Row["immat_vehi"].ToString());
  642. string caption = "Suppression définitive";
  643. if (MessageBox.Show(msg, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
  644. {
  645. DataSet1.tb_vehiRow vehiRow = tb_vehi.FindBykey_vehi(myRow.Row["key_vehi"].ToString());
  646. if (vehiRow != null)
  647. tb_vehi.Removetb_vehiRow(vehiRow);
  648. hasChanged = true;
  649. }
  650. }
  651. private void Bt_Valid_Click(object sender, EventArgs e)
  652. {
  653. tb_vehi.AcceptChanges();
  654. Turn_txt(false);
  655. Turn_bt(false);
  656. hasChanged = true;
  657. }
  658. #endregion Boutons
  659. #region fonctions
  660. private string FindNewkey()
  661. {
  662. Random rand1 = new Random();
  663. string key = rand1.Next(99999).ToString();
  664. while (tb_vehi.FindBykey_vehi(key) != null)
  665. {
  666. key = rand1.Next(99999).ToString();
  667. }
  668. return key;
  669. }
  670. private DataSet1.tb_vehiRow FindOnekey(string bandeau)
  671. {
  672. if (Int32.TryParse(bandeau, out int bandoNum))
  673. {
  674. DataSet1.tb_vehiRow onevevi = tb_vehi.FirstOrDefault(v => v.num_vehi == bandoNum);
  675. return onevevi;
  676. }
  677. else
  678. {
  679. return null;
  680. }
  681. }
  682. #endregion fonctions
  683. }
  684. }