Print.cs 3.5 KB

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