Hallo Forum!
Weiß jemand eine Möglichkeit, in ein Karten-Layout Felder mit Benutzer- und Dokumentinformationen
(z.B. das Druckdatum oder Name und Pfad der Projektdatei) einzubringen?
Grüße
Rena
Weiß jemand eine Möglichkeit, in ein Karten-Layout Felder mit Benutzer- und Dokumentinformationen
(z.B. das Druckdatum oder Name und Pfad der Projektdatei) einzubringen?
Grüße
Rena
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von Jörg Thomsen am Mo., 25.08.2003 - 18:33
Permalinkder avenue-Code ist gar nicht so schlimm (s. layout.ave.zip).
Der Trick besteht darin, das Layout im Voraus zu erstellen und auch die Textelemente anzulegen. Jedes Textelement, das später automatisch durch das Script geändert werden soll, sollte mit eindeutigem Text versehen werden, . B.: @@Erstellungsdatum, @@Rechnername, @@Dateiname.
Dann die apr-datei speichern, dieselbe in einem Editor öffnen und nach den o.g. eindeutigen Begriffen suchen. Dann sollte sich etwa sowas finden:
(GText.13
Name: "GraphicText1"
Bounds: 14
Sym: 15
Selected: 0x01
Text: "@@Erstellungsdatum"
Spacing: 1.00000000000000
)
Hier kann jetzt "GraphicText1" durch die im Avenue-Code vorhandene Bezeichnung ausgetauscht werden:
(GText.13
Name: "datum"
Bounds: 14
Sym: 15
Selected: 0x01
Text: "@@Erstellungsdatum"
Spacing: 1.00000000000000
)
speichern.
Damit kann das Script das Textelement im Layout finden und über SetText den Texteintrag austauschen.
Viel Erfolg!
Jörg Thomsen
Gespeichert von Gast am Mi., 28.01.2004 - 15:17
Permalinkich habe ähnliche Wünsche bezüglich des Layouts wie Rena, nur verstehe ich nicht so recht was Jörg hier meint. Kann mir da einer auf die Sprünge helfen.
Gruss
roland
Gespeichert von Gast am Do., 29.01.2004 - 13:32
Permalinkwo genau hast Du die Verständinsprobleme? Soll ich noch mal den Avenue-Code dazu liefern?
Jörg Thomsen
Gespeichert von Gast am Do., 29.01.2004 - 13:38
Permalinkja versuch es mal, vielleicht fällt dann bei mir der Groschen!
Gruss
roland
Gespeichert von Gast am Do., 29.01.2004 - 13:41
Permalink' Name: _drucken
theLayout = av.FindDoc("Druckvorschau")
theView = av.getProject.FindDoc("Kartenfenster")
theGrText = theLayout.GetGraphics
...
datum = [irgendwas].GetDate
...
FOR EACH e in theGrText
....
IF (e.AsString = "Datum") then
e.SetText(datum)
END
...
END
Jörg
Gespeichert von Gast am Do., 29.01.2004 - 13:57
Permalinkalso doch Bahnhof! Wie lege ich denn ein Textelement an? Den avenue code soll ich in ein script kopieren und das dann kompelieren oder wie? Ich habe das Gefühl der Zug ist abgefahren! Vielleicht kannst Du mir das mal Schritt für Schritt erklären.
LG
roland
Gespeichert von Gast am Do., 29.01.2004 - 14:40
PermalinkHallo Roland,
das Textfeld legst Du ganz normal in ArcView im Layout-GUI an. Mit der Maus und so. Da schreibst Du dann einen für das gesamte AV-Projekt eindeutigen Text rein, z. B. "@@Erstellungsdatum".
Projekt speichern.
Projekt schließen.
Projekt in ordentlichem Ascii-Editor (TextPad, Scite, Ultraedit) öffnen. nach @@Erstellungsdatum suchen.
Dann sollte sich etwa sowas finden:
(GText.13
Name: "GraphicText1"
Bounds: 14
Sym: 15
Selected: 0x01
Text: "@@Erstellungsdatum"
Spacing: 1.00000000000000
)
Hier kann jetzt "GraphicText1" durch eine sprechendere Bezeichnung ausgetauscht werden:
(GText.13
Name: "datum" <-- hier, an dieser Stelle
Bounds: 14
Sym: 15
Selected: 0x01
Text: "@@Erstellungsdatum"
Spacing: 1.00000000000000
)
speichern.
Jetzt kannst Du mit Avenue über den Dir bekannten Namen des Grafik-Objekts ("Datum") auf das Grafik-Objekt zugreifen (im Bsp.-Code verweise die Variable e auf das Grafik-Objekt). Mit e.SetText() kannst Du dem Objekt nun einen beliebigen Text zuweisen, der dann beim Öffnen/Aktualisieren des Layouts statt Deines urpsrünglich eingegeben Textes ("@@Erstellungsdatum") auch angezeigt werden sollte.
> Den avenue code soll ich in ein script kopieren und das dann kompelieren oder wie?
Wenn Du
- die die '...' rauslöscht
- die Datumszuweisung korrigierst (ich weiß gerade nicht, von was man sich in Ave das Systemdatum holt, wahrscheinlich system)
- Dein Layout Druckvorschau nennst oder die Scriptzeile an Deinen Layoutnamen anpasst,
sollte das schon funktionieren. Die Zeile theView... kannst Du löschen, ich habe das ganze aus einem etwas längeren Script von mir rauskopiert.
Alles unklar?
Jörg
Gespeichert von Gast am Fr., 30.01.2004 - 08:25
Permalinkich sehe Licht am Ende des Tunnels, nur das mit dem avenue code habe ich immer noch nicht verstanden. Wo soll ich den einsetzen?
Gruss
roland
Gespeichert von Gast am Fr., 30.01.2004 - 14:47
Permalink> Wo soll ich den einsetzen?
in das Script, das das Datum ins Layout setzen soll.
Verstehe ich Deine Frage nicht?
Jörg
Gespeichert von Gast am Fr., 30.01.2004 - 15:46
Permalinkalso ich habe nicht viel Ahnung von Scripten. Wenn ich die Sache richtig verstehe öffne ich den script Editor kopier den code hinein und erzeuge mir einen Button über den ich das Script laufen lasse. Ist das soweit korrket oder habe ich was fundamentales noch nicht gecheckt?
LG
roland
Gespeichert von Gast am Fr., 30.01.2004 - 16:02
PermalinkIrgendwie ahnte ich sowas :-)
> Wenn ich die Sache richtig verstehe öffne ich den script Editor kopier den
> code hinein und erzeuge mir einen Button über den ich das Script laufen lasse.
ja genau. Noch schöner wird es natürlich, wenn Du den Vorgang direkt mit dem Aufruf des Layouts oder dem Drucken verknüpfst. Vielleicht wäre es eine Lösung (der Einfachheit halber) das Script als Startscript zu nehmen, dann steht immer das aktuelle Datum Layout. Ich will sagen: Wenn des dafür einen extra Button im Layout-GUI gibt, der geklickt werden will, dann ist nicht viel Arbeit gespart und man könnte fast genauso gut das Datum von Hand einfügen.
Ich wünsche ein schönes Wochenende und schaue Montag wieder vorbei!
Jörg
Gespeichert von Gast am Sa., 31.01.2004 - 01:09
Permalinkdu bist wirklich ein geduldiger Helfer! Dafür werde ich versuchen, ob man dieses Febster nicht etwas größer kriegt. Ist halt ein vorgefertigtes php-forum mit begrenzten Möglichkeite. Werde medea-av mal fragen.
Gruß, Klaus - ANUVA
Gespeichert von Gast am Mo., 02.02.2004 - 12:08
Permalinkwie kann ich denn den Vorgang direkt mit dem Aufruf des Layouts verbinden?
LG
roland
Gespeichert von Gast am Mo., 02.02.2004 - 12:41
PermalinkJörg -MapMedia
p.S. zum größeren Eingabefenster:
Klaus, suche in den Quellen nach "
<textarea name=postText cols=38 rows=10 WRAP class=textForm></textarea>". Probiere mal dort den Wert für cols rauf zusetzen.