AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tabelle in e-Mail einbauen

Ein Thema von Ykcim · begonnen am 18. Jul 2011 · letzter Beitrag vom 21. Jul 2011
Antwort Antwort
Seite 2 von 2     12   
bernerbaer
(Gast)

n/a Beiträge
 
#11

AW: Tabelle in e-Mail einbauen

  Alt 18. Jul 2011, 22:55
ungetestet (hab kein delphi auf dem Netbook)
stringgrid to table
Delphi-Quellcode:
....
sl.add('<table>'>;

for i:=0 to SG.RowCount - 1 do
begin
  sl.add('<tr>');
  for p:= 0 to SG.ColCount - 1 do
  begin
   sl.add('<td>');
   sl.add(SG.Cells[p,i]);
   sl.add('</td>');
  end;
  sl.add('</tr>');
end;
sl.add('</table>');
...
Selbstverständlich kann das ganze noch durch css formatiert werden

(sl = Stringlist
SG = Stringgrid)

Geändert von bernerbaer (18. Jul 2011 um 23:08 Uhr)
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: Tabelle in e-Mail einbauen

  Alt 19. Jul 2011, 16:05
Hallo Zusammen,

das Problem ist nun gelöst - dank Eurer Hilfe.

Also kurze Beschreibung, wie ich vorgegangen bin.
1. Ich habe mir meine Vorlage unter Word erstellt und dann als "gefilterte HTML" Datei abgespeichert.
2. Habe den QuellCode mit dem Texteditor geöffnet und die Vabrialen Einträge durch "Variablen" (Markante eindeutige Wörter) ersetzt
3. Habe mit nachfolgender Zeile den Text in eine TStringList eingelesen
Delphi-Quellcode:
// Programmpfad ermitteln
  Pfad:=ExtractFilePath(ParamStr(0));
  Pfad:=Pfad+'\Temp\KommentarMailVorlage.txt';
.
.
.
st.LoadFromFile(pfad);
4. Dann die einzelnen Variablen mit nachstehender Zeile ersetzt (Text vorher den Variabel-Inhalt zugewiesen)
st.Text:=StringReplace(st.Text, 'AUFTRAGSNR', Text,[rfReplaceAll, rfIgnoreCase]);

5. Dann habe ich mir mit nachstehendem Code meine HTML-Tabelle zusammengebaut
Delphi-Quellcode:
for i:=1 to Kommentare.RowCount - 1 do
    begin
      Text:=Text+'<tr>'+#13#10;
      for j:= 0 to Kommentare.ColCount - 1 do
        begin
          Text:=Text+'<td><p class=MsoPlainText>'+#13#10;
          Text:=Text+Kommentare.Cells[j,i]+#13#10;
          Text:=Text+'</td>'+#13#10;
         end;
      Text:=Text+'</tr>'+#13#10;
    end;
  Text:=Text+'</table>'+#13#10;
6. Und als letztes diesen zusammengebauten Code an die Stelle der Variable TABELLE in meiner Stringlist ersetzt
st.Text:=StringReplace(st.Text, 'TABELLE', Text,[rfReplaceAll, rfIgnoreCase]);

Ich habe aus Euren Antworten diesen Mix als den am besten funktionierenden angesehen.

Vielen Dank für Eure Hilfe - das wäre sonst nie was geworden.

Gruß

Ykcim
Patrick

Geändert von Ykcim (19. Jul 2011 um 16:08 Uhr)
  Mit Zitat antworten Zitat
bernerbaer
(Gast)

n/a Beiträge
 
#13

AW: Tabelle in e-Mail einbauen

  Alt 19. Jul 2011, 19:51
und wo wird <p> geschlossen (</p>)
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#14

AW: Tabelle in e-Mail einbauen

  Alt 21. Jul 2011, 00:29
Außerdem fehlt der Doctype, das Encoding, ein leeres <head> kann man sich sparen, bei der Klasse des Paragraphen fehlen Anführungszeichen und vor allem die ganzen #13#10 solltest du dir schenken, denn diese spielen im HTML-Code absolut keine Rolle und machen nur den Code unleserlich.

Liebe Grüße,
Valentin
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz