锐腾搅拌上料功能
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.

257 lines
8.6 KiB

5 months ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Data.Linq;
  6. using System.Linq;
  7. using System.Drawing;
  8. using System.Text;
  9. using System.Windows.Forms;
  10. using DevExpress.XtraEditors;
  11. using DevExpress.XtraGrid.Views.BandedGrid;
  12. using DevExpress.XtraGrid.Columns;
  13. using DevExpress.XtraGrid;
  14. using System.IO;
  15. using System.Threading;
  16. using ICSSoft.Base.Language.Tool;
  17. using ICSSoft.Base.Config.AppConfig;
  18. using ICSSoft.Base.UserControl.MessageControl;
  19. using ICSSoft.Base.Config.DBHelper;
  20. using ICSSoft.Base.Report.Filter;
  21. using ICSSoft.Base.UserControl.FormControl;
  22. using ICSSoft.Base.Report.GridReport;
  23. using ICSSoft.Base.ReferForm.AppReferForm;
  24. using ICSSoft.Frame.Data.BLL;
  25. namespace ICSSoft.Frame.APP
  26. {
  27. public partial class FormMatter : DevExpress.XtraEditors.XtraForm
  28. {
  29. String guid = AppConfig.GetGuid();
  30. private DataTable dt = null;
  31. #region 构造函数
  32. public FormMatter()
  33. {
  34. InitializeComponent();
  35. this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  36. this.WindowState = FormWindowState.Maximized;
  37. }
  38. #endregion
  39. #region 操作权限
  40. public DataTable RightOfExute()
  41. {
  42. DataTable rData = new DataTable();
  43. rData.Columns.Add("BtnName");
  44. rData.Columns.Add("ActionName");
  45. //查看权限(必须有)
  46. DataRow seeRow = rData.NewRow();
  47. seeRow["BtnName"] = "see";
  48. seeRow["ActionName"] = "查看";
  49. rData.Rows.Add(seeRow);
  50. List<Control> ControlList = new List<Control>();
  51. ControlList.Add(btnRefresh);
  52. ControlList.Add(btnShow);
  53. foreach (Control ctr in ControlList)
  54. {
  55. if (ctr.GetType() == typeof(SimpleButton))
  56. {
  57. DataRow dr = rData.NewRow();
  58. dr["BtnName"] = ctr.Name;
  59. dr["ActionName"] = ctr.Text;
  60. rData.Rows.Add(dr);
  61. }
  62. }
  63. rData.AcceptChanges();
  64. return rData;
  65. }
  66. public DataTable RightOfData()// 数据权限
  67. {
  68. DataTable rData = new DataTable();
  69. rData.Columns.Add("BodyName");
  70. rData.Columns.Add("ControlName");
  71. rData.Columns.Add("ControlCaption");
  72. rData.AcceptChanges();
  73. return rData;
  74. }
  75. #endregion
  76. #region 退出
  77. private void btnClose_Click(object sender, EventArgs e)
  78. {
  79. AppConfig.CloseFormShow(this.Text);
  80. this.Close();
  81. }
  82. #endregion
  83. #region 分页
  84. private void rptPage_PageIndexChanged(object Sender, EventArgs e)
  85. {
  86. DataTable data = AppConfig.GetPageData(dt, rptPage.PageIndex, rptPage.PageSize).Copy();
  87. grdDetail.DataSource = data;
  88. }
  89. #endregion
  90. private void FormMatter_FormClosing(object sender, FormClosingEventArgs e)
  91. {
  92. }
  93. private void FormMatter_Load(object sender, EventArgs e)
  94. {
  95. //this.tRefresh.Interval = 24 * 60 * 60 * 1000;
  96. //this.tRefresh.Enabled = true;
  97. this.loadData();
  98. this.Check.Interval = 60 * 1000;
  99. this.CheckDate.Enabled = true;
  100. this.CheckDate.Interval = 60 * 1000;
  101. }
  102. public void loadData()
  103. {
  104. string sql = @"select distinct
  105. c.LotNO,
  106. d.WHCode,
  107. e.StorageName,
  108. d.BinCode,
  109. f.StackName,
  110. a.INVCODE,
  111. b.INVNAME,
  112. b.INVDESC,
  113. b.INVUOM,
  114. d.LotQty,
  115. a.EATTRIBUTE1,
  116. case when isnull(d.MTIME,0)=0 then '' when isnull(a.EATTRIBUTE1,0) = 0 then d.MTIME ELSE DATEADD(day,cast(a.EATTRIBUTE1 as int),d.MTIME)
  117. end as daytime,
  118. d.MTIME,
  119. a.MUSERName,
  120. a.MTIME
  121. FROM dbo.ICSWareHouseLotInfo d
  122. inner join ICSITEMLot c on c.LotNO = d.LotNO
  123. inner join dbo.ICSINVInfo a on a.INVCODE = d.INVCODE
  124. inner join ICSINVENTORY b on a.INVCODE = b.INVCODE
  125. LEFT JOIN dbo.ICSStorage e ON d.WHCode = e.StorageCode
  126. left JOIN dbo.ICSStack f ON d.BinCode = f.StackCode
  127. where 1=1 and a.INVCODE<> '' and c.LotNO <> '' and d.WHCode = '0300' and d.LotQty <> '0.00'
  128. order by d.MTIME";
  129. sql = string.Format(sql, AppConfig.WorkPointCode);
  130. dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  131. grdDetail.DataSource = dt;
  132. grvDetail.BestFitColumns();
  133. rptPage.RecordNum = dt.Rows.Count;
  134. rptPage.PageSize = 499;
  135. rptPage.PageIndex = 1;
  136. rptPage.ReLoad();
  137. rptPage.PageSize = 500;
  138. rptPage.PageIndex = 1;
  139. rptPage.ReLoad();
  140. }
  141. private void grvDetail_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
  142. {
  143. if (e.RowHandle >= 0 && e.Column.FieldName == "DCTCODE")
  144. {
  145. e.CellValue = "cccc";
  146. }
  147. }
  148. private void btnRefresh_Click(object sender, EventArgs e)
  149. {
  150. this.dt.Clear();
  151. this.grdDetail.DataSource = null;
  152. this.loadData();
  153. }
  154. private void tRefresh_Tick(object sender, EventArgs e)
  155. {
  156. this.btnRefresh_Click(sender, e);
  157. }
  158. private void btnShow_Click(object sender, EventArgs e)
  159. {
  160. SimpleButton btntemp = (SimpleButton)sender;
  161. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  162. {
  163. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  164. return;
  165. }
  166. try
  167. {
  168. if (dt.Rows.Count > 0 && dt != null)
  169. {
  170. FormMatterShow show = new FormMatterShow(dt);
  171. show.ShowDialog();
  172. }
  173. else
  174. {
  175. ICSBaseSimpleCode.AppshowMessageBox("为查询到原材料信息");
  176. }
  177. }
  178. catch (Exception ex)
  179. {
  180. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  181. }
  182. }
  183. private void Show()
  184. {
  185. try
  186. {
  187. FormMatterShow show = new FormMatterShow(dt);
  188. show.ShowDialog();
  189. }
  190. catch (Exception ex)
  191. {
  192. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  193. }
  194. }
  195. private void grvDetail_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)
  196. {
  197. int hand = e.RowHandle;
  198. if (hand < 0) return;
  199. DataRow dr = this.grvDetail.GetDataRow(hand);
  200. if (dr == null) return;
  201. if (((DateTime)dr["daytime"] - DateTime.Now).Days <= 3)
  202. {
  203. e.Appearance.BackColor = Color.Red;// 改变行背景颜色
  204. //根据需求
  205. }
  206. else if (((DateTime)dr["daytime"] - DateTime.Now).Days <= 7)
  207. {
  208. e.Appearance.BackColor = Color.Yellow;// 改变行背景颜色
  209. //根据需求
  210. }
  211. }
  212. private void Check_Tick(object sender, EventArgs e)
  213. {
  214. string str1 = DateTime.Now.ToString("yyyyMMdd") + "000200";
  215. string str2 = DateTime.Now.ToString("yyyyMMdd") + "000300";
  216. IFormatProvider format = new System.Globalization.CultureInfo("zh-CN");
  217. string TarStr = "yyyyMMddHHmmss"; //注意这里用到HH
  218. DateTime MyDate1 = DateTime.ParseExact(str1, TarStr, format);
  219. DateTime MyDate2 = DateTime.ParseExact(str2, TarStr, format);
  220. if (MyDate1 < DateTime.Now && DateTime.Now <= MyDate2)
  221. {
  222. this.btnRefresh_Click(sender, e);
  223. this.Show();
  224. this.Check.Enabled = false;
  225. }
  226. }
  227. private void CheckDate_Tick(object sender, EventArgs e)
  228. {
  229. string str1 = DateTime.Now.ToString("yyyyMMdd") + "000100";
  230. string str2 = DateTime.Now.ToString("yyyyMMdd") + "000200";
  231. IFormatProvider format = new System.Globalization.CultureInfo("zh-CN");
  232. string TarStr = "yyyyMMddHHmmss"; //注意这里用到HH
  233. DateTime MyDate1 = DateTime.ParseExact(str1, TarStr, format);
  234. DateTime MyDate2 = DateTime.ParseExact(str2, TarStr, format);
  235. if (MyDate1 < DateTime.Now && DateTime.Now <= MyDate2)
  236. {
  237. this.Check.Enabled = true;
  238. }
  239. }
  240. }
  241. }