F_SET_014002.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830
  1. 
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Reflection;
  7. using System.Windows.Forms;
  8. using Curtain.Framework.Json;
  9. using Dongke.IBOSS.PRD.Client.CommonModule;
  10. using Dongke.IBOSS.PRD.WCF.DataModels;
  11. using Dongke.IBOSS.PRD.WCF.DataModels.BarcodeBatchSet;
  12. using Dongke.IBOSS.PRD.WCF.Proxys;
  13. namespace Dongke.IBOSS.PRD.Client.Controls
  14. {
  15. public partial class F_SET_014002 : DKFormBase
  16. {
  17. /// <summary>
  18. /// 模板ID
  19. /// </summary>
  20. public int LayoutID
  21. {
  22. get;
  23. set;
  24. }
  25. private BarcodeBatchConfig _setData_old;
  26. private BarcodeBatchConfig _setData;
  27. private BarcodeBatchConfig_BC _setDataBC;
  28. private Dictionary<int, BarcodeBatchConfig_TXT> _setDataTXTS;
  29. private DataSet _DataSet = null;
  30. private DataTable _DataItem = null;
  31. private DataRow _DataRow = null;
  32. public F_SET_014002()
  33. {
  34. InitializeComponent();
  35. }
  36. private void F_SET_014002_Load(object sender, EventArgs e)
  37. {
  38. try
  39. {
  40. // 调试用
  41. pnlPanel1.Visible = false;
  42. dgvTXT_EGS.AutoGenerateColumns = false;
  43. this.txtBC_EG.Visible = false;
  44. string usercode = ProxySettings.LoginUserInfo.UserCode + "";
  45. if (usercode.StartsWith("DONGKECXY"))
  46. {
  47. pnlPanel1.Visible = true;
  48. dgvTXT_EGS.AutoGenerateColumns = true;
  49. this.txtBC_EG.Visible = true;
  50. }
  51. }
  52. catch (Exception ex)
  53. {
  54. // 对异常进行共通处理
  55. ExceptionManager.HandleEventException(this.ToString(),
  56. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  57. }
  58. }
  59. private void F_SET_014002_Shown(object sender, EventArgs e)
  60. {
  61. try
  62. {
  63. ClientRequestEntity cre = new ClientRequestEntity();
  64. cre.NameSpace = "F_SET_014001";
  65. cre.Name = "GetBarCodeBatchLayout";
  66. cre.Properties["LayoutID"] = LayoutID;
  67. ServiceResultEntity sre = SystemModuleProxy.Service.DoBarCodePrint(cre);
  68. if (sre != null && sre.Data != null && sre.Data.Tables.Count > 0)
  69. {
  70. _DataSet = sre.Data;
  71. _DataItem = sre.Data.Tables[1];
  72. }
  73. else
  74. {
  75. this.Close();
  76. return;
  77. }
  78. if (LayoutID > 0)
  79. {
  80. _DataRow = _DataSet.Tables[0].Rows[0];
  81. txtLayoutName.Text = _DataRow["LayoutName"]+"";
  82. numDisplayNo.Value = Convert.ToDecimal(_DataRow["DisplayNo"]);
  83. chkValueFlag.Checked = (_DataRow["ValueFlag"] + "" == "1" ? true : false);
  84. txtRemarks.Text = _DataRow["Remarks"] + "";
  85. byte[] bytes = _DataRow["LayoutData"] as byte[];
  86. //byte[] bytes = System.Text.Encoding.UTF8.GetBytes(str);
  87. string ss_dd = System.Text.Encoding.UTF8.GetString(bytes);
  88. _setData_old = JsonHelper.ToObject<BarcodeBatchConfig>(ss_dd);
  89. GetLayoutData(_setData_old);
  90. }
  91. else
  92. {
  93. _DataRow = _DataSet.Tables[0].NewRow();
  94. _DataSet.Tables[0].Rows.Add(_DataRow);
  95. for (int i = 1; i < 3; i++)
  96. {
  97. BarcodeBatchConfig_TXT tt = SetDataTXT1(null);
  98. tt.ID = i;
  99. tt.Name = "文本" + i;
  100. lisTXTS.Items.Add(tt);
  101. }
  102. for (int i = 3; i < 5; i++)
  103. {
  104. BarcodeBatchConfig_TXT tt = SetDataTXT1(null);
  105. tt.ID = i;
  106. tt.Name = "文本" + i;
  107. tt.IsShow = false;
  108. lisTXTS.Items.Add(tt);
  109. }
  110. }
  111. // 显示第一个文本
  112. lisTXTS.SelectedIndex = 0;
  113. //SetDataTXT1();
  114. SetLayoutData();
  115. dgvTXT_EGS.DataSource = _DataItem;
  116. }
  117. catch (Exception ex)
  118. {
  119. // 对异常进行共通处理
  120. ExceptionManager.HandleEventException(this.ToString(),
  121. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  122. }
  123. }
  124. private void btnTXT_Font_Click(object sender, EventArgs e)
  125. {
  126. try
  127. {
  128. string name = (sender as Control)?.Name;
  129. TextBox ttt = null;
  130. if (name == "btnTXT1_Font")
  131. {
  132. ttt = txtTXT1_EG;
  133. }
  134. if (name == "btnBC_Font")
  135. {
  136. ttt = txtBC_EG;
  137. }
  138. //if (name == "btnTXT2_Font")
  139. //{
  140. // ttt = txtTXT2_EG;
  141. //}
  142. //if (name == "btnTXT3_Font")
  143. //{
  144. // ttt = txtTXT3_EG;
  145. //}
  146. //if (name == "btnTXT4_Font")
  147. //{
  148. // ttt = txtTXT4_EG;
  149. //}
  150. dlgFont.Font = ttt.Font;
  151. if (dlgFont.ShowDialog() == DialogResult.OK)
  152. {
  153. ttt.Font = dlgFont.Font;
  154. }
  155. }
  156. catch (Exception ex)
  157. {
  158. // 对异常进行共通处理
  159. ExceptionManager.HandleEventException(this.ToString(),
  160. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  161. }
  162. }
  163. private void SetLayoutData()
  164. {
  165. // 画布
  166. _setData = new BarcodeBatchConfig();
  167. _setData.HB_W = (float)txtHB_W.Value;
  168. _setData.HB_H = (float)txtHB_H.Value;
  169. _setData.FlipH = chkFlipH.Checked;
  170. // Page
  171. _setData.PageW = (float)txtPageW.Value;
  172. _setData.PageH = (float)txtPageH.Value;
  173. _setData.PageRowNum = (int)txtPageRowNum.Value;
  174. _setData.PageColNum = (int)txtPageColNum.Value;
  175. _setData.ShowGrid = chkShowGrid.Checked;
  176. _setData.DpiX = (int)txtDpiX.Value;
  177. _setData.DpiY = (int)txtDpiY.Value;
  178. // 条码
  179. _setDataBC = new BarcodeBatchConfig_BC();
  180. _setData.BC = _setDataBC;
  181. _setDataBC.Type = cmbBC_Type.Text;
  182. _setDataBC.Format = cmbBC_Format.Text;
  183. _setDataBC.Level = cmbBC_Level.Text;
  184. _setDataBC.EG = txtBC_EG.Text;
  185. _setDataBC.Range = new RectangleF();
  186. _setDataBC.Range.X = (float)txtBC_X.Value;
  187. _setDataBC.Range.Y = (float)txtBC_Y.Value;
  188. _setDataBC.Range.Width = (float)txtBC_W.Value;
  189. _setDataBC.Range.Height = (float)txtBC_H.Value;
  190. _setDataBC.TxtFont = new BarcodeBatchConfig_Font();
  191. _setDataBC.TxtFont.FamilyName = txtBC_EG.Font.Name;
  192. _setDataBC.TxtFont.Size = txtBC_EG.Font.Size;
  193. _setDataBC.TxtFont.Style = txtBC_EG.Font.Style;
  194. _setDataBC.TxtFont.Gunit = txtBC_EG.Font.Unit;
  195. // 文本
  196. _setDataTXTS = new Dictionary<int, BarcodeBatchConfig_TXT>();
  197. _setData.TXT_S = _setDataTXTS;
  198. // 文本1
  199. //_setDataTXT1 = SetDataTXT1();
  200. //_setDataTXTS.Add(1, _setDataTXT1);
  201. int i = 1;
  202. foreach (BarcodeBatchConfig_TXT item in lisTXTS.Items)
  203. {
  204. if (item != null)
  205. {
  206. //_setDataTXTS.Add(i, item);
  207. _setDataTXTS.Add(item.ID, item);
  208. i++;
  209. }
  210. }
  211. }
  212. private BarcodeBatchConfig_TXT SetDataTXT1SelectedItem()
  213. {
  214. BarcodeBatchConfig_TXT setDataTXT = (lisTXTS.SelectedItem as BarcodeBatchConfig_TXT);
  215. if (setDataTXT == null)
  216. {
  217. return null;
  218. }
  219. return SetDataTXT1(setDataTXT);
  220. }
  221. private BarcodeBatchConfig_TXT SetDataTXT1(BarcodeBatchConfig_TXT setDataTXT)
  222. {
  223. //BarcodeBatchConfig_TXT setDataTXT = (lisTXTS.SelectedItem as BarcodeBatchConfig_TXT);
  224. if (setDataTXT == null)
  225. {
  226. setDataTXT = new BarcodeBatchConfig_TXT();
  227. }
  228. setDataTXT.AH = cmbTXT1_AH.Text;
  229. setDataTXT.AV = cmbTXT1_AV.Text;
  230. setDataTXT.Angle = cmbTXT1_Angle.Text;
  231. setDataTXT.EG = txtTXT1_EG.Text;
  232. setDataTXT.P_TXT = txtTXT1_EG.Text + "";
  233. setDataTXT.Clip = chkTXT1_Clip.Checked;
  234. setDataTXT.Wrap = chkTXT1_Wrap.Checked;
  235. setDataTXT.Range = new RectangleF();
  236. setDataTXT.Range.X = (float)txtTXT1_X.Value;
  237. setDataTXT.Range.Y = (float)txtTXT1_Y.Value;
  238. setDataTXT.Range.Width = (float)txtTXT1_W.Value;
  239. setDataTXT.Range.Height = (float)txtTXT1_H.Value;
  240. setDataTXT.TxtFont = new BarcodeBatchConfig_Font();
  241. setDataTXT.TxtFont.FamilyName = txtTXT1_EG.Font.Name;
  242. setDataTXT.TxtFont.Size = txtTXT1_EG.Font.Size;
  243. setDataTXT.TxtFont.Style = txtTXT1_EG.Font.Style;
  244. setDataTXT.TxtFont.Gunit = txtTXT1_EG.Font.Unit;
  245. setDataTXT.Name = txtTXTName.Text;
  246. setDataTXT.IsShow = chkTXTIsShow.Checked;
  247. return setDataTXT;
  248. }
  249. private void GetLayoutData(BarcodeBatchConfig setData)
  250. {
  251. if (setData == null)
  252. {
  253. return;
  254. }
  255. // 画布
  256. txtHB_W.Value = (decimal)setData.HB_W;
  257. txtHB_H.Value = (decimal)setData.HB_H;
  258. chkFlipH.Checked = setData.FlipH;
  259. // Page
  260. txtPageW.Value = (decimal)setData.PageW;
  261. txtPageH.Value = (decimal)setData.PageH;
  262. txtPageRowNum.Value = (decimal)setData.PageRowNum;
  263. txtPageColNum.Value = (decimal)setData.PageColNum;
  264. txtDpiX.Value = (decimal)setData.DpiX;
  265. txtDpiY.Value = (decimal)setData.DpiY;
  266. chkShowGrid.Checked = setData.ShowGrid;
  267. // 条码
  268. BarcodeBatchConfig_BC setDataBC = setData.BC;
  269. if (setDataBC != null)
  270. {
  271. cmbBC_Type.Text = setDataBC.Type;
  272. cmbBC_Format.Text = setDataBC.Format;
  273. cmbBC_Level.Text = setDataBC.Level;
  274. txtBC_EG.Text = setDataBC.EG;
  275. if (setDataBC.Range != null)
  276. {
  277. txtBC_X.Value = (decimal)setDataBC.Range.X;
  278. txtBC_Y.Value = (decimal)setDataBC.Range.Y;
  279. txtBC_W.Value = (decimal)setDataBC.Range.Width;
  280. txtBC_H.Value = (decimal)setDataBC.Range.Height;
  281. }
  282. if (setDataBC.TxtFont != null)
  283. {
  284. txtBC_EG.Font = BarcodeBatchPrint.DoToFont(setDataBC.TxtFont);
  285. }
  286. else
  287. {
  288. txtBC_EG.Font = btnBC_Font.Font;
  289. }
  290. }
  291. // 文本
  292. Dictionary<int, BarcodeBatchConfig_TXT> setDataTXTS = setData.TXT_S;
  293. if (setDataTXTS != null)
  294. {
  295. // 文本1
  296. //if (setDataTXTS.Count > 0)
  297. //{
  298. // GetDataTXT1(setDataTXTS[1]);
  299. //}
  300. foreach (BarcodeBatchConfig_TXT item in setDataTXTS.Values)
  301. {
  302. lisTXTS.Items.Add(item);
  303. }
  304. }
  305. }
  306. private void GetDataTXT1()
  307. {
  308. BarcodeBatchConfig_TXT setDataTXT = (lisTXTS.SelectedItem as BarcodeBatchConfig_TXT);
  309. if (setDataTXT == null)
  310. {
  311. return;
  312. }
  313. txtTXTName.Text = setDataTXT.Name;
  314. chkTXTIsShow.Checked = setDataTXT.IsShow;
  315. cmbTXT1_AH.Text = setDataTXT.AH;
  316. cmbTXT1_AV.Text = setDataTXT.AV;
  317. cmbTXT1_Angle.Text = setDataTXT.Angle;
  318. txtTXT1_EG.Text = setDataTXT.EG;
  319. chkTXT1_Clip.Checked = setDataTXT.Clip;
  320. chkTXT1_Wrap.Checked = setDataTXT.Wrap;
  321. if (setDataTXT.Range != null)
  322. {
  323. txtTXT1_X.Value = (decimal)setDataTXT.Range.X;
  324. txtTXT1_Y.Value = (decimal)setDataTXT.Range.Y;
  325. txtTXT1_W.Value = (decimal)setDataTXT.Range.Width;
  326. txtTXT1_H.Value = (decimal)setDataTXT.Range.Height;
  327. }
  328. if (setDataTXT.TxtFont != null)
  329. {
  330. txtTXT1_EG.Font = BarcodeBatchPrint.DoToFont(setDataTXT.TxtFont);
  331. }
  332. else
  333. {
  334. txtTXT1_EG.Font = btnTXT1_Font.Font;
  335. }
  336. }
  337. private void btnHB_Show_Click(object sender, EventArgs e)
  338. {
  339. try
  340. {
  341. SetDataTXT1SelectedItem();
  342. SetLayoutData();
  343. Graphics g = picHB.CreateGraphics();
  344. _setData.DpiX = g.DpiX;
  345. _setData.DpiY = g.DpiY;
  346. // 设置文本
  347. _DataItem.AcceptChanges();
  348. foreach (BarcodeBatchConfig_TXT txt in _setData.TXT_S.Values)
  349. {
  350. txt.P_TXT = txt.EG+"";
  351. }
  352. foreach (DataRow item in _DataItem.Rows)
  353. {
  354. string item_code = item["ITEMCODE"] + "";
  355. string item_value = item["ITEMSAMPLE"] + "";
  356. if (item_code == "{#产品条码#}")
  357. {
  358. _setData.BC.P_TXT = item_value;
  359. }
  360. foreach (BarcodeBatchConfig_TXT txt in _setData.TXT_S.Values)
  361. {
  362. txt.P_TXT = txt.P_TXT.Replace(item_code, item_value);
  363. }
  364. }
  365. BarcodeBatchPrint.DoToPixel(_setData);
  366. Image image = BarcodeBatchPrint.CreateImageHB(_setData, _DataItem, null);
  367. picHB.SetImage(image, _setData.RangePixel.X, _setData.RangePixel.Y);
  368. }
  369. catch (Exception ex)
  370. {
  371. // 对异常进行共通处理
  372. ExceptionManager.HandleEventException(this.ToString(),
  373. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  374. }
  375. }
  376. private void btnOut_Click(object sender, EventArgs e)
  377. {
  378. try
  379. {
  380. SetDataTXT1SelectedItem();
  381. SetLayoutData();
  382. string tj = Curtain.Framework.Json.JsonHelper.FromObject(_setData);
  383. txtJsonData.Text = tj;
  384. }
  385. catch (Exception ex)
  386. {
  387. // 对异常进行共通处理
  388. ExceptionManager.HandleEventException(this.ToString(),
  389. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  390. }
  391. }
  392. private void btnIn_Click(object sender, EventArgs e)
  393. {
  394. try
  395. {
  396. //SetLayoutData();
  397. TXTS_SelectedItem = null;
  398. lisTXTS.Items.Clear();
  399. string tj = txtJsonData.Text;
  400. BarcodeBatchConfig bbc = Curtain.Framework.Json.JsonHelper.ToObject<BarcodeBatchConfig>(tj);
  401. GetLayoutData(bbc);
  402. SetLayoutData();
  403. //lisTXTS.DisplayMember = "KEY";
  404. //foreach (var item in bbc.TXT_S.Values)
  405. //{
  406. // lisTXTS.Items.Add(item);
  407. //}
  408. }
  409. catch (Exception ex)
  410. {
  411. // 对异常进行共通处理
  412. ExceptionManager.HandleEventException(this.ToString(),
  413. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  414. }
  415. }
  416. private void btnPage_Show_Click(object sender, EventArgs e)
  417. {
  418. try
  419. {
  420. decimal hb_w = this.txtHB_W.Value;
  421. decimal hb_h = this.txtHB_H.Value;
  422. decimal page_w = this.txtPageW.Value;
  423. decimal page_h = this.txtPageH.Value;
  424. decimal col = txtPageColNum.Value;
  425. decimal row = txtPageRowNum.Value;
  426. decimal w = page_w - hb_w * col;
  427. decimal h = page_h - hb_h * row;
  428. if (w < 0 || h < 0)
  429. {
  430. MessageBox.Show("纸张尺寸不够。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
  431. return;
  432. }
  433. SetDataTXT1SelectedItem();
  434. SetLayoutData();
  435. Graphics g = picHB.CreateGraphics();
  436. _setData.DpiX = g.DpiX;
  437. _setData.DpiY = g.DpiY;
  438. // 设置文本
  439. _DataItem.AcceptChanges();
  440. foreach (BarcodeBatchConfig_TXT txt in _setData.TXT_S.Values)
  441. {
  442. txt.P_TXT = txt.EG + "";
  443. }
  444. foreach (DataRow item in _DataItem.Rows)
  445. {
  446. string item_code = item["ITEMCODE"] + "";
  447. string item_value = item["ITEMSAMPLE"] + "";
  448. if (item_code == "{#产品条码#}")
  449. {
  450. _setData.BC.P_TXT = item_value;
  451. }
  452. foreach (BarcodeBatchConfig_TXT txt in _setData.TXT_S.Values)
  453. {
  454. txt.P_TXT = txt.P_TXT.Replace(item_code, item_value);
  455. }
  456. }
  457. BarcodeBatchPrint.DoToPixel(_setData);
  458. Image image = BarcodeBatchPrint.ShowImagePage(_setData);
  459. picPage.SetImage(image, _setData.RangePixel.Width, _setData.RangePixel.Height);
  460. }
  461. catch (Exception ex)
  462. {
  463. // 对异常进行共通处理
  464. ExceptionManager.HandleEventException(this.ToString(),
  465. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  466. }
  467. }
  468. private void btnTXTOK_Click(object sender, EventArgs e)
  469. {
  470. try
  471. {
  472. SetDataTXT1SelectedItem();
  473. }
  474. catch (Exception ex)
  475. {
  476. // 对异常进行共通处理
  477. ExceptionManager.HandleEventException(this.ToString(),
  478. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  479. }
  480. }
  481. private object TXTS_SelectedItem = null;
  482. private void lisTXTS_SelectedIndexChanged(object sender, EventArgs e)
  483. {
  484. try
  485. {
  486. if (TXTS_SelectedItem != null)
  487. {
  488. SetDataTXT1(TXTS_SelectedItem as BarcodeBatchConfig_TXT);
  489. }
  490. TXTS_SelectedItem = lisTXTS.SelectedItem;
  491. GetDataTXT1();
  492. }
  493. catch (Exception ex)
  494. {
  495. // 对异常进行共通处理
  496. ExceptionManager.HandleEventException(this.ToString(),
  497. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  498. }
  499. }
  500. private void btnTXTS_ADD_Click(object sender, EventArgs e)
  501. {
  502. try
  503. {
  504. BarcodeBatchConfig_TXT txt = new BarcodeBatchConfig_TXT();
  505. lisTXTS.Items.Add(txt);
  506. }
  507. catch (Exception ex)
  508. {
  509. // 对异常进行共通处理
  510. ExceptionManager.HandleEventException(this.ToString(),
  511. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  512. }
  513. }
  514. private void btnTXTS_DEL_Click(object sender, EventArgs e)
  515. {
  516. try
  517. {
  518. if (lisTXTS.SelectedIndex >= 0)
  519. {
  520. lisTXTS.Items.RemoveAt(lisTXTS.SelectedIndex);
  521. }
  522. }
  523. catch (Exception ex)
  524. {
  525. // 对异常进行共通处理
  526. ExceptionManager.HandleEventException(this.ToString(),
  527. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  528. }
  529. }
  530. private void btnCancel_Click(object sender, EventArgs e)
  531. {
  532. try
  533. {
  534. this.Close();
  535. }
  536. catch (Exception ex)
  537. {
  538. // 对异常进行共通处理
  539. ExceptionManager.HandleEventException(this.ToString(),
  540. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  541. }
  542. }
  543. private void btnSave_Click(object sender, EventArgs e)
  544. {
  545. try
  546. {
  547. decimal hb_w = this.txtHB_W.Value;
  548. decimal hb_h = this.txtHB_H.Value;
  549. decimal page_w = this.txtPageW.Value;
  550. decimal page_h = this.txtPageH.Value;
  551. decimal col = txtPageColNum.Value;
  552. decimal row = txtPageRowNum.Value;
  553. decimal w = page_w - hb_w * col;
  554. decimal h = page_h - hb_h * row;
  555. if (w < 0 || h < 0)
  556. {
  557. MessageBox.Show("纸张尺寸不够。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
  558. return;
  559. }
  560. _DataRow["LayoutName"] = txtLayoutName.Text.Trim();
  561. _DataRow["DisplayNo"] = (int)numDisplayNo.Value;
  562. _DataRow["ValueFlag"] = (chkValueFlag.Checked ? "1" : "0");
  563. _DataRow["Remarks"] = txtRemarks.Text;
  564. SetDataTXT1SelectedItem();
  565. SetLayoutData();
  566. _DataRow["WIDTH"] = _setData.PageW;
  567. _DataRow["HEIGHT"] = _setData.PageH;
  568. string ss_jj = JsonHelper.FromObject(_setData);
  569. byte[] bytes = System.Text.Encoding.UTF8.GetBytes(ss_jj);
  570. _DataRow["LayoutData"] = bytes;
  571. _DataSet.AcceptChanges();
  572. // 新建票据的情况
  573. if (LayoutID == 0)
  574. {
  575. ServiceResultEntity result = this.DoAsync<ServiceResultEntity>(() =>
  576. {
  577. return this.SaveAddLayoutData();
  578. });
  579. int invoiceLayoutID = Convert.ToInt32(result.Result);
  580. if (invoiceLayoutID > 0)
  581. {
  582. MessageBox.Show("保存操作成功完成了。",
  583. this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
  584. // 新建成功后,将画面修改成编辑状态
  585. this.LayoutID = invoiceLayoutID;
  586. this.Text = F_SET_014001.TITLE_F_SET_014001_EDIT + "-" + this.txtLayoutName.Text.Trim();
  587. }
  588. else
  589. {
  590. MessageBox.Show("保存操作没有更新任何数据,请确认该数据是否存在。",
  591. this.Text,
  592. MessageBoxButtons.OK,
  593. MessageBoxIcon.Warning);
  594. }
  595. }
  596. else
  597. {
  598. ServiceResultEntity result = this.DoAsync<ServiceResultEntity>(() =>
  599. {
  600. return this.SaveEditLayoutData();
  601. });
  602. int returnAffectRows = Convert.ToInt32(result.Result);
  603. if (returnAffectRows > 0)
  604. {
  605. MessageBox.Show("保存操作成功完成了。",
  606. this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
  607. }
  608. else
  609. {
  610. MessageBox.Show("保存操作没有更新任何数据,请确认该数据是否存在。",
  611. this.Text,
  612. MessageBoxButtons.OK,
  613. MessageBoxIcon.Warning);
  614. }
  615. }
  616. }
  617. catch (Exception ex)
  618. {
  619. // 对异常进行共通处理
  620. ExceptionManager.HandleEventException(this.ToString(),
  621. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  622. }
  623. }
  624. private ServiceResultEntity SaveAddLayoutData()
  625. {
  626. try
  627. {
  628. ClientRequestEntity cre = new ClientRequestEntity();
  629. cre.NameSpace = "F_SET_014001";
  630. cre.Name = "SaveAddBarCodeBatchLayout";
  631. cre.Data = _DataSet;
  632. return SystemModuleProxy.Service.DoBarCodePrint(cre);
  633. }
  634. catch (Exception ex)
  635. {
  636. throw ex;
  637. }
  638. }
  639. /// <summary>
  640. /// 保存编辑票据数据
  641. /// </summary>
  642. /// <returns>更新数据时影响的行数</returns>
  643. private ServiceResultEntity SaveEditLayoutData()
  644. {
  645. try
  646. {
  647. ClientRequestEntity cre = new ClientRequestEntity();
  648. cre.NameSpace = "F_SET_014001";
  649. cre.Name = "SaveEditBarCodeBatchLayout";
  650. cre.Data = _DataSet;
  651. return SystemModuleProxy.Service.DoBarCodePrint(cre);
  652. }
  653. catch (Exception ex)
  654. {
  655. throw ex;
  656. }
  657. }
  658. private void btnPrint_Click(object sender, EventArgs e)
  659. {
  660. try
  661. {
  662. decimal hb_w = this.txtHB_W.Value;
  663. decimal hb_h = this.txtHB_H.Value;
  664. decimal page_w = this.txtPageW.Value;
  665. decimal page_h = this.txtPageH.Value;
  666. decimal col = txtPageColNum.Value;
  667. decimal row = txtPageRowNum.Value;
  668. decimal w = page_w - hb_w * col;
  669. decimal h = page_h - hb_h * row;
  670. if (w < 0 || h < 0)
  671. {
  672. MessageBox.Show("纸张尺寸不够。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
  673. return;
  674. }
  675. SetDataTXT1SelectedItem();
  676. SetLayoutData();
  677. Graphics g = picHB.CreateGraphics();
  678. _setData.DpiX = g.DpiX;
  679. _setData.DpiY = g.DpiY;
  680. //_setData.DpiX = 600;
  681. //_setData.DpiY = 600;
  682. /*List<BarcodeBatchData> bbd = new List<BarcodeBatchData>();
  683. for (int i = 0; i < 36; i++)
  684. {
  685. BarcodeBatchData bb = new BarcodeBatchData();
  686. bb.Barcode = (12345678901 + i)+"";
  687. bb.TXT_S = new Dictionary<int, string>();
  688. bb.TXT_S.Add(1, bb.Barcode);
  689. bbd.Add(bb);
  690. }*/
  691. List<DataRow> bbd = new List<DataRow>();
  692. DataTable ddtt = new DataTable();
  693. ddtt.Columns.Add("BarCode");
  694. ddtt.Columns.Add("GroutingDate", typeof(DateTime));
  695. ddtt.Columns.Add("GroutingBatchNo", typeof(int));
  696. ddtt.Columns.Add("GroutingLineCode");
  697. ddtt.Columns.Add("GroutingMouldCode");
  698. ddtt.Columns.Add("GoodsCode");
  699. for (int i = 0; i < 36; i++)
  700. {
  701. DataRow bb = ddtt.NewRow();
  702. bb["BarCode"] = (12345678901 + i) + "";
  703. bb["GroutingDate"] = DateTime.Now;
  704. bb["GroutingBatchNo"] = i;
  705. bb["GroutingLineCode"] = "C01C" + i;
  706. bb["GroutingMouldCode"] = "C01C" + i + "-00"+ i;
  707. bb["GoodsCode"] = "H0" + i;
  708. ddtt.Rows.Add(bb);
  709. bbd.Add(bb);
  710. }
  711. BarcodeBatchPrint.DoToPixel(_setData);
  712. //int index = 0;
  713. int nextIndex = 0;
  714. while (nextIndex > -1 && nextIndex < bbd.Count)
  715. {
  716. Image image = BarcodeBatchPrint.CreateImagePage(_setData, _DataItem, bbd, nextIndex, out nextIndex);
  717. picPage.SetImage(image, _setData.RangePixel.Width, _setData.RangePixel.Height);
  718. //image.Save("D://p" + nextIndex + ".png");
  719. MessageBox.Show(nextIndex+"");
  720. }
  721. }
  722. catch (Exception ex)
  723. {
  724. // 对异常进行共通处理
  725. ExceptionManager.HandleEventException(this.ToString(),
  726. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  727. }
  728. }
  729. }
  730. }