AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Mail mit Tabelle aus einem StringGrid
Thema durchsuchen
Ansicht
Themen-Optionen

Mail mit Tabelle aus einem StringGrid

Ein Thema von Ykcim · begonnen am 1. Sep 2011 · letzter Beitrag vom 7. Sep 2011
Antwort Antwort
Ykcim

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

Mail mit Tabelle aus einem StringGrid

  Alt 1. Sep 2011, 15:28
Hallo Zusammen,

ich habe ein in meinem Programm die Anforderung, dass ich den Inhalt eines StringGrids als Excelanhang in einer e-Mail verschicke. Die Mail soll aber nicht automatisch verschickt werden, sonder sich im Editor öffnen.
Das habe ich mit dieser Zeile realisiert...

ExcelApp.Dialogs[xlDialogSendMail].Show Jetzt möchte der User aber noch die Datei vor dem Versand sehen / öffnen. Gibt es einen Parameter, dass die Datei automatisch geöffnet wird - ich kann sie nämlich aus der erstellten e-Mail heraus vor dem Versand nicht öffnen...

Über Anregungen oder vielleicht sogar Lösungen würde ich mich sehr freuen!

Vielen Dank

Ykcim
Patrick

Geändert von Ykcim ( 1. Sep 2011 um 19:58 Uhr) Grund: Der erste Weg scheint nicht möglich zu sein, also versuche ich einen anderen, mit dem ich auch leben kann...
  Mit Zitat antworten Zitat
Ykcim

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

Mail mit Tabelle aus einem StringGrid

  Alt 1. Sep 2011, 19:56
Hallo nocheinmal,

das ist kein PUSH, sondern eine echte Frage...

Ich habe jetzt stundenlang alles ausprobiert und bin keinen Millimeter weitergekommen. Daher möchte ich nun einen anderen Weg gehen...

Ich möchte das StringGrid nicht mehr über eine Exceldatei an den Empfänger verschicken, sondern möchte das StringGrid in die eigentliche Mail kopieren.

Leider habe ich keine Ahnung, wie ich das anstellen muss und bitte Euch um Hilfe.

Vielen Dank
Ykcim
Patrick

Geändert von Ykcim ( 1. Sep 2011 um 20:31 Uhr) Grund: Der erste Weg scheint nicht möglich zu sein, also versuche ich einen anderen, mit dem ich auch leben kann...
  Mit Zitat antworten Zitat
Ykcim

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

AW: Mail mit Tabelle aus einem StringGrid

  Alt 2. Sep 2011, 08:48
Hallo Zusammen,

das ist mir noch nie passiert, dass ich garkeine Antwort bekommen habe... Entweder ist die Frage zu blöd, oder das ist wirklich ein schwieriges Thema.

Da ich aber schnellsten eine Lösung brauchte, bin ich jetzt wie folgt vorgegangen:

1. StringGrid nach Excel in eine Vorlage exportiert und angezeigt.
Delphi-Quellcode:
//Inhalt eines TStringGrid nach Excel exportieren und anzeigen
function ExportStringGridToExcel(StringGrid : TStringGrid; Pfad:string; Space:integer) : Boolean;

begin
  Result := False;
  //Verbindung zu Excel herstellen
  ExcelApp := CreateOleObject('Excel.Application');
  try
    if not VarIsNull(ExcelApp) then
    begin
      //Neues Workbook öffnen
      Workbook :=ExcelApp.Workbooks.open(pfad);
      if not VarIsNull(Workbook) then
      begin
        //Maximalen Bereich bestimmen
        MaxCol := Min(StringGrid.ColCount, ExcelApp.Columns.Count);
        MaxRow := Min(StringGrid.RowCount, ExcelApp.Rows.Count);
        if (MaxRow > 0) and (MaxCol > 0) then
        begin
          //Worksheet auswählen
          Worksheet := Workbook.ActiveSheet;
          //Bereich auswählen
          Range := Worksheet.Range[RefToCell(1, 1, Space), RefToCell(MaxCol, MaxRow, Space)];
          if not VarIsNull(Range) then
          begin
            //Daten aus Grid holen
            Data := VarArrayCreate([1, MaxRow, 1, MaxCol], varVariant);
            for Row := 0 to Pred(MaxRow) do
            begin
              for Col := 0 to Pred(MaxCol) do
              begin
                Value := StringToVariant(StringGrid.Cells[Col, Row]);
                Data[Succ(Row), Succ(Col)] := Value
              end;
            end;
            //Daten dem Excelsheet übergeben
            Range.Value := Data;
            //Excel anzeigen
            Workbook.Activate;
            ExcelApp.Visible := True;
            Result := True;
          end;
        end;
      end;
    end;
  finally
    Value := UnAssigned;
    Data := UnAssigned;
    Range := UnAssigned;
    Workbook := UnAssigned;
    ExcelApp := UnAssigned;
  end;
end;
Funktion ist nicht von mir...

2. In der Vorlage einen VBA-Button erstellt, mit dem eine neue Mail mit der Datei im Anhang geöffnet wird.
Delphi-Quellcode:
ActiveSheet.Shapes("CommandButton1").Select
Selection.Delete
Application.Dialogs(xlDialogSendMail).Show Sheets("Tabelle1").Range("B8").Value, "Terminanfrage"
Das ist nicht so, wie ich es eigentlich haben wollte, aber die Kunden sind zufrieden...

In diesem Sinne

Ykcim
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Mail mit Tabelle aus einem StringGrid

  Alt 2. Sep 2011, 10:03
Auch wenn Du nun eine Lösung hast: wenn Du als HTML-Mail verschicken kannst/darfst, dann wäre es auch noch eine Option gewesen, das StringGrid in eine HTML-Tabelle zu exportieren und diese dann in den Mail-Body zu packen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Ykcim

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

AW: Mail mit Tabelle aus einem StringGrid

  Alt 5. Sep 2011, 13:41
Hallo DeddyH,

Das hatte ich versucht, aber nicht geschafft...
Wenn Du der Vollständigkeit halber noch für die Nachwelt ein Beispiel hättest, wäre das toll.

Eine Mail im Maileditor öffnen und Empfänger, Betreff und eine HTML-Tabelle im Body...

Vielen Dank

Ykcim
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Mail mit Tabelle aus einem StringGrid

  Alt 5. Sep 2011, 13:49
Das Beispiel steht doch bereits in Deinem anderen Thread. Anders würde ich es eigentlich auch nicht machen.

[edit] Achso, im EMail-Client, das könnte evtl. über ShellExecute funktionieren. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Ykcim

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

AW: Mail mit Tabelle aus einem StringGrid

  Alt 6. Sep 2011, 14:06
Hallo DeddyH,

genau das habe ich nicht hinbekommen... Die Mail soll nicht einfach verschickt werden, sondern mit Outlook zur möglichen weiteren Bearbeitung geöffnet werden...
Ich bin daran verzweifelt...

Gruß
Ykcim
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: Mail mit Tabelle aus einem StringGrid

  Alt 6. Sep 2011, 14:15
Etwas in der Art könnte helfen
   Shellexecute(handle,'Open','mailto:Ziel@irgendeinedomain?subject=Titelzeile&body=Erste Zeile.%0A%0aZweite Zeile.%0A%0ADritte Zeile','','',sw_Show)
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Ykcim

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

AW: Mail mit Tabelle aus einem StringGrid

  Alt 7. Sep 2011, 07:35
Hallo,

vielen Dank für die Antwort. Das hatte ich bereits ausprobiert. Aber ich brauche die Kombination, dass ich eine Excel Datei als Anhang habe und das ich eine Tabelle in der Mail habe, die auf einem StringGrid basiert.

Und daran bin ich verzweifelt... Habe alles Mögliche ausprobiert!

Vielen Dank

Ykcim
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#10

AW: Mail mit Tabelle aus einem StringGrid

  Alt 7. Sep 2011, 09:04
Du hast min. 4 versch. Wege eine EMail zu versenden.
1.) über Excel als Erfüllungsgehilfe
Problem: es fehlt die Kontrolle über den genauen Inhalt der Mail
Hier noch einige interessante Tricks: http://www.dicks-clicks.com/excel/olSending.htm
2.) über SMTP; also direkte Einlieferung der EMail bei einem "Mail-Server"
schnell, direkt, aber keine Vorschaufunktion und man muss viel selber machen
3.) über Simple-MAPI
hier gibt es eine Vorschaufunktion und der User kann die EMail ggf. noch ändern oder abbrechen
4.) Automatisierung von Outlook über COM/DCOM
so kann man Outlook bestmöglichst steuern, aber ohne Outlook geht gar nichts
http://support.microsoft.com/kb/209948

Wenn du auf dem Weg 1.) nicht weiterkommst könntest du es ja mal mit 4.) probieren.
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:51 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