华恒Mes鼎捷代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

290 lines
11 KiB

5 months ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using DevExpress.XtraEditors;
  9. using System.IO;
  10. using ICSSoft.Base.Config.AppConfig;
  11. using ICSSoft.Base.Config.DBHelper;
  12. namespace ICSSoft.Frame.APP
  13. {
  14. public partial class FormICSMOPanel : DevExpress.XtraEditors.XtraForm
  15. {
  16. private string LineCode = "";
  17. private float RefreshTime = 1;
  18. public FormICSMOPanel()
  19. {
  20. InitializeComponent();
  21. this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  22. this.WindowState = FormWindowState.Maximized;
  23. labTime.Text = DateTime.Now.ToString();
  24. //searchAndView();
  25. timer.Enabled = true;
  26. timer.Start();
  27. //grvDetail.Columns["Mo"].Width = 120;
  28. //grvDetail.Columns["ITEM"].Width = 165;
  29. //grvDetail.Columns["TBFlag"].Width = 50;
  30. //grvDetail.Columns["Status"].Width = 95;
  31. grvDetail.RowHeight = 59;
  32. splitContainerControl1.SplitterPosition = 50;
  33. InitAppconfig();
  34. }
  35. private void InitAppconfig()
  36. {
  37. try
  38. {
  39. using (StreamReader fReader = new StreamReader(AppConfig.BaseServiceFile))
  40. {
  41. while (fReader.Peek() > -1)
  42. {
  43. string value = fReader.ReadLine();
  44. if (!string.IsNullOrEmpty(value))
  45. {
  46. AppConfig.BaseServiceUri = value;
  47. }
  48. }
  49. }
  50. object obj = AppConfig.InvokeWebservice(AppConfig.BaseServiceUri, "WebBaseService", "BaseService", "GetMainConnectString", new object[] { });
  51. if (obj != null)
  52. {
  53. bool flag = AppConfig.CheckDbConnectionState(obj.ToString());
  54. if (flag == true)
  55. {
  56. AppConfig.FrameConnectString = obj.ToString();
  57. }
  58. else
  59. {
  60. AppConfig.FrameConnectString = "";
  61. }
  62. }
  63. else
  64. {
  65. AppConfig.FrameConnectString = "";
  66. }
  67. }
  68. catch
  69. {
  70. AppConfig.FrameConnectString = "";
  71. }
  72. }
  73. //public FormICSOrderBoard(string lineCode, string lineName, float refreshTime)
  74. //{
  75. // InitializeComponent();
  76. // this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  77. // this.WindowState = FormWindowState.Maximized;
  78. // LineCode = lineCode;
  79. // RefreshTime = refreshTime;
  80. // lblTitle.Text = "线体-" + lineName;
  81. // labTime.Text = DateTime.Now.ToString();
  82. // searchAndView();
  83. // RefreshTimer.Interval = Convert.ToInt32(RefreshTime * 60 * 1000);
  84. // RefreshTimer.Enabled = true;
  85. // RefreshTimer.Start();
  86. // timer.Enabled = true;
  87. // timer.Start();
  88. // grvDetail.Columns["Mo"].Width = 120;
  89. // grvDetail.Columns["ITEM"].Width = 165;
  90. // grvDetail.Columns["TBFlag"].Width = 50;
  91. // grvDetail.Columns["Status"].Width = 95;
  92. // grvDetail.RowHeight = 59;
  93. // splitContainerControl1.SplitterPosition = 50;
  94. //}
  95. /// <summary>
  96. /// 操作权限
  97. /// </summary>
  98. /// <returns></returns>
  99. public DataTable RightOfExute()
  100. {
  101. DataTable rData = new DataTable();
  102. rData.Columns.Add("BtnName");
  103. rData.Columns.Add("ActionName");
  104. //查看权限(必须有)
  105. DataRow seeRow = rData.NewRow();
  106. seeRow["BtnName"] = "see";
  107. seeRow["ActionName"] = "查看";
  108. rData.Rows.Add(seeRow);
  109. DataRow upinvRow = rData.NewRow();
  110. //upinvRow["BtnName"] = btnSelect.Name;
  111. //upinvRow["ActionName"] = btnSelect.Text;
  112. rData.Rows.Add(upinvRow);
  113. rData.AcceptChanges();
  114. return rData;
  115. }
  116. /// <summary>
  117. /// 数据权限
  118. /// </summary>
  119. /// <returns></returns>
  120. public DataTable RightOfData()
  121. {
  122. DataTable rData = new DataTable();
  123. rData.Columns.Add("BodyName");
  124. rData.Columns.Add("ControlName");
  125. rData.Columns.Add("ControlCaption");
  126. rData.AcceptChanges();
  127. return rData;
  128. }
  129. /// <summary>
  130. /// 加载数据
  131. /// </summary>
  132. private void searchAndView()
  133. {
  134. try
  135. {
  136. string sqlwhere = "";
  137. if (!string.IsNullOrEmpty(mocode.Text)) {
  138. sqlwhere += " and a.MOCODE like '%"+mocode.Text.Trim()+"%'";
  139. }
  140. if (!string.IsNullOrEmpty(invcode.Text))
  141. {
  142. sqlwhere += " and a.ITEMCODE like '%"+invcode.Text.Trim()+"%'";
  143. }
  144. string sql = @"select a.mocode 生产工单号,a.MOSEQ 工单行号,a.ITEMCODE as 产品编码,
  145. B.INVNAME AS ,B.INVSTD AS ,A.MOPLANENDDATE ,
  146. A.MOPLANENDDATE ,MOPLANQTY AS ,
  147. D.comQTY,
  148. CONVERT(NVARCHAR(10),CONVERT(DECIMAL(18,2),CONVERT(DECIMAL,D.comQTY)/CONVERT(DECIMAL,MOPLANQTY))*100)+'%' AS
  149. from icsMo a
  150. left join ICSINVENTORY b on b.INVCODE=a.ITEMCODE
  151. left join (select lotno,mocode,moseq from ICSMO2User group by lotno,mocode,moseq) c on c.MOCODE=a.MOCODE and c.MOSEQ=a.MOSEQ
  152. left join (select SUM(E.LOTQTY) AS comQTY,E.TRANSNO,E.TransLine from (select lotno,max(opseq) as opseq from ICSITEMROUTE2OPLot group by lotno)c
  153. inner join ICSLOTONWIP d on d.LOTNO=c.LOTNO and d.OPCODE=(select OPCODE from ICSITEMROUTE2OPLot where lotno=c.LOTNO and OPSEQ=c.opseq)
  154. inner join ICSLOTONWIPCheck f on f.ONWIPID=d.ID
  155. inner join ICSITEMLot e on e.LotNO=c.LotNo
  156. where f.Result=''
  157. GROUP BY E.TRANSNO,E.TransLine
  158. )D ON D.TransNO=A.MOCODE AND D.TransLine=A.MOSEQ
  159. WHERE A.MOSTATUS=''";
  160. sql += sqlwhere;
  161. DataTable table = DBHelper.ExecuteDataset(AppConfig.AppConnectString,CommandType.Text,sql).Tables[0];
  162. grdAll.DataSource = table;
  163. grvDetail.BestFitColumns();
  164. }
  165. catch (Exception ex)
  166. {
  167. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  168. }
  169. }
  170. private void grvDetail_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
  171. {
  172. if (e.RowHandle < 0)
  173. return;
  174. e.Info.DisplayText = (e.RowHandle + 1).ToString();
  175. }
  176. private void btnClose_Click(object sender, EventArgs e)
  177. {
  178. RefreshTimer.Enabled = false;
  179. RefreshTimer.Stop();
  180. timer.Enabled = false;
  181. timer.Stop();
  182. //this.DialogResult = DialogResult.Cancel;
  183. AppConfig.CloseFormShow(this.Text);
  184. this.Close();
  185. }
  186. private void RefreshTimer_Tick(object sender, EventArgs e)
  187. {
  188. searchAndView();
  189. }
  190. private void timer_Tick(object sender, EventArgs e)
  191. {
  192. labTime.Text = DateTime.Now.ToString();
  193. }
  194. private void grvDetail_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
  195. {
  196. //if (e.RowHandle < 0)
  197. // return;
  198. //if (e.Column == colStatus)
  199. //{
  200. // string state = grvDetail.GetRowCellValue(e.RowHandle, colStatus).ToString();
  201. // if (state == "运行")
  202. // {
  203. // e.Appearance.BackColor = Color.Green;
  204. // }
  205. //}
  206. }
  207. #region 查询
  208. private void btnSearch_Click(object sender, EventArgs e)
  209. {
  210. searchAndView();
  211. }
  212. #endregion
  213. private void FormICSOrderBoard_Load(object sender, EventArgs e)
  214. {
  215. try
  216. {
  217. string sql = @"select a.mocode 生产工单号,a.MOSEQ 工单行号,a.ITEMCODE as 产品编码,
  218. B.INVNAME AS ,B.INVSTD AS ,A.MOPLANSTARTDATE ,
  219. A.MOPLANENDDATE ,MOPLANQTY AS ,
  220. D.comQTY,
  221. CONVERT(NVARCHAR(10),CONVERT(DECIMAL(18,2),CONVERT(DECIMAL,D.comQTY)/CONVERT(DECIMAL,MOPLANQTY))*100)+'%' AS ,
  222. case
  223. when CONVERT(NVARCHAR(10),CONVERT(DECIMAL(18,2),CONVERT(DECIMAL,D.comQTY)/CONVERT(DECIMAL,MOPLANQTY))*100)+'%'='100.00%' then e.mtime
  224. else null
  225. end as
  226. from icsMo a
  227. left join ICSINVENTORY b on b.INVCODE=a.ITEMCODE
  228. --left join (select lotno,mocode,moseq from ICSMO2User group by lotno,mocode,moseq) c on c.MOCODE=a.MOCODE and c.MOSEQ=a.MOSEQ
  229. left join (select SUM(E.LOTQTY) AS comQTY,E.TRANSNO,E.TransLine from (select lotno,max(opseq) as opseq from ICSITEMROUTE2OPLot group by lotno)c
  230. inner join ICSLOTONWIP d on d.LOTNO=c.LOTNO and d.OPCODE=(select OPCODE from ICSITEMROUTE2OPLot where lotno=c.LOTNO and OPSEQ=c.opseq)
  231. inner join ICSLOTONWIPCheck f on f.ONWIPID=d.ID
  232. inner join ICSITEMLot e on e.LotNO=c.LotNo
  233. where f.Result=''
  234. GROUP BY E.TRANSNO,E.TransLine
  235. )D
  236. ON D.TransNO=A.MOCODE AND D.TransLine=A.MOSEQ
  237. left join (
  238. select MAX(MTIME) as mtime,TransNO,TransLine from ( select a.lotno,b.OPCODE,d.Result,d.MTIME,a.TransNO,a.TransLine from ICSITEMLot a
  239. left join ICSLOTONWIP b on a.LotNO=b.LOTNO
  240. left join ICSITEMROUTE2OPLot c on c.LotNo=a.LotNO and c.OPCODE=b.OPCODE
  241. left join ICSLOTONWIPCheck d on d.ONWIPID=b.ID)a
  242. group by TransNO,TransLine) e on e.TransNO=a.MOCODE and e.TransLine=a.MOSEQ
  243. WHERE A.MOSTATUS=''
  244. ";
  245. DataTable table = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  246. grdAll.DataSource = table;
  247. grvDetail.BestFitColumns();
  248. }
  249. catch (Exception ex)
  250. {
  251. MessageBox.Show(ex.ToString());
  252. }
  253. }
  254. private void lblTitle_Click(object sender, EventArgs e)
  255. {
  256. if (this.FormBorderStyle == FormBorderStyle.None)
  257. this.FormBorderStyle = FormBorderStyle.FixedSingle;
  258. else
  259. this.FormBorderStyle = FormBorderStyle.None;
  260. }
  261. }
  262. }