Kaynağa Gözat

Added ExportExpression to Save To Folder functionality

frogsoftware 1 yıl önce
ebeveyn
işleme
f87b86bfb2

+ 8 - 3
prs.desktop/Dashboards/Common/DigitalFormsDashboard.xaml.cs

@@ -654,7 +654,7 @@ namespace PRSDesktop
 
         public void CreateToolbarButtons(IPanelHost host)
         {
-            host.CreatePanelAction(new PanelAction("Save to Folder", PRSDesktop.Resources.disk, action => SaveToFolder_Click()));
+            host.CreatePanelAction(new PanelAction("Export Forms", PRSDesktop.Resources.disk, action => SaveToFolder_Click()));
         }
 
         public void Heartbeat(TimeSpan time)
@@ -739,6 +739,7 @@ namespace PRSDesktop
             }
 
             var model = DataModel(Selection.None);
+            
             var reports = ReportUtils.LoadReports(Form.ID.ToString(), model).Where(x => x.Visible).ToList();
 
             var method = typeof(DigitalFormsDashboard).GetMethod("SaveToFolder", BindingFlags.Instance | BindingFlags.NonPublic)!.MakeGenericMethod(FormType);
@@ -782,10 +783,14 @@ namespace PRSDesktop
                                 Form!.ID);
                             var pdfData = ReportUtils.ReportToPDF(report, dataModel, true);
 
-                            File.WriteAllBytes(Path.Combine(dialog.SelectedPath, Path.ChangeExtension(number, ".pdf")), pdfData);
+                            var expr = dataModel.EvaluateExpression(Form.ExportExpression)?.Trim();
+                            var filename = String.IsNullOrWhiteSpace(expr)
+                                ? number
+                                : $"{number} - {CoreUtils.SanitiseFileName(expr)}";
+                            File.WriteAllBytes(Path.Combine(dialog.SelectedPath, Path.ChangeExtension(filename, ".pdf")), pdfData);
                         }
                     });
-                    MessageWindow.ShowMessage("All done!", "Success");
+                    Process.Start("explorer.exe" , dialog.SelectedPath);
                 }
             }
         }