LayoutMstBase.cs 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. using Cksoft.Unity;
  2. using DllEapEntity;
  3. using DllPubInfo;
  4. using Newtonsoft.Json;
  5. using System;
  6. using System.Collections;
  7. using System.Collections.Generic;
  8. using System.ComponentModel;
  9. using System.Data;
  10. using System.Drawing;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. using System.Windows.Forms;
  15. namespace DllXqManager
  16. {
  17. public partial class LayoutMstBase : Form
  18. {
  19. private LayoutMst CurrEntity = null;
  20. private List<LayoutDetail> CurrDs = null;
  21. public delegate void closeForm();
  22. public event closeForm eventcloseform = null;
  23. //public event AddRow eventaddrow = null;
  24. //public delegate void AddRow(int id);
  25. public LayoutMstBase(LayoutMst id)
  26. {
  27. InitializeComponent();
  28. SetCurrID(id);
  29. }
  30. public void SetCurrID(LayoutMst id)
  31. {
  32. InitForm(id);
  33. }
  34. private void InitForm(LayoutMst id)
  35. {
  36. CurrEntity = id;
  37. if (CurrEntity == null)
  38. {
  39. CurrEntity = new LayoutMst();
  40. }
  41. //用实体的值去赋值界面控件显示的值
  42. string errorinfo = "";
  43. int result = DllPubInfo.PubInfo.InitFormControl<LayoutMst>(panel1, CurrEntity, null, ref errorinfo);
  44. if (result < 0)
  45. MessageBox.Show(errorinfo);
  46. Filldgvmain(" and a.preid="+CurrEntity.ID);
  47. }
  48. private void Filldgvmain(string condition)
  49. {
  50. try
  51. {
  52. Cursor = Cursors.WaitCursor;
  53. string errorinfo = "";
  54. CurrDs = PubInfo.SelectForCondition<LayoutDetail>(condition, ref errorinfo).ToList();
  55. if (CurrDs == null)
  56. {
  57. MessageBox.Show(errorinfo);
  58. return;
  59. }
  60. Binddgvmain();
  61. //foreach (DataGridViewColumn dgvc in dgvmain.Columns)
  62. //{
  63. // dgvc.ReadOnly = true;
  64. //}
  65. dgvmain.Columns["选择"].ReadOnly = false;
  66. //if (CurrType == 1)
  67. //{
  68. // //dgvmain.Columns[nameof(OrderMst.MacFCode)].Visible = false;
  69. // //dgvmain.Columns[nameof(OrderMst.MacFName)].Visible = false;
  70. // //dgvmain.Columns["机台指令类别"].Visible = false;
  71. // //dgvmain.Columns["机台指令类别ID"].Visible = false;
  72. //}
  73. }
  74. catch (Exception ex)
  75. {
  76. MessageBox.Show("操作发生错误,错误信息为:" + ex.Message.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  77. }
  78. finally
  79. {
  80. Cursor = Cursors.Default;
  81. }
  82. //dgvmain.Columns["选择"].ReadOnly = false;
  83. }
  84. private BindingSource currbs = null;
  85. private void Binddgvmain()
  86. {
  87. currbs = new BindingSource();
  88. var cols = CurrDs.Where(t => t.EntityStatusID >= 0).ToList();
  89. currbs.DataSource = cols;
  90. bindingNavigator2.BindingSource = currbs;
  91. dgvmain.DataSource = currbs;
  92. PubInfo.InitDataGridView<LayoutDetail>(dgvmain);
  93. foreach (DataGridViewColumn dgvc in dgvmain.Columns)
  94. dgvc.ReadOnly = true;
  95. dgvmain.Columns["选择"].ReadOnly = false;
  96. dgvmain.Columns[nameof(LayoutDetail.LocX)].ReadOnly = false;
  97. dgvmain.Columns[nameof(LayoutDetail.LocY)].ReadOnly = false;
  98. dgvmain.Columns[nameof(LayoutDetail.Remark)].ReadOnly = false;
  99. dgvmain.Columns[nameof(LayoutDetail.SizeH)].ReadOnly = false;
  100. dgvmain.Columns[nameof(LayoutDetail.SizeW)].ReadOnly = false;
  101. dgvmain.Columns[nameof(LayoutDetail.FontSize)].ReadOnly = false;
  102. dgvmain.Columns[nameof(LayoutDetail.LocX)].DefaultCellStyle.BackColor = PubInfo.CurrEditColor;
  103. dgvmain.Columns[nameof(LayoutDetail.LocY)].DefaultCellStyle.BackColor = PubInfo.CurrEditColor;
  104. dgvmain.Columns[nameof(LayoutDetail.SizeH)].DefaultCellStyle.BackColor = PubInfo.CurrEditColor;
  105. dgvmain.Columns[nameof(LayoutDetail.SizeW)].DefaultCellStyle.BackColor = PubInfo.CurrEditColor;
  106. dgvmain.Columns[nameof(LayoutDetail.FontSize)].DefaultCellStyle.BackColor = PubInfo.CurrEditColor;
  107. dgvmain.Columns[nameof(LayoutDetail.Remark)].DefaultCellStyle.BackColor = PubInfo.CurrEditColor;
  108. //dgvmain.Columns[nameof(BaseEntity.IsSelected)].Visible = false;
  109. //dgvColDetail.Rows[0].Visible = false;
  110. }
  111. private void button1_Click(object sender, EventArgs e)
  112. {
  113. InitForm(null);
  114. }
  115. private void button2_Click(object sender, EventArgs e)
  116. {
  117. //if(edit代码.Text.Trim()=="")
  118. //{
  119. // MessageBox.Show("代码不能为空,请填写!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  120. // edit代码.Focus();
  121. // return;
  122. //}
  123. if (editFName.Text.Trim() == "")
  124. {
  125. MessageBox.Show("名称不能为空,请填写!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  126. editFName.Focus();
  127. return;
  128. }
  129. string errorinfo = "";
  130. int result = PubInfo.UpdateRowFormControl(panel1, CurrEntity, ref errorinfo);
  131. if (result < 0)
  132. {
  133. MessageBox.Show("更新数据发生错误:" + errorinfo);
  134. return;
  135. }
  136. List<LayoutDetail> changes = EntityHelper.GetEntityChange<LayoutDetail>(CurrDs);
  137. LayoutMst resultentity = CallFunction.CallIULayoutMst(CurrEntity, changes);
  138. if(resultentity != null)
  139. {
  140. MessageBox.Show("操作成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  141. InitForm(resultentity);
  142. }
  143. }
  144. private void mmabase_FormClosing(object sender, FormClosingEventArgs e)
  145. {
  146. eventcloseform?.Invoke();
  147. }
  148. public void Selmma(DataRow row)
  149. {
  150. //if(row==null)
  151. //{
  152. // edit机型代码.Text = "";
  153. // return;
  154. //}
  155. //edit机型代码.Text = row["代码"].ToString();
  156. }
  157. private void btEmail_Click(object sender, EventArgs e)
  158. {
  159. //mmaquery temp = new mmaquery();
  160. //temp.eventselrow += Selmma;
  161. //temp.ShowDialog();
  162. }
  163. private void button3_Click(object sender, EventArgs e)
  164. {
  165. //if (CurrDs == null)
  166. //{
  167. // InitForm(0);
  168. // return;
  169. //}
  170. CurrEntity = new LayoutMst();
  171. editFCode.Text = "";
  172. foreach (var item in CurrDs)
  173. item.EntityStatusID = 1;
  174. }
  175. private void button4_Click(object sender, EventArgs e)
  176. {
  177. TEntityQuery temp = new TEntityQuery(CurrDs);
  178. temp.eventSelRow += Temp_eventSelRow;
  179. temp.ShowDialog();
  180. }
  181. private LayoutDetail AddDetail(TEntity row)
  182. {
  183. LayoutDetail addrow = new LayoutDetail();
  184. CurrDs.Add(addrow);
  185. int? minid = CurrDs.Where(t=>t.ID<0).Min(t => (int?)t.ID);
  186. int id = minid == null ? -1 : minid.Value - 1;
  187. addrow.ID = id;
  188. addrow.EntityID = row.ID;
  189. addrow.FCode = row.FCode;
  190. addrow.FName = row.FName;
  191. addrow.IPAddress= row.FIP;
  192. addrow.LocX= 0;
  193. addrow.LocY = 0;
  194. addrow.SizeW = 0.1;
  195. addrow.SizeH= 0.1;
  196. addrow.FontSize = 9;
  197. addrow.FColor = "";
  198. return addrow;
  199. }
  200. private void Temp_eventSelRow(List<TEntity> rows, int seltype)
  201. {
  202. double x = 0;
  203. double y = 0;
  204. foreach(var temprow in rows)
  205. {
  206. List<LayoutDetail> templist = CurrDs.Where(t => t.EntityID == temprow.ID).ToList();
  207. if (templist.Count > 0)
  208. continue;
  209. x += 0.01;
  210. y += 0.01;
  211. LayoutDetail addrow = AddDetail(temprow);
  212. addrow.LocX = x;
  213. addrow.LocY = y;
  214. }
  215. Binddgvmain();
  216. }
  217. private void button5_Click(object sender, EventArgs e)
  218. {
  219. LayoutMstBaseFor temp = new LayoutMstBaseFor(CurrEntity);
  220. temp.ShowDialog();
  221. }
  222. private void dgvmain_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
  223. {
  224. if (e.Button == MouseButtons.Right)
  225. {
  226. if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
  227. {
  228. dgvmain.CurrentCell = dgvmain.Rows[e.RowIndex].Cells[e.ColumnIndex];
  229. System.Drawing.Point pointglobal = System.Windows.Forms.Control.MousePosition;
  230. cms.Show(pointglobal);
  231. }
  232. }
  233. }
  234. private void toolStripMenuItem3_Click(object sender, EventArgs e)
  235. {
  236. foreach (var temprow in CurrDs)
  237. {
  238. temprow.IsSelected = 1;
  239. }
  240. dgvmain.Refresh();
  241. }
  242. private void toolStripMenuItem4_Click(object sender, EventArgs e)
  243. {
  244. foreach (var temprow in CurrDs)
  245. {
  246. temprow.IsSelected= 0;
  247. }
  248. dgvmain.Refresh();
  249. }
  250. private void toolStripMenuItem2_Click(object sender, EventArgs e)
  251. {
  252. List<LayoutDetail> rows = CurrDs.Where(t => t.IsSelected == 1).ToList();
  253. PubInfo.DelSelRow(rows, CurrDs);
  254. Binddgvmain();
  255. }
  256. private void cms_Opening(object sender, CancelEventArgs e)
  257. {
  258. dgvmain.EndEdit();
  259. editFCode.Focus();
  260. }
  261. }
  262. }