Einzelnen Beitrag anzeigen

Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#30

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge

  Alt 20. Apr 2009, 18:47
Hallo zusammen,

Also erstmal danke für die antworten,

Zitat von Lucki:
Ich würde übriges mit CSS arbeiten.
Will ich natürlich machen, aber zum ausprobieren finde ich es so besser, weil ich dann alles sehe, die Styls anschließend auszulagern, sollte ja kein Problem darstellen.

Hier mal mein aktueller Code und im Anhang das Ergebnis. Was ich noch nicht so richtig hinbekomme ist...

1. Die Farbe der Schriftart.
3. z.B. eine Leerzeile zwischen der Überschrift und der Tabellenüberschrift.

Delphi-Quellcode:
Procedure TForm1.HTMLErzeugen;
Var
  slHTML : TStringList;
  i : integer;
begin
  QryHTML.Close;
  QryHTML.SQL.Text := 'SELECT * FROM MB100';
  QryHTML.Open;

  slHTML := TStringList.Create;

  slHTML.Add('<html>');
  slHTML.Add('<head>');
  slHTML.Add('<link rel="stylesheet" type="text/css" href="VST.css"');//werde natürlich hier eine Css-Datei einfügen

  slHTML.Add('<td style="color:#ff0000;">Firma hartmann + uebach Nachrichtentechnik</td>');
  slHTML.Add('</head>');

  slHTML.Add('<body>');

  slHTML.Add('<table border="0" style="border-collapse:separate;"'+
    'width="100%" style="'+
    'border-left:5px solid #ff0000;border-right:5px solid #ff0000;'+
    'border-top:5px solid #ff0000;border-bottom:5px solid #ff0000;>');
 
  slHTML.Add('<caption style="caption-side:top;">Protokolldatei vom: '+DateTimeToStr(Now)+' </caption>');

  slHTML.Add('<tr>');
  slHTML.Add('<th align="left">ID</th>');
  slHTML.Add('<th align="left">LfdNr</th>');
  slHTML.Add('<th align="left">Datum</th>');
  slHTML.Add('<th align="left">Uhrzeit</th>');
  slHTML.Add('<th align="left">Ereignis</th>');
  slHTML.Add('<th align="left">Teilnehmer</th>');
  slHTML.Add('<th align="left">Bereich</th>');
  slHTML.Add('<tr>');

  //slHTML.Add('<tr class="' + Ereignis + '">'); // Stylesheet wird hier später eingefügt.

  for i := 0 to QryHTML.RecordCount do
    begin

    slHTML.Add('<td>'); // align="left">');
    slHTML.Add(IntToStr(QryHTML.FieldByName('ID').AsInteger));
    slHTML.Add('</td>');
    slHTML.Add('<td align="left">');
    slHTML.Add(IntToStr(QryHTML.FieldByName('LfdNr').AsInteger));
    slHTML.Add('</td>');
    slHTML.Add('<td align="left">');
    slHTML.Add(DateToStr(QryHTML.FieldByName('Datum').AsDateTime));
    slHTML.Add('</td>');
    slHTML.Add('<td align="left">');
    slHTML.Add(DateToStr(QryHTML.FieldByName('Uhrzeit').AsDateTime));
    slHTML.Add('</td>');
    slHTML.Add('<td align="left">');
    slHTML.Add(QryHTML.FieldByName('Ereignis').AsString);
    slHTML.Add('</td>');
    slHTML.Add('<td align="left">');
    slHTML.Add(QryHTML.FieldByName('Teilnehmer').AsString);
    slHTML.Add('</td>');
    slHTML.Add('<td align="left">');
    slHTML.Add(QryHTML.FieldByName('Bereich').AsString);
    slHTML.Add('</td>');
    slHTML.Add('</tr>');

    QryHTML.Next;
    end;

  slHTML.Add('</table>');
  slHTML.Add('</body>');
  slHTML.Add('</html>');

  slHTML.SaveToFile('C:\Test.html');

  slHTML.Free;
end;
Vieleicht kann mir ja jemand sagen, woran das legen kann.

Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat