Print.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using UAS_MES.DataOperate;
  2. using LabelManager2;
  3. using System.Data;
  4. namespace UAS_MES.PublicMethod
  5. {
  6. class Print
  7. {
  8. static DataHelper dh = new DataHelper();
  9. //CodeSoft打印的驱动和文件
  10. static Document doc;
  11. ////CodeSoft的打印机
  12. //string CodeSpft_Printer;
  13. public Print() { }
  14. /// <summary>
  15. /// 默认打印一份
  16. /// </summary>
  17. /// <param name="Url"></param>
  18. /// <param name="LabelCode"></param>
  19. public static void CodeSoft(ApplicationClass lbl, string LabelName, string LabelCode, string PrinterName, string SnCode)
  20. {
  21. //打开模板路径
  22. doc = lbl.Documents.Open(ftpOperater.DownLoadTo + LabelName);
  23. //查询模板对应的取值SQL和参数名称
  24. 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");
  25. //比对模板维护的参数和在系统中维护的参数,名称对应进行SQL取值赋给变量
  26. for (int i = 0; i < doc.Variables.FreeVariables.Count; i++)
  27. {
  28. for (int j = 0; j < dt.Rows.Count; j++)
  29. {
  30. if (doc.Variables.FreeVariables.Item(i + 1).Name == dt.Rows[j]["lp_name"].ToString())
  31. {
  32. string sql = dt.Rows[j]["lp_sql"].ToString();
  33. sql = sql.Substring(0, sql.IndexOf("{")) + "'" + SnCode + "'";
  34. doc.Variables.FreeVariables.Item(i + 1).Value = dh.GetLabelParam(sql).ToString();
  35. }
  36. }
  37. }
  38. //保存本次赋值进行打印
  39. doc.Save();
  40. doc.Printer.SwitchTo(PrinterName);
  41. doc.PrintDocument();
  42. doc.Close();
  43. }
  44. }
  45. }