DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

print settings

Hallo,
 
versuch gerade meine Berichte in ein PDF-Datei zu basteln. Es handelt sich um mehrere tdr mit zugehörigen tdm-Dateien.
Mach das ganze mit DocStart und DocEnd. klappt relativ gut, was mir fehlt sind folgende 3 Punkte:
 
1.) Nach einem DIAdem Neutstart ist der Druck zu gross, sprich mein Layout wird im pdf nur zu 3/4 abgebildet, Rest passt nicht auf Blatt
     Erst wenn ich den Dialog öffne werden die Einstellungen richtig übernommen. Wie kann ich dies im Script machen, arbeite
     schon mit printleftmgn (oder so ähnlich), selbiges mit bottom und mit width.
 
2.) Hätte gern ein Inhaltsverzeichnis, aber damit komm ich noch gar nich klar.
 
3.) Seitenummerierung  während des Drucks? Ist sowas möglich?
0 Kudos
Message 1 of 6
(4,000 Views)
Hallo Michael!
 
zu 1.) füge mal einen 'Call PrintMaxScale()' ein
 
zu 2.) hat dir meine Antwort nicht gefallen? 
 
zu 3.) füge einen Text mit '@@GraphSheetCurrNo@@' auf jede Seite als Seitennumer ein
 
Matthias
Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater?  
0 Kudos
Message 2 of 6
(3,998 Views)

Hallo Kollegen,

Ich benutze diese code fuer Diadem 8.1 + Adobe 6.0

Call PicLoad("Graph1.LPD") ' z.B
T1=Datafile
PicFile = T1+"_2" 'Weil Adobe PDF Druecker versteht die *.LPD Name
PrintName = "winspool,Adobe PDF"
Call PicPrintNoDlg("WinPrint")

Aber, leider muss man immer das Druecker prompt im "OK" klicken. Ich suche auch ein einfacher Loesung.

Gruess

Rodrigo

Sao Paulo - Brasil

 

 

0 Kudos
Message 3 of 6
(3,986 Views)
Hallo Matthias,
 
zu Lösung 1): Super, besten Dank, scheint wunderbar zu funktionieren
 
zu Lösung 2): Erstmal auch Danke, hatte es eigentlich nur nochmal gepostet, um zu sehen, ob noch jemand anderes ein Lösung kennt.
                       Hab die Lösung noch nicht wirklich ans laufen gekriegt, glaub auch, dass ich mein Problem noch nicht ausführlich genug
                       geschildert hab, folgt aber gleich.
 
zu Lösung 3): Funktioniert nur teilweise, Grund siehe Problematik:
 
Meine Problematik:
 
Also, ich habe Eingangsdaten nach verschiedenen Kanälen sortiert. Da DIAdem nur 3 Ebenen zur Zuordnung bereitstellt (Root - Group - Channel),
verwirkliche ich die Restlichen Ebenen die ich brauchte mit dem Dateisystem, sprich über Ordnerbaum.
 
Dies hat zur Folge, das ich aus meinen Eingangsdaten mehrere tdm-Dateien generiere und damit auch mehrere tdr-Dateien. Es müssen meines
Erachtens mehrere tdr-Dateien sein, das die Anzahl der Kanäle und Gruppen in einer Datei nicht voraus gesagt werden können, dies ist von Messung
zu Messung unterschiedlich. Ebenesowenig ist die Anzahl der tdm-Dateien unterschiedlich. Also hab ich ein Script geschrieben, das zu jeder tdm-Datei
eine eigene tdr-Datei generiert. Hierdurch erhalte ich viele kleine Layout-Dateien, was den Vorteil hat, das ich den Hauptspeicher des Betriebssystem
nicht zu sehr in Anspruch nehme (man kann DIAdem so zum stillstand kriegen, also wenn alle tdm-Dateien ins Datenportal geladen werden und dann nur
ein riesen tdr-File gebastelt wird)
Aber zurück. Nun möchte ich all diese kleinen tdr-Dateien zu einem Bericht zusammenfügen. Dies ist möglich mit DocStart - Print-Befehls-Schleife - Docend.
Damit krieg ich nun aber Problem beim erstellen eines Inhaltsverzeichnis und bei der Bestimmung der Seitenzahl.
 
Ich hoffe mein Problem ist nun klarer geworden.
Kennt jemand ne nette Lösung oder eine guten Ansatz?
 
Mfg Michael
0 Kudos
Message 4 of 6
(3,978 Views)
Hallo Michael!
 
Jetzt ist das Problem klarer. Bei der Entwicklung von X-Frame, unserem Applikations Framework auf Basis von DIAdem, hatte ich das auch schon mal vor Jahren zu lösen (noch mit LPDs).
 
Für eine Lösung muss man sicherlich einen gewissen Überbau schaffen der am Anfang alle Informationen (welche Layouts, welche Daten, Startzeitpunkt der Ausgabe, etc.)  sammelt. Diese Werte müssen dann in Variablen liegen (als DIAdem Variablen oder heute auch als VBS) damit man darauf aus dem Layout heraus zugreifen kann um z.B. ein Inhaltsverzeichnis zu erstellen. Die eigentlich Druckschleife für jede Seite zählt dann noch eine Variable als Seitenzähler hoch die du dann im Layout als Seitenzahl verwenden kannst. Ein richtiges Problem ist die Ausgabe einer Gesamtseitenzahl schon auf der ersten Seite wenn man Layouts mit automtisch wachsenden Tabellen hat. Rein theoretisch müsste man da erstmal einen Durchlauf ohne Druckausgabe machen, was aber in der Praxis nicht praktikabel ist, da das alles so schon viel zu lange dauert. Im X-Frame hat die Druckschleife 3 Ebenen: über alle Daten, über alle Layouts, über alle Seiten des Layouts (auch die die durch wachsende Tabellen entstehen)
 
Nochmal zurück zum Inhaltsverzeichnis. Wenn du die ganzen Informationen die du dort haben willst in Variablen speicherst sollte es relativ einfach sein daraus ein hübsches Layout zu machen das als erste Seite ausgegeben wird. Es ist nur wahrscheinlich notwendig eine Maximalanzahl von Seiten vorher festzulegen, da ein mehrseitiges Inhaltsverzeichnis wieder eine spannende Aufgabe ist, für die noch eine Schleife notwendig ist.
 
Ich hoffe das hilft schon etwas weiter
 
Matthias
Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater?  
0 Kudos
Message 5 of 6
(3,972 Views)
Hallo Matthias,
ja das hilft mir tatsächlich schon um einiges weiter.  Bin mir also auf jedenfall sicher, das ich die Schleife 2 mal durchlaufen muss, einmal daten Sammeln + setzen der Seitenzahlen, einmal um Inhaltsverzeichniss zu erstellen und alles drucken...hört sich erstmal plausibel an.
Danke für die Hilfe! Hört sich übrigens nach nem nette Job bei dir an Smiley Wink
 
Mfg michael
0 Kudos
Message 6 of 6
(3,968 Views)