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.

1509 lines
72 KiB

3 weeks ago
  1. using NFine.Application.WMS;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Web;
  8. using System.Web.Mvc;
  9. using NFine.Code;
  10. using System.Data.SqlClient;
  11. using NFine.Data.Extensions;
  12. using System.Data.OleDb;
  13. using System.Configuration;
  14. using ICS.Application.Entity;
  15. using NFine.Domain._03_Entity.WMS;
  16. using System.Data.Common;
  17. using Newtonsoft.Json;
  18. namespace NFine.Web.Areas.WMS.Controllers
  19. {
  20. public class PrintController : ControllerBase
  21. {
  22. PrintApp App = new PrintApp();
  23. // GET: WMS/Print
  24. public ActionResult PrintView()
  25. {
  26. return View();
  27. }
  28. public ActionResult PrintViewByLot()
  29. {
  30. return View();
  31. }
  32. public ActionResult PrintViewBySession()
  33. {
  34. return View();
  35. }
  36. /// <summary>
  37. /// 打印数据参数:服务器的URL+打印的文件名,转化为Base64编码
  38. /// </summary>
  39. protected string strPrintData;
  40. /// <summary>
  41. /// 标识是否安装了控件
  42. /// </summary>
  43. protected bool bIsInstallPrintControl = true;
  44. /// <summary>
  45. /// 打印控件的Cookie值
  46. /// </summary>
  47. protected string strPrintControlCookie = "";
  48. /// <summary>
  49. /// 获取Url中去掉文件名的路径
  50. /// </summary>
  51. /// <returns></returns>
  52. private string GetUrlPath()
  53. {
  54. string strUrl = Request.Url.ToString();
  55. int iEnd = strUrl.LastIndexOf("/");
  56. strUrl = strUrl.Substring(0, iEnd + 1);
  57. return strUrl;
  58. }
  59. [HttpGet]
  60. [HandlerAjaxOnly]
  61. public ActionResult GetLableType()
  62. {
  63. DataTable dt = App.GetLableType();
  64. return Content(dt.ToJson());
  65. }
  66. [HttpGet]
  67. [HandlerAjaxOnly]
  68. public ActionResult GetLableSourceID()
  69. {
  70. DataTable dt = App.GetLableSourceID();
  71. return Content(dt.ToJson());
  72. }
  73. [HttpGet]
  74. [HandlerAjaxOnly]
  75. public ActionResult GetSys_LablesID(string LableType)
  76. {
  77. DataTable dt = App.GetSys_LablesID(LableType);
  78. return Content(dt.ToJson());
  79. }
  80. //打印
  81. [HttpPost]
  82. [HandlerAjaxOnly]
  83. public ActionResult PrintItemLot(string keyValue, string Parameter)
  84. {
  85. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  86. string WorkPoint = "'" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "'";
  87. string sqltxt = "";
  88. Parameter = Parameter.Substring(1, Parameter.Length - 3);
  89. var queryParam = keyValue.ToJObject();
  90. List<DbParameter> parameter = new List<DbParameter>();
  91. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  92. List<PrintPara> parasList = new List<PrintPara>();
  93. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  94. string sqlValue = @"select LableSourceID,FileAddress,LableCode,LableName from Sys_Lables where ID='{0}'";
  95. sqlValue = string.Format(sqlValue, Sys_LablesID);
  96. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  97. string LableSourceID = drV["LableSourceID"].ToString();
  98. string FileAddress = drV["FileAddress"].ToString();
  99. string LableCode = drV["LableCode"].ToString();
  100. string LableName = drV["LableName"].ToString();
  101. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  102. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  103. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  104. where ID='{0}'";
  105. sqlLableDataSource = string.Format(sqlLableDataSource, LableSourceID);
  106. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  107. #region 打印
  108. //string[] PrintParas = Parameter.Split('|');
  109. //string LinkCols = string.Empty;
  110. //foreach (var p in PrintParas)
  111. //{
  112. // sqltxt = dr["SqlTxt"].ToString();
  113. // LinkCols= dr["LinkCols"].ToString();
  114. // if (dr["Paras"].ToString() != "")
  115. // {
  116. // string[] ps = dr["Paras"].ToString().Split(',');
  117. // for (int i = 0; i < ps.Length; i++)
  118. // {
  119. // if (!string.IsNullOrEmpty(ps[i]))
  120. // {
  121. // sqltxt = sqltxt.Replace(ps[i], p.ToString());
  122. // }
  123. // }
  124. // }
  125. // if (sqltxt.Contains("[WorkPoint]"))
  126. // {
  127. // sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  128. // }
  129. //}
  130. #endregion
  131. var PrintValue = Parameter.Split('|');
  132. string[] ValueParameters = PrintValue[0].Split(',');
  133. string[] PrintParas = Parameter.Split('|');
  134. string LinkCols = string.Empty;
  135. sqltxt = dr["SqlTxt"].ToString();
  136. LinkCols = dr["LinkCols"].ToString();
  137. string SourceName = dr["SourceName"].ToString();
  138. string Paras = dr["Paras"].ToString();
  139. if (dr["Paras"].ToString() != "")
  140. {
  141. string[] ps = dr["Paras"].ToString().Split(',');
  142. for (int i = 0; i < ps.Length; i++)
  143. {
  144. if (!string.IsNullOrEmpty(ps[i]))
  145. {
  146. sqltxt = sqltxt.Replace(ps[i], PrintParas[i]);
  147. }
  148. }
  149. }
  150. if (sqltxt.Contains("[WorkPoint]"))
  151. {
  152. sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  153. }
  154. string strPrintFileName = Server.MapPath("/File/LablesFile/") + "" + FileAddress + "";
  155. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  156. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  157. if (LinkCols != "")
  158. {
  159. pJson.MasterOptions(1, "" + LinkCols + "", false); //主从关系
  160. }
  161. //pJson.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息
  162. //pJson.AddPrintParam("ShopName", "测试酒楼");
  163. //pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!");
  164. SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
  165. string strSql = sqltxt;
  166. //DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
  167. DataSet dtCashLog = DbHelper.GetDataSet(CommandType.Text, strSql);
  168. DataTable dt1 = null;
  169. DataTable dt2 = null;
  170. DataTable dt3 = null;
  171. string strPrintTempFile = "";
  172. if (dtCashLog.Tables.Count > 0 && dtCashLog.Tables.Count <= 1)
  173. {
  174. dt1 = dtCashLog.Tables[0];
  175. strPrintTempFile = pJson.ShowReport(dt1);
  176. }
  177. if (dtCashLog.Tables.Count > 1 && dtCashLog.Tables.Count <= 2)
  178. {
  179. dt1 = dtCashLog.Tables[0];
  180. dt2 = dtCashLog.Tables[1];
  181. strPrintTempFile = pJson.ShowReport(dt1, dt2);
  182. }
  183. if (dtCashLog.Tables.Count > 2)
  184. {
  185. dt1 = dtCashLog.Tables[0];
  186. dt2 = dtCashLog.Tables[1];
  187. dt3 = dtCashLog.Tables[2];
  188. strPrintTempFile = pJson.ShowReport(dt1, dt2, dt3);
  189. }
  190. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  191. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  192. string strServerURL = GetUrlPath() + "PrintTemp/";
  193. string strData = strServerURL + strPrintTempFile;
  194. strPrintData = PrintFunction.EnBase64(strData);
  195. var JsonData = new
  196. {
  197. strPrintData_1 = strPrintData,
  198. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  199. strPrintControlCookie_1 = strPrintControlCookie
  200. };
  201. string sql = string.Empty;
  202. for (int i = 0; i < ValueParameters.Length; i++)
  203. {
  204. // 打印记录
  205. sql += @"insert into Sys_LableTask (ID, LableCode, LableName, PrintTableID, PrintTableName, PrintKey, ValueParameters, PrintDate, PrintUserCode, WorkPoint)
  206. values(newid(),'{0}','{1}','{2}','{3}','{4}',{5},getdate(),'{6}',{7})";
  207. sql = string.Format(sql, LableCode, LableName, LableSourceID, SourceName, Paras, ValueParameters[i].ToString(), MUSER, WorkPoint);
  208. }
  209. SqlHelper.CmdExecuteNonQueryLi(sql);
  210. //多站点
  211. //string sql = @"UPDATE dbo.ICSInventoryLot
  212. // SET PrintTimes=ISNULL(PrintTimes,0)+1,
  213. // LastPrintUser='',
  214. // LastPrintTime=GETDATE()
  215. // WHERE ID IN (" + keyValue.TrimEnd(',') + ") and WorkPoint in ('" + WorkPoint.TrimEnd(',') + "')";
  216. //SqlHelper.ExecuteNonQuery(sql);
  217. return Content(JsonData.ToJson());
  218. }
  219. //打印(传入条码和单据)
  220. [HttpPost]
  221. [HandlerAjaxOnly]
  222. public ActionResult DHPrintItemLot(string keyValue, string Parameter)
  223. {
  224. string WorkPoint = "'" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "'";
  225. string sqltxt = "";
  226. var queryParam = keyValue.ToJObject();
  227. List<DbParameter> parameter = new List<DbParameter>();
  228. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  229. List<PrintPara> parasList = new List<PrintPara>();
  230. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  231. string sqlValue = @"select LableSourceID,FileAddress from Sys_Lables where ID='{0}'";
  232. sqlValue = string.Format(sqlValue, Sys_LablesID);
  233. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  234. string LableSourceID = drV["LableSourceID"].ToString();
  235. string FileAddress = drV["FileAddress"].ToString();
  236. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  237. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  238. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  239. where ID='{0}'";
  240. sqlLableDataSource = string.Format(sqlLableDataSource, LableSourceID);
  241. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  242. #region 打印
  243. //string[] PrintParas = Parameter.Split('|');
  244. //string LinkCols = string.Empty;
  245. //foreach (var p in PrintParas)
  246. //{
  247. // sqltxt = dr["SqlTxt"].ToString();
  248. // LinkCols= dr["LinkCols"].ToString();
  249. // if (dr["Paras"].ToString() != "")
  250. // {
  251. // string[] ps = dr["Paras"].ToString().Split(',');
  252. // for (int i = 0; i < ps.Length; i++)
  253. // {
  254. // if (!string.IsNullOrEmpty(ps[i]))
  255. // {
  256. // sqltxt = sqltxt.Replace(ps[i], p.ToString());
  257. // }
  258. // }
  259. // }
  260. // if (sqltxt.Contains("[WorkPoint]"))
  261. // {
  262. // sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  263. // }
  264. //}
  265. #endregion
  266. DataTable dtInfo = JsonConvert.DeserializeObject<DataTable>(Parameter);
  267. string Printstr1 = "";
  268. string Printstr2 = "";
  269. string PrintstrEnd = "";
  270. foreach (DataRow drInfo in dtInfo.Rows)
  271. {
  272. Printstr1 += "'" + drInfo["ApplyCode"] + "',";
  273. Printstr2 += "'" + drInfo["LotNO"] + "',";
  274. }
  275. PrintstrEnd = Printstr1.TrimEnd(',') + ";" + Printstr2.TrimEnd(',');
  276. string[] PrintParas = PrintstrEnd.Split(';');
  277. string LinkCols = string.Empty;
  278. sqltxt = dr["SqlTxt"].ToString();
  279. LinkCols = dr["LinkCols"].ToString();
  280. if (dr["Paras"].ToString() != "")
  281. {
  282. string[] ps = dr["Paras"].ToString().Split(',');
  283. for (int i = 0; i < ps.Length; i++)
  284. {
  285. if (!string.IsNullOrEmpty(ps[i]))
  286. {
  287. sqltxt = sqltxt.Replace(ps[i], PrintParas[i]);
  288. }
  289. }
  290. }
  291. if (sqltxt.Contains("[WorkPoint]"))
  292. {
  293. sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  294. }
  295. string strPrintFileName = Server.MapPath("/File/LablesFile/") + "" + FileAddress + "";
  296. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  297. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  298. if (LinkCols != "")
  299. {
  300. pJson.MasterOptions(1, "" + LinkCols + "", false); //主从关系
  301. }
  302. //pJson.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息
  303. //pJson.AddPrintParam("ShopName", "测试酒楼");
  304. //pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!");
  305. SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
  306. string strSql = sqltxt;
  307. //DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
  308. DataSet dtCashLog = DbHelper.GetDataSet(CommandType.Text, strSql);
  309. DataTable dt1 = null;
  310. DataTable dt2 = null;
  311. DataTable dt3 = null;
  312. string strPrintTempFile = "";
  313. if (dtCashLog.Tables.Count > 0 && dtCashLog.Tables.Count <= 1)
  314. {
  315. dt1 = dtCashLog.Tables[0];
  316. strPrintTempFile = pJson.ShowReport(dt1);
  317. }
  318. if (dtCashLog.Tables.Count > 1 && dtCashLog.Tables.Count <= 2)
  319. {
  320. dt1 = dtCashLog.Tables[0];
  321. dt2 = dtCashLog.Tables[1];
  322. strPrintTempFile = pJson.ShowReport(dt1, dt2);
  323. }
  324. if (dtCashLog.Tables.Count > 2)
  325. {
  326. dt1 = dtCashLog.Tables[0];
  327. dt2 = dtCashLog.Tables[1];
  328. dt3 = dtCashLog.Tables[2];
  329. strPrintTempFile = pJson.ShowReport(dt1, dt2, dt3);
  330. }
  331. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  332. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  333. string strServerURL = GetUrlPath() + "PrintTemp/";
  334. string strData = strServerURL + strPrintTempFile;
  335. strPrintData = PrintFunction.EnBase64(strData);
  336. var JsonData = new
  337. {
  338. strPrintData_1 = strPrintData,
  339. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  340. strPrintControlCookie_1 = strPrintControlCookie
  341. };
  342. //多站点
  343. //string sql = @"UPDATE dbo.ICSInventoryLot
  344. // SET PrintTimes=ISNULL(PrintTimes,0)+1,
  345. // LastPrintUser='',
  346. // LastPrintTime=GETDATE()
  347. // WHERE ID IN (" + keyValue.TrimEnd(',') + ") and WorkPoint in ('" + WorkPoint.TrimEnd(',') + "')";
  348. //SqlHelper.ExecuteNonQuery(sql);
  349. return Content(JsonData.ToJson());
  350. }
  351. [HttpPost]
  352. [HandlerAjaxOnly]
  353. public ActionResult YLPrintItemLot(string keyValue, string Parameter)
  354. {
  355. string WorkPoint = "'" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "'";
  356. string sqltxt = "";
  357. //Parameter = Parameter.Substring(1, Parameter.Length - 3);
  358. var queryParam = keyValue.ToJObject();
  359. List<DbParameter> parameter = new List<DbParameter>();
  360. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  361. List<PrintPara> parasList = new List<PrintPara>();
  362. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  363. string sqlValue = @"select LableSourceID,FileAddress from Sys_Lables where ID='{0}'";
  364. sqlValue = string.Format(sqlValue, Sys_LablesID);
  365. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  366. string LableSourceID = drV["LableSourceID"].ToString();
  367. string FileAddress = drV["FileAddress"].ToString();
  368. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  369. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  370. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  371. where ID='{0}'";
  372. sqlLableDataSource = string.Format(sqlLableDataSource, LableSourceID);
  373. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  374. string LinkCols = string.Empty;
  375. LinkCols = dr["LinkCols"].ToString();
  376. string strPrintFileName = Server.MapPath("/File/LablesFile/") + "" + FileAddress + "";
  377. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  378. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  379. if (LinkCols != "")
  380. {
  381. pJson.MasterOptions(1, "" + LinkCols + "", false); //主从关系
  382. }
  383. //pJson.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息
  384. //pJson.AddPrintParam("ShopName", "测试酒楼");
  385. //pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!");
  386. SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
  387. string strSql = sqltxt;
  388. //DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
  389. //DataSet dtCashLog = DbHelper.GetDataSet(CommandType.Text, strSql);
  390. //var jsonData = $"[{Parameter}]";
  391. //DataTable dt1 = JsonConvert.DeserializeObject<DataTable>(jsonData);
  392. DataTable dt1 = JsonConvert.DeserializeObject<DataTable>(Parameter);
  393. string strPrintTempFile = "";
  394. //if (dtCashLog.Tables.Count > 0 && dtCashLog.Tables.Count <= 1)
  395. //{
  396. // dt1 = dtCashLog.Tables[0];
  397. strPrintTempFile = pJson.ShowReport(dt1);
  398. //}
  399. //if (dtCashLog.Tables.Count > 1 && dtCashLog.Tables.Count <= 2)
  400. //{
  401. // dt1 = dtCashLog.Tables[0];
  402. // dt2 = dtCashLog.Tables[1];
  403. // strPrintTempFile = pJson.ShowReport(dt1, dt2);
  404. //}
  405. //if (dtCashLog.Tables.Count > 2)
  406. //{
  407. // dt1 = dtCashLog.Tables[0];
  408. // dt2 = dtCashLog.Tables[1];
  409. // dt3 = dtCashLog.Tables[2];
  410. // strPrintTempFile = pJson.ShowReport(dt1, dt2, dt3);
  411. //}
  412. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  413. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  414. string strServerURL = GetUrlPath() + "PrintTemp/";
  415. string strData = strServerURL + strPrintTempFile;
  416. strPrintData = PrintFunction.EnBase64(strData);
  417. var JsonData = new
  418. {
  419. strPrintData_1 = strPrintData,
  420. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  421. strPrintControlCookie_1 = strPrintControlCookie
  422. };
  423. //多站点
  424. //string sql = @"UPDATE dbo.ICSInventoryLot
  425. // SET PrintTimes=ISNULL(PrintTimes,0)+1,
  426. // LastPrintUser='',
  427. // LastPrintTime=GETDATE()
  428. // WHERE ID IN (" + keyValue.TrimEnd(',') + ") and WorkPoint in ('" + WorkPoint.TrimEnd(',') + "')";
  429. //SqlHelper.ExecuteNonQuery(sql);
  430. return Content(JsonData.ToJson());
  431. }
  432. [HttpPost]
  433. [HandlerAjaxOnly]
  434. public ActionResult BasePrintItemLot(string keyValue, string Parameter)
  435. {
  436. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  437. string WorkPoint = "'" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "'";
  438. string sqltxt = "";
  439. //Parameter = Parameter.Substring(1, Parameter.Length - 3);
  440. var queryParam = keyValue.ToJObject();
  441. List<DbParameter> parameter = new List<DbParameter>();
  442. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  443. List<PrintPara> parasList = new List<PrintPara>();
  444. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  445. string sqlValue = @"select LableSourceID,FileAddress,LableCode,LableName from Sys_Lables where ID='{0}'";
  446. sqlValue = string.Format(sqlValue, Sys_LablesID);
  447. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  448. string LableSourceID = drV["LableSourceID"].ToString();
  449. string FileAddress = drV["FileAddress"].ToString();
  450. string LableCode = drV["LableCode"].ToString();
  451. string LableName = drV["LableName"].ToString();
  452. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  453. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  454. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  455. where ID='{0}'";
  456. sqlLableDataSource = string.Format(sqlLableDataSource, LableSourceID);
  457. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  458. string LinkCols = string.Empty;
  459. LinkCols = dr["LinkCols"].ToString();
  460. string SourceName = dr["SourceName"].ToString();
  461. string strPrintFileName = Server.MapPath("/File/LablesFile/") + "" + FileAddress + "";
  462. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  463. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  464. //if (LinkCols != "")
  465. //{
  466. // pJson.MasterOptions(1, "" + LinkCols + "", false); //主从关系
  467. //}
  468. //pJson.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息
  469. //pJson.AddPrintParam("ShopName", "测试酒楼");
  470. //pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!");
  471. SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
  472. string strSql = sqltxt;
  473. //DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
  474. //DataSet dtCashLog = DbHelper.GetDataSet(CommandType.Text, strSql);
  475. //var jsonData = $"[{Parameter}]";
  476. //DataTable dt1 = JsonConvert.DeserializeObject<DataTable>(jsonData);
  477. DataTable dt1 = JsonConvert.DeserializeObject<DataTable>(Parameter);
  478. //处理单号
  479. // 创建只包含Code列的dt2
  480. DataTable dt2 = new DataTable();
  481. dt2.Columns.Add("Code", dt1.Columns["Code"].DataType); // 保持与原列相同的数据类型
  482. // 使用LINQ查询获取去重的Code值
  483. var uniqueCodes = dt1.AsEnumerable()
  484. .Select(row => row["Code"])
  485. .Distinct()
  486. .ToList();
  487. // 将去重后的Code值添加到dt2
  488. foreach (var code in uniqueCodes)
  489. {
  490. DataRow newRow = dt2.NewRow();
  491. newRow["Code"] = code;
  492. dt2.Rows.Add(newRow);
  493. }
  494. string strPrintTempFile = "";
  495. //if (dtCashLog.Tables.Count > 0 && dtCashLog.Tables.Count <= 1)
  496. //{
  497. // dt1 = dtCashLog.Tables[0];
  498. strPrintTempFile = pJson.ShowReport(dt1);
  499. //}
  500. //if (dtCashLog.Tables.Count > 1 && dtCashLog.Tables.Count <= 2)
  501. //{
  502. // dt1 = dtCashLog.Tables[0];
  503. // dt2 = dtCashLog.Tables[1];
  504. // strPrintTempFile = pJson.ShowReport(dt1, dt2);
  505. //}
  506. //if (dtCashLog.Tables.Count > 2)
  507. //{
  508. // dt1 = dtCashLog.Tables[0];
  509. // dt2 = dtCashLog.Tables[1];
  510. // dt3 = dtCashLog.Tables[2];
  511. // strPrintTempFile = pJson.ShowReport(dt1, dt2, dt3);
  512. //}
  513. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  514. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  515. string strServerURL = GetUrlPath() + "PrintTemp/";
  516. string strData = strServerURL + strPrintTempFile;
  517. strPrintData = PrintFunction.EnBase64(strData);
  518. var JsonData = new
  519. {
  520. strPrintData_1 = strPrintData,
  521. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  522. strPrintControlCookie_1 = strPrintControlCookie
  523. };
  524. //多站点
  525. //string sql = @"UPDATE dbo.ICSInventoryLot
  526. // SET PrintTimes=ISNULL(PrintTimes,0)+1,
  527. // LastPrintUser='',
  528. // LastPrintTime=GETDATE()
  529. // WHERE ID IN (" + keyValue.TrimEnd(',') + ") and WorkPoint in ('" + WorkPoint.TrimEnd(',') + "')";
  530. //SqlHelper.ExecuteNonQuery(sql);
  531. string sql = string.Empty;
  532. foreach (DataRow Print in dt2.Rows)
  533. {
  534. // 打印记录
  535. sql += @"insert into Sys_LableTask (ID, LableCode, LableName, PrintTableID, PrintTableName, PrintKey, ValueParameters, PrintDate, PrintUserCode, WorkPoint)
  536. values(newid(),'{0}','{1}','{2}','{3}','{4}','{5}',getdate(),'{6}',{7})";
  537. sql = string.Format(sql, LableCode, LableName, LableSourceID, SourceName, "Code", Print["Code"].ToString(), MUSER, WorkPoint);
  538. }
  539. SqlHelper.CmdExecuteNonQueryLi(sql);
  540. return Content(JsonData.ToJson());
  541. }
  542. [HttpPost]
  543. [HandlerAjaxOnly]
  544. public ActionResult PNPrintItemLot(string keyValue, string Parameter)
  545. {
  546. string WorkPoint = "'" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "'";
  547. string sqltxt = "";
  548. var queryParam = keyValue.ToJObject();
  549. List<DbParameter> parameter = new List<DbParameter>();
  550. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  551. List<PrintPara> parasList = new List<PrintPara>();
  552. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  553. string sqlValue = @"select LableSourceID,FileAddress from Sys_Lables where ID='{0}'";
  554. sqlValue = string.Format(sqlValue, Sys_LablesID);
  555. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  556. string LableSourceID = drV["LableSourceID"].ToString();
  557. string FileAddress = drV["FileAddress"].ToString();
  558. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  559. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  560. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  561. where ID='{0}'";
  562. sqlLableDataSource = string.Format(sqlLableDataSource, LableSourceID);
  563. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  564. string LinkCols = string.Empty;
  565. LinkCols = dr["LinkCols"].ToString();
  566. string strPrintFileName = Server.MapPath("/File/LablesFile/") + "" + FileAddress + "";
  567. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  568. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  569. if (LinkCols != "")
  570. {
  571. pJson.MasterOptions(1, "" + LinkCols + "", false); //主从关系
  572. }
  573. string strSql = sqltxt;
  574. DataTable dt1 = JsonConvert.DeserializeObject<DataTable>(Parameter);
  575. DataTable uniqueTable = dt1.Clone();
  576. HashSet<string> seen = new HashSet<string>();
  577. for (int i = 0; i < dt1.Rows.Count; i++)
  578. {
  579. string code = dt1.Rows[i]["Code"].ToString();
  580. string sequence = dt1.Rows[i]["Sequence"].ToString();
  581. string identifier = $"{code}-{sequence}";
  582. if (!seen.Contains(identifier))
  583. {
  584. seen.Add(identifier);
  585. uniqueTable.ImportRow(dt1.Rows[i]); // 将当前行添加到 uniqueTable
  586. }
  587. }
  588. string strPrintTempFile = "";
  589. strPrintTempFile = pJson.ShowReport(uniqueTable);
  590. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  591. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  592. string strServerURL = GetUrlPath() + "PrintTemp/";
  593. string strData = strServerURL + strPrintTempFile;
  594. strPrintData = PrintFunction.EnBase64(strData);
  595. var JsonData = new
  596. {
  597. strPrintData_1 = strPrintData,
  598. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  599. strPrintControlCookie_1 = strPrintControlCookie
  600. };
  601. return Content(JsonData.ToJson());
  602. }
  603. [HttpPost]
  604. [HandlerAjaxOnly]
  605. public ActionResult PNMixPrintItemLot(string keyValue, string Parameter)
  606. {
  607. string WorkPoint = "'" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "'";
  608. string sqltxt = "";
  609. var queryParam = keyValue.ToJObject();
  610. List<DbParameter> parameter = new List<DbParameter>();
  611. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  612. List<PrintPara> parasList = new List<PrintPara>();
  613. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  614. string sqlValue = @"select LableSourceID,FileAddress from Sys_Lables where ID='{0}'";
  615. sqlValue = string.Format(sqlValue, Sys_LablesID);
  616. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  617. string LableSourceID = drV["LableSourceID"].ToString();
  618. string FileAddress = drV["FileAddress"].ToString();
  619. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  620. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  621. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  622. where ID='{0}'";
  623. sqlLableDataSource = string.Format(sqlLableDataSource, LableSourceID);
  624. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  625. string LinkCols = string.Empty;
  626. LinkCols = dr["LinkCols"].ToString();
  627. string strPrintFileName = Server.MapPath("/File/LablesFile/") + "" + FileAddress + "";
  628. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  629. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  630. pJson.MasterOptions(1, "Code", false); //主从关系
  631. string strSql = sqltxt;
  632. string strPrintTempFile = "";
  633. DataTable dt1 = JsonConvert.DeserializeObject<DataTable>(Parameter);
  634. DataTable uniqueTable = dt1.Clone();
  635. HashSet<string> seen = new HashSet<string>();
  636. for (int i = 0; i < dt1.Rows.Count; i++)
  637. {
  638. string code = dt1.Rows[i]["Code"].ToString();
  639. string sequence = dt1.Rows[i]["Sequence"].ToString();
  640. string identifier = $"{code}-{sequence}";
  641. if (!seen.Contains(identifier))
  642. {
  643. seen.Add(identifier);
  644. uniqueTable.ImportRow(dt1.Rows[i]); // 将当前行添加到 uniqueTable
  645. }
  646. }
  647. DataTable dtmain = new DataTable();
  648. dtmain.Columns.Add("CreateTime", typeof(string));
  649. dtmain.Columns.Add("Code", typeof(string));
  650. dtmain.Columns.Add("EATTRIBUTE5", typeof(string));
  651. dtmain.Columns.Add("EATTRIBUTE6", typeof(string));
  652. dtmain.Columns.Add("EATTRIBUTE7", typeof(string));
  653. var groups = dt1.AsEnumerable()
  654. .GroupBy(row => new
  655. {
  656. CreateTime = row.Field<string>("CreateTime"),
  657. Code = row.Field<string>("Code"),
  658. EATTRIBUTE5 = row.Field<string>("EATTRIBUTE5"),
  659. EATTRIBUTE6 = row.Field<string>("EATTRIBUTE6"),
  660. EATTRIBUTE7 = row.Field<string>("EATTRIBUTE7")
  661. })
  662. .Select(g => g.Key);
  663. foreach (var group in groups)
  664. {
  665. DataRow newRow = dtmain.NewRow();
  666. newRow["CreateTime"] = group.CreateTime;
  667. newRow["Code"] = group.Code;
  668. newRow["EATTRIBUTE5"] = group.EATTRIBUTE5;
  669. newRow["EATTRIBUTE6"] = group.EATTRIBUTE6;
  670. newRow["EATTRIBUTE7"] = group.EATTRIBUTE7;
  671. dtmain.Rows.Add(newRow);
  672. }
  673. strPrintTempFile = pJson.ShowReport(dtmain, uniqueTable);
  674. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  675. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  676. string strServerURL = GetUrlPath() + "PrintTemp/";
  677. string strData = strServerURL + strPrintTempFile;
  678. strPrintData = PrintFunction.EnBase64(strData);
  679. var JsonData = new
  680. {
  681. strPrintData_1 = strPrintData,
  682. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  683. strPrintControlCookie_1 = strPrintControlCookie
  684. };
  685. return Content(JsonData.ToJson());
  686. }
  687. [HttpPost]
  688. [HandlerAjaxOnly]
  689. public ActionResult BQPrintItemLot(string keyValue, string Parameter)
  690. {
  691. string WorkPoint = "'" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "'";
  692. string sqltxt = "";
  693. Parameter = Parameter.Substring(2, Parameter.Length - 3);
  694. var queryParam = keyValue.ToJObject();
  695. List<DbParameter> parameter = new List<DbParameter>();
  696. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  697. List<PrintPara> parasList = new List<PrintPara>();
  698. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  699. string sqlValue = @"select LableSourceID,FileAddress from Sys_Lables where ID='{0}'";
  700. sqlValue = string.Format(sqlValue, Sys_LablesID);
  701. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  702. string LableSourceID = drV["LableSourceID"].ToString();
  703. string FileAddress = drV["FileAddress"].ToString();
  704. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  705. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  706. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  707. where ID='{0}'";
  708. sqlLableDataSource = string.Format(sqlLableDataSource, LableSourceID);
  709. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  710. #region 打印
  711. //string[] PrintParas = Parameter.Split('|');
  712. //string LinkCols = string.Empty;
  713. //foreach (var p in PrintParas)
  714. //{
  715. // sqltxt = dr["SqlTxt"].ToString();
  716. // LinkCols= dr["LinkCols"].ToString();
  717. // if (dr["Paras"].ToString() != "")
  718. // {
  719. // string[] ps = dr["Paras"].ToString().Split(',');
  720. // for (int i = 0; i < ps.Length; i++)
  721. // {
  722. // if (!string.IsNullOrEmpty(ps[i]))
  723. // {
  724. // sqltxt = sqltxt.Replace(ps[i], p.ToString());
  725. // }
  726. // }
  727. // }
  728. // if (sqltxt.Contains("[WorkPoint]"))
  729. // {
  730. // sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  731. // }
  732. //}
  733. #endregion
  734. string[] PrintParas = Parameter.Split('|');
  735. string LinkCols = string.Empty;
  736. sqltxt = dr["SqlTxt"].ToString();
  737. LinkCols = dr["LinkCols"].ToString();
  738. if (dr["Paras"].ToString() != "")
  739. {
  740. string[] ps = dr["Paras"].ToString().Split(',');
  741. for (int i = 0; i < ps.Length; i++)
  742. {
  743. if (!string.IsNullOrEmpty(ps[i]))
  744. {
  745. sqltxt = sqltxt.Replace(ps[i], PrintParas[i]);
  746. }
  747. }
  748. }
  749. if (sqltxt.Contains("[WorkPoint]"))
  750. {
  751. sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  752. }
  753. string strPrintFileName = Server.MapPath("/File/LablesFile/") + "" + FileAddress + "";
  754. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  755. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  756. if (LinkCols != "")
  757. {
  758. pJson.MasterOptions(1, "" + LinkCols + "", false); //主从关系
  759. }
  760. //pJson.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息
  761. //pJson.AddPrintParam("ShopName", "测试酒楼");
  762. //pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!");
  763. SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
  764. string strSql = sqltxt;
  765. //DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
  766. DataSet dtCashLog = DbHelper.GetDataSet(CommandType.Text, strSql);
  767. DataTable dt1 = null;
  768. DataTable dt2 = null;
  769. DataTable dt3 = null;
  770. string strPrintTempFile = "";
  771. if (dtCashLog.Tables.Count > 0 && dtCashLog.Tables.Count <= 1)
  772. {
  773. dt1 = dtCashLog.Tables[0];
  774. DataTable jieguo = new DataTable();
  775. int dtCashLogCount = dt1.Columns.Count * 2;
  776. for (int s = 1; s < 3; s++)
  777. {
  778. int Count = 0;
  779. foreach (DataColumn column in dt1.Columns)
  780. {
  781. if (Count == dt1.Columns.Count)
  782. {
  783. break;
  784. }
  785. jieguo.Columns.Add(column.ColumnName + s);
  786. Count++;
  787. }
  788. }
  789. string[] array2D = new string[dt1.Rows[0].ItemArray.ToList().Count]; // 假设这是一个3x3的二维数组
  790. int rows = array2D.GetLength(0); // 获取行数
  791. // 添加新行,所有元素设置为"N/A"
  792. for (int i = 0; i < rows; i++)
  793. {
  794. array2D[i] = " ";
  795. }
  796. // 遍历DataTable的每一行
  797. for (int i = 0; i < dt1.Rows.Count; i++)
  798. {
  799. var param = dt1.Rows[i].ItemArray.ToList();
  800. i++;
  801. if (i < dt1.Rows.Count)
  802. {
  803. param.AddRange(dt1.Rows[i].ItemArray.ToList());
  804. }
  805. else
  806. {
  807. param.AddRange(array2D);
  808. }
  809. jieguo.Rows.Add(param.ToArray());
  810. }
  811. strPrintTempFile = pJson.ShowReport(jieguo);
  812. }
  813. if (dtCashLog.Tables.Count > 1 && dtCashLog.Tables.Count <= 2)
  814. {
  815. dt1 = dtCashLog.Tables[0];
  816. dt2 = dtCashLog.Tables[1];
  817. strPrintTempFile = pJson.ShowReport(dt1, dt2);
  818. }
  819. if (dtCashLog.Tables.Count > 2)
  820. {
  821. dt1 = dtCashLog.Tables[0];
  822. dt2 = dtCashLog.Tables[1];
  823. dt3 = dtCashLog.Tables[2];
  824. strPrintTempFile = pJson.ShowReport(dt1, dt2, dt3);
  825. }
  826. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  827. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  828. string strServerURL = GetUrlPath() + "PrintTemp/";
  829. string strData = strServerURL + strPrintTempFile;
  830. strPrintData = PrintFunction.EnBase64(strData);
  831. var JsonData = new
  832. {
  833. strPrintData_1 = strPrintData,
  834. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  835. strPrintControlCookie_1 = strPrintControlCookie
  836. };
  837. //多站点
  838. //string sql = @"UPDATE dbo.ICSInventoryLot
  839. // SET PrintTimes=ISNULL(PrintTimes,0)+1,
  840. // LastPrintUser='',
  841. // LastPrintTime=GETDATE()
  842. // WHERE ID IN (" + keyValue.TrimEnd(',') + ") and WorkPoint in ('" + WorkPoint.TrimEnd(',') + "')";
  843. //SqlHelper.ExecuteNonQuery(sql);
  844. return Content(JsonData.ToJson());
  845. }
  846. /// <summary>
  847. /// 设置控件调用的Cookie值,判断是否安装了打印控件....
  848. /// </summary>
  849. /// <param name="pJson"></param>
  850. private void SetCookieAndURL(PrintJson pJson)
  851. {
  852. bIsInstallPrintControl = false;
  853. strPrintControlCookie = "";
  854. HttpCookie pCookieInstall = Request.Cookies["InstallPrintControl"];
  855. if (pCookieInstall != null)
  856. { //Cookie存在
  857. strPrintControlCookie = pCookieInstall.Value.ToString();
  858. //以Cookie值查找在数据表中是否存在
  859. string strSql = @"Select * From sys_SRM_CheckInstall Where Cookie = @Cookie";
  860. SqlParameter[] pmcCookie = { new SqlParameter("Cookie", strPrintControlCookie) };
  861. using (SqlDataReader drCookie = DbHelper.ExecuteReader(DbHelper.ConnectionString, CommandType.Text, strSql, pmcCookie))
  862. {
  863. if (drCookie.Read())
  864. { //标识为已经安装
  865. bIsInstallPrintControl = true;
  866. }
  867. drCookie.Close();
  868. }
  869. //更新Cookie的保存时间
  870. pCookieInstall.Expires = DateTime.Now.AddYears(10);
  871. Response.SetCookie(pCookieInstall);
  872. }
  873. else
  874. {//Cookie不存在,则新建Cookie
  875. strPrintControlCookie = System.Guid.NewGuid().ToString();
  876. pCookieInstall = new HttpCookie("InstallPrintControl", strPrintControlCookie);
  877. pCookieInstall.Expires = DateTime.Now.AddYears(10);
  878. Response.Cookies.Add(pCookieInstall);
  879. }
  880. string strUrl = Server.MapPath("/PrintTemp/") + "IsCheckInstall";
  881. pJson.SetCookieAndURL(strPrintControlCookie, strUrl);
  882. }
  883. [HttpGet]
  884. public ActionResult SelectColumnName(string BeginTime, string EndTime)
  885. {
  886. var data = App.SelectColumnName(BeginTime, EndTime);
  887. return Content(data.ToJson());
  888. }
  889. [HttpGet]
  890. public ActionResult SelectTableColumnName(string BeginTime, string EndTime)
  891. {
  892. var data = App.SelectTableColumnName(BeginTime, EndTime);
  893. return Content(data.ToJson());
  894. }
  895. [HttpGet]
  896. public ActionResult GetCnValue(string Code)
  897. {
  898. string sql = string.Empty;
  899. try
  900. {
  901. string str = App.GetCnValue(Code);
  902. var JsonData = new
  903. {
  904. content = str
  905. };
  906. return Content(JsonData.ToJson());
  907. }
  908. catch (Exception ex)
  909. {
  910. return Error(ex.Message);
  911. }
  912. }
  913. [HttpGet]
  914. [HandlerAjaxOnly]
  915. public ActionResult updatePrintStatus(string LotNo)
  916. {
  917. string msg = App.updatePrintStatus(LotNo);
  918. if (!string.IsNullOrEmpty(msg))
  919. {
  920. return Error(msg);
  921. }
  922. else
  923. {
  924. return Success("打印人、打印次数、打印时间更新成功!");
  925. }
  926. }
  927. [HttpGet]
  928. [HandlerAjaxOnly]
  929. public ActionResult GetItemDetailsMoid(string keyValue)
  930. {
  931. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  932. var rows = App.GetItemDetailsMoid(keyValue);
  933. return Content(rows.ToJson());
  934. }
  935. //打印
  936. [HttpPost]
  937. [HandlerAjaxOnly]
  938. public ActionResult PrintItemLotTwoPrint(string keyValue, string Parameter)
  939. {
  940. string WorkPoint = "'" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "'";
  941. string sqltxt = "";
  942. Parameter = Parameter.Substring(1, Parameter.Length - 3);
  943. var queryParam = keyValue.ToJObject();
  944. List<DbParameter> parameter = new List<DbParameter>();
  945. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  946. List<PrintPara> parasList = new List<PrintPara>();
  947. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  948. string sqlValue = @"select LableSourceID,FileAddress from Sys_Lables where ID='{0}'";
  949. sqlValue = string.Format(sqlValue, Sys_LablesID);
  950. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  951. string LableSourceID = drV["LableSourceID"].ToString();
  952. string FileAddress = drV["FileAddress"].ToString();
  953. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  954. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  955. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  956. where ID='{0}'";
  957. sqlLableDataSource = string.Format(sqlLableDataSource, LableSourceID);
  958. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  959. #region 打印
  960. //string[] PrintParas = Parameter.Split('|');
  961. //string LinkCols = string.Empty;
  962. //foreach (var p in PrintParas)
  963. //{
  964. // sqltxt = dr["SqlTxt"].ToString();
  965. // LinkCols= dr["LinkCols"].ToString();
  966. // if (dr["Paras"].ToString() != "")
  967. // {
  968. // string[] ps = dr["Paras"].ToString().Split(',');
  969. // for (int i = 0; i < ps.Length; i++)
  970. // {
  971. // if (!string.IsNullOrEmpty(ps[i]))
  972. // {
  973. // sqltxt = sqltxt.Replace(ps[i], p.ToString());
  974. // }
  975. // }
  976. // }
  977. // if (sqltxt.Contains("[WorkPoint]"))
  978. // {
  979. // sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  980. // }
  981. //}
  982. #endregion
  983. string[] PrintParas = Parameter.Split('|');
  984. string LinkCols = string.Empty;
  985. sqltxt = dr["SqlTxt"].ToString();
  986. LinkCols = dr["LinkCols"].ToString();
  987. if (dr["Paras"].ToString() != "")
  988. {
  989. string[] ps = dr["Paras"].ToString().Split(',');
  990. for (int i = 0; i < ps.Length; i++)
  991. {
  992. if (!string.IsNullOrEmpty(ps[i]))
  993. {
  994. sqltxt = sqltxt.Replace(ps[i], PrintParas[i]);
  995. }
  996. }
  997. }
  998. if (sqltxt.Contains("[WorkPoint]"))
  999. {
  1000. sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  1001. }
  1002. string strPrintFileName = Server.MapPath("/File/LablesFile/") + "" + FileAddress + "";
  1003. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  1004. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  1005. if (LinkCols != "")
  1006. {
  1007. pJson.MasterOptions(1, "" + LinkCols + "", false); //主从关系
  1008. }
  1009. //pJson.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息
  1010. //pJson.AddPrintParam("ShopName", "测试酒楼");
  1011. //pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!");
  1012. SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
  1013. string strSql = sqltxt;
  1014. //DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
  1015. DataSet dtCashLog = DbHelper.GetDataSet(CommandType.Text, strSql);
  1016. DataTable dt1 = null;
  1017. DataTable dt2 = null;
  1018. DataTable dt3 = null;
  1019. string strPrintTempFile = "";
  1020. if (dtCashLog.Tables.Count > 0 && dtCashLog.Tables.Count <= 1)
  1021. {
  1022. dt1 = dtCashLog.Tables[0];
  1023. DataTable jieguo = new DataTable();
  1024. int dtCashLogCount = dt1.Columns.Count * 2;
  1025. for (int s = 1; s < 3; s++)
  1026. {
  1027. int Count = 0;
  1028. foreach (DataColumn column in dt1.Columns)
  1029. {
  1030. if (Count == dt1.Columns.Count)
  1031. {
  1032. break;
  1033. }
  1034. jieguo.Columns.Add(column.ColumnName + s);
  1035. Count++;
  1036. }
  1037. }
  1038. string[] array2D = new string[dt1.Rows[0].ItemArray.ToList().Count]; // 假设这是一个3x3的二维数组
  1039. int rows = array2D.GetLength(0); // 获取行数
  1040. // 添加新行,所有元素设置为"N/A"
  1041. for (int i = 0; i < rows; i++)
  1042. {
  1043. array2D[i] = " ";
  1044. }
  1045. // 遍历DataTable的每一行
  1046. for (int i = 0; i < dt1.Rows.Count; i++)
  1047. {
  1048. var param = dt1.Rows[i].ItemArray.ToList();
  1049. i++;
  1050. if (i < dt1.Rows.Count)
  1051. {
  1052. param.AddRange(dt1.Rows[i].ItemArray.ToList());
  1053. }
  1054. else
  1055. {
  1056. param.AddRange(array2D);
  1057. }
  1058. jieguo.Rows.Add(param.ToArray());
  1059. }
  1060. strPrintTempFile = pJson.ShowReport(jieguo);
  1061. }
  1062. if (dtCashLog.Tables.Count > 1 && dtCashLog.Tables.Count <= 2)
  1063. {
  1064. dt1 = dtCashLog.Tables[0];
  1065. dt2 = dtCashLog.Tables[1];
  1066. strPrintTempFile = pJson.ShowReport(dt1, dt2);
  1067. }
  1068. if (dtCashLog.Tables.Count > 2)
  1069. {
  1070. dt1 = dtCashLog.Tables[0];
  1071. dt2 = dtCashLog.Tables[1];
  1072. dt3 = dtCashLog.Tables[2];
  1073. strPrintTempFile = pJson.ShowReport(dt1, dt2, dt3);
  1074. }
  1075. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  1076. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  1077. string strServerURL = GetUrlPath() + "PrintTemp/";
  1078. string strData = strServerURL + strPrintTempFile;
  1079. strPrintData = PrintFunction.EnBase64(strData);
  1080. var JsonData = new
  1081. {
  1082. strPrintData_1 = strPrintData,
  1083. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  1084. strPrintControlCookie_1 = strPrintControlCookie
  1085. };
  1086. //多站点
  1087. //string sql = @"UPDATE dbo.ICSInventoryLot
  1088. // SET PrintTimes=ISNULL(PrintTimes,0)+1,
  1089. // LastPrintUser='',
  1090. // LastPrintTime=GETDATE()
  1091. // WHERE ID IN (" + keyValue.TrimEnd(',') + ") and WorkPoint in ('" + WorkPoint.TrimEnd(',') + "')";
  1092. //SqlHelper.ExecuteNonQuery(sql);
  1093. return Content(JsonData.ToJson());
  1094. }
  1095. //条码打印(专属)
  1096. [HttpPost]
  1097. [HandlerAjaxOnly]
  1098. public ActionResult PrintByLot(string keyValue, string Parameter)
  1099. {
  1100. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1101. string WorkPoint = "'" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "'";
  1102. string sqltxt = "";
  1103. Parameter = Parameter.Substring(1, Parameter.Length - 3);
  1104. var queryParam = keyValue.ToJObject();
  1105. List<DbParameter> parameter = new List<DbParameter>();
  1106. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  1107. List<PrintPara> parasList = new List<PrintPara>();
  1108. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  1109. string sqlValue = @"select LableSourceID,FileAddress,LableCode,LableName from Sys_Lables where ID='{0}'";
  1110. sqlValue = string.Format(sqlValue, Sys_LablesID);
  1111. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  1112. string LableSourceID = drV["LableSourceID"].ToString();
  1113. string FileAddress = drV["FileAddress"].ToString();
  1114. string LableCode = drV["LableCode"].ToString();
  1115. string LableName = drV["LableName"].ToString();
  1116. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  1117. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  1118. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  1119. where ID='{0}'";
  1120. sqlLableDataSource = string.Format(sqlLableDataSource, LableSourceID);
  1121. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  1122. #region 打印
  1123. //string[] PrintParas = Parameter.Split('|');
  1124. //string LinkCols = string.Empty;
  1125. //foreach (var p in PrintParas)
  1126. //{
  1127. // sqltxt = dr["SqlTxt"].ToString();
  1128. // LinkCols= dr["LinkCols"].ToString();
  1129. // if (dr["Paras"].ToString() != "")
  1130. // {
  1131. // string[] ps = dr["Paras"].ToString().Split(',');
  1132. // for (int i = 0; i < ps.Length; i++)
  1133. // {
  1134. // if (!string.IsNullOrEmpty(ps[i]))
  1135. // {
  1136. // sqltxt = sqltxt.Replace(ps[i], p.ToString());
  1137. // }
  1138. // }
  1139. // }
  1140. // if (sqltxt.Contains("[WorkPoint]"))
  1141. // {
  1142. // sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  1143. // }
  1144. //}
  1145. #endregion
  1146. var PrintValue = Parameter.Split('|');
  1147. string[] ValueParameters = PrintValue[0].Split(',');
  1148. string[] PrintParas = Parameter.Split('|');
  1149. string LinkCols = string.Empty;
  1150. sqltxt = dr["SqlTxt"].ToString();
  1151. LinkCols = dr["LinkCols"].ToString();
  1152. string SourceName = dr["SourceName"].ToString();
  1153. string Paras = dr["Paras"].ToString();
  1154. if (dr["Paras"].ToString() != "")
  1155. {
  1156. string[] ps = dr["Paras"].ToString().Split(',');
  1157. for (int i = 0; i < ps.Length; i++)
  1158. {
  1159. if (!string.IsNullOrEmpty(ps[i]))
  1160. {
  1161. sqltxt = sqltxt.Replace(ps[i], PrintParas[i]);
  1162. }
  1163. }
  1164. }
  1165. if (sqltxt.Contains("[WorkPoint]"))
  1166. {
  1167. sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  1168. }
  1169. string strPrintFileName = Server.MapPath("/File/LablesFile/") + "" + FileAddress + "";
  1170. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  1171. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  1172. if (LinkCols != "")
  1173. {
  1174. pJson.MasterOptions(1, "" + LinkCols + "", false); //主从关系
  1175. }
  1176. //pJson.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息
  1177. //pJson.AddPrintParam("ShopName", "测试酒楼");
  1178. //pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!");
  1179. SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
  1180. string strSql = sqltxt;
  1181. //DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
  1182. DataSet dtCashLog = DbHelper.GetDataSet(CommandType.Text, strSql);
  1183. DataTable dt1 = null;
  1184. DataTable dt2 = null;
  1185. DataTable dt3 = null;
  1186. string strPrintTempFile = "";
  1187. if (dtCashLog.Tables.Count > 0 && dtCashLog.Tables.Count <= 1)
  1188. {
  1189. dt1 = dtCashLog.Tables[0];
  1190. strPrintTempFile = pJson.ShowReport(dt1);
  1191. }
  1192. if (dtCashLog.Tables.Count > 1 && dtCashLog.Tables.Count <= 2)
  1193. {
  1194. dt1 = dtCashLog.Tables[0];
  1195. dt2 = dtCashLog.Tables[1];
  1196. strPrintTempFile = pJson.ShowReport(dt1, dt2);
  1197. }
  1198. if (dtCashLog.Tables.Count > 2)
  1199. {
  1200. dt1 = dtCashLog.Tables[0];
  1201. dt2 = dtCashLog.Tables[1];
  1202. dt3 = dtCashLog.Tables[2];
  1203. strPrintTempFile = pJson.ShowReport(dt1, dt2, dt3);
  1204. }
  1205. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  1206. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  1207. string strServerURL = GetUrlPath() + "PrintTemp/";
  1208. string strData = strServerURL + strPrintTempFile;
  1209. strPrintData = PrintFunction.EnBase64(strData);
  1210. var JsonData = new
  1211. {
  1212. strPrintData_1 = strPrintData,
  1213. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  1214. strPrintControlCookie_1 = strPrintControlCookie
  1215. };
  1216. string sql = string.Empty;
  1217. for (int i = 0; i < ValueParameters.Length; i++)
  1218. {
  1219. // 打印记录
  1220. sql += @"insert into Sys_LableTask (ID, LableCode, LableName, PrintTableID, PrintTableName, PrintKey, ValueParameters, PrintDate, PrintUserCode, WorkPoint)
  1221. values(newid(),'{0}','{1}','{2}','{3}','{4}',{5},getdate(),'{6}',{7})";
  1222. //修改条码表打印信息
  1223. sql += @"UPDATE dbo.ICSInventoryLot
  1224. SET PrintTimes=ISNULL(PrintTimes,0)+1,
  1225. LastPrintUser='" + MUSER + @"',
  1226. LastPrintTime=GETDATE()
  1227. WHERE ID = " + ValueParameters[i].ToString() + " and WorkPoint =" + WorkPoint + "";
  1228. sql = string.Format(sql, LableCode, LableName, LableSourceID, SourceName, Paras, ValueParameters[i].ToString(), MUSER, WorkPoint);
  1229. }
  1230. SqlHelper.CmdExecuteNonQueryLi(sql);
  1231. return Content(JsonData.ToJson());
  1232. }
  1233. //打印
  1234. [HttpPost]
  1235. [HandlerAjaxOnly]
  1236. public ActionResult PrintByStatements(string keyValue, string Parameter)
  1237. {
  1238. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1239. string WorkPoint = "'" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "'";
  1240. string sqltxt = "";
  1241. Parameter = Parameter.Substring(2, Parameter.Length - 3);
  1242. var queryParam = keyValue.ToJObject();
  1243. List<DbParameter> parameter = new List<DbParameter>();
  1244. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  1245. List<PrintPara> parasList = new List<PrintPara>();
  1246. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  1247. string sqlValue = @"select LableSourceID,FileAddress,LableCode,LableName from Sys_Lables where ID='{0}'";
  1248. sqlValue = string.Format(sqlValue, Sys_LablesID);
  1249. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  1250. string LableSourceID = drV["LableSourceID"].ToString();
  1251. string FileAddress = drV["FileAddress"].ToString();
  1252. string LableCode = drV["LableCode"].ToString();
  1253. string LableName = drV["LableName"].ToString();
  1254. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  1255. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  1256. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  1257. where ID='{0}'";
  1258. sqlLableDataSource = string.Format(sqlLableDataSource, LableSourceID);
  1259. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  1260. #region 打印
  1261. //string[] PrintParas = Parameter.Split('|');
  1262. //string LinkCols = string.Empty;
  1263. //foreach (var p in PrintParas)
  1264. //{
  1265. // sqltxt = dr["SqlTxt"].ToString();
  1266. // LinkCols= dr["LinkCols"].ToString();
  1267. // if (dr["Paras"].ToString() != "")
  1268. // {
  1269. // string[] ps = dr["Paras"].ToString().Split(',');
  1270. // for (int i = 0; i < ps.Length; i++)
  1271. // {
  1272. // if (!string.IsNullOrEmpty(ps[i]))
  1273. // {
  1274. // sqltxt = sqltxt.Replace(ps[i], p.ToString());
  1275. // }
  1276. // }
  1277. // }
  1278. // if (sqltxt.Contains("[WorkPoint]"))
  1279. // {
  1280. // sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  1281. // }
  1282. //}
  1283. #endregion
  1284. var PrintValue = Parameter.Split('|');
  1285. string[] ValueParameters = PrintValue[0].Split(',');
  1286. string[] PrintParas = Parameter.Split('|');
  1287. string LinkCols = string.Empty;
  1288. sqltxt = dr["SqlTxt"].ToString();
  1289. LinkCols = dr["LinkCols"].ToString();
  1290. string SourceName = dr["SourceName"].ToString();
  1291. string Paras = dr["Paras"].ToString();
  1292. if (dr["Paras"].ToString() != "")
  1293. {
  1294. string[] ps = dr["Paras"].ToString().Split(',');
  1295. for (int i = 0; i < ps.Length; i++)
  1296. {
  1297. if (!string.IsNullOrEmpty(ps[i]))
  1298. {
  1299. sqltxt = sqltxt.Replace(ps[i], PrintParas[i]);
  1300. }
  1301. }
  1302. }
  1303. if (sqltxt.Contains("[WorkPoint]"))
  1304. {
  1305. sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  1306. }
  1307. string strPrintFileName = Server.MapPath("/File/LablesFile/") + "" + FileAddress + "";
  1308. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  1309. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  1310. if (LinkCols != "")
  1311. {
  1312. pJson.MasterOptions(1, "" + LinkCols + "", false); //主从关系
  1313. }
  1314. //pJson.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息
  1315. //pJson.AddPrintParam("ShopName", "测试酒楼");
  1316. //pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!");
  1317. SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
  1318. string strSql = sqltxt;
  1319. //DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
  1320. DataSet dtCashLog = DbHelper.GetDataSet(CommandType.Text, strSql);
  1321. DataTable dt1 = null;
  1322. DataTable dt2 = null;
  1323. DataTable dt3 = null;
  1324. string strPrintTempFile = "";
  1325. if (dtCashLog.Tables.Count > 0 && dtCashLog.Tables.Count <= 1)
  1326. {
  1327. dt1 = dtCashLog.Tables[0];
  1328. strPrintTempFile = pJson.ShowReport(dt1);
  1329. }
  1330. if (dtCashLog.Tables.Count > 1 && dtCashLog.Tables.Count <= 2)
  1331. {
  1332. dt1 = dtCashLog.Tables[0];
  1333. dt2 = dtCashLog.Tables[1];
  1334. strPrintTempFile = pJson.ShowReport(dt1, dt2);
  1335. }
  1336. if (dtCashLog.Tables.Count > 2)
  1337. {
  1338. dt1 = dtCashLog.Tables[0];
  1339. dt2 = dtCashLog.Tables[1];
  1340. dt3 = dtCashLog.Tables[2];
  1341. strPrintTempFile = pJson.ShowReport(dt1, dt2, dt3);
  1342. }
  1343. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  1344. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  1345. string strServerURL = GetUrlPath() + "PrintTemp/";
  1346. string strData = strServerURL + strPrintTempFile;
  1347. strPrintData = PrintFunction.EnBase64(strData);
  1348. var JsonData = new
  1349. {
  1350. strPrintData_1 = strPrintData,
  1351. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  1352. strPrintControlCookie_1 = strPrintControlCookie
  1353. };
  1354. string sql = string.Empty;
  1355. for (int i = 0; i < ValueParameters.Length; i++)
  1356. {
  1357. // 打印记录
  1358. sql += @"insert into Sys_LableTask (ID, LableCode, LableName, PrintTableID, PrintTableName, PrintKey, ValueParameters, PrintDate, PrintUserCode, WorkPoint)
  1359. values(newid(),'{0}','{1}','{2}','{3}','{4}',{5},getdate(),'{6}',{7})";
  1360. sql = string.Format(sql, LableCode, LableName, LableSourceID, SourceName, Paras, ValueParameters[i].ToString(), MUSER, WorkPoint);
  1361. }
  1362. SqlHelper.CmdExecuteNonQueryLi(sql);
  1363. //多站点
  1364. //string sql = @"UPDATE dbo.ICSInventoryLot
  1365. // SET PrintTimes=ISNULL(PrintTimes,0)+1,
  1366. // LastPrintUser='',
  1367. // LastPrintTime=GETDATE()
  1368. // WHERE ID IN (" + keyValue.TrimEnd(',') + ") and WorkPoint in ('" + WorkPoint.TrimEnd(',') + "')";
  1369. //SqlHelper.ExecuteNonQuery(sql);
  1370. return Content(JsonData.ToJson());
  1371. }
  1372. }
  1373. }