Print.cs 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using UAS_MES.DataOperate;
  2. using LabelManager2;
  3. using System.Data;
  4. using System.Text;
  5. using System.IO;
  6. using UAS_MES.Entity;
  7. namespace UAS_MES.PublicMethod
  8. {
  9. class Print
  10. {
  11. static DataHelper dh = new DataHelper();
  12. //CodeSoft打印的驱动和文件
  13. static Document doc;
  14. ////CodeSoft的打印机
  15. //string CodeSpft_Printer;
  16. static FileInfo info;
  17. public Print() { }
  18. /// <summary>
  19. /// 默认打印一份
  20. /// </summary>
  21. /// <param name="Url"></param>
  22. /// <param name="LabelCode"></param>
  23. public static void CodeSoft(string iCaller,ApplicationClass lbl, string LabelName, string LabelCode, string PrinterName, string SnCode,int PrintNum,System.DateTime intime)
  24. {
  25. //打开模板路径
  26. doc = lbl.Documents.Open(ftpOperater.DownLoadTo + LabelName);
  27. //查询模板对应的取值SQL和参数名称
  28. DataTable dt = (DataTable)dh.ExecuteSql("select lp_name,lp_sql from label left join LABELPARAMETER on la_id=lp_laid where la_code='" + LabelCode + "'", "select");
  29. //比对模板维护的参数和在系统中维护的参数,名称对应进行SQL取值赋给变量
  30. StringBuilder sb = new StringBuilder();
  31. for (int i = 0; i < doc.Variables.FormVariables.Count; i++)
  32. {
  33. for (int j = 0; j < dt.Rows.Count; j++)
  34. {
  35. if (doc.Variables.FormVariables.Item(i + 1).Name == dt.Rows[j]["lp_name"].ToString())
  36. {
  37. string sql = dt.Rows[j]["lp_sql"].ToString();
  38. sql = sql.Substring(0, sql.IndexOf("{")) + "'" + SnCode + "'";
  39. doc.Variables.FormVariables.Item(i + 1).Value = dh.GetLabelParam(sql).ToString();
  40. sb.AppendLine("打印参数【" + doc.Variables.FormVariables.Item(i + 1).Name + "】赋值," + "取值SQL:" + sql + ",取到值" + doc.Variables.FormVariables.Item(i + 1).Value);
  41. }
  42. }
  43. }
  44. LogManager.DoLog(sb.ToString());
  45. //保存本次赋值进行打印
  46. doc.Save();
  47. doc.Printer.SwitchTo(PrinterName);
  48. doc.PrintDocument(PrintNum);
  49. doc.Close();
  50. LogicHandler.DoCommandLog(iCaller, User.UserCode, "", User.UserLineCode, User.UserSourceCode, "打印", "成功打印", SnCode, "");
  51. //讲文件最后写入时间改成数据库中拿到的时间
  52. info = new FileInfo(ftpOperater.DownLoadTo + LabelName);
  53. info.LastWriteTime = intime;
  54. }
  55. public static void CodeSoft(ApplicationClass lbl, string LabelName, string LabelCode, string PrinterName, string SnCode)
  56. {
  57. //打开模板路径
  58. doc = lbl.Documents.Open(ftpOperater.DownLoadTo + LabelName);
  59. //查询模板对应的取值SQL和参数名称
  60. DataTable dt = (DataTable)dh.ExecuteSql("select lp_name,lp_sql from label left join LABELPARAMETER on la_id=lp_laid where la_code='" + LabelCode + "'", "select");
  61. //比对模板维护的参数和在系统中维护的参数,名称对应进行SQL取值赋给变量
  62. for (int i = 0; i < doc.Variables.FreeVariables.Count; i++)
  63. {
  64. for (int j = 0; j < dt.Rows.Count; j++)
  65. {
  66. if (doc.Variables.FreeVariables.Item(i + 1).Name == dt.Rows[j]["lp_name"].ToString())
  67. {
  68. string sql = dt.Rows[j]["lp_sql"].ToString();
  69. sql = sql.Substring(0, sql.IndexOf("{")) + "'" + SnCode + "'";
  70. doc.Variables.FreeVariables.Item(i + 1).Value = dh.GetLabelParam(sql).ToString();
  71. }
  72. }
  73. }
  74. //保存本次赋值进行打印
  75. doc.Save();
  76. doc.Printer.SwitchTo(PrinterName);
  77. doc.PrintDocument();
  78. doc.Close();
  79. }
  80. }
  81. }