PipeManageClass.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Data;
  6. using Core.Mes.Client.Comm.Server;
  7. using Infragistics.Win.UltraWinGrid;
  8. using Infragistics.Win;
  9. using System.Drawing;
  10. using System.Collections;
  11. using Infragistics.Win.UltraWinEditors;
  12. using CoreFS.CA06;
  13. using System.Text.RegularExpressions;
  14. using Infragistics.Win.UltraWinDataSource;
  15. using Core.StlMes.Client.YdmPipeManage.Tool;
  16. namespace Core.StlMes.Client.YdmPipeManage.Controls
  17. {
  18. /// <summary>
  19. ///
  20. /// </summary>
  21. /// Author TJG 2015-03-27
  22. class PipeManageClass
  23. {
  24. /// <summary>
  25. /// 单号自增
  26. /// </summary>
  27. /// <param name="BaseNumber">原单号</param>
  28. /// <param name="prefix">单号前缀</param>
  29. /// <param name="digit">流水号</param>
  30. /// <returns>返回值</returns>
  31. public static string NextNumber(string BaseNumber, string prefix, string digit)
  32. {
  33. string NewNumber = "";//新值
  34. int InNumber = 1;//进位
  35. int PlaceValue;//位值
  36. char[] No = BaseNumber.ToCharArray();
  37. for (int i = BaseNumber.Length - 1; i >= 0; i--)
  38. {
  39. if (No[i] == '9' && InNumber == 1)
  40. {
  41. InNumber = 1;
  42. NewNumber = "0" + NewNumber;
  43. }
  44. else
  45. if (InNumber == 1 && No[i] >= '0' && No[i] < '9')
  46. {
  47. PlaceValue = Int32.Parse(No[i].ToString());
  48. PlaceValue = (InNumber + PlaceValue);
  49. InNumber = 0;
  50. NewNumber = PlaceValue.ToString() + NewNumber;
  51. }
  52. else
  53. {
  54. InNumber = 0;
  55. NewNumber = No[i] + NewNumber;
  56. }
  57. }
  58. if (BaseNumber == NewNumber)
  59. NewNumber = prefix + DateTime.Now.ToString("yyMMdd") + digit;
  60. return NewNumber;
  61. }
  62. /// <summary>
  63. /// 查询当天是否有入库单号
  64. /// </summary>
  65. /// <param name="sortCode">快速索引码,参数数组</param>
  66. /// <param name="ob">界面OB对象</param>
  67. /// <returns></returns>
  68. public static DataTable getInList(ArrayList sortCode, OpeBase ob)
  69. {
  70. return ServerHelper.GetData("com.steering.pss.ydm.pipemanage.PipeManageClassInfo.queryInList", new object[] { sortCode }, ob);
  71. }
  72. /// <summary>
  73. /// 获取产线信息
  74. /// </summary>
  75. /// <param name="sortCode">快速索引码,参数数组</param>
  76. /// <param name="ob">界面OB对象</param>
  77. /// <returns></returns>
  78. public static DataTable getComPlineInfo(string sortCode, OpeBase ob)
  79. {
  80. return ServerHelper.GetData("com.steering.pss.ydm.pipemanage.PipeManageClassInfo.queryPline", new object[] { sortCode }, ob);
  81. }
  82. /// <summary>
  83. /// 获取扣型信息
  84. /// </summary>
  85. /// <param name="sortCode">快速索引码,参数数组</param>
  86. /// <param name="ob">界面OB对象</param>
  87. /// <returns></returns>
  88. public static DataTable getComModelInfo(string strCode,OpeBase ob)
  89. {
  90. return ServerHelper.GetData("com.steering.pss.ydm.pipemanage.PipeManageClassInfo.queryModel", new object[] { strCode }, ob);
  91. }
  92. /// <summary>
  93. /// 获取物料信息
  94. /// </summary>
  95. /// <param name="sortCode">快速索引码,参数数组</param>
  96. /// <param name="ob">界面OB对象</param>
  97. /// <returns></returns>
  98. public static DataTable getComMaterialInfo(ArrayList sortCode, OpeBase ob)
  99. {
  100. return ServerHelper.GetData("com.steering.pss.ydm.pipemanage.PipeManageClassInfo.queryMaterial", new object[] { sortCode }, ob);
  101. }
  102. /// <summary>
  103. /// 获取指定的仓库号信息
  104. /// </summary>
  105. /// <param name="sortCode">快速索引码,参数数组</param>
  106. /// <param name="ob">界面OB对象</param>
  107. /// <returns></returns>
  108. public static DataTable getComBaseInfo(ArrayList sortCode, OpeBase ob)
  109. {
  110. return ServerHelper.GetData("com.steering.pss.ydm.pipemanage.PipeManageClassInfo.queryStorage", new object[] { sortCode }, ob);
  111. }
  112. /// <summary>
  113. /// 绑定指定的原仓库号
  114. /// </summary>
  115. /// <param name="sortCode">快速索引码,参数数组</param>
  116. /// <param name="cmb">需填充的控件</param>
  117. /// <param name="ob">界面OB对象</param>
  118. public static void BindComBaseInfo(ArrayList sortCode, UltraComboEditor cmb, OpeBase ob)
  119. {
  120. DataTable table = getComBaseInfo(sortCode, ob);
  121. cmb.DataSource = table;
  122. cmb.DisplayMember = "STORAGE_NAME";
  123. cmb.ValueMember = "STORAGE_NO";
  124. SetComboItemHeight(cmb);
  125. }
  126. /// <summary>
  127. /// 获取指定的料位号信息
  128. /// </summary>
  129. /// <param name="sortCode">快速索引码,参数数组</param>
  130. /// <param name="ob">界面OB对象</param>
  131. /// <returns></returns>
  132. public static DataTable getLocationInfo(ArrayList sortCode, OpeBase ob)
  133. {
  134. return ServerHelper.GetData("com.steering.pss.ydm.pipemanage.PipeManageClassInfo.queryLocation", new object[] { sortCode }, ob);
  135. }
  136. /// <summary>
  137. /// 绑定指定的目标仓库号
  138. /// </summary>
  139. /// <param name="sortCode">快速索引码,参数数组</param>
  140. /// <param name="cmb">需填充的控件</param>
  141. /// <param name="ob">界面OB对象</param>
  142. public static void BindLocationInfo(ArrayList sortCode, UltraComboEditor cmb, OpeBase ob)
  143. {
  144. DataTable table = getLocationInfo(sortCode, ob);
  145. BaseMethod.InitComboEditor(cmb, table, "LOCATION_NAME", "LOCATION_NO");
  146. //cmb.DataSource = table;
  147. //cmb.ValueMember = "LOCATION_NAME";
  148. //SetComboItemHeight(cmb);
  149. }
  150. /// <summary>
  151. /// 获取作业类型信息
  152. /// </summary>
  153. /// <param name="sortCode">快速索引码,参数数组</param>
  154. /// <param name="ob">界面OB对象</param>
  155. /// <returns></returns>
  156. public static DataTable getComTypeInfo(string sortCode, OpeBase ob)
  157. {
  158. return ServerHelper.GetData("com.steering.pss.ydm.pipemanage.PipeManageClassInfo.queryType", new object[] { sortCode }, ob);
  159. }
  160. /// <summary>
  161. /// 设置UltraComboEditor中的中文和非中文统一高度。
  162. /// </summary>
  163. /// <param name="cmb"></param>
  164. public static void SetComboItemHeight(UltraComboEditor cmb)
  165. {
  166. cmb.Update();
  167. foreach (ValueListItem item in cmb.Items)
  168. {
  169. if (Regex.IsMatch(item.DisplayText, @"[\u4e00-\u9fa5]+"))
  170. {
  171. item.Appearance.FontData.SizeInPoints = 9.0F;
  172. }
  173. else
  174. {
  175. item.Appearance.FontData.SizeInPoints = 10.5F;
  176. }
  177. }
  178. }
  179. /// <summary>
  180. /// 校验字符串是否只包含字母与数字和/
  181. /// </summary>
  182. /// <param name="toVerified">需要校验的字符串</param>
  183. /// <returns>true表示符合要求,false表示不符合要求</returns>
  184. public static bool IsOnlyLetterAndDigit(string toVerified)
  185. {
  186. Regex rx = new Regex(@"^[a-zA-Z0-9-/]*$");
  187. return rx.IsMatch(toVerified.Trim(), 0);
  188. }
  189. /// <summary>
  190. /// 过滤
  191. /// </summary>
  192. /// <param name="myGrid1">ultraGrid</param>
  193. /// <param name="bAllowFilter">true 显示,false 隐藏</param>
  194. public static void SetUltraGridRowFilter(ref UltraGrid myGrid1, bool bAllowFilter)
  195. {
  196. try
  197. {
  198. if (bAllowFilter)
  199. {
  200. if (myGrid1.DisplayLayout.Override.FilterUIType != FilterUIType.FilterRow)
  201. myGrid1.DisplayLayout.Override.FilterUIType = FilterUIType.FilterRow;
  202. for (int i = 0; i < myGrid1.DisplayLayout.Bands.Count; i++)
  203. {
  204. if (myGrid1.DisplayLayout.Bands[i].CardView) continue;
  205. for (int j = 0; j < myGrid1.DisplayLayout.Bands[i].Columns.Count; j++)
  206. {
  207. try
  208. {
  209. if (!myGrid1.DisplayLayout.Bands[i].Columns[j].Hidden &&
  210. myGrid1.DisplayLayout.Bands[i].Columns[j].RowLayoutColumnInfo.LabelPosition != LabelPosition.LabelOnly)
  211. myGrid1.DisplayLayout.Bands[i].Columns[j].AllowRowFiltering = Infragistics.Win.DefaultableBoolean.True;
  212. }
  213. catch { }
  214. }
  215. }
  216. }
  217. else
  218. {
  219. if (myGrid1.DisplayLayout.Override.FilterUIType != FilterUIType.HeaderIcons)
  220. myGrid1.DisplayLayout.Override.FilterUIType = FilterUIType.HeaderIcons;
  221. for (int i = 0; i < myGrid1.DisplayLayout.Bands.Count; i++)
  222. {
  223. if (myGrid1.DisplayLayout.Bands[i].CardView) continue;
  224. try
  225. {
  226. myGrid1.DisplayLayout.Bands[i].ColumnFilters.ClearAllFilters();
  227. }
  228. catch { }
  229. for (int j = 0; j < myGrid1.DisplayLayout.Bands[i].Columns.Count; j++)
  230. {
  231. try
  232. {
  233. myGrid1.DisplayLayout.Bands[i].Columns[j].AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  234. }
  235. catch { }
  236. }
  237. }
  238. }
  239. }
  240. catch { }
  241. }
  242. /// <summary>
  243. /// 求缴库支数最后一支重量
  244. /// </summary>
  245. /// <param name="conut">支数</param>
  246. /// <param name="weight">重量</param>
  247. public static string SetQualityAverage(string conut, string weight)
  248. {
  249. double Lastcount =0;//最后一支重量
  250. double dbcount= Convert.ToDouble(conut);
  251. double dbweight= Convert.ToDouble(weight);
  252. string avg = (dbweight / dbcount).ToString("f3");//平均值
  253. double all = Convert.ToDouble(avg) * dbcount;
  254. Lastcount = Convert.ToDouble(avg) + dbweight - all;
  255. return Lastcount.ToString();
  256. }
  257. /// <summary>
  258. /// 根据DataSet设定条件进行过滤
  259. /// </summary>
  260. /// <param name="dsVal"></param>
  261. /// <param name="RowWhere"></param>
  262. /// <returns></returns>
  263. public static DataSet RowFilterDataSet(DataSet dsVal, string RowWhere)
  264. {
  265. if (dsVal == null) return null;
  266. DataSet ds = dsVal;
  267. ds.Tables[0].DefaultView.RowFilter = RowWhere;
  268. DataSet dsnew = new DataSet();
  269. dsnew.Tables.Add(ds.Tables[0].DefaultView.ToTable());
  270. return dsnew;
  271. }
  272. /// <summary>
  273. /// 根据DataTable设定条件进行过滤
  274. /// </summary>
  275. /// <param name="dt"></param>
  276. /// <param name="RowWhere"></param>
  277. /// <returns></returns>
  278. public static DataTable RowFilterDataTable(DataTable dt, string RowWhere)
  279. {
  280. if (dt == null) return null;
  281. DataTable dtVal = dt;
  282. dtVal.DefaultView.RowFilter = RowWhere;
  283. DataTable dtNew = new DataTable();
  284. dtNew = dtVal.DefaultView.ToTable();
  285. return dtNew;
  286. }
  287. }
  288. }