| |
Anzeigen |
|
|
Social Bookmark Script |
|
|
|
 |
... der Anfang ist ganz schön schwer |
Brigitte

Mitglied
 
Dabei seit: 21.09.2007
Beiträge: 36
 |
|
| ... der Anfang ist ganz schön schwer |
 |
Hallo,
ich habe die Dokumentation gelesen und die Beispiele angesehen, doch ich weiß immer noch nicht, was ich machen muss, wenn sich einen Report sofort, ohne Preview, auf Papier bringen möchte. Zuvor sollen aber Filter gesetzt werden und danach möchte ich gerne wissen, wieviele Seiten es waren.
Beispiel:
Rechnung 1. Kunde - Seitenzahl
Rechnung 2. Kunde - Seitenzahl
....
Kann mir bitte jemand einen kurzen Tipp geben, bzw. ein kleines Beispiel?
Danke,
Brigitte
|
|
18.08.2010 11:50 |
|
|
Matthias
Super Moderator
   
Dabei seit: 09.07.2007
Beiträge: 233
Einsatzart von VDF: gewerblich Anwenderstatus: VDF-Entwickler Herkunft: Niedernhausen Betriebssystem: XP, Vista, Win7, 2008 Ser
 |
|
Über PrintReport kann man den Report direkt auf den Drucker ausgeben, dabei kommt eine Druckdialog-Auswahlbox. Ein Beispiel liefert die Auswahl von Option 3 im deutschen Assistenten.
Die Ermittlung der Anzahl der Seiten ist noch nicht Bestandteil des Produkts, das hat DAE bereits auf eine Wunschliste gesetzt.
Viele Grüße
Matthias
|
|
18.08.2010 15:05 |
|
|
Matthias
Super Moderator
   
Dabei seit: 09.07.2007
Beiträge: 233
Einsatzart von VDF: gewerblich Anwenderstatus: VDF-Entwickler Herkunft: Niedernhausen Betriebssystem: XP, Vista, Win7, 2008 Ser
 |
|
Ich habe es an DAE weiter gegeben und hoffe, dass sie ein Beispiel für die direkte Übergabe eines Druckers bereitstellen können.
Vielleicht kannst Du den "Mitlesern" mal Deinen Tipp weitergeben, wie Du in der .PDF automatisiert die Anzahl der Seiten ermittelt hast?
Matthias
|
|
24.08.2010 17:45 |
|
|
Brigitte

Mitglied
 
Dabei seit: 21.09.2007
Beiträge: 36
Themenstarter
 |
|
Hallo,
die Dokumentation zum VRW ist recht umfangreich und hat auch viele Beispiele. Hier das Beispiel, wie ich die Seitenanzahl auslese:
Object btnPrint is a Button
Set Size to 23 50
Set Location to 265 219
Set Label to "&Packzettel drucken"
Set MultiLineState to True
// fires when the button is clicked
Procedure OnClick
Integer iSeiten
Send OutputReport of oVisualReport1 0
Get ReportPageCount of oVisualReport1 to iSeiten
End_Procedure
End_Object
Object oVisualReport1 is a cVisualReport
Set Size to 251 571
Set Location to 8 16
Set pbAutoLocateDFFiles to False
Set Visible_State to False
Set psReportName to "f:\perv\rpt\servpkz.vrw"
Set peOutputDestination to PRINT_TO_FILE
Set psExportFileName to "f:\perv\temp\Seiten.pdf"
Procedure OnInitializeReport
Date dEVT
String sDate
Get pEVT of oApplication to dEVT
Forward Send OnInitializeReport
Get VRWDate dEVT to sDate
Set psFilterFunction '' to ('return({Formular.evt} =' + sDate + ')')
End_Procedure
End_Object
Wenn der Anfang gemacht ist, ist es doch nicht mehr so schwer.
Brigitte
|
|
25.08.2010 10:21 |
|
|
GhostShotIV
Grünschnabel
Dabei seit: 25.09.2009
Beiträge: 9
Einsatzart von VDF: gewerblich Anwenderstatus: VDF-Entwickler Herkunft: Wiesbaden Betriebssystem: Windows Vista
 |
|
Hallo Brigitte,
hier ein Beispiel, wie man einen Report direkt auf den Standarddrucker ausgeben kann und die Seitenanzahl danach zurückgibt.
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
|
Object btnPrint is a Button
Set Size to 14 50
Set Location to 238 298
Set Label to "drucken"
// fires when the button is clicked
Procedure OnClick
Integer iSeiten
Get SofortDruck of oVisualReport1 to iSeiten
Send Info_Box ("Anzahl der Seiten: "+String(iSeiten))
End_Procedure
End_Object
Object oVisualReport1 is a cVisualReport
Set psReportName to "D:\temp\Order Entry\data\My First Report.vrw"
Function SofortDruck Returns Integer
Handle hPrntDlg hoPrintDialog hPrintDlg
Integer iRetval
Integer iSeiten PrinterDC
String sReportId
//Einen PrintDialog erzeugen
Get Create (RefClass (cPrintDialog)) to hoPrintDialog
//Diesem sagen, das er den Default Drucker zurück geben soll
Set piFlags of hoPrintDialog to PD_RETURNDEFAULT
//PrintDialog aufrufen (taucht nicht auf, da er direkt den
//Standarddrucker zurück gibt)
Get PrintDialog of hoPrintDialog to iRetval
If (iRetval<>0) Begin
//Handel vom PrintDialog holen
Get phPrintDlg of hoPrintDialog to hPrintDlg
//Report öffnen
Get OpenReport of oVisualReport1 to sReportId
//Report mit den Einstellungen des PrintDialogs drucken
Send PrintReport of oVisualReport1 hPrintDlg
//PrintDialog wieder zerstören. Ansonsten bleibt er im Speicher
Send Destroy of hoPrintDialog
End
//Seitenzahl des Reports ermitteln
Get ReportPageCount of oVisualReport1 to iSeiten
Send CloseReport of oVisualReport1 sReportId
Function_Return iSeiten
End_Function
End_Object |
|
|
|
15.09.2010 08:50 |
|
|
Brigitte

Mitglied
 
Dabei seit: 21.09.2007
Beiträge: 36
Themenstarter
 |
|
Danke,
soweit war ich auch schon. Doch hat schon jemand eine Lösung, wenn ich den Report A auf dem Drucker A und den Report B auf dem Drucker B, natürlich ohne Dialog ausgeben möchte?
|
|
16.09.2010 12:36 |
|
|
|
|
|
 |
|