Hallo,
programmiere derzeit eine Art Track&Trace Programm, in der die Oberfläche in Tabellenform dargestellt wird. Programmiert wird in Eclipse mit SAP Webdynproaufsatz. Aber weiter. Nun soll also eine Tabelle davon als Download zur Verfügung stehen, einmal zum weiterverarbeiten etc. im Excelformat und zum drucken im PDF-Format. Meine Funktion zum Downloaden sieht derzeit do aus:
IWDAttributeInfo attInfoxls = wdContext.nodeDownloads().getNodeInfo().getAttribute(„FileDownload“);
IWDModifiableBinaryType binaryTypexls = (IWDModifiableBinaryType) attInfoxls.getModifiableSimpleType();
binaryTypexls.setFileName(„Beispieldatei.xls“);
binaryTypexls.setMimeType(WDWebResourceType.XLS);
Dito in PDF. Jetzt habe ich also eine Variable vom Typ „Binary“ vorgeschaltet, die mit dem Tabelleninhalt gefüllt werden soll. Wie mach ich das? 1. dass überhaupt was drin ist, und 2. dass es noch formatier ist wie in der Tabelle? Dachte schon an einen Stringaufbau (Endlosstring)mit den Daten, aber dass weiss ich auch nicht wie derzeit. Ideen? Vorschläge? Lösungen?
Vielen Dank.
So, nach Absprache mit allen beteiligten soll ein Standardfile XML „erschaffen“ werde mit Daten. Daraus kann sich dann jeder selber die Sachen zeihen ala XLS oder PDF oder sonstwas…
Also lautet die frage nun: Wie die Daten in ein XML File bekommen?
Moin
Also lautet die frage nun: Wie die Daten in ein XML File
bekommen?
javax.xml => DOM erzeugen => transcoder => Datei. (Oder das gleiche Spiel ohne DOM über SAX)
cu
Hi -
Also lautet die frage nun: Wie die Daten in ein XML File
bekommen?
Das XML-Format spezifizieren und einer Library in das XML-Format bringen. Ich kann dir da stark Dom4j empfehlen - Hat gute Schnellstart-Eigenschaften:
http://www.dom4j.org
mfG,
J.P.Jarolim
javax.xml => DOM erzeugen => transcoder => Datei.
(Oder das gleiche Spiel ohne DOM über SAX)
Mag sich blöd anhören, aber ich bin da absoluter Neuling. Und das „weitertransformieren“ wird bei uins von nem anderen Übernommen hoff ich, über Xalan, Xerxes und FOP (hat man mir gesagt), nur brauch er halt ne XML-Datei. Und diese muss dynamisch große tabellen aufbauen, je nach dem, was angezeigt wird auffer Page. Grundlage ist wie gesagt Java zur HTML Erstellung. Wie kann ich Quelltexttechnisch jetzt aus Java heraus diese XML aufbauen? Find auch keine Beispiele im Netz die ich gebrauchen könnte (wenigstens bisher). Habe auch methoden ala „toXML“ „WriteXML“ etc gefunden im java, die aber vom Webdynpro nicht unterstützt werden… wie so manche Befehle nicht… ich werd mich mal auf den Seiten umschaun, aber richtig geil wäre natürlich ne Beispieldatei per Mail oder sowas oder anderes Anschauungsmaterial… hab noch gar nix gemacht mit HTML / XML / etc. Bischen Abap und jetzt Webdynpro sind mein Einstieg in die Programmierwelt…
THX und bis denne
Hab 3 Sachen gefunden hier, poste den text mal, vielleicht könnt ihr was damit anfangen:
public class JAXPDOMExample {
public static void main(String args[]) {
try {
String xml= „data/rich_ii.xml“;
//get a DocumentBuilderFactory from the underlying
//implementation
DocumentBuilderFactory factory;
ClassLoader oldLoader;
try {
//Although in standalone applications like this one, the classloader
//of the JAXPDOMExample class and the thread context classloader
//are the same, for the sake of completeness preset the loader
oldLoader = Thread.currentThread().getContextClassLoader();
Thread.currentThread().setContextlassLoader(JAXPDOMExample.class.getClassLoader());
factory = DocumentBuilderFactory.newInstance();
} finally {
Thread.currentThread().setContextClassLoader(oldLoader);
}
factory.setValidating(true);
//get a DocumentBuilder from the factory
DocumentBuilder builder = factory.newDocumentBuilder();
//parse the document
Document document = builder.parse(xml);
DOMTraverser domTester = new DOMTraverser();
domTester.traverse1(document);
} catch (Exception e) {
//if there was some error while parsing the file
e.printStackTrace();
}
}
public class SAXTreeStructure extends DefaultHandler {
public void startElement(String namespaceURI, String localName,
String rawName, Attributes atts) {
System.out.println("Start Element: " + rawName);
}
public void endElement(String namespaceURI, String localName,
String rawName) {
System.out.println("End Element : " + rawName);
}
public void characters(char []data, int off, int length) {
System.out.println("Characters : " + new String(data,
off, length));
}
}
class JAXPSourceConvertExample {
public static void main(String[] args) throws Exception {
String xml = „data/current.xml“;
// Obtaining an instance of the factory
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
DOMResult domResult = new DOMResult();
// stream -> dom
System.out.println("\nStream -> DOM „);
transformer.transform(new StreamSource(xml), domResult);
// sax -> stream
System.out.println(“\nSAX -> Stream „);
transformer.transform(new SAXSource(new InputSource(xml)), new
StreamResult(System.out));
// dom -> stream
System.out.println(“\nDOM -> Stream");
transformer.transform(new DMSource(domResult.getNode()), new
StreamResult(System.out));
// stream -> sax
System.out.println("\nStream -> SAX");
transformer.transform(new StreamSource(xml), new
SAXResult((ContentHandler)new SAXTreeStructure()));
// sax -> dom
domResult = new DOMResult();
System.out.println("\nSAX -> DOM");
transformer.transform(new SAXSource(new InputSource(xml)),
domResult);
// dom -> sax
System.out.println("\nDOM -> SAX");
transformer.transform(new DOMSource(domResult.getNode()), new
SAXResult((ContentHandler)new SAXTreeStructure()));
}
}
Stand der Dinge:
Wusste gar nicht dass das so schwierig sein kann ne Datei zu konvertieren… egal… hab jetzt also meine dynamische XML Datei nach ner Woche, hab auch schon den Konverter so halb hinbekommen, so dass ich das ganze von Java nach HTML, nach XML, nach XSLT und abschliessend nach FO bekommen… jetzt fehtl nur noch ne „Universaldatei“ die xxx.fo in andere Formate konvertiert… mal sehn…