Fragensteller
BERICHTE SPEICHERN

Frage
-
Ein HALLO an alle erfahrenen VFP Nutzer!
Ich möchte gern wissen, wie ich aus einem Programm heraus ein "Speichern unter" für einen fertigen Report hinbekomme!
Hierfür finde ich nirgends einen Lösungsvorschlag!!
Hat jemand eine Idee???
Vielen Dank für die Mühe und Grüße aus Hannover
Montag, 19. Dezember 2011 08:17
Alle Antworten
-
Ich nehme an mit "fertigem Report" meinst Du den zur Laufzeit mit aktuellen Daten ausgefüllten, gelaufenen Report. D.h. Du würdest gerne als Datei speichern, was auch gedruckt wird.
Das ist tatsächlich nicht so vorgesehen, ein Report ist lediglich eine Anweisung zur Aufbereitung der Daten und der nächste Druck des Reports ist wieder anders, wenn die Daten wieder andere sind. Nicht nur das, auch die ganze Abfrage, Filterung, Aufbereitung der Daten muß (leider) wiederholt werden, selbst wenn die Daten dieselben sind. Das sind erst einmal die Fakten.
Nun kann man das als Designfehler betrachten, oder das beste draus machen. Es gibt eine pragmatische Lösung dafür, Du druckst mittels eines PDF-Druckers und hast dann genau den Ausdruck auch als Datei. Das geht auch ohne den Report zweimal laufen zu lassen, um einmal Papier auszudrucken und einmal ein PDF zu erzeugen, indem man mittels eines Reportlisteners ein Zweiwegeausdruck hinkriegt. Frag mich jetzt nicht nach den Details, ich nutze Reports eher weniger, und wurde nie großer Fan von den neuen VFP9 Reportmöglichkeiten, ich nutze aus dem von Dir besagten Grund eher Word als meinen "Printer" und erzeuge per Wordautomation Dokumente, oder wo es sich anbietet auch Excel.
Es gibt aber auch schon seit jeher die Möglichkeit die Datenzusammenstellung von dem Report als Layout zu trennen, der Report kann nicht nur drucken, was aus seinem Dataenvironment kommt, Du kannst auch vorab alle Daten so in einem oder mehreren Tabellen, Cursoren, Views oder anderen Aliasen aufbauen, wie der Report es drucken kann, und dann kannst Du ja genau diese Daten permanent wegspeichern, um den Report nochmal mit genau diesen Daten laufen zu lassen. CREATE DATABASE myreport12345 und dann alle Aliase, die im Report genutzt werden per COPY TO ... DATABASE myreport12345 wegspeichern und schon hast Du FRX+Reportdatenbank zur Hand, um Reports wiederholen zu können. Und das myreport12345 erzeugst Du natürlich als laufend neuen Namen.
Also, je nachdem was genau Du bevorzugst, druckst Du in eine PDF Datei oder Speicherst die Reportdaten in eine gesonderte Datenbank (oder auch in freie Tabellen), um den Reportlauf zu wiederholen. Letzteres hat natürlich den Vorteil, daß man a) die Daten wie bei Reportdruck noch hat, auch wenn der Report dann Laufzeitfehler hat, dann kann man die Fehler korrigieren und den Report auf den evtl. mühsam und langwierig ermittelten Daten nochmal korrigiert wiederholen. Und man kann umgekehrt auch einzelne Daten korrigieren und den Report darauf dann korrigiert drucken. Diese Vorteile hat PDF nicht, dafür ist es nur eine einzelne Datei.
Und mit Sicherheit fallen anderen noch mehr Vorschläge ein.
Es ist jedenfalls technisch auch nicht ohne weiteres denkbar, ein SaveAs vorzusehen, weil ein FRX eben nur aus Layoutvorgaben und der Beschreibung der Datenquellen und Funktionasausdrücke oder -aufrufe besteht, die den Report zusammensetzen, die Daten davon aber abgetrennt sind, ein Save As ist also von der Sicht her immer nur ein Save As des Reportdesigns und daher ist auch eben nur das zur Entwicklungszeit vorgesehen. Oder Du speicherst eben die letztendlich erzeugten Grafiken, die auch an den Drucker gehen würden, und das ist dann wohl am idealsten gelöst als PDF-Datei oder vielleicht als TIFF, mit Reportlistener ist auch letzteres Möglich, weil der eigentliche Rerportcanvas eben nur grafisch ist, und unter der Verwaltung von GDIPlus steht.
Tschüß, Olaf.
- Bearbeitet Olaf Doschke Montag, 19. Dezember 2011 10:38
- Als Antwort vorgeschlagen Tom Borgmann Montag, 19. Dezember 2011 10:51
Montag, 19. Dezember 2011 10:33 -
Hi,
ergänzend zu Olafs Ausführungen gibt es bspw. bei unserer Reportadministration einen Schalter, ob eine automatische Archivierung des Ausdrucks vorgenommen werden soll. Hierbei erfolgt üblicherweise, neben dem regulären Ausgabe(Druck,Fax,EMail,etc.), eine zweite Ausgabe in eine PDF Datei die dann an ein Archivierungssystem übergeben wird. Hierbei müssen üblicherweise zu jeder dieser PDFs Verschlagwortungsdateien erzeugt werden, welche wie der Name des PDF Dokumentes bestimmten Richtlinien von Seiten des Archivherstellers genügen müssen.
Wenn Du eine solche Vorgehensweise nicht benötigst, dann wäre Olafs Vorschlag, die Daten vorab, also ausserhalb des Reports, zusammen zu stellen auch meine erste Wahl, denn die in einem oder mehreren Cursorn gesammelten Daten können dann mehr oder weniger problemlos auch als XML streams zur beliebigen Wiederverwendung herangezogen werden.
Gruss / Best regards -Tom 010101100100011001010000011110000101001001101111011000110110101101110011Montag, 19. Dezember 2011 11:00 -
Hallo Olaf,
vielen Dank für Deine Mühe!!!!!!
Mein Grundproblem ist aber folgendes.
Ich arbeite im Außendienst und muss immer Altware retournieren. Dafür habe ich mir ein Programm gebastelt, das auch sehr gut läuft.
Den fertigen Report faxe ich zur Firma - (dabei kann ich das Fax auch wahlweise als Datei abspeichern (FritzFax)) auch problemlos ..... jetzt habe ich aber ein Netbook und möchte diese nervige Arbeit auch im Auto per UMTS erledigen. Ein Faxgerät steht mir dabei natürlich nicht zur Verfügung. Mit Windows Fax & Scan funktioniert es irgendwie nicht (Windows 7 habe ich auf dem Netbook und muss mich hier noch einarbeiten.
Da es ja kein "SaveAs" gibt, aus den den von Dir angesprochenen, verständlichen Gründen, werde ich versuchen eine Lösung in einem entsprechenden Forum zu finden - kann ja nicht so schwer sein .................
Auf jeden Fall wünsche ich Dir und Deiner Familie? ein ruhiges Weihnachtsfest und ein gesundes neues Jahr!!!!!!
Viele Grüße von
Wolfgang
Dienstag, 20. Dezember 2011 10:55 -
Unabhängig davon, dass Du mit einer Remote Desktop Verbindung bzw. einer VPN Verbindung sicherlich besser bedient wärest, steht es Dir doch frei, eine als PDF (über einen entsprechenden Druckertreiber) erzeugte Datei via EMail zu versenden.
Eine automatische Generierung von EMails inkl. PDF Anhang kannst Du bspw. mit Cesar Chaloms FoxyPreviewer erreichen.
Und wenn das nicht genügt gibt es im Web das sogenannte Internet Printer Sharing, das es Dir erlaubt, remote auf einen Drucker zu Hause/im Büro zurückzugreifen. Voraussetzung hierfür ist allerdings, dass die SysAdmins das zulassen ;-)
Gruss / Best regards -Tom 010101100100011001010000011110000101001001101111011000110110101101110011Dienstag, 20. Dezember 2011 12:43 -
Na, da habe ich dann schon zu allgemein und kompliziert gedacht, allerdings PDF ja auch schon erwähnt. Ist die einfachste Lösung, wenn es nur darum geht den Report als Datei zu haben, den andere auch ohne Foxpro dann lesen können. Ich dachte Du wolltest eine technischere Lösung einen Report z.B. bei Papierstau nochmal wiederholen zu können, o.ä.
Danke für die guten Wünsche, wünsche ich natürlich zurück.
Tschüß, Olaf.
- Bearbeitet Olaf Doschke Mittwoch, 21. Dezember 2011 14:35
Mittwoch, 21. Dezember 2011 14:34