Browse Source

sqlvar exportfilename fuer Exportdateinamen auswerten #33694

kern5.2
Meikel Bisping 2 weeks ago
parent
commit
0ca2db28e1
  1. 27
      src/de/superx/common/Maske.java
  2. 16
      src/de/superx/servlet/SuperXmlTabelle.java

27
src/de/superx/common/Maske.java

@ -2576,16 +2576,23 @@ public class Maske extends NamedIdObject implements Serializable {
} }
/** /**
* Normalerweise Maskenname nur bei JasperReports der Stylesheetname * Normalerweise Maskenname nur bei JasperReports der Stylesheetname
* *
* @return * @return
*/ */
public String getExportName() { public String getExportName() {
String result = getName(); String result = getName();
if (selectedTableStylesheet != null && selectedTableStylesheet.getFilename().indexOf(".jrxml") > -1) if (selectedTableStylesheet != null && selectedTableStylesheet.getFilename().indexOf(".jrxml") > -1) result = selectedTableStylesheet.getCaption();
result = selectedTableStylesheet.getCaption(); if (map.containsKey("exportfilename"))
return result; {
} if (map.get("exportfilename")==null||map.get("exportfilename").toString().trim().equals(""))
{
throw new IllegalStateException("Die Maske definiert exportfilename, dieser ist aber leer. Masken-SQL prüfen");
}
result=map.get("exportfilename").toString();
}
return result;
}
public String getFullTableXml(String mandantenId, SxUser sxuser, HttpServletRequest request, Locale locale) public String getFullTableXml(String mandantenId, SxUser sxuser, HttpServletRequest request, Locale locale)
throws TransformerConfigurationException, TemplateException, IOException, SQLException, throws TransformerConfigurationException, TemplateException, IOException, SQLException,

16
src/de/superx/servlet/SuperXmlTabelle.java

@ -511,7 +511,7 @@ public class SuperXmlTabelle extends AbstractSuperXServlet {
response.reset(); response.reset();
//response.setContentType("application/vnd.ms-excel"); //response.setContentType("application/vnd.ms-excel");
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-disposition", "attachment; filename=" + FileUtils.removeProblemChars(maske.getName()) + ".xlsx"); response.setHeader("Content-disposition", "attachment; filename=" + FileUtils.removeProblemChars(maske.getExportName()) + ".xlsx");
response.setHeader("Cache-Control", "expires=0"); response.setHeader("Cache-Control", "expires=0");
response.setContentLength(outStream.size()); response.setContentLength(outStream.size());
ServletOutputStream sos; ServletOutputStream sos;
@ -716,7 +716,7 @@ public class SuperXmlTabelle extends AbstractSuperXServlet {
SuperXManager.setLastXmlMandantid(request.getSession().getAttribute("MandantenID").toString()); SuperXManager.setLastXmlMandantid(request.getSession().getAttribute("MandantenID").toString());
XmlTransformer xmlTransformer = new XmlTransformer(getServletConfig(), request, response, getMandantenID(), getBrowser()); XmlTransformer xmlTransformer = new XmlTransformer(getServletConfig(), request, response, getMandantenID(), getBrowser());
xmlTransformer.setMaske(maske); xmlTransformer.setMaske(maske);
xmlTransformer.transform(maske.getName(), maske.getTmpFiles(), currentXml, desiredLocale, maske.getSelectedTableStylesheetFilename(), "text/html", xmlTransformer.transform(maske.getExportName(), maske.getTmpFiles(), currentXml, desiredLocale, maske.getSelectedTableStylesheetFilename(), "text/html",
ServletHelper.getParameter(request, "encrypt")); ServletHelper.getParameter(request, "encrypt"));
@ -931,7 +931,7 @@ public class SuperXmlTabelle extends AbstractSuperXServlet {
// neu MB // neu MB
if (maske.getSelectedTableStylesheetFilename() != null && maske.getSelectedTableStylesheetFilename().equals("tabelle_xml.xsl")) { if (maske.getSelectedTableStylesheetFilename() != null && maske.getSelectedTableStylesheetFilename().equals("tabelle_xml.xsl")) {
response.setContentType("application/x-xml; charset=" + SqlStringUtils.getEncoding()); response.setContentType("application/x-xml; charset=" + SqlStringUtils.getEncoding());
response.setHeader("Content-disposition", "attachment; filename=" + FileUtils.removeProblemChars(maske.getName()) + ".xml"); response.setHeader("Content-disposition", "attachment; filename=" + FileUtils.removeProblemChars(maske.getExportName()) + ".xml");
response.setHeader("Cache-Control", "expires=0"); response.setHeader("Cache-Control", "expires=0");
// hier wird für xml-output localiziert für andere // hier wird für xml-output localiziert für andere
// formate in xmlTransformer könnte // formate in xmlTransformer könnte
@ -1021,7 +1021,7 @@ public class SuperXmlTabelle extends AbstractSuperXServlet {
// open browser download dialogue // open browser download dialogue
response.setContentType("application/x-xml; charset=" + SqlStringUtils.getEncoding()); response.setContentType("application/x-xml; charset=" + SqlStringUtils.getEncoding());
response.setHeader("Content-disposition", "attachment; filename=" + FileUtils.removeProblemChars(maske.getName()) + filename_extension); response.setHeader("Content-disposition", "attachment; filename=" + FileUtils.removeProblemChars(maske.getExportName()) + filename_extension);
response.setHeader("Cache-Control", "expires=0"); response.setHeader("Cache-Control", "expires=0");
} }
} }
@ -1029,7 +1029,7 @@ public class SuperXmlTabelle extends AbstractSuperXServlet {
getServletConfig(), request, response, getServletConfig(), request, response,
getMandantenID(), getBrowser()); getMandantenID(), getBrowser());
xmlTransformer.setMaske(maske); xmlTransformer.setMaske(maske);
xmlTransformer.transform(maske.getName(), xmlTransformer.transform(maske.getExportName(),
maske.getTmpFiles(), currentXml, desiredLocale, maske.getTmpFiles(), currentXml, desiredLocale,
maske.getSelectedTableStylesheetFilename(), maske.getSelectedTableStylesheetFilename(),
maske.getSelectedTableStylesheetContenttype(contenttype), maske.getSelectedTableStylesheetContenttype(contenttype),
@ -1075,7 +1075,7 @@ public class SuperXmlTabelle extends AbstractSuperXServlet {
if (SxPools.get(getMandantenID()).getRepository().containsKey("K_CSV_Excel_ISO")&&SxPools.get(getMandantenID()).getRepository().get("K_CSV_Excel_ISO").toString().equals("1")) if (SxPools.get(getMandantenID()).getRepository().containsKey("K_CSV_Excel_ISO")&&SxPools.get(getMandantenID()).getRepository().get("K_CSV_Excel_ISO").toString().equals("1"))
{ {
outp = new String(csv.toString().getBytes("iso-8859-1")); outp = new String(csv.toString().getBytes("iso-8859-1"));
response.setHeader("Content-disposition", "attachment; filename=" + FileUtils.removeProblemChars(maske.getName()) + ".csv"); response.setHeader("Content-disposition", "attachment; filename=" + FileUtils.removeProblemChars(maske.getExportName()) + ".csv");
response.setHeader("Cache-Control", "expires=0"); response.setHeader("Cache-Control", "expires=0");
response.setHeader("ContentType", "text/plain"); //; charset=ISO-8859-1 response.setHeader("ContentType", "text/plain"); //; charset=ISO-8859-1
sendBackIso(csv.toString(), "text/csv; charset=ISO-8859-1"); sendBackIso(csv.toString(), "text/csv; charset=ISO-8859-1");
@ -1084,7 +1084,7 @@ public class SuperXmlTabelle extends AbstractSuperXServlet {
{ {
//Format bis 2024.06: //Format bis 2024.06:
response.setHeader("Content-disposition", "attachment; filename=" + FileUtils.removeProblemChars(maske.getName()) + ".csv"); response.setHeader("Content-disposition", "attachment; filename=" + FileUtils.removeProblemChars(maske.getExportName()) + ".csv");
response.setHeader("Cache-Control", "expires=0"); response.setHeader("Cache-Control", "expires=0");
sendBack(csv.toString(), "text/csv"); sendBack(csv.toString(), "text/csv");
@ -1936,7 +1936,7 @@ public class SuperXmlTabelle extends AbstractSuperXServlet {
String filename_extension=".jrxml"; String filename_extension=".jrxml";
OutputStream out = response.getOutputStream(); OutputStream out = response.getOutputStream();
// open browser download dialogue // open browser download dialogue
response.setHeader("Content-disposition", "attachment; filename=" + FileUtils.removeProblemChars(maske.getName()) + filename_extension); response.setHeader("Content-disposition", "attachment; filename=" + FileUtils.removeProblemChars(maske.getExportName()) + filename_extension);
response.setHeader("Cache-Control", "expires=0"); response.setHeader("Cache-Control", "expires=0");
String jrxmlFileContent = de.memtext.util.FileUtils.getFileContentsWithEncoding(jrxmlFilePath, SqlStringUtils.getEncoding()); String jrxmlFileContent = de.memtext.util.FileUtils.getFileContentsWithEncoding(jrxmlFilePath, SqlStringUtils.getEncoding());

Loading…
Cancel
Save