frmEcSettlCertUpload.cs 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476
  1. using System;
  2. using System.Data;
  3. using System.Windows.Forms;
  4. using Newtonsoft.Json.Linq;
  5. using PTMedicalInsurance.Variables;
  6. using PTMedicalInsurance.Helper;
  7. using PTMedicalInsurance.FormSetter;
  8. using System.Net;
  9. using System.IO;
  10. using System.Diagnostics;
  11. namespace PTMedicalInsurance.Forms
  12. {
  13. public partial class frmEcSettlCertUpload : Form
  14. {
  15. private DataTable dtEcSettlCertList;
  16. private InvokeHelper invoker = new InvokeHelper();
  17. public frmEcSettlCertUpload()
  18. {
  19. InitializeComponent();
  20. }
  21. private void frmEcSettlCertUpload_Load(object sender, EventArgs e)
  22. {
  23. this.WindowState = FormWindowState.Maximized;
  24. Global.curEvt.URL = @"http://10.1.12.18:17081/ybCommService/v1/func"; //正式环境
  25. Global.inf.SK = "6353F58575D242CC99F84E231578F756"; //电子票据上传接口 SM4加解密密钥
  26. GridViewSetter gvs = new GridViewSetter();
  27. gvs.setDgvEcSettlCertList(dgvEcSettlCertList);
  28. dpST.Text = DateTime.Now.ToString("yyyy-MM-dd");
  29. dpED.Value = DateTime.Now.AddDays(1 - DateTime.Now.Day).AddMonths(1).AddDays(-1);
  30. }
  31. private void btnClose_3_Click(object sender, EventArgs e)
  32. {
  33. this.Close();
  34. }
  35. private void btnQuery_Click(object sender, EventArgs e)
  36. {
  37. JObject joIn = new JObject();
  38. joIn.Add("BeginDate", dpST.Value.ToString("yyyy-MM-dd HH:mm:ss"));
  39. joIn.Add("EndDate", dpED.Value.ToString("yyyy-MM-dd HH:mm:ss"));
  40. joIn.Add("HospDr", Global.inf.hospitalDr);
  41. joIn.Add("PatName", tbName.Text);
  42. joIn.Add("InvNo", tbInvNO.Text);
  43. joIn.Add("InterfaceID", Global.inf.interfaceDr);
  44. JObject joHisRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110040", joIn).ToString(), "查询某时间段内或某患者电子结算凭证清单"); //测试服为05110038
  45. string errMsg;
  46. if (JsonHelper.parseIrisRtnValue(joHisRtn, out errMsg) != 0)
  47. {
  48. MessageBox.Show("查询某时间段内或某患者电子结算凭证清单失败!" + errMsg);
  49. return;
  50. }
  51. JArray jaData = JArray.Parse(JsonHelper.getDestValue(joHisRtn, "data"));
  52. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010128", jaData).ToString(), "根据传入的电子凭证记录匹配上传记录表");
  53. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  54. {
  55. MessageBox.Show("根据传入的电子凭证记录匹配上传记录表!" + errMsg);
  56. return;
  57. }
  58. dtEcSettlCertList = (DataTable)joRtn["data"].ToObject(typeof(DataTable));
  59. dgvEcSettlCertList.DataSource = dtEcSettlCertList;
  60. }
  61. private int ConvertPDFurlToBase64(string invNo, string pdfUrl,out string base64PDF,out string errMsg)
  62. {
  63. errMsg = ""; base64PDF = "";
  64. string SavePath = Global.curEvt.path + @"\PDF\"+ invNo+".pdf";
  65. try
  66. {
  67. //创建PDF文件夹
  68. if (!Directory.Exists(Global.curEvt.path + @"\PDF\"))
  69. {
  70. Directory.CreateDirectory(Global.curEvt.path + @"\PDF\");
  71. }
  72. using (WebClient client = new WebClient())
  73. {
  74. byte[] fileData = client.DownloadData(pdfUrl); // 下载文件数据到字节数组中
  75. File.WriteAllBytes(SavePath, fileData); // 将字节数组写入文件系统
  76. //Console.WriteLine("文件已保存到: " + SavePath);
  77. }
  78. base64PDF = ConvertPdfToBase64(SavePath);
  79. //Console.WriteLine(base64String);
  80. if (base64PDF == "")
  81. return -1;
  82. else
  83. return 0;
  84. }
  85. catch(Exception ex)
  86. {
  87. errMsg = ex.ToString();
  88. return -1;
  89. }
  90. }
  91. private string ConvertPdfToBase64(string filePath)
  92. {
  93. try
  94. {
  95. // 读取PDF文件为字节数组
  96. byte[] pdfBytes = File.ReadAllBytes(filePath);
  97. // 将字节数组转换为Base64字符串
  98. string base64String = Convert.ToBase64String(pdfBytes);
  99. return base64String;
  100. }
  101. catch (Exception ex)
  102. {
  103. Console.WriteLine("Error: " + ex.Message);
  104. return null;
  105. }
  106. }
  107. public static void PreviewPdfInBrowser(string base64String)
  108. {
  109. try
  110. {
  111. byte[] pdfBytes = Convert.FromBase64String(base64String);
  112. string tempFilePath = Path.GetTempFileName() + ".pdf";
  113. File.WriteAllBytes(tempFilePath, pdfBytes);
  114. // 使用默认浏览器打开PDF
  115. Process.Start(new ProcessStartInfo
  116. {
  117. FileName = tempFilePath,
  118. UseShellExecute = true
  119. });
  120. // 延迟删除临时文件(给浏览器时间加载)
  121. System.Threading.Tasks.Task.Delay(5000).ContinueWith(t =>
  122. {
  123. try { File.Delete(tempFilePath); } catch { }
  124. });
  125. }
  126. catch (Exception ex)
  127. {
  128. throw new Exception($"预览PDF时出错: {ex.Message}", ex);
  129. }
  130. }
  131. /// <summary>
  132. /// 成功后更新通用上传记录表
  133. /// </summary>
  134. /// <param name="joIn"></param>
  135. /// <returns></returns>
  136. public JObject Update(JObject joIn)
  137. {
  138. //JoIn包含 起止时间,医院ID,接口ID,患者姓名,患者数电号
  139. JObject joInTmp = JsonHelper.setIrisInpar("02020007", joIn);
  140. joInTmp["session"][0]["userID"] = "166";
  141. joInTmp["session"][0]["hospID"] = Global.inf.hospitalDr;
  142. JObject joRtn = invoker.invokeInsuService(joInTmp.ToString(), "更新通用记录表");
  143. return joRtn;
  144. }
  145. private void btnBatchUpload_Click(object sender, EventArgs e)
  146. {
  147. EcSettlBillUpload();
  148. }
  149. public void EcSettlBillUpload()
  150. {
  151. if ((DataTable)dgvEcSettlCertList.DataSource == null)
  152. {
  153. MessageBox.Show("请先查询电子发票信息信息!");
  154. return;
  155. }
  156. string errMsg, base64PDF;
  157. string CureType = "0", Status;
  158. JObject joRtn = new JObject();
  159. int i = dgvEcSettlCertList.CurrentRow.Index;
  160. string PrintPaymentInvDr = dtEcSettlCertList.Rows[i]["PrintPaymentInvDr"].ToString();
  161. string InvNo = dtEcSettlCertList.Rows[i]["InvNo"].ToString();
  162. string InsuTradeNo = dtEcSettlCertList.Rows[i]["InsuTradeNo"].ToString();
  163. string InvoiceFileUrl = dtEcSettlCertList.Rows[i]["InvoiceFileUrl"].ToString(); //发票PDF地址
  164. string PrintDate = dtEcSettlCertList.Rows[i]["PrintDate"].ToString();
  165. string PrintTime = dtEcSettlCertList.Rows[i]["PrintTime"].ToString();
  166. string AdmDesc = dtEcSettlCertList.Rows[i]["AdmDesc"].ToString();
  167. string StatusDesc = dtEcSettlCertList.Rows[i]["StatusDesc"].ToString();
  168. string HospDr = dtEcSettlCertList.Rows[i]["HospDr"].ToString();
  169. decimal BliAmt = decimal.Parse(dtEcSettlCertList.Rows[i]["PatAmount"].ToString());
  170. string HisBizNo = "0515500901" + DateTime.Now.ToString("yyyyMMdd") + DateTime.Now.ToString("HHmmss") + "99" + DateTime.Now.ToString("ffff");
  171. if (AdmDesc == "门诊")
  172. CureType = "0";
  173. else if (AdmDesc == "住院")
  174. CureType = "1";
  175. if (StatusDesc == "正常")
  176. Status = "0";
  177. else if (StatusDesc == "作废")
  178. Status = "1";
  179. else
  180. Status = "3";
  181. if (ConvertPDFurlToBase64(InvNo, InvoiceFileUrl, out base64PDF, out errMsg) != 0)
  182. {
  183. MessageBox.Show("将发票PDF文件转换为base64格式失败!" + errMsg);
  184. return;
  185. }
  186. //获取HIS 原始入参
  187. JObject jo = new JObject();
  188. jo.Add("InvNo", InvNo);
  189. jo.Add("PrintPaymentInvDr", PrintPaymentInvDr);
  190. jo.Add("HospDr", HospDr);
  191. //JoIn包含 患者数电号
  192. joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110041", jo).ToString(), "获取该数电号对应的数电入参"); //测试服05110039
  193. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  194. {
  195. errMsg = ("获取该数电号对应的数电入参失败:" + errMsg);
  196. MessageBox.Show(errMsg);
  197. return;
  198. }
  199. JObject joUpList = JObject.Parse(JsonHelper.getDestValue(joRtn, "data.upldDetlList[0]"));
  200. string ELEC_SETL_CERT_CODE = JsonHelper.getDestValue(joUpList, "elecSetlCertCode");
  201. string ELEC_SETL_CERT_NO = JsonHelper.getDestValue(joUpList, "elecSetlCertNo");
  202. string ELEC_SETL_CERT_CHK_CODE = JsonHelper.getDestValue(joUpList, "elecSetlCertChkcode");
  203. string ELEC_SETL_CERT_TYPE = JsonHelper.getDestValue(joUpList, "elecSetlCertType");
  204. JObject joElecSetInfo = new JObject();
  205. joElecSetInfo.Add("ELEC_SETL_CERT_CODE", ELEC_SETL_CERT_CODE); //电子结算凭证代码 电子结算凭证类型为1-财政电子票据、2-税务电子发票时必填;电子结算凭证类型为3-税务数电票时非必填
  206. joElecSetInfo.Add("ELEC_SETL_CERT_NO", ELEC_SETL_CERT_NO); //电子结算凭证号码
  207. joElecSetInfo.Add("ELEC_SETL_CERT_CHK_CODE", ELEC_SETL_CERT_CHK_CODE); //电子结算凭证校验码 电子结算凭证类型为1-财政电子票据、2-税务电子发票时必填;电子结算凭证类型为3 - 税务数电票时非必填
  208. joElecSetInfo.Add("ELEC_SETL_CERT_TYPE", ELEC_SETL_CERT_TYPE); //电子结算凭证类型 1-财政电子票据2-税务电子发票3-税务数电票
  209. joElecSetInfo.Add("ELEC_SETL_CERT_FLAG", Status); //电子结算凭证标识 0-正常票1-冲红票3-税务数电票
  210. joElecSetInfo.Add("REL_ELEC_SETL_CERT_CODE", ""); //相关电子结算凭证代码 原电子结算凭证代码 冲红票必填
  211. joElecSetInfo.Add("REL_ELEC_SETL_CERT_NO", ""); //相关电子结算凭证号码 原电子结算凭证号码 冲红票必填
  212. joElecSetInfo.Add("BILLER", ""); //开票人
  213. joElecSetInfo.Add("RECHKER", ""); //复核人
  214. joElecSetInfo.Add("BILL_AMT", BliAmt); //开票金额
  215. joElecSetInfo.Add("BILL_DATE", PrintDate); //开票日期
  216. joElecSetInfo.Add("BILL_TIME", PrintTime); //开票时间
  217. JObject joInput = new JObject();
  218. joInput.Add("TRADE_NO", InsuTradeNo); //医保交易流水号
  219. joInput.Add("HIS_BIZ_NO", HisBizNo); //医院业务流水号 格式:10位院区编码 + yyyyMMdd(8位日期) + HHmmss(6位时分秒) + 6位序号
  220. joInput.Add("CURE_TYPE", CureType); //医疗类别 0:门诊类(包含普通门急诊)1:住院类
  221. joInput.Add("ELECT_MEDIUM_TYPE", "1"); //1-PDF 2-OFD 3-XML
  222. joInput.Add("ELECT_XML_TYPE", "1"); //0-带XML信息1-不带XML信息电子票据介质类型为OFD或XML时,此字段固定传1(不带XML信息),PDF类型根据实际情况传入
  223. joInput.Add("ELECT_SETL_INFO", joElecSetInfo); //电子结算凭证信息
  224. joInput.Add("ELECT_INVOICE", base64PDF); //将电子发票(PDF格式)的流进行BASE64转码后,所得到的字符串
  225. //上传给中心
  226. string sInput = JsonHelper.setCenterInpar_SX("0301", joInput.ToString());
  227. joRtn = invoker.invokeCenterService_InvNO("0301", sInput);
  228. if (joRtn["ret_code"].ToString() != "0")
  229. {
  230. MessageBox.Show(joRtn["ret_msg"].ToString());
  231. return;
  232. }
  233. else
  234. {
  235. string out_data = joRtn["out_data"].ToString();
  236. //对返回值进行解密
  237. string encryptString = JsonHelper.DecryptCenterOutPut(out_data, Global.inf.SK);
  238. JObject joElectStatus = JObject.Parse(JsonHelper.ExtractJson(encryptString));
  239. string Elect_Status = JsonHelper.getDestValue(joElectStatus, "Elect_Status");
  240. if (Elect_Status != "1")
  241. {
  242. MessageBox.Show("调用医保电子票据信息上传接口(报文编号0301)上传失败!");
  243. return;
  244. }
  245. else
  246. {
  247. //更新上传记录表
  248. JObject joUpdateIn = new JObject();
  249. joUpdateIn.Add("businessCode", "EcSettlCertUpload");
  250. joUpdateIn.Add("businessID", InvNo);
  251. joUpdateIn.Add("memo", HisBizNo);
  252. joUpdateIn.Add("input", JObject.Parse(sInput));
  253. joRtn["errorCode"] = new JObject();
  254. joRtn["errorCode"] = 0;
  255. joUpdateIn.Add("output", joRtn);
  256. JObject joUpdateRtn = Update(joUpdateIn);
  257. if (JsonHelper.parseIrisRtnValue(joUpdateRtn, out errMsg) != 0)
  258. MessageBox.Show("医保电子票据信息上传成功,但更新后台失败:" + errMsg);
  259. else
  260. MessageBox.Show("医保电子票据信息上传成功!");
  261. }
  262. }
  263. }
  264. public void EcSettlLisGenerationStatus()
  265. {
  266. if ((DataTable)dgvEcSettlCertList.DataSource == null)
  267. {
  268. MessageBox.Show("请先查询电子发票信息!");
  269. return;
  270. }
  271. int i = dgvEcSettlCertList.CurrentRow.Index;
  272. string InvNo = dtEcSettlCertList.Rows[i]["InvNo"].ToString();
  273. string HisBizNo = dtEcSettlCertList.Rows[i]["UpldBchno"].ToString(); //上传批次号-医院业务流水号(0301)
  274. if (string.IsNullOrEmpty(HisBizNo))
  275. {
  276. MessageBox.Show("请先医保电子票据信息上传(报文编号0301)!");
  277. return;
  278. }
  279. JObject joInput = new JObject();
  280. joInput.Add("HIS_BIZ_NO", HisBizNo); //医院业务流水号(0301)
  281. //上传给中心
  282. string sInput = JsonHelper.setCenterInpar_SX("0304", joInput.ToString());
  283. JObject joRtn = invoker.invokeCenterService_InvNO("0304", sInput);
  284. if (joRtn["ret_code"].ToString() != "0")
  285. {
  286. MessageBox.Show("调用医保电子结算清单生成状态查询(报文编号0304)失败:" + joRtn["ret_msg"].ToString());
  287. return;
  288. }
  289. else
  290. {
  291. //对返回值进行解密
  292. string out_data = joRtn["out_data"].ToString();
  293. string encryptString = JsonHelper.DecryptCenterOutPut(out_data, Global.inf.SK);
  294. JObject joElectStatus = JObject.Parse(JsonHelper.ExtractJson(encryptString));
  295. string HIS_BIZ_NO = JsonHelper.getDestValue(joElectStatus, "HIS_BIZ_NO"); //医院业务流水号
  296. string ELEC_SSR_CODE = JsonHelper.getDestValue(joElectStatus, "ELEC_SSR_CODE"); //医保结算清单获取码
  297. string BIZ_STATUS = JsonHelper.getDestValue(joElectStatus, "BIZ_STATUS"); //处理状态 0-处理中1-已完成
  298. if (BIZ_STATUS == "0")
  299. {
  300. MessageBox.Show("医保电子结算清单生成状态-【0】-处理中,请稍后重新查询!");
  301. return;
  302. }
  303. else
  304. if (BIZ_STATUS == "1")
  305. {
  306. //MessageBox.Show("医保电子结算清单生成状态-【1】-已完成");
  307. //更新上传记录表
  308. JObject joUpdateIn = new JObject();
  309. joUpdateIn.Add("businessCode", "EcSettlLisGenerationStatus");
  310. joUpdateIn.Add("businessID", InvNo);
  311. joUpdateIn.Add("memo", ELEC_SSR_CODE);
  312. joUpdateIn.Add("input", JObject.Parse(sInput));
  313. joRtn["errorCode"] = new JObject();
  314. joRtn["errorCode"] = 0;
  315. joUpdateIn.Add("output", joRtn);
  316. JObject joUpdateRtn = Update(joUpdateIn);
  317. if (JsonHelper.parseIrisRtnValue(joUpdateRtn, out string errMsg) != 0)
  318. MessageBox.Show("医保电子结算清单生成状态查询成功,但更新后台失败:" + errMsg);
  319. else
  320. MessageBox.Show("医保电子结算清单生成状态查询成功,医保返回状态【1】-已完成!");
  321. }
  322. }
  323. }
  324. private void tsmI_0304_Click(object sender, EventArgs e)
  325. {
  326. EcSettlLisGenerationStatus();
  327. }
  328. private void tsmI_0301_Click(object sender, EventArgs e)
  329. {
  330. EcSettlBillUpload();
  331. }
  332. public void EcSettlFileGet()
  333. {
  334. if ((DataTable)dgvEcSettlCertList.DataSource == null)
  335. {
  336. MessageBox.Show("请先查询电子发票信息!");
  337. return;
  338. }
  339. int i = dgvEcSettlCertList.CurrentRow.Index;
  340. string InvNo = dtEcSettlCertList.Rows[i]["InvNo"].ToString();
  341. string HisBizNo = dtEcSettlCertList.Rows[i]["UpldBchno"].ToString(); //上传批次号-医院业务流水号(0301)
  342. if (string.IsNullOrEmpty(HisBizNo))
  343. {
  344. MessageBox.Show("请先将医保电子票据信息上传(报文编号0301)!");
  345. return;
  346. }
  347. JObject joInput = new JObject();
  348. joInput.Add("HIS_BIZ_NO", HisBizNo); //医院业务流水号(0301)
  349. //上传给中心
  350. string sInput = JsonHelper.setCenterInpar_SX("0304", joInput.ToString());
  351. JObject joRtn = invoker.invokeCenterService_InvNO("0304", sInput);
  352. if (joRtn["ret_code"].ToString() != "0")
  353. {
  354. MessageBox.Show("调用医保电子结算清单生成状态查询(报文编号0304)失败:" + joRtn["ret_msg"].ToString());
  355. return;
  356. }
  357. else
  358. {
  359. //对返回值进行解密
  360. string out_data = joRtn["out_data"].ToString();
  361. string encryptString = JsonHelper.DecryptCenterOutPut(out_data, Global.inf.SK);
  362. JObject joElectStatus = JObject.Parse(JsonHelper.ExtractJson(encryptString));
  363. string HIS_BIZ_NO = JsonHelper.getDestValue(joElectStatus, "HIS_BIZ_NO"); //医院业务流水号
  364. string ELEC_SSR_CODE = JsonHelper.getDestValue(joElectStatus, "ELEC_SSR_CODE"); //医保结算清单获取码
  365. string BIZ_STATUS = JsonHelper.getDestValue(joElectStatus, "BIZ_STATUS"); //处理状态 0-处理中1-已完成
  366. if (BIZ_STATUS == "0")
  367. {
  368. MessageBox.Show("医保电子结算清单生成状态-【0】-处理中,请稍后重新查询!");
  369. return;
  370. }
  371. else
  372. if (BIZ_STATUS == "1")
  373. {
  374. JObject jo = new JObject();
  375. jo.Add("HIS_BIZ_NO", HisBizNo); //医院业务流水号(0301)
  376. jo.Add("ELEC_SSR_CODE", ELEC_SSR_CODE); //医保结算清单获取码
  377. //上传给中心
  378. sInput = JsonHelper.setCenterInpar_SX("0305", jo.ToString());
  379. joRtn = invoker.invokeCenterService_InvNO("0305", sInput);
  380. if (joRtn["ret_code"].ToString() != "0")
  381. {
  382. MessageBox.Show("医保电子结算清单文件获取(报文编号0305)失败:" + joRtn["ret_msg"].ToString());
  383. return;
  384. }
  385. else
  386. {
  387. //MessageBox.Show("医保电子结算清单文件获取(报文编号0305)成功");
  388. //对返回值进行解密
  389. out_data = joRtn["out_data"].ToString();
  390. encryptString = JsonHelper.DecryptCenterOutPut(out_data, Global.inf.SK);
  391. joElectStatus = JObject.Parse(JsonHelper.ExtractJson(encryptString));
  392. HIS_BIZ_NO = JsonHelper.getDestValue(joElectStatus, "HIS_BIZ_NO"); //医院业务流水号
  393. BIZ_STATUS = JsonHelper.getDestValue(joElectStatus, "BIZ_STATUS"); //处理状态 0-处理中1-已完成
  394. //string ELECT_DATA = JsonHelper.getDestValue(joElectStatus, "ELECT_DATA"); //结算票据数据
  395. string SETTLEMENT_CODE = JsonHelper.getDestValue(joElectStatus, "ELECT_DATA[0].SETTLEMENT_CODE"); //1:门诊费用结算清单2:住院费用清单3:住院费用结算单4:特殊病定额管理费用结算明细表
  396. string SETTLEMENT_NAME = JsonHelper.getDestValue(joElectStatus, "ELECT_DATA[0].SETTLEMENT_NAME");
  397. string SETTLEMENT_DATA = JsonHelper.getDestValue(joElectStatus, "ELECT_DATA[0].SETTLEMENT_DATA");//将结算票据信息(PDF格式)的流进行BASE64转码后,所得到的字符串
  398. if (BIZ_STATUS == "1")
  399. {
  400. PreviewPdfInBrowser(SETTLEMENT_DATA);
  401. }
  402. else
  403. {
  404. MessageBox.Show("当前费用结算单(电子)状态为:处理中!");
  405. return;
  406. }
  407. }
  408. }
  409. }
  410. }
  411. private void tsmI_0305_Click(object sender, EventArgs e)
  412. {
  413. EcSettlFileGet();
  414. }
  415. private void btnEcSettlFileGet_Click(object sender, EventArgs e)
  416. {
  417. EcSettlFileGet();
  418. }
  419. }
  420. }