private void exportReportBtnClicked(object obj) { string folderPath = ""; System.Windows.Forms.FolderBrowserDialog fbd = new System.Windows.Forms.FolderBrowserDialog(); fbd.ShowDialog(); if (!string.IsNullOrEmpty(fbd.SelectedPath)) { folderPath = fbd.SelectedPath; if (string.IsNullOrEmpty(folderPath)) { MessageBox.Show("请正确选择需要保存到的目录!"); return; } List <DataModel> list = ((WindowMainViewModel)Model).SelectDataModelDict.Values.ToList(); if (list.Count <= 0) { MessageBox.Show("请正确选择需要打印报告的病人!"); return; } int counts = list.Count; int count = 0; if (counts > 0) { new Thread(() => { foreach (DataModel dataTemp in list) { List <ProjectModel> projectModels = new List <ProjectModel>(); projectModels.AddRange(dataTemp.PList); string date = ""; //创建word文档 while (dataTemp.PList.Count > 0) { DateTime dt = DateTime.Now; date = dt.ToString("yyyy年MM月dd日HH时mm分ss秒"); string dateStr = dt.ToString("yyyy-MM-dd HH:mm:ss"); dataTemp.ReportTime = dateStr; WordUtil.CreateDocByTemplate(dataTemp, folderPath, date); //Console.WriteLine(folderPath + "\\" + dataTemp.HospitalName + "\\" + dataTemp.PatientName + "_" + date + ".docx"+" 打印前" +DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff")); //调用打印机打印 Thread.Sleep(3000); PrintManager.Instance.Printword(folderPath + "\\" + dataTemp.HospitalName + "\\" + dataTemp.PatientName + "_" + date + ".docx"); //Console.WriteLine(folderPath + "\\" + dataTemp.HospitalName + "\\" + dataTemp.PatientName + "_" + date + ".docx" + " 打印后" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff")); } count++; if (WindowTip.Instance != null) { WindowTip.Instance.model.UpdateValue(count, folderPath + "\\" + dataTemp.HospitalName + "\\" + dataTemp.PatientName + "_" + date + ".docx"); } dataTemp.PList.AddRange(projectModels); } if (WindowTip.Instance != null) { App.Current.Dispatcher.Invoke((Action)(() => { WindowTip.Instance.model.Vis = Visibility.Visible; WindowTip.Instance.model.Message = "打印完成!"; })); } }).Start(); WindowTip wt = new WindowTip(counts); wt.Owner = Application.Current.MainWindow; wt.ShowDialog(); } else { MessageBox.Show("请添加数据后,在生成报告!"); } } }