InventoryPanDianSmallForm.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. namespace LYFZ.Software.MainBusiness.InventoryManagement.SetSmallForm
  10. {
  11. public partial class InventoryPanDianSmallForm : LYFZ.Software.UI.InventoryManagement.SetSmallForm.InventoryPanDianSmallForm
  12. {
  13. LYFZ.BLL.BLL_ErpOrder orbll = new BLL.BLL_ErpOrder();
  14. LYFZ.BLL.BLL_ErpProduct ptbll = new BLL.BLL_ErpProduct();
  15. public InventoryPanDianSmallForm()
  16. {
  17. this.Load += InventoryPanDianSmallForm_Load;
  18. this.Shown += InventoryPanDianSmallForm_Shown;
  19. this.btnSaveed.Click += btnSaveed_Click;
  20. this.btnClose.Click += btnClose_Click;
  21. this.listViewData.MouseDoubleClick += listViewData_MouseDoubleClick;
  22. this.txtText.Leave += txtText_Leave;
  23. this.txtText.KeyPress += txtText_KeyPress;
  24. }
  25. /// <summary>
  26. /// 是否保存
  27. /// </summary>
  28. public bool IsSaveed = false;
  29. /// <summary>
  30. /// 条件
  31. /// </summary>
  32. public string StrWhere = "";
  33. /// <summary>
  34. /// 相片集合
  35. /// </summary>
  36. ImageList mlistImage = new ImageList();
  37. /// <summary>
  38. /// 窗体加载事件
  39. /// </summary>
  40. /// <param name="sender"></param>
  41. /// <param name="e"></param>
  42. void InventoryPanDianSmallForm_Load(object sender, EventArgs e)
  43. {
  44. this.listViewData.View = View.Details;
  45. this.listViewData.GridLines = true;
  46. string[] StrColumns = "商品名称,库存数量,".Split(',');
  47. for (int i = 0; i < StrColumns.Length; i++)
  48. {
  49. ColumnHeader ch = new ColumnHeader();
  50. ch.Text = StrColumns[i].Trim();
  51. if (i == 0)
  52. { ch.Width = 400; }
  53. else if (i == 1)
  54. { ch.Width = 200; }
  55. else
  56. { ch.Width = this.listViewData.Width - 600 - 23; }
  57. switch (StrColumns[i].Trim())
  58. {
  59. case "库存数量":
  60. ch.TextAlign = HorizontalAlignment.Center;
  61. break;
  62. default:
  63. ch.TextAlign = HorizontalAlignment.Left;
  64. break;
  65. }
  66. this.listViewData.Columns.Add(ch);
  67. }
  68. this.mlistImage.ImageSize = new Size(30, 30);
  69. this.mlistImage.ColorDepth = ColorDepth.Depth32Bit;
  70. this.listViewData.SmallImageList = mlistImage;
  71. this.CreateListViewGroup();
  72. }
  73. /// <summary>
  74. /// 窗体加载事件
  75. /// </summary>
  76. /// <param name="sender"></param>
  77. /// <param name="e"></param>
  78. void InventoryPanDianSmallForm_Shown(object sender, EventArgs e)
  79. {
  80. this.PublicFunctionRows();
  81. }
  82. /// <summary>
  83. /// 创建默认分组
  84. /// </summary>
  85. void CreateListViewGroup()
  86. {
  87. DataTable dtGroup = orbll.GetView_Custom("tb_ErpProduct Left Join tb_ErpSystemCategory on Prod_Class = Sc_ClassCode", StrWhere: "", ShowColumnName: "Sc_ClassName,Prod_Class", GroupBy: "Sc_ClassName,Prod_Class").Tables[0];
  88. if (dtGroup.Rows.Count > 0)
  89. {
  90. for (int i = 0; i < dtGroup.Rows.Count; i++)
  91. {
  92. if (this.listViewData.Groups[dtGroup.Rows[i]["Prod_Class"].ToString().Trim()] == null)
  93. {
  94. ListViewGroup man_lvg = new ListViewGroup();
  95. man_lvg.Name = dtGroup.Rows[i]["Prod_Class"].ToString().Trim();
  96. man_lvg.Header = dtGroup.Rows[i]["Sc_ClassName"].ToString().Trim();
  97. man_lvg.HeaderAlignment = HorizontalAlignment.Left;
  98. this.listViewData.Groups.Add(man_lvg);
  99. }
  100. }
  101. if (!this.listViewData.ShowGroups)
  102. { this.listViewData.ShowGroups = true; }
  103. }
  104. }
  105. /// <summary>
  106. /// 保存
  107. /// </summary>
  108. /// <param name="sender"></param>
  109. /// <param name="e"></param>
  110. void btnSaveed_Click(object sender, EventArgs e)
  111. {
  112. if (this.listViewData.Items.Count > 0)
  113. {
  114. LYFZ.ComponentLibrary.FrmLoadHandling.LoadDoWorkMethod(delegate(object obj, BackgroundWorker backgroundWorker)
  115. {
  116. DateTime StrTime = SDateTime.Now;
  117. string StrUserID = LYFZ.Software.MainBusiness.CommonLogical.SuccessfulLogin.LoginUserModel.User_EmployeeID;
  118. List<Helper.CommandInfo> clist = new List<Helper.CommandInfo>();
  119. this.Invoke(new LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.UpdateControl(delegate()
  120. {
  121. for (int i = 0; i < this.listViewData.Items.Count; i++)
  122. {
  123. if (this.listViewData.Items[i].SubItems["库存数量"].Tag != null)
  124. {
  125. LYFZ.Model.Model_ErpProduct model = ptbll.GetModel(Convert.ToInt32(this.listViewData.Items[i].Tag));
  126. model.Prod_Quantity = Convert.ToInt32(this.listViewData.Items[i].SubItems["库存数量"].Text.Trim());
  127. model.Prod_UpdateDateTime = StrTime;
  128. model.Prod_UpdateName = StrUserID;
  129. clist.Add(ptbll.GetUpdateCommandInfo(model));
  130. }
  131. }
  132. if (clist.Count > 0)
  133. {
  134. if (MessageBoxCustom.Show("您确定要保存所盘点的商品吗?", "温馨提示", MessageBoxButtons.YesNo) == DialogResult.No)
  135. {
  136. return;
  137. }
  138. if (LYFZ.BLL.BaseBllOperate.ExecuteSqlTran(clist) > 0)
  139. {
  140. this.IsSaveed = true;
  141. MessageBoxCustom.Show("盘点成功!");
  142. for (int i = 0; i < this.listViewData.Items.Count; i++)
  143. {
  144. this.listViewData.Items[i].SubItems["库存数量"].Tag = null;
  145. }
  146. }
  147. }
  148. else
  149. {
  150. MessageBoxCustom.Show("没有做任何修改,无须保存!");
  151. }
  152. }));
  153. });
  154. }
  155. }
  156. /// <summary>
  157. /// 关闭
  158. /// </summary>
  159. /// <param name="sender"></param>
  160. /// <param name="e"></param>
  161. void btnClose_Click(object sender, EventArgs e)
  162. {
  163. this.Close();
  164. }
  165. /// <summary>
  166. /// 双击事件
  167. /// </summary>
  168. /// <param name="sender"></param>
  169. /// <param name="e"></param>
  170. void listViewData_MouseDoubleClick(object sender, MouseEventArgs e)
  171. {
  172. this.txtText.Visible = false;
  173. ListViewHitTestInfo info = this.listViewData.HitTest(e.X, e.Y);
  174. if (info.SubItem != null)
  175. {
  176. if (!string.IsNullOrEmpty(info.SubItem.Name.Trim()))
  177. {
  178. Rectangle rect = info.SubItem.Bounds;
  179. switch (info.SubItem.Name.Trim())
  180. {
  181. case "库存数量":
  182. this.txtText.Location = new Point(rect.Location.X + this.listViewData.Location.X + 3, rect.Location.Y + this.listViewData.Location.Y + 2);
  183. this.txtText.Size = rect.Size;
  184. this.txtText.Visible = true;
  185. this.txtText.Tag = info.SubItem.Name.Trim();
  186. this.txtText.Text = info.SubItem.Text.Trim();
  187. this.txtText.Focus();
  188. break;
  189. }
  190. }
  191. else
  192. {
  193. DataTable dt = orbll.GetView_Custom("tb_ErpProduct", StrWhere: "Prod_Number = '" + this.listViewData.SelectedItems[0].ImageKey.ToString().Trim() + "'", ShowColumnName: "Prod_Thumbnail").Tables[0];
  194. if (dt.Rows.Count > 0)
  195. {
  196. if (!string.IsNullOrEmpty(dt.Rows[0]["Prod_Thumbnail"].ToString().Trim()))
  197. {
  198. LYFZ.Software.MainBusiness.InitialSet.Product.FrmProductPic frm = new InitialSet.Product.FrmProductPic();
  199. frm.FrmImage = LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetImage(LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.StringToByte(dt.Rows[0]["Prod_Thumbnail"].ToString()));
  200. frm.ShowDialog();
  201. }
  202. else
  203. { MessageBoxCustom.Show("产品未上传相片!"); return; }
  204. }
  205. }
  206. }
  207. }
  208. /// <summary>
  209. /// 敲开事件
  210. /// </summary>
  211. /// <param name="sender"></param>
  212. /// <param name="e"></param>
  213. void txtText_Leave(object sender, EventArgs e)
  214. {
  215. try
  216. {
  217. if (this.txtText.Tag != null)
  218. {
  219. string StrText = "0";
  220. switch (this.txtText.Tag.ToString().Trim())
  221. {
  222. case "库存数量":
  223. if (!string.IsNullOrEmpty(this.txtText.Text.Trim()))
  224. {
  225. if (LYFZ.Command.Command_Validate.IsNumberSign(this.txtText.Text.Trim()))
  226. {
  227. if (this.txtText.Text.Trim() == "0")
  228. { StrText = "0"; }
  229. else
  230. { StrText = this.txtText.Text.Trim(); }
  231. }
  232. }
  233. this.listViewData.SelectedItems[0].SubItems[this.txtText.Tag.ToString().Trim()].Text = StrText;
  234. this.listViewData.SelectedItems[0].SubItems[this.txtText.Tag.ToString().Trim()].Tag = "1";
  235. break;
  236. }
  237. }
  238. }
  239. catch
  240. { }
  241. this.txtText.Visible = false;
  242. }
  243. /// <summary>
  244. /// 输入限制
  245. /// </summary>
  246. /// <param name="sender"></param>
  247. /// <param name="e"></param>
  248. void txtText_KeyPress(object sender, KeyPressEventArgs e)
  249. {
  250. if (!Char.IsNumber(e.KeyChar) && !Char.IsControl(e.KeyChar))
  251. { e.Handled = true; }
  252. }
  253. /// <summary>
  254. /// 创建行
  255. /// </summary>
  256. void PublicFunctionRows()
  257. {
  258. this.listViewData.Items.Clear();
  259. if (!string.IsNullOrEmpty(this.StrWhere))
  260. {
  261. LYFZ.ComponentLibrary.FrmLoadHandling.LoadDoWorkMethod(delegate(object obj, BackgroundWorker backgroundWorker)
  262. {
  263. DataTable dt = orbll.GetView_Custom("tb_ErpProduct", StrWhere: "Prod_Number in (" + this.StrWhere + ")", ShowColumnName: "ID,Prod_Number,Prod_Class,Prod_Name,Prod_Quantity,Prod_Thumbnail").Tables[0];
  264. this.Invoke(new LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.UpdateControl(delegate()
  265. {
  266. for (int i = 0; i < dt.Rows.Count; i++)
  267. {
  268. if (!this.mlistImage.Images.Keys.Contains(dt.Rows[i]["Prod_Number"].ToString().Trim()))
  269. {
  270. Image img = LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetProductImage(dt.Rows[i]["Prod_Thumbnail"].ToString().Trim());
  271. this.mlistImage.Images.Add(dt.Rows[i]["Prod_Number"].ToString().Trim(), img);
  272. }
  273. ListViewItem lvItem = new ListViewItem();
  274. lvItem.Tag = dt.Rows[i]["ID"].ToString().Trim();
  275. lvItem.ImageKey = dt.Rows[i]["Prod_Number"].ToString().Trim();
  276. lvItem.Text = dt.Rows[i]["Prod_Name"].ToString().Trim();
  277. ListViewItem.ListViewSubItem ListSubItem = new ListViewItem.ListViewSubItem();
  278. ListSubItem.Name = "库存数量";
  279. ListSubItem.Text = dt.Rows[i]["Prod_Quantity"].ToString().Trim();
  280. lvItem.SubItems.Add(ListSubItem);
  281. if (this.listViewData.Groups.Count > 0)
  282. { this.listViewData.Groups[dt.Rows[i]["Prod_Class"].ToString().Trim()].Items.Add(lvItem); }
  283. this.listViewData.Items.Add(lvItem);
  284. }
  285. }));
  286. });
  287. LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.ListViewDrawSingleOrDoubleRows(this.listViewData);
  288. }
  289. }
  290. }
  291. }