Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Tabelle in e-Mail einbauen (https://www.delphipraxis.net/161739-tabelle-e-mail-einbauen.html)

bernerbaer 18. Jul 2011 22:55

AW: Tabelle in e-Mail einbauen
 
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)

Ykcim 19. Jul 2011 16:05

AW: Tabelle in e-Mail einbauen
 
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)
Delphi-Quellcode:
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
Delphi-Quellcode:
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

bernerbaer 19. Jul 2011 19:51

AW: Tabelle in e-Mail einbauen
 
und wo wird <p> geschlossen (</p>)

Valle 21. Jul 2011 00:29

AW: Tabelle in e-Mail einbauen
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:44 Uhr.
Seite 2 von 2     12   

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