Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

DataReport per Mail versenden

13 views
Skip to first unread message

Lothar Geyer

unread,
Apr 21, 2012, 12:28:52 PM4/21/12
to
Ich möchte einen mit VB6/DataReport erstellten Report per Mail
versenden. Er sollte natürlich so aussehen wie beim Ausdruck des Reports
(beinhaltet keine Images, nur Standard-Textfelder und -Labels. Umwege
über .pdf oder so können sein. Der Export in eine .txt-Datei schaut aber
weniger schön aus.

Lothar Geyer

R.Kantas

unread,
Apr 23, 2012, 1:48:02 PM4/23/12
to
IF "Umwege über .pdf oder so können sein. " THEN
CALL http://www.heise.de/download/suche-50000105000/?T=7-PDF%20Printer
DOWNLOAD irgendeinen
INSTALL it
BE HAPPY
END IF

Lothar Geyer

unread,
Apr 23, 2012, 2:22:56 PM4/23/12
to
IF action = vonHand then
OK
ELSEIF action = vonVB6App then
Err.Raise errnr, "Printer Not Selectable"
END IF

W. Wolf

unread,
Apr 24, 2012, 1:49:42 AM4/24/12
to
Hallo Lothar,

nachdem hier wenig Vorschläge kommen, versuch ich es mal
(besser ein schlechter Vorschlag als gar keiner):

Ich verwende hier den PDFMailer von gotomax.

Zum einem kann ich hier einen Dateinamen für das PDF vorgeben, ich weiß
also wo ich das fertige PDF finde wenn es ausgedruckt ist, um es danach
per Mail zu versenden.

Zum anderen kann der PDF-Mailer auch von sich aus Mails versenden und
nutzt dabei die Standard-Schnittstellen wie Outlook, MAPI, SMTP oder
Thunderbird. Des weiteren ist hier die Möglichkeit vorhanden ein
Briefpapier einzubinden, das gefällt hier auch.

Der PDFMailer kann wie ein Drucker angesprochen werden, ein Druck aus
dem DataReport sollte also funktionieren. Eine Vorschau hat er übrigens
auch. Für Firmen dürfte die Server-Variante interessant sein.

So, genug der Werbung für einen Hersteller der mir dafür nichts bezahlt
;-). Der PDF-Mailer kostet was.

Alternative wäre halt ein PDF-Treiber, bei dem Du den PDF-Dateiname in
irgendeiner Form festlegen kannst, damit VB das fertige PDF wieder
abholen kann. So was findet sich doch sicher bei den vielen Kandidaten
im Netz.

Schönen Gruß
W. Wolf

Lothar Geyer

unread,
Apr 24, 2012, 2:32:29 AM4/24/12
to
Guten Morgen Wolfgang,

das Problem ist in diesem Fall nicht der .pdf-Drucker-Treiber. Das
Problem ist, dass ich bei den Druck-Methoden des DataReport keine
Drucker auswählen kann. Workaround wäre natürlich, den Standard-Drucker
temporär umzudefinieren, was ich aber gerne vermieden hätte wegen der
möglichen "Dreck-Effekte".

Ich habe auch keine Möglichkeiten gefunden, den Output des DataReport in
eine Datei umzuleiten, die man dann versenden könnte und die beim
Empfänger problemlos angezeigt werden kann.

Eine weitere Alternative wäre natürlich, eine Textverarbeitung
einzuschalten. Aber das hat ja auch Probleme: welche Textverarbeitung
steht zur Verfügung, Vorlagedateien müssten verwalten werden usw. usf.

Wenn ich nicht so viele Reports hätte (die im übrigen ja relativ schnell
erstellt und leicht handhabbar sind), würde ich ja auf einen in VB6
geschriebenen Report-Tool umsteigen (es gibt einiges an Freeware).

Da könnte man dann auch einiges an Kundenwünschen realisieren: Einbinden
eines eigenen Logos usw.

Lothar Geyer

R.Kantas

unread,
Apr 24, 2012, 6:37:09 AM4/24/12
to
> IF action = vonHand then
> OK
> ELSEIF action = vonVB6App then
> Err.Raise errnr, "Printer Not Selectable"
> END IF

IF POPUPWINDOWS stören THEN
USE SendKeys
IF NOT OK THEN
SEARCHFOR AnotherDriver
RETURNTO Anfang
END IF
ELSE
WeißNichtWasStört
END IF

Lothar Geyer

unread,
Apr 24, 2012, 10:34:40 AM4/24/12
to
Jetzt muss ich doch "Deutsch" werden. ;-(

Aus der VB6-Anwendung raus kann ich dem DataReport keinen Drucker
vorgeben, also auch keinen PDF-Drucker. Ich kann zwar einen Dialog zur
Druckerauswahl öffnen, aber das nützt nicht viel.

Die Maske zu dem Problem kannst Du hier sehen:
http://doku.telmarkt.de/doku.php?id=callcenter:protversand

Wenn auf "Versenden" geklickt wird, soll per DataReport der Report
erstellt werden und dann zusammen mit anderen Dateien automatisch per
E-Mail versandt werden. Dazu wird dann eine weitere Maske geöffnet
(http://doku.telmarkt.de/doku.php?id=basis:kontakt:emailaus), in der der
Empfänger und die Anhänge schon eingetragen sind. Es können lediglich
weitere Empfänger definiert und der Text verändert bzw. ein
Standard-Text abgerufen werden.

Ein Dialog zur Auswahl eines Druckers läuft ja asynchron ab. Ich müsste
also Sychonisierungs-Mechanismen einbauen, damit die E-Mail nicht
versendet werden kann, bevor im Report der Drucker ausgewählt worden
ist. Und außerdem muss der Benutzer wissen, dass er nun einen Drucker
auswählen und dann drucken muss und das Programm muss wissen, wo die
.pdf-Datei gespeichert wird usw.

Mit z.B. Word oder OO Writer kann ich das Dokument vom Programm aus in
einen bestimmten Pfad speichern und direkt der Maske zum E-Mail-Versand
geben. Und der Benutzer muss gar nichts tun.

Lothar Geyer

R.Kantas

unread,
Apr 24, 2012, 12:56:39 PM4/24/12
to
Nix Usergetippsel.

Mit MS CommonDialog Control:

SendKeys "MeinDrucker" 'sendet Treibernamen an kommenden Dialog
SendKeys "%d" 'sendet ALT-D für 'drucken'
CommonDialog1.ShowPrinter 'öffnet den Dialog modal

Printer.Print "ballaballa" 'drucke irgendwas auf MeinDrucker
Printer.EndDoc

just my 2c
rokas


...und wenn ich das richtig sehe, dann wird (bei entsprechender Einstellung)
nicht mal der System-Standarddrucker verändert, nur App-interne.

0 new messages