//导出报告 private void btnExportReport_Click(object sender, RoutedEventArgs e) { //foreach (Model.TestInfoModel model in TestInfoModelList) //{ // model.IsChecked = true; //} //RefrenshChart(); try { //生成数据xml对象,供导出报告使用 //string title = "平均曲线对比-" + DateTime.Now.ToString("yyyyMMddHHmmss"); //DSJL.Export.GenerateAvgReportXML garxml = new DSJL.Export.GenerateAvgReportXML(); //garxml.CurrentTitle = "平均曲线对比报告"; //garxml.TestInfoModelList = TestInfoModelList; //System.Xml.Linq.XDocument xdoc = garxml.Generate(); //System.Windows.Forms.FolderBrowserDialog fbd = new System.Windows.Forms.FolderBrowserDialog(); //fbd.Description = "选择保存报告的位置"; //fbd.ShowNewFolderButton = true; //if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK) //{ // //生成平均曲线图片 // DSJL.Export.SaveUIElementToImage.SaveToImage(avgPanel, AppDomain.CurrentDomain.BaseDirectory + "avg.jpg"); // //开始导出 // DSJL.Export.ExportAvgReport exportReport = new DSJL.Export.ExportAvgReport(xdoc); // exportReport.Export(fbd.SelectedPath + "\\" + title + ".pdf"); // //删除平均曲线图片 // File.Delete(AppDomain.CurrentDomain.BaseDirectory + "avg.jpg"); // MessageBox.Show("导出成功!", "系统信息"); //} List <Model.TestInfoModel> testInfoModelList = GetSortedTestInfoModelList(); string pdfFileName = ""; string reportTitle = ""; string standName = ""; DSJL.Export.ExportModeEnum exportMode = DSJL.Export.ExportModeEnum.Mode1; if (rbMode1.IsChecked == true)//互相对比报告 { exportMode = DSJL.Export.ExportModeEnum.Mode1; pdfFileName = "等速肌力互相对比报告(" + DateTime.Now.ToString("yyyyMMddHHmmss") + ")"; reportTitle = "等速肌力互相对比报告"; } else if (rbMode2.IsChecked == true)//与平均曲线对比报告 { exportMode = DSJL.Export.ExportModeEnum.Mode2; pdfFileName = "等速肌力个人与平均曲线报告(" + DateTime.Now.ToString("yyyyMMddHHmmss") + ")"; reportTitle = "等速肌力个人与平均曲线报告"; } else if (rbMode3.IsChecked == true)//与参考值对比报告 { if (stand.SelectedItem == null) { MessageBox.Show("请选择测试参考值!", "系统信息"); return; } else { standName = stand.SelectedItem.Stand_Name; } exportMode = DSJL.Export.ExportModeEnum.Mode3; BLL.TB_StandardInfo standInfoBLL = new BLL.TB_StandardInfo(); Model.TB_StandardInfo parentStandInfo = standInfoBLL.GetModel((int)stand.SelectedItem.Stand_ParentID); foreach (Model.TestInfoModel testInfoModel in testInfoModelList) { pdfFileName += testInfoModel.Ath_Name; } pdfFileName += "与" + parentStandInfo.Stand_Name + stand.SelectedItem.Stand_Name + "对比报告(" + DateTime.Now.ToString("yyyyMMddHHmmss") + ")"; //pdfFileName = "等速肌力个人与参考值对比报告(" + DateTime.Now.ToString("yyyyMMddHHmmss") + ")"; reportTitle = "等速肌力个人与参考值对比报告"; } System.Windows.Forms.SaveFileDialog saveFileDialog = new System.Windows.Forms.SaveFileDialog(); saveFileDialog.AddExtension = true; saveFileDialog.OverwritePrompt = true; saveFileDialog.Title = "选择保存报告的位置"; saveFileDialog.FileName = pdfFileName; saveFileDialog.DefaultExt = "pdf"; saveFileDialog.Filter = "PDF文件(*.pdf)|*.pdf"; if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { //生成数据xml对象,供导出报告使用 DSJL.Export.GenerateCompareResportXml garxml = new DSJL.Export.GenerateCompareResportXml(exportMode); garxml.CurrentTitle = reportTitle; garxml.TestInfoModelList = GetSortedTestInfoModelList(); garxml.StandardTestInfoModelList = standTestInfoModelList; garxml.StandName = standName; System.Xml.Linq.XDocument xdoc = garxml.GenerateXDoc(); //生成平均曲线图片 DSJL.Export.SaveUIElementToImage.SaveToImage(avgPanel, AppDomain.CurrentDomain.BaseDirectory + "avg.jpg"); //开始导出 DSJL.Export.ExportCompareReport exportReport = new DSJL.Export.ExportCompareReport(xdoc); exportReport.Export(saveFileDialog.FileName); //删除平均曲线图片 File.Delete(AppDomain.CurrentDomain.BaseDirectory + "avg.jpg"); MessageBox.Show("导出成功!", "系统信息"); } } catch (Exception ee) { MessageBox.Show("导出出错!\r\n" + ee.Message, "系统错误"); } }
//导出报告 private void btnExport_Click(object sender, RoutedEventArgs e) { if (testInfoModelList.Count == 0) { MessageBox.Show("所选的参考值下没有测试信息,不能导出!", "系统信息"); return; } try { //刷新图表 pageAvgCurve.ModelList = testInfoModelList; string pdfFileName = ""; string reportTitle = ""; string standName = ""; DSJL.Export.ExportModeEnum exportMode = DSJL.Export.ExportModeEnum.Mode1; List <Model.TestInfoModel> checkedModel = testInfoModelList.FindAll(x => x.IsChecked == true); if (rbMode1.IsChecked == true) { //if (checkedModel.Count < 2) //{ // MessageBox.Show("请至少选择两条测试信息进行对比报告导出!", "系统信息"); // return; //} exportMode = DSJL.Export.ExportModeEnum.Mode1; pdfFileName = "等速肌力互相对比报告(" + DateTime.Now.ToString("yyyyMMddHHmmss") + ")"; reportTitle = "等速肌力互相对比报告"; } else if (rbMode2.IsChecked == true) { exportMode = DSJL.Export.ExportModeEnum.Mode2; pdfFileName = "等速肌力个人与平均曲线报告(" + DateTime.Now.ToString("yyyyMMddHHmmss") + ")"; reportTitle = "等速肌力个人与平均曲线报告"; } else if (rbMode3.IsChecked == true) { //if (checkedModel.Count < 1) //{ // MessageBox.Show("请至少选择一条测试信息进行对比报告导出!", "系统信息"); // return; //} if (standManager.SelectedItem == null) { MessageBox.Show("请选择测试参考值!", "系统信息"); return; } else { standName = standManager.SelectedItem.Stand_Name; } exportMode = DSJL.Export.ExportModeEnum.Mode3; pdfFileName = "等速肌力个人与参考值对比报告(" + DateTime.Now.ToString("yyyyMMddHHmmss") + ")"; reportTitle = "等速肌力个人与参考值对比报告"; } string selectedPath = ""; if (!ShowFileDialogTool.ShowSaveFileDialog(out selectedPath, ShowFileDialogTool.pdfFilter, ShowFileDialogTool.pdfExt, "测验报告")) { return; } else { selectedPath = selectedPath.Substring(0, selectedPath.LastIndexOf("\\")); } //生成数据xml对象,供导出报告使用 DSJL.Export.GenerateCompareResportXml garxml = new DSJL.Export.GenerateCompareResportXml(exportMode); garxml.CurrentTitle = reportTitle; garxml.TestInfoModelList = GetSortedTestInfoModelList(); garxml.StandardTestInfoModelList = testInfoModelList; garxml.StandName = standName; System.Xml.Linq.XDocument xdoc = garxml.GenerateXDoc(); //生成平均曲线图片 DSJL.Export.SaveUIElementToImage.SaveToImage(pageAvgCurve, AppDomain.CurrentDomain.BaseDirectory + "avg.jpg"); //开始导出 DSJL.Export.ExportCompareReport exportReport = new DSJL.Export.ExportCompareReport(xdoc); exportReport.Export(selectedPath + "\\" + pdfFileName + ".pdf"); //删除平均曲线图片 File.Delete(AppDomain.CurrentDomain.BaseDirectory + "avg.jpg"); MessageBox.Show("导出成功!", "系统信息"); } catch (Exception ee) { MessageBox.Show("导出出错!\r\n" + ee.Message, "系统错误"); } }