![]() |
Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
Ich habe mal im DF ein CrossPost angelegt, um eventuell an mehr Informationen zu kommen.
Gruß Jens |
Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
Hallo,
wann soll das PDF erstellt werden? Bei jedem Ereignis oder einmal am Tag? Bei bestimmten Ereignissen bedeutet für mich, dass genau dann das PDF erstellt wird und nicht permanent, nur so für den Fall, dass es ja eventuell gebraucht werden könnte. Meine Vorstellung wäre hier: Ereignis tritt ein. Einmal durch den VST und alles als PDF ausgeben, was benötigt wird. PowerPDF sollte da gut geeignet sein, schau es Dir aber bitte zuerst einmal (losgelöst von der Aufgabenstellung) an und entscheide dann, ob es das Gewünschte leisten kann. HTML wäre hier aber auch nicht schlecht, das als HTML-Email und der Anwender sieht sofort in der Mail, was ihn (hoffentlich) interessiert, kein Spamfilter hält Dir 'nen Anhang fest, kein Anhang kann zu groß werden und der Anwender muss auch nicht erst den Anhang speichern, um Ihn dann zu öffnen. Okay: Der Mailclient muss HTML können ;-)
Delphi-Quellcode:
Stylesheet vst.css
Procedure OnEreignisIrgendwasOderSo;
Var slHTML : TStringList i : Integer; begin slHTML := TStringList.Create; // Hier den Header der HTML-Seite bauen... slHTML.Add('<html>'); slHTML.Add('<head>'); slHTML.Add('<link rel="stylesheet" type="text/css" href="VST.css"'); slHTML.Add('</head>'); slHTML.Add('<body>'); slHTML.Add('<table>'); slHTML.Add('<tr>'); slHTML.Add('<th>ID</th>'); slHTML.Add('<th>LfdNr</th>'); slHTML.Add('<th>Datum</th>'); slHTML.Add('<th>Uhrzeit</th>'); slHTML.Add('<th>Ereignis</th>'); slHTML.Add('<th>Teilnehmer</th>'); slHTML.Add('<th>Bereich</th>'); slHTML.Add('</tr>'); // Hier einmal durch den VST laufen und je Child for i := 0 to VST.Count do begin //oder so ähnlich slHTML.Add('<tr class="' + Ereignis + '">'); // Hierzu ein passendes Stylesheet bauen slHTML.Add('<td align="right">'); slHTML.Add(IntToStr(Daten.ID)); slHTML.Add('</td>'); slHTML.Add('<td align="right">'); slHTML.Add(IntToStr(Daten.LfdNr)); slHTML.Add('</td>'); slHTML.Add('<td align="left">'); slHTML.Add(DateToStr(Daten.Datum)); slHTML.Add('</td>'); ... slHTML.Add('<td>'); slHTML.Add(Daten.Bereich); slHTML.Add('</td>'); slHTML.Add('</tr>'); end; slHTML.Add('</table>'); slHTML.Add('</body>'); slHTML.Add('</html>'); // hier slHTML speichern und als Mail verschicken, Lösungen solltest Du dazu im Forum finden. slHTML.Free; end;
Code:
Hier für jedes Ereignis eine entsprechende Klasse einfügen, dann funktioniert das mit
.Stoerung { background-color : #ff0000; }
.AllesInButter { background-color : #00FF00; } .IchBinBlau { background-color : #0000ff; } .AllesGrau { background-color : #999999; }
Delphi-Quellcode:
allerdings dürfen die Ereignisse dann keine Umlaute enthalten.
slHTML.Add('<tr class="' + Ereignis + '">');
Das Aussehen lässt sich so an Kundenwünsche anpassen, ohne noch mal das Programm zu ändern, was bei PDF nicht geht. XML und XSLT wäre hier natürlich auch noch eine Möglichkeit, die ähnlich einfach zu implementieren sein dürfte. |
Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Stephan,
finde ich ne coole Idee, werde das aufjedenfall mal auprobieren. Ich häng mal eine Screenshot von meinem Programm an. Ist es möglich die HTML Datei so ähnlich aussehen zu lassen wie das VST in der Abbildung. Zitat:
1. 1 mal Nachts z.B. die Ereignisse vom vergangenen Tag 2. Bei gewissen Ereignissen sofort, aber nur das vorher in der Konfiguration angegeben Ereignis(Also nur eine Zeile aus dem VST) Gruß Jens |
Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
Hallo,
Zitat:
Für die Ereignisse brauchst Du eine "passende" Übersetzung, damit die Namen CSS-konform werden. Hast Du eine Liste der Ereignisse in einer Stringliste oder so? Dann wird halt aus
Code:
.Stoerung { background-color : #ff0000; }
.AllesInButter { background-color : #00FF00; } .IchBinBlau { background-color : #0000ff; } .AllesGrau { background-color : #999999; }
Code:
und aus
.Ereignis1 { background-color : #ff0000; }
.Ereignis2 { background-color : #00FF00; } .Ereignis3 { background-color : #0000ff; } .Ereignis4 { background-color : #999999; }
Delphi-Quellcode:
wird dann
slHTML.Add('<tr class="' + Ereignis + '">'); // Hierzu ein passendes Stylesheet bauen
Delphi-Quellcode:
slHTML.Add('<tr class="Ereignis' + slEreignisliste.IndexOf(Ereignis) + '">');
|
Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
Ahhhhhhh, ja,
ich glaube ich versteh. Muss das aber erstmal ausprobieren. Also erstmal allerbesten Dank. Werde die Vorschläge mal durcharbeiten, wobei ich glaube das mit dem HTML nicht der schlechteste ist. Ich muss das aber erstmal programmieren und ausprobieren, da ich damit bis jetzt noch nichts gemacht habe. Gruß Jens |
Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe so eine Logdatei mal mit XML und XSL realisiert. Da konnte man dann sogar nach bestimmten Einträgen filtern.
|
Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
Ihr macht mich glücklich, das wäre natürlich noch besser, aber jetzt tritt wieder mein Problem aus, was ist jetzt für mich die beste und vorallem für den Kunden die schönste Lösung.
Oh, man. ?????? Muss das glaube ich erstmal alles probieren. Hast du eventuell mal ein Beispiel,[EDIT] Sorry da war ja eins dran [EDIT][ALT]das ich mal sehe, wie so was in XML aussehen könnte. Das kann ich mir momentan alles nicht so vorstellen. Gruß Jens |
Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
Da die XML-Datei nicht großartig verschachtelt ist, kannst du das gnaze einfach mit einer StringListe machen, ich glaube, so hab eich das damals auch gemacht.
|
Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
Ich muss mir das erstmal alles ansehen. Ich habe bislang noch nichts mit XML gemacht. Die Frage wäre nur, ich habe die Daten in einer Datenbank, kann ich nicht direkt irgendwas von den vielen Möglichkeiten direkt aus der Datenbank erstellen lassen, so eine Art Reportdatei die so aussieht.
Gruß Jens |
Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
Hi!
Du kannst natürlich auch einen Reportgenerator wie z.B. RaveReport nutzen, um damit dann gleich eine PDF-Datei erstellen zu lassen (ich glaube es geht direkt nach PDF, ganz sicher bin ich mir nicht) Ciao, Frederic |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz