UIM010220.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Windows.Forms;
  10. using System.Xml;
  11. using CoreFS.CA06;
  12. using Core.LZMes.Client.UIM.comm;
  13. namespace Core.LZMes.Client.UIM
  14. {
  15. public partial class UIM010220 : FrmBase
  16. {
  17. private int areaType = 1;//原料库
  18. private string _StockNo = "";//库存编号
  19. private int _MinRow = 1;//最小行数
  20. private int _MaxRow = 1;//最大行数
  21. private Bitmap _CoilBitmap = new Bitmap("./images/OTHER/coil1.gif");
  22. private Bitmap _YardBitmap = new Bitmap("./images/OTHER/yard.png");
  23. public UIM010220()
  24. {
  25. InitializeComponent();
  26. }
  27. public override void ToolBar_Click(object sender, string ToolbarKey)
  28. {
  29. switch (ToolbarKey)
  30. {
  31. case "Query":
  32. this.DoQuery();
  33. break;
  34. case "Exit":
  35. this.Close();
  36. break;
  37. }
  38. }
  39. private void DoQuery()
  40. {
  41. }
  42. private void UIM010220_Load(object sender, EventArgs e)
  43. {
  44. OutlookBar outlookBar = new OutlookBar();
  45. outlookBar.Location = new Point(0, 0);
  46. outlookBar.Size = new Size(150, this.ClientSize.Height);
  47. outlookBar.Dock = DockStyle.Fill;
  48. outlookBar.BorderStyle = BorderStyle.FixedSingle;
  49. panel3.Controls.Add(outlookBar);
  50. outlookBar.Initialize();
  51. IconPanel iconPanel1 = new IconPanel();
  52. IconPanel iconPanel2 = new IconPanel();
  53. IconPanel iconPanel3 = new IconPanel();
  54. outlookBar.AddBand("连退后库", iconPanel1, new EventHandler(ButtonEvent));
  55. outlookBar.AddBand("重卷前库", iconPanel2, new EventHandler(ButtonEvent));
  56. outlookBar.AddBand("重卷后库", iconPanel3, new EventHandler(ButtonEvent));
  57. Image rowIcon = Image.FromFile("./images/OTHER/img1.ico");
  58. iconPanel1.AddIcon("一区(1-10)", rowIcon, new EventHandler(PanelEvent));
  59. iconPanel1.AddIcon("二区(11-20)", rowIcon, new EventHandler(PanelEvent));
  60. iconPanel1.AddIcon("三区(21-30)", rowIcon, new EventHandler(PanelEvent));
  61. iconPanel1.AddIcon("四区(31-40)", rowIcon, new EventHandler(PanelEvent));
  62. iconPanel1.AddIcon("五区(41-57)", rowIcon, new EventHandler(PanelEvent));
  63. iconPanel1.AddIcon("六区(58-74)", rowIcon, new EventHandler(PanelEvent));
  64. iconPanel1.AddIcon("七区(75-91)", rowIcon, new EventHandler(PanelEvent));
  65. iconPanel1.AddIcon("八区(92-108)", rowIcon, new EventHandler(PanelEvent));
  66. iconPanel2.AddIcon("一区(1-10)", rowIcon, new EventHandler(PanelEvent));
  67. iconPanel2.AddIcon("二区(11-21)", rowIcon, new EventHandler(PanelEvent));
  68. iconPanel2.AddIcon("三区(22-32)", rowIcon, new EventHandler(PanelEvent));
  69. iconPanel2.AddIcon("四区(33-43)", rowIcon, new EventHandler(PanelEvent));
  70. iconPanel2.AddIcon("五区(44-54)", rowIcon, new EventHandler(PanelEvent));
  71. iconPanel2.AddIcon("六区(55-65)", rowIcon, new EventHandler(PanelEvent));
  72. iconPanel2.AddIcon("七区(66-76)", rowIcon, new EventHandler(PanelEvent));
  73. iconPanel2.AddIcon("八区(77-87)", rowIcon, new EventHandler(PanelEvent));
  74. iconPanel2.AddIcon("九区(88-100)", rowIcon, new EventHandler(PanelEvent));
  75. iconPanel3.AddIcon("一区(1-15)", rowIcon, new EventHandler(PanelEvent));
  76. iconPanel3.AddIcon("二区(16-35)", rowIcon, new EventHandler(PanelEvent));
  77. iconPanel3.AddIcon("三区(36-50)", rowIcon, new EventHandler(PanelEvent));
  78. iconPanel3.AddIcon("四区(51-65)", rowIcon, new EventHandler(PanelEvent));
  79. iconPanel3.AddIcon("五区(66-80)", rowIcon, new EventHandler(PanelEvent));
  80. iconPanel3.AddIcon("六区(81-102)", rowIcon, new EventHandler(PanelEvent));
  81. outlookBar.SelectBand(0);
  82. ShowStockCount("10");
  83. }
  84. public void ButtonEvent(object sender, EventArgs e)
  85. {
  86. Control ctrl = (Control)sender;
  87. BandButton bandButton = ctrl as BandButton;
  88. string stockNo = "";
  89. switch(bandButton.Text)
  90. {
  91. case "连退后库":
  92. stockNo = "10";
  93. break;
  94. case "重卷前库":
  95. stockNo = "11";
  96. break;
  97. case "重卷后库":
  98. stockNo = "12";
  99. break;
  100. }
  101. ShowStockCount(stockNo);
  102. }
  103. public void PanelEvent(object sender, EventArgs e)
  104. {
  105. Control ctrl = (Control)sender;
  106. PanelIcon panelIcon = ctrl.Tag as PanelIcon;
  107. string text = panelIcon.Text;
  108. string rowRange = text.Substring(text.IndexOf("(")+1, text.IndexOf(")") - text.IndexOf("(") - 1);
  109. //MessageBox.Show(panelIcon.Parent.Parent.Text + " " + rowRange);
  110. string[] rowRanges = rowRange.Split(new char[] { '-' });
  111. ShowYard(panelIcon.Parent.Parent.Text, int.Parse(rowRanges[0]), int.Parse(rowRanges[1]));
  112. }
  113. private void ShowStockCount(string stockNo)
  114. {
  115. this.dataSet1.Tables["STOCK_COUNT"].Clear();
  116. CoreClientParam ccp = new CoreClientParam();
  117. ccp.ServerName = "UIM.UIM010220";
  118. ccp.MethodName = "queryStockCount";
  119. ccp.ServerParams = new object[] { stockNo };
  120. ccp.SourceDataTable = this.dataSet1.Tables["STOCK_COUNT"];
  121. this.ExecuteQueryToDataTable(ccp, CoreInvokeType.Internal);
  122. if (dataSet1.Tables["STOCK_COUNT"].Rows.Count > 0)
  123. {
  124. textBox1.Text = dataSet1.Tables["STOCK_COUNT"].Rows[0]["YARD_COUNT"].ToString();
  125. textBox2.Text = dataSet1.Tables["STOCK_COUNT"].Rows[0]["COIL_COUNT"].ToString();
  126. textBox3.Text = dataSet1.Tables["STOCK_COUNT"].Rows[0]["WEIGHT_SUM"].ToString();
  127. }
  128. while (panel2.Controls.Count > 0)
  129. {
  130. panel2.Controls.RemoveAt(0);
  131. }
  132. }
  133. private void ShowYard(string stockNo, int minRow, int maxRow)
  134. {
  135. while(panel2.Controls.Count > 0)
  136. {
  137. panel2.Controls.RemoveAt(0);
  138. }
  139. if (stockNo == "连退后库")
  140. {
  141. _StockNo = "10";
  142. }
  143. else if(stockNo == "重卷前库")
  144. {
  145. _StockNo = "11";
  146. }
  147. else if(stockNo == "重卷后库")
  148. {
  149. _StockNo = "12";
  150. }
  151. _MinRow = minRow;
  152. _MaxRow = maxRow;
  153. Panel panel = new Panel();
  154. panel.Dock = DockStyle.Fill;
  155. panel.AutoScroll = true;
  156. panel.Visible = false;
  157. panel.MouseClick += new MouseEventHandler(pnl_MouseClick);
  158. panel2.Controls.Add(panel);
  159. panel.VisibleChanged +=new EventHandler(panel_Paint);
  160. panel.Visible = true;
  161. //.DrawLine(new Pen(Color.LightBlue,2),new Point(0,100),new Point(1000,100));
  162. }
  163. private void panel_Paint(object sender, EventArgs e)
  164. {
  165. Panel pnl = ((Panel)sender);
  166. for (int i = 0; i <= _MaxRow - _MinRow; i++)
  167. {
  168. //e.Graphics.DrawPolygon(new Pen(Color.LightBlue, 6), new Point[] { new Point(50, 110 + (i * 80)), new Point(1000, 110 + (i * 80)), new Point(990, 115 + (i * 80)), new Point(40, 115 + (i * 80)) });
  169. CoilPictureBox yard = new CoilPictureBox();
  170. yard.Image = _YardBitmap;
  171. //BitmapRegion.CreateControlRegion(yard, new Bitmap("./images/OTHER/yard.png"));
  172. yard.Top = 110 + (i * 80);
  173. yard.Left = 50;
  174. yard.Width = 920;
  175. yard.Height = 17;
  176. yard.SizeMode = PictureBoxSizeMode.StretchImage;
  177. yard.SendToBack();
  178. pnl.Controls.Add(yard);
  179. }
  180. DataTable dt = dataSet1.Tables["AREA_COILS"];
  181. dt.Clear();
  182. CoreClientParam ccp = new CoreClientParam();
  183. ccp.ServerName = "UIM.UIM010220";
  184. ccp.MethodName = "queryAreaCoils";
  185. ccp.ServerParams = new object[] { _StockNo,_MinRow,_MaxRow };
  186. ccp.SourceDataTable = dt;
  187. this.ExecuteQueryToDataTable(ccp, CoreInvokeType.Internal);
  188. if (dt.Rows.Count > 0)
  189. {
  190. int rowIndex, columnIndex, layerIndex, columnHead = 0, rowHead = 0,rowI = 0,colI = 0;
  191. string coilNo = string.Empty,clfNo = string.Empty;
  192. foreach (DataRow dr in dt.Rows)
  193. {
  194. rowIndex = Convert.ToInt32(dr["CLF_ROW"]);
  195. columnIndex = Convert.ToInt32(dr["CLF_COL"]);
  196. layerIndex = Convert.ToInt32(dr["CLF_FL"]);
  197. coilNo = Convert.ToString(dr["OLD_SAMPL_NO"]);
  198. clfNo = Convert.ToString(dr["CLF_NO"]);
  199. if (rowIndex > rowHead)
  200. {
  201. rowHead++;
  202. if (rowHead >= _MinRow)
  203. {
  204. Label lblRow = new Label();
  205. lblRow.Name = "ROW_" + Convert.ToString(rowHead) + "_" + clfNo;
  206. lblRow.Text = rowHead.ToString();
  207. lblRow.Size = new Size(25, 20);
  208. lblRow.Location = new Point(10, 110 + (rowHead - _MinRow) * 80);
  209. lblRow.TextAlign = ContentAlignment.MiddleCenter;
  210. //lblRow.BackColor = Color.SkyBlue;
  211. pnl.Controls.Add(lblRow);
  212. lblRow.BringToFront();
  213. }
  214. }
  215. if (columnIndex > columnHead)
  216. {
  217. columnHead++;
  218. Label lblColumn = new Label();
  219. lblColumn.Name = "COL_"+ Convert.ToString(columnHead)+"_"+clfNo;
  220. lblColumn.Text = Convert.ToString(columnHead);
  221. lblColumn.Size = new Size(30, 20);
  222. lblColumn.Location = new Point(columnHead * 60 + 13, 25);
  223. lblColumn.TextAlign = ContentAlignment.MiddleCenter;
  224. //lblColumn.BackColor = Color.SkyBlue;
  225. pnl.Controls.Add(lblColumn);
  226. lblColumn.BringToFront();
  227. }
  228. //if (layerIndex == 1)
  229. //{
  230. // PictureBox yard = new PictureBox();
  231. // yard.Name = Convert.ToString(dr["BUTTRESS_NO"]);
  232. // yard.Image = y_Image;
  233. // yard.Width = 40;
  234. // yard.Height = 14;
  235. // yard.Left = columnIndex * 60 + 8;
  236. // yard.Top = rowIndex * 60 + 12;
  237. // yard.SizeMode = PictureBoxSizeMode.StretchImage;
  238. // pnl.Controls.Add(yard);
  239. // yard.SendToBack();
  240. //}
  241. if (!string.IsNullOrEmpty(coilNo))
  242. {
  243. string loadLoc = Convert.ToString(dr["CUR_LOAD_LOC"]);
  244. Control []ctrls = new Control[3];
  245. int i = 0;
  246. foreach (Control ctrl in pnl.Controls)
  247. {
  248. if (ctrl is CoilPictureBox && ((CoilPictureBox)ctrl).CurLoadLoc == loadLoc)
  249. {
  250. ctrls[i] = ctrl;
  251. if (i++ == 3)
  252. {
  253. break;
  254. }
  255. }
  256. }
  257. if (i >= 3)
  258. {
  259. break;
  260. }
  261. CoilPictureBox coil = new CoilPictureBox();
  262. BitmapRegion.CreateControlRegion(coil, _CoilBitmap);
  263. coil.Name = coilNo;
  264. coil.Width = 50;
  265. coil.Height = 50;
  266. coil.Left = columnIndex * 60 + 6 + (layerIndex - 1) * 30;
  267. coil.Top = 80 + (rowIndex-_MinRow) * 80 - (layerIndex - 1) * 5;
  268. coil.CurLoadLoc = loadLoc;
  269. string text = "钢卷详细信息\r\n";
  270. text = string.Format("{0}钢卷号: {1}\r\n", text, coilNo);
  271. text = string.Format("{0}垛位 : {1}\r\n", text, loadLoc);
  272. text = string.Format("{0}牌号 : {1}\r\n", text, Convert.ToString(dr["SPEC_STL_GRD"]));
  273. text = string.Format("{0}厚度 : {1}\r\n", text, Convert.ToString(dr["COIL_THK"]));
  274. text = string.Format("{0}宽度 : {1}\r\n", text, Convert.ToString(dr["COIL_WTH"]));
  275. text = string.Format("{0}重量 : {1}KG\r\n", text, Convert.ToString(dr["ACT_WGT"]));
  276. text = string.Format("{0}合同号: {1}\r\n", text, Convert.ToString(dr["ORD_NO"]));
  277. text = string.Format("{0}订单号: {1}", text, Convert.ToString(dr["ORD_SEQ"]));
  278. coil.ToolTipText = text;
  279. coil.Cursor = Cursors.Hand;
  280. coil.SizeMode = PictureBoxSizeMode.StretchImage;
  281. coil.MouseEnter += new EventHandler(picBox_MouseEnter);
  282. coil.MouseLeave += new EventHandler(picBox_MouseLeave);
  283. //同一垛位钢卷移动位置
  284. foreach (Control ctrl in ctrls)
  285. {
  286. if (ctrl != null)
  287. {
  288. ctrl.Left -= 30 / 2;
  289. }
  290. }
  291. coil.Left += 30 / 2 * i;
  292. pnl.Controls.Add(coil);
  293. coil.BringToFront();
  294. }
  295. }
  296. //PictureBox pb1 = new PictureBox();
  297. //BitmapRegion.CreateControlRegion(pb1, bitmap);
  298. //pb1.Left = 60;
  299. //pb1.Top = 73;
  300. //pb1.Width = 50;
  301. //pb1.Height = 50;
  302. //pb1.BackColor = Color.Transparent;
  303. //((Panel)sender).Controls.Add(pb1);
  304. //e.Graphics.DrawImage(Image.FromFile("./images/OTHER/coil1.gif"), 40, 73, 50, 50);
  305. }
  306. }
  307. private void pnl_MouseClick(object sender, MouseEventArgs e)
  308. {
  309. ((Panel)sender).Focus();
  310. }
  311. private void picBox_MouseEnter(object sender, EventArgs e)
  312. {
  313. CoilPictureBox picBox = (CoilPictureBox)sender;
  314. toolTip1.Show(picBox.ToolTipText, picBox);
  315. }
  316. private void picBox_MouseLeave(object sender, EventArgs e)
  317. {
  318. toolTip1.Hide((IWin32Window)sender);
  319. }
  320. }
  321. }