Abfragen und Auswertungen: Unterschied zwischen den Versionen
(140 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
==Suchcenter== | |||
Mit dem Suchcenter können Sie in GeoMedia SmartClient Kommunal vorgefertigte Suchanfragen starten. Sie können z.B. nach Adressen oder Flurstücken suchen, indem Sie die entsprechende vordefinierte Suchanfrage auswählen. Ist noch keine Suchanfrage auswählbar oder sollen neue, individuelle Suchanfragen über das Suchcenter bereitgestellt werden, so können diese mithilfe des [[Konfigurationen#Filterkonfiguration|Filter-Managers]] konfiguriert werden. | |||
Das Fenster "Suchcenter" öffnen Sie mit einem Klick auf [[File:search_center_16.png|16px]] ''(Suchcenter)'' in der [[Client-Benutzeroberfläche#Statusleiste|Statusleiste]]. Wählen Sie aus der Liste aus, wonach Sie suchen wollen. Im unteren Teil des Fensters erscheinen die Eingabefelder. Tragen Sie Ihre Suchbegriffe dort ein. Sollte Ihnen die genaue Schreibweise nicht bekannt sein, können Sie mit einem Platzhalter (*) die Eingabe abkürzen. Sie können die Suche nun mit der Schaltfläche "Suche starten" initiieren. | |||
[[File:suchanleitung.PNG|800px]] | |||
Das Ergebnis wird in einer Tabelle angezeigt, die mit der Suchcenter-Abfrage verknüpft ist. In der Statusleiste wird die Anzahl der gefundenen Ergebnisse angezeigt. | |||
[[File:suchanleitung2.PNG|800px]] | |||
[[File: | Wenn zu viele Ergebnisse in der Tabelle erscheinen, müssen Sie Ihre Suche präzisieren. Das können Sie tun, indem Sie ein weiteres Eingabefeld füllen (falls vorhanden). Nach Eingabe des Wertes starten Sie die Abfrage erneut mit "Suche starten". Das Ergebnis aktualisiert sich in der noch geöffneten Tabelle. Um ein Ergebnis in der Karte anzuzeigen, klicken Sie auf das Symbol [[File:Karten_selektion_16.png|16px]] neben dem Tabelleneintrag. Um die zu dem Ergebnis zugehörigen Daten anzuzeigen und gegebenenfalls zu ändern, klicken Sie auf das Symbol [[File:bearbeiten__16.png|16px]]. | ||
<div id="mainpage-welcome-box" style="margin:0em 0em 0.3em 0em; width=30px ;border:1px solid #cccccc; background-color:#CAE1FF; padding: 0.5em;">'''Hinweis:''' Sind mehrere Sichten auf eine Objektklasse vorhanden, die alle einen Sichtenfilter definiert haben, wird die Funktion [[File:karten_selektion_48.png|16px]] ''(Objekte in der Karte anzeigen)'' in der Tabellen Toolbar nicht angezeigt. Gibt es nur eine Sicht auf die Objektklasse, die keinen Sichtenfilter beinhaltet, ist die Funktion vorhanden. Wie [[Datenstruktur#Datenstruktur|hier]] beschrieben, kann eine Sicht die gesamten Datensätze einer Objektklasse darstellen oder eine Teilmenge davon. Die Suche im Suchcenter greift auf die Objektklasse und nicht auf die Sicht zu. <br /> | |||
Ist die Funktion nicht vorhanden, gibt es keine ungefilterte Sicht auf die entsprechende Objektklasse. In diesem Fall wird ihnen die Auswahl der Sichten angezeigt, sofern sie die Funktion [[File:karten_selektion_48.png|16px]] ''(Objekte in der Karte anzeigen)'' eines einzelnen Eintrags öffnen, in deren Objektklasse sich das gesuchte Objekt befindet. Je nachdem welche Sicht Sie dann auswählen, wird das Objekt in dieser Sicht angezeigt. Zum Beispiel entspricht dann die Darstellung der Definition der ausgewählten Sicht. Um die Funktion also dauerhaft angezeigt zu bekommen, muss mindestens eine ungefilterte Sicht auf die Objektklasse vorhanden sein.</div> | |||
Falls keine Suchergebnisse gefunden werden, erscheint eine entsprechende Meldung. | Falls keine Suchergebnisse gefunden werden, erscheint eine entsprechende Meldung. | ||
Zeile 53: | Zeile 23: | ||
Die Darstellung der Suchergebnisse können Sie über Spalten- und Sortierkonfiguration | Die Darstellung der Suchergebnisse können Sie über Spalten- und Sortierkonfiguration | ||
beeinflussen. Unter | beeinflussen. Unter "Filterkonfiguration" stehen in der zugehörigen Auswahlliste vordefinierte Filterfunktionen zur Verfügung, um die Suchergebnisse nach beliebigen Kriterien zu filtern. Wenn Sie Filterergebnisse rückgängig machen wollen, sodass wieder alle Datensätze in der Tabelle angezeigt werden, dann müssen Sie nur den Standard-Filter "keine" aus der Filterliste | ||
wählen. | wählen. | ||
Zeile 64: | Zeile 34: | ||
*Je nach Einstellung wird die Auswahl durch eine andere Darstellung hervorgehoben (eine Markierung). | *Je nach Einstellung wird die Auswahl durch eine andere Darstellung hervorgehoben (eine Markierung). | ||
*Die Markierung ist eine Darstellungsdefinition, die pro Sicht individuell definiert werden kann. | *Die Markierung ist eine Darstellungsdefinition, die pro Sicht individuell definiert werden kann. | ||
*Standardmäßig werden Farben in | *Standardmäßig werden Farben in rötlichen Tönen für die Hervorhebung ausgewählter Datensätze verwendet. | ||
*Für die Auswahl der Objekte in der Karte stehen in der Werkzeugleiste der Karte mehrere Funktionen zur Verfügung: | *Für die Auswahl der Objekte in der Karte stehen in der Werkzeugleiste der Karte mehrere Funktionen zur Verfügung: | ||
Zeile 105: | Zeile 75: | ||
aufgezogen. Ein weiterer Klick mit der | aufgezogen. Ein weiterer Klick mit der | ||
linken Maustaste beendet die Auswahl. | linken Maustaste beendet die Auswahl. | ||
|- | |- | ||
![[File:quickpick_polygon_24.png|24px]] | ![[File:quickpick_polygon_24.png|24px]] | ||
Zeile 137: | Zeile 93: | ||
der linken Maustaste setzen Sie die Punkte | der linken Maustaste setzen Sie die Punkte | ||
der Linie. Schließen Sie mit Doppelklick ab. | der Linie. Schließen Sie mit Doppelklick ab. | ||
|- | |||
![[File:ObjektalsBegrenzung.PNG|40px]] | |||
|Markiertes Objekt als Begrenzung | |||
Diese Funktion ermöglicht das Auswählen | |||
von Objekten, welche sich innerhalb des ausgewählten Objekts befinden. | |||
|- | |||
![[File:QuickPickKartenausschnitt.PNG|40px]] | |||
|Kartenausschnitt | |||
Diese Funktion ermöglicht das Auswählen | |||
von Objekten, welche sich innerhalb des aktuellen Kartenausschnitts befinden. | |||
|} | |} | ||
'''Arbeitsschritte:''' | '''Arbeitsschritte:''' | ||
*Klicken Sie die gewünschte Funktion an. | *Klicken Sie die gewünschte Funktion an. | ||
*Klicken Sie das Objekt in der Karte an oder zeichnen Sie je nach Funktion die Auswahlfläche (als Rechteck oder Kreis o.ä.) in die Karte. Bestätigen Sie mit Linksklick. | *Klicken Sie das Objekt in der Karte an oder zeichnen Sie je nach Funktion die Auswahlfläche (als Rechteck oder Kreis o.ä.) in die Karte. Bestätigen Sie mit Linksklick. | ||
'''Ergebnis:''' | '''Ergebnis:''' | ||
*In der Karte erscheint ein Kontextmenü mit einer Auflistung der "gefundenen" Objekte pro Sicht. | *In der Karte erscheint ein Kontextmenü mit einer Auflistung der "gefundenen" Objekte pro Sicht. | ||
*Die Art des Kontextmenüs hängt von der Anzahl der Objekte unterhalb des Mauszeigers ab. Dabei kann es vorkommen, dass mehrere Objekte einer oder mehrerer Sichten gefunden werden. Im Kontextmenü werden die Sichten, in denen sich die Objekte befinden, aufgelistet. Sie müssen sich dann für ein Objekt (einer Sicht) entscheiden. | *Die Art des Kontextmenüs hängt von der Anzahl der Objekte unterhalb des Mauszeigers ab. Dabei kann es vorkommen, dass mehrere Objekte einer oder mehrerer Sichten gefunden werden. Im Kontextmenü werden die Sichten, in denen sich die Objekte befinden, aufgelistet. Sie müssen sich dann für ein Objekt (einer Sicht) entscheiden. | ||
In der folgenden Beispiel-Abbildung wurde per Punktauswahl | In der folgenden Beispiel-Abbildung wurde per Punktauswahl ein Gebäude auf einem Flurstück ausgewählt. Da sich die markierte Stelle mit anderen Objekten auf der Karte (z.B. Flurstücke, Adressen) überschneidet, stehen diese Objekte im Kontextmenü zur Auswahl. Im Beispiel wird das Objekt "Gebäude für Handel- und Dienstleistungen" ausgewählt. | ||
[[File:aus_karte_waehlen.PNG|800px]] | |||
'''Was können Sie mit den ausgewählten Objekten tun?'''<br /> | |||
<br /> | |||
Es öffnet sich ein weiteres Kontextmenü. (Im Beispiel das von "Gebäude für Handels- und Dienstleistungen".) | |||
[[File:kartenobjekt_kontextmenue.PNG|320px]] | |||
[[File:kartenobjekt_kontextmenue.PNG| | |||
Sie haben in Abhängigkeit des Geometrietyps (Punkt, Linie, Text, Fläche) und Ihrer Nutzer- bzw. Gruppen-Berechtigungen folgende | Sie haben in Abhängigkeit des Geometrietyps (Punkt, Linie, Text, Fläche) und Ihrer Nutzer- bzw. Gruppen-Berechtigungen folgende | ||
Optionen zur Verfügung: | Optionen zur Verfügung: | ||
{| class="wikitable" style="width:50%" | {| class="wikitable" style="width:50%" | ||
|- | |- | ||
Zeile 226: | Zeile 185: | ||
![[File:loeschen_16.png|16px]] | ![[File:loeschen_16.png|16px]] | ||
|Löschen des Objekts | |Löschen des Objekts | ||
|- | |- | ||
Zeile 240: | Zeile 195: | ||
[[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | [[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | ||
==Tabelle | ==Räumliche Untertabellen== | ||
In GeoMedia SmartClient Kommunal ist es möglich, räumliche [[Konfigurationen#Konfiguration von Zuordnungen|Zuordnungen]] von Objekten unterschiedlicher Objektklassen zu ermitteln. Diese Informationen können an den Objektklassen mittels räumlicher Untertabellen dargestellt werden. | |||
===Überblick=== | |||
Als Beispiel sollen alle Gebäude auf einem Flurstück angezeigt werden. Das ist die Situation auf der Karte: | |||
[[File:flurstueck_waehlen.PNG|800px]] | |||
Es wurde also ein Flurstück auf der Karte mit darauf liegenden Wohngebäuden ausgewählt und die zugehörige Tabelle mit dem Datensatz geöffnet (siehe [[#Abfragen aus der Karte|Abfragen aus der Karte]]). Der Datensatz wird über [[File:bearbeiten_16.png|16px]] ''(Öffnen)'' aufgerufen. Im Maskenexplorer in der linken oberen Ecke wird im Beispiel nun die Registerkarte "Fachobjekte" ausgewählt. Im zugehörigen Fenster werden unterliegende Objekte angezeigt, in diesem Fall also Wohngebäude, die sich mit dem gewählten Flurstück überschneiden. Diese können jeweils über [[File:bearbeiten_16.png|16px]] bearbeitet werden oder ggf. auch mit [[File:Karten_selektion_16.png|16px]] zentriert in der Karte angezeigt werden. | |||
[[File:fachobjekte.PNG|800px]] | |||
<div id="mainpage-welcome-box" style="margin:0em 0em 0.3em 0em; width=30px ;border:1px solid #cccccc; background-color:#CAE1FF; padding: 0.5em;">'''Hinweis''': Um eine solche räumliche Untertabelle für überschneidende Objekte einer beliebigen Sicht zu erhalten, muss sie erst konfiguriert werden. Dies wird im Folgenden beschrieben. | |||
</div> | |||
[[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | |||
===Konfiguration=== | |||
Prinzipiell können alle Objekte, die in räumlicher Beziehung zu anderen Objekten stehen, in der räumlichen Untertabelle angezeigt werden. Dazu sind folgende Konfigurationen nötig: | |||
*Es wird eine Registerkarte mit der räumlichen Untertabelle angelegt. Diese soll im Maskenexplorer erscheinen, wenn der Datensatz geöffnet wird. (Im obigen Beispiel war dies "Fachobjekte" für die Sicht "Flurstücke"). Das Anlegen dieser Registerkarte mit der Untertabelle erfolgt über den [[Konfigurationen#Maskenkonfiguration|Masken-Designer]] (siehe unten). | |||
*Es wird eine [[Konfigurationen#Spaltenkonfiguration|Spaltenkonfiguration]] für die Tabelleneinträge der räumlichen Untertabelle erstellt, um festzulegen, welche Datenfelder in der Tabelle dargestellt werden sollen. | |||
Beginnen Sie Ihre Konfiguration mit dem [[Konfigurationen#Maskenkonfiguration|Masken-Designer]], indem Sie diesen über Rechtsklick auf eine Sicht (im Beispiel: ''Flurstücke'') [[File:gis-daten_16.png|16px]] > [[File:konfiguration_16.png|16px]] ''Konfiguration'' > [[File:maskendesigner_16.png|16px]] ''Masken-Designer'' aufrufen. | |||
Die räumliche Untertabelle der Beispiel-Sicht "Flurstücke" befindet sich in der Registerkarte "Fachobjekte" (in der Beispielabbildung rechts oben zu erkennen). Ist in Ihrer Sicht noch keine Untertabelle vorhanden, so legen Sie zunächst eine neue Registerkarte an, indem Sie das Symbol [[File:registerkarte.PNG|16px]] anklicken und auf die Registerkartenleiste im rechten Fenster hinüberziehen (siehe auch unter [[Konfigurationen#Allgemeine Vorgehensweise|Allgemeine Vorgehensweise]] bei Maskenkonfigurationen). Unter "Value" in der zugehörigen Einstellungsmaske (im Fenster weiter unten) können Sie die Registerkarte benennen. Ziehen Sie anschließend eine räumliche Untertabelle über das zugehörige Symbol [[File:maskendesigner_16.png|16px]] ''(räumliche Untertabelle)'' in die erstellte Registerkarte. | |||
[[File:maskendesigner.PNG|800px]] | |||
Um Konfigurationen an der räumlichen Untertabelle vornehmen zu können, klicken Sie zunächst auf Ihre Tabelle, sodass nun im unteren Abschnitt des Masken-Designers die zugehörige Einstellungsmaske erscheint. Darin lässt sich die Auswahl der Objektklassen für den räumlichen Filter vornehmen. Klicken Sie hierzu auf das Symbol [[File:objektklasse_auswaehlen_16.png|16px]] ''(Objektklasse auswählen)''. | |||
[[File:maskendesigner3.PNG|601px]] | |||
Es öffnet sich die Objektklassenauswahl. Über Eingabe in das Feld "Filtereingabe" kann nach einer Objektklasse gesucht werden oder die Auswahl durch die Eingabe eines Teilbegriffs eingeschränkt werden. Alternativ kann eine Fachanwendung gewählt und die gewünschte Objektklasse aus der zugehörigen Liste ausgesucht werden. | |||
[[File:editor_objektklasse.PNG|400px]] | |||
Die gewählten Objektklassen erscheinen nun im Maskenfeld "Objektklasse". Mit Doppelklick lassen sie sich wieder aus dem Feld entfernen. Rechts neben dem Feld kann der räumliche Filter gesetzt werden (im Beispiel: "schneidet", d.h. alle Objektklassen, die das betreffende Flurstück schneiden, werden aufgelistet - zu weiteren räumlichen Operatoren siehe [[Abfragen und Auswertungen#Topologische Operatoren|Topologische Operatoren]]). | |||
Anschließend wird die Konfiguration über [[File:save_16.png|16px]] ''(Speichern)'' gespeichert. Beim Öffnen des Datensatzes zu einem Objekt der entsprechenden Sicht wird nun die erstellte Registerkarte angezeigt. Öffnen Sie diese, so finden Sie darin die im Masken-Designer definierte räumliche Untertabelle. Nun können Sie noch bestimmen, welche Datenfelder zu den Objekten der Tabelle aufgelistet werden sollen. | |||
Klicken Sie hierzu auf das Symbol [[File:spaltenaufbau_16.png|16px]] ''(Spalten-Assistent)'' über der Tabelle, um die Spaltenkonfiguration vorzunehmen. Ziehen Sie die gewünschten Datenfelder von der Liste ins rechte Fenster (siehe hierzu [[Konfigurationen#Spaltenkonfiguration|Spaltenkonfiguration]]) und speichern Sie. | |||
Öffnen Sie nun erneut die räumliche Untertabelle zu einem Objekt der entsprechenden Sicht, so werden dort - falls vorhanden - unterliegende Objekte nach benutzerdefiniertem Spaltenaufbau angezeigt. | |||
[[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | |||
==Räumliche Abfragen== | |||
Mit räumlichen Abfragen können Sie räumliche Beziehungen zwischen Objekten analysieren. | |||
Die Ergebnisse sind Datensätze, die in einer Tabelle zur weiteren Bearbeitung oder Ausgabe angezeigt werden. | |||
Den Editor zum Erstellen räumlicher Abfragen können Sie in jeder Tabelle über das Symbol [[File:Raeumliche_abfrage_16.png|16px]] ''(Öffnet den Editor zum Erstellen von räumlichen Abfragen)'' öffnen. | |||
[[File:editoroeffnen.PNG|669px]] | |||
[[File: | Sie können im Editor eine benutzerdefinierte räumliche Abfrage anlegen, indem Sie auf [[File:neu_16.png|16px]] ''(neue räumliche Abfrage erstellen)'' klicken. | ||
[[File:editor_neu.PNG|260px]] | |||
Vergeben Sie einen Namen und ggf. einen Beschreibungstext für die Abfrage. Anschließend wählen Sie die gesuchte Objektklasse aus. Damit legen Sie die Tabelle fest, die sich nach dem Starten der Abfrage mit den Ergebnissen öffnet. Klicken Sie hierzu auf das Symbol [[File:objektklasse_auswaehlen_16.png|16px]] ''(Objektklasse auswählen)''. Es öffnet sich die Objektklassenauswahl (siehe oben). Dort können Sie nach einem Objektklassen-Namen suchen oder erst die Fachanwendung wählen und dann die gewünschte Objektklasse aus der zugehörigen Liste. | |||
Anschließend können Sie zusätzlich noch einen Filter auswählen. Dieser muss allerdings im Vorfeld schon angelegt worden sein (siehe [[Konfigurationen#Filterkonfiguration|Filterkonfiguration]]). In der Beispiel-Abbildung unten wurde der Filter "Gebäudefunktion – Wohngebäude" gewählt. | |||
Neben der gesuchten brauchen Sie anschließend auch eine zu verschneidende Objektklasse. Dazu wählen Sie die gesuchte Objektklasse über das zugehörige Symbol das Symbol [[File:objektklasse_auswaehlen_16.png|16px]] aus (im Beispiel: "Flurstück"). Auch bei der zu verschneidenden Objektklasse können Sie einen Filter wählen, der die Datenmenge einschränkt (im Beispiel: "Flurstücke städtisch"). | |||
Alternativ gibt es die Möglichkeit, in der Tabelle oder in der Karte markierte Objektklassen auszuwählen. Die Wahl von Objektklassen aus der Tabelle bedeutet, dass Sie die Tabelle der zu verschneidenden Objektklasse öffnen und Datensätze markieren müssen. Bei der Wahl von Objektklassen aus der Karte müssen Sie zuvor Objekte in der Karte markieren. Mit der Schaltfläche [[File:refresh_16.png|16px]] aktualisieren Sie die Anzahl der in der Tabelle ausgewählten Datensätze, falls diese sich geändert hat. | |||
{| class="wikitable" | Der räumliche Filter entscheidet nun, [[#Topologische Operatoren|in welcher Art und Weise]] (siehe unten) die räumliche Verschneidung durchgeführt wird (im Beispiel: innerhalb, d.h. alle Gebäude, die sich innerhalb von städtischen Flurstücken befinden). | ||
[[File:editor_abfrage_definition.PNG|749px]] | |||
Die Abfrage kann nun über Klick auf [[File:start_16.png|16px]] ''(räumliche Abfrage ausführen)'' gestartet werden. Es öffnet sich die Tabelle mit den gefundenen Objektklassen. In der Statusleiste wird die Anzahl an Ergebnissen (Anzahl der geladenen Datensätze) angezeigt. Die Datensätze der (Ergebnis-)Tabelle können nun eingesehen werden bzw. die Objekte zentriert in der Karte dargestellt werden. | |||
Wenn die Ergebnisse Ihren Erwartungen entsprechen, kann die räumliche Abfrage über [[File:save_16.png|16px]] gespeichert werden. Die Abfrage erscheint ab jetzt in der Liste links im Editor unter dem Ordner der entsprechenden Fachanwendung. Per Doppelklick kann die Abfrage wieder ausgewählt und bearbeitet werden. | |||
===Topologische Operatoren === | |||
Es stehen verschiedene topologische Operatoren (räumliche Beziehungen) zur Wahl, die als räumlicher Filter für die Abfrage genutzt werden können. Dazu gehören: | |||
*Enthält | |||
*Kreuzt | |||
*Verschieden | |||
*IstGleich(Räumlich) | |||
*Schneidet | |||
*Überschneidet | |||
*Berührt | |||
*Innerhalb | |||
*im Abstand von | |||
Im Folgenden sollen diese Beziehungen (außer bei Linien-Geometrien) anhand des Beispiels "Wohnhäuser auf Flurstücken" erläutert werden. Hierzu wurde jeweils ein einzelnes Flurstück mit Wohngebäuden [[#Abfragen aus der Karte|per Punktauswahl]] ausgewählt und die zugehörige Tabelle geöffnet. Der Tabelleneintrag wurde ausgewählt und der Editor zum Erstellen von räumlichen Abfragen geöffnet. Als gesuchte Objektklasse wurden Wohngebäude gewählt, als zu verschneidende Objektklasse Flurstücke, und es wurde über Markierung von "in Tabelle ausgewählte Objekte" der aktuelle Flurstück-Datensatz ausgewählt. Anschließend wurden die zur Verfügung stehenden räumlichen Filter getestet (Gebäude "..." Flurstück): | |||
'''Enthält:''' | |||
Es werden alle Objekte herausgefiltert, die Objekte der zu verschneidenden Objektklasse enthalten. Im Beispiel wäre dies ein Gebäude (in der folgenden Abbildung blau dargestellt), das das betreffende Flurstück "enthält", d.h. das so groß ist, dass es das Flurstück überdeckt. In der Abbildung werden die Grenzen des enthaltenen Flurstücks mit grünen Linien angedeutet. | |||
[[File:enthaelt.PNG|600px]] | |||
'''Kreuzt:''' | |||
Dies betrifft Linien-Geometrien. Es werden alle Objekte herausgefiltert, die sich mit Objekten der zu verschneidenden Objektklasse kreuzen. Im Beispiel kreuzt eine strittige Flurstücksgrenze (rot eingezeichnet) das betreffende Flurstück (grün markiert). | |||
[[File:kreuzt.PNG|600px]] | |||
'''Verschieden:''' | |||
Es werden alle Objekte herausgefiltert, die von der zu verschneidenden Objektklasse verschieden sind - im Beispiel also alle Wohngebäude außerhalb des gewählten Flurstücks. | |||
'''IstGleich(Räumlich):''' | |||
Es werden alle Objekte herausgefiltert, die (räumlich) gleich einem Objekt der zu verschneidenden Objektklasse sind. Im Beispiel wäre dies also ein Wohnhaus (in der folgenden Abbildung blau dargestellt), das genau die Fläche des Flurstücks abdeckt: | |||
[[File:istgleich.PNG|600px]] | |||
'''Schneidet:''' | |||
Es werden alle Objekte herausgefiltert, die sich mit der zu verschneidenden Objektklasse schneiden, d.h. es gibt an irgendwelchen Stellen räumliche Schnittpunkte zwischen den verschiedenen Objekten. In der Beispiel-Abbildung schneiden sich fünf Gebäude mit dem grün markierten Flurstück, da sie sich gleiche Flächen teilen. Das blaue Gebäude oben links in der Abbildung gehört nicht mit zu den Ergebnissen, da es sich nicht mit dem betreffenden Flurstück schneidet. | |||
[[File:schneidet.PNG||600px]] | |||
'''Überschneidet:''' | |||
Es werden alle Objekte herausgefiltert, die sich mit Objekten der zu verschneidenden Objektklasse überlappen. Dies betrifft im Beispiel also Gebäude, die nur zu einem Teil auf dem entsprechenden Flurstück stehen (in der Abbildung ist dies das markierte Gebäude auf dem grünen Flurstück). Die ermittelten Gebäude würden also sowohl bei "schneidet" als auch bei "überschneidet" gelistet werden. | |||
[[File:ueberschneidet.PNG||600px]] | |||
'''Berührt:''' | |||
Es werden alle Objekte herausgefiltert, die sich an den Grenzen mit einem Objekt der zu verschneidenden Objektklasse berühren. | |||
'''Innerhalb:''' | |||
Das Gegenteil von "enthält". Es werden nur die Objekte herausgefiltert, die sich komplett innerhalb der zu verschneidenden Objektklasse befinden. In der Beispiel-Abbildung sind dies also nur die markierten Wohngebäude, die sich komplett innerhalb des grünen Flurstücks befinden: | |||
[[File:innerhalb.PNG||600px]] | |||
'''Im Abstand von:''' | |||
Bei Wahl dieses Filters erscheint ein zusätzliches Textfeld im Editor, in das ein beliebiger Abstand (in Metern) zur zu verschneidenden Objektklasse eingegeben werden kann: | |||
[[File:abstand_von.PNG||440px]] | |||
Im Beispiel wird nach Gebäuden gefiltert, die sich in einem Abstand von bis zu 10 Metern zum gewählten (grün markierten) Flurstück befinden. Die ermittelten Wohngebäude sind in der Karte rot markiert: | |||
[[File:abstand.PNG||600px]] | |||
<br /> | |||
<br /> | |||
[[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | |||
= Report erstellen = | |||
GMSC-K vefügt ab Version 2016 SP2 über drei verschiedene Reportsoftwareanbindungen: Crystal Reports, Eclipse BIRT und Jasper Reports. Damit können Sie Daten aus GMSC-K unter Angabe einer Vorlage in ein PDF exportieren wobei auch die Möglichkeit besteht ein Kartenbild einzubinden. Zunächst eine kurze Übersicht: | |||
{| class="wikitable" border="1" | |||
|- | |||
! | |||
! Crystal Reports | |||
! Eclipse BIRT | |||
! Jasper Reports | |||
|- | |||
| Homepage | |||
| https://www.crystalreports.com/ | |||
| https://www.eclipse.org/birt/ | |||
| https://community.jaspersoft.com/ | |||
|- | |||
| Lizenz | |||
| Kommerziell | |||
| OpenSource | |||
| OpenSource mit kommerziellen Erweiterungen und Support | |||
|- | |- | ||
| Support vom Hersteller | |||
| Ja | |||
| Ja, über Mailinglisten | |||
| Ja | |||
|- | |- | ||
| Reportlayout | |||
| Millimeter genau möglich | |||
| Automatisches Layout mit Größenvorgaben | |||
| Millimeter genau möglich | |||
|- | |- | ||
| Unterreports | |||
| | | Ja, eigene Unterreportvorlage | ||
| Ja, direkte Einbindung von Untertabellen ohne eigene Unterreportvorlage | |||
| Ja, direkte Einbindung von Untertabellen oder eigene Unterreportvorlage | |||
| Skriptsprache | |||
| Ja | |||
| Ja | |||
| Ja | |||
|} | |||
* Objekte für die man einen Report erstellen möchte in Tabelle markieren | |||
* mit der Maus auf das Report-Icon in der Tabelle klicken, es öffnet sich der Reportdefinitons-Editor. | |||
[[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | |||
==Aufbau des Reportdefinitons-Editors== | |||
[[File:Reportdef editor.png|900px]] | |||
# Liste der zur Verfügung stehenden Reports | |||
# Eine neue Reportdefinition wird angelegt. Dabei wird der Name und Reportpfad aus den entsprechenden darüber liegenden Eingabefeldern verwendet. | |||
# Die aktuell ausgewählte Reportdefinition wird mit den aktuellen Daten der Eingabefelder gespeichert. | |||
# Die aktuell ausgewählte Reportdefinition wird gelöscht. | |||
# Name des aktuell ausgewählten Report bzw. Namen-Eingabefeld für einen neu anzulegenden Report | |||
# Auswahl der Reportsoftware (''ab Version 2016 SP2'') | |||
# Optionale Aktion, die vor der Ausführung Reports gestartet werden soll, z.B. ALB-Abrufprotokoll | |||
# Format der Reportergebnisdatei (PDF, Word etc.) | |||
# Eingabefeld für den Pfad zur Reportvorlagedatei, die für einen neu anzulegenden Report verwendet werden soll. Zur Pfadauswahl dient der Button am rechten Ende des Eingabefeldes | |||
# Eingabefeld für den Pfad zur Reportvorlagedatei, welche in der aktuell ausgewählten Reportdefinition gespeichert werden soll. Mit dem Pfadauswahl-Button kann dabei ein externern vorliegender Report ausgewählt werden. | |||
# Öffnet die Reportvorlagedatei der aktuellen Reportdefinition lokal in der dafür vorgesehenen Anwendung. Dabei wird der lokale Pfad zu diesem Report in Feld 10 eingetragen. | |||
# Ersetzt die Reportvorlage in der aktuellen Reportdefinition mit dem im Feld 10 angegebenen Report. | |||
# Speichert die Reportvorlagedatei lokal in einem selbstgewählten Ordner. | |||
# Eingabefeld für den Namen des Alternativreports. Der Name muss der einer bereits angelegten Reportdefinition sein. Diese Funktionalität spielt nur bei der Verwendung von Kartenausschnitten als Bild innerhalb des Reports eine Rolle. Der hier angegebene Report wird dann verwendet, wenn die Maßstabsangaben des Hauptreports zu klein für die Erstellung des Kartenausschnittbildes sind. Weiterhin wird dies nur bei der Einzelreporterstellung ausgewertet. | |||
# Zugeordnet Reports können verwendet werden, um innerhalb eines Report verschiedene Papierformate zu verwenden. Z.B. kann für dies Ausgabe der Sachdaten das A4-Format verwendet werden, für die Ausgabe der Karte jedoch A3. Reports können durch Drag&Drop aus der Reportliste links in die Tabelle der zugeordneten Reports eingefügt werden. Ein Report mit zugeordneten Reports besitzt selbst keine Reportvorlage sondern für jeden Datensatz werden nacheinander die zugeordneten Reports ausgeführt und das Ergebnis in einer Gesamt-PDF-Datei gespeichert. | |||
# Erstellt einen neuen Bilddefinitionseintrag in der darunter liegenden Bilddefinitionstabelle. Dies wird benötigt um Kartenausschnitte als Bild in den Report einzufügen. | |||
# Löscht den aktuell ausgewählten Bilddefinitionseintrag. | |||
# Kopiert den aktuell ausgewählten Bilddefinitionseintrag. | |||
# Zeigt wahlweise nur die Bilddefinitionseinträge des aktuellen Projektes an oder alle. Damit kann ein Bilddefinitionseintrag einfach von einem Projekt in ein anderes kopiert werden. | |||
# Name der Bilddefinition. Dies muss sich auf einen entsprechenden Parameter in der Reportvorlagedatei beziehen. | |||
# Breite des zu Bildbereichs in der Reportvorlagedatei in Millimeter, d.h. das Bild wird mit dieser Breite von Kartenauschnitt erzeugt. Wird hier ein anderer Betrag angegeben als im Bildbereich, wird das Bild im Report entsprechend skaliert. | |||
# Höhe des zu Bildbereichs in der Reportvorlagedatei in Millimeter, d.h. das Bild wird mit dieser Höhe von Kartenauschnitt erzeugt. Wird hier ein anderer Betrag angegeben als im Bildbereich, wird das Bild im Report entsprechend skaliert. | |||
# Die Größe des Randbereichs des Bildes um das Fachobjekt in Prozent. | |||
# Liste von Attributen, welche eine Verknüpfung zu anderen Objekten darstellen, von denen die Geometrie als Grundlage für die Erstellung des Kartenausschnittes genommen werden soll. Die Angabe erfolgt dabei in der Punktnotation wie sie im Maskeneditor zur Information verwendet wird. Wird hier nichts angegeben, wird automatisch nur die Geometrie des selektierten Objektes verwendet. Sobald hier ein Eintrag vorhanden ist, werden nur noch die hier angegebenen verknüpften Objektgeometrien verwendet. Um dann auch das selektierte (Haupt-)Objekt mit einzubeziehen muss dies durch die Angabe von „position“ als Attributname geschehen. Als Trenner ist Komma (,) oder Semikolon (;) möglich. Aber immer nur eins von beiden. | |||
# Liste der möglichen Maßstäbe, die diese Bilddefinition unterstützt, z.B. bei 1:1000 Angabe von 1000. Wird kein passender Maßstab gefunden, wird der Alternativreport ausgeführt. Als Trenner ist Komma (,) oder Semikolon (;) möglich. Aber immer nur eins von beiden. | |||
# Zu verwendete Arbeitssitzung für die Erstellung des Kartenausschnittbildes. Dadurch ist es möglich sich gezielt eine Arbeitssitzung zu definieren, welche den Vorstellungen für den Kartenausschnitt entsprechen und immer wieder verwendet werden kann. | |||
# Hier kann optional der Name einer Darstellungsvariante angegeben werden. | |||
# Liste der Sichtenfilter. Hier kann man genauer definieren, welche Objekte man in den einzelnen Sichten des Kartenausschnittes haben möchte. Die Syntax ist wie folgt: Objektklassen-ID = Attributpfad. Die Objektklassen-ID erhält man im Eigenschaftsdialog der jeweiligen Sicht. Der Attributpfad entspricht den verknüpften Objekten ausgehend von dem selektierten Hauptobjekt (wie in Punkt 25 beschrieben). Als Trenner ist Komma (,) oder Semikolon (;) möglich. Aber immer nur eins von beiden. | |||
# Die ID des Projektes, für die dieser Bilddefinitionseintrag angelegt wurde. Ein Bilddefinitionseintrag ist immer einem Projekt zugeordnet da die Angaben zur Sichtenzuordnung in Punkt 29 immer projektabhängig sind. | |||
# Gibt die gewünschte Auslösung für Rasterdaten an, die ggf. im Kartenbild ausgegeben werden. | |||
# Erstellt einen Report und öffnet die fertige Datei danach automatisch mit der dafür vorgesehenen Anwendung lokal. | |||
# Erstellt einen Report und speichert diesen in einem vom Nutzer definierten Ordner. | |||
# Erstellt einen Report und öffnet die fertige Datei danach automatisch mit der dafür vorgesehenen Anwendung lokal. Ausserdem wird für jedes selektierte Objekt ein Dokument in GeoMedia SmartClient Kommunal angelegt, das die eben erstellten Report enthält und damit dauerhaft in GeoMedia SmartClient Kommunal hinterlegt ist. | |||
# Erstellt für jedes selektierte Objekt eine einzelnen Report und hinterlegt diesen per Dokument-Objekt in GeoMedia SmartClient Kommunal. | |||
# Führt eines Testlauf durch, bei dem kein Report erzeugt wird. Am Ende öffnet sich eine Textdatei mit dem Ergebnis des Testlaufs. Dies ist vor allem sinnvoll, um vorher zu überprüfen, ob der angegebene Maßstab für den Kartenausschnitt ausreicht. | |||
=== Reportparameter === | |||
''(ab Version 2020, 23.08.2021)'' | |||
Für Reports können zusätzliche Parameter definiert werden, die dann im Report ausgewertet werden können. Ein Reportparameter wird wie folgt definiert: | |||
# Name: Name, mit welchem im Report auf den Parameter zugegriffen wird | |||
# Bezeichner: Bezeichner, welcher dem Nutzer bei Ausführung des Reports angezeigt wird | |||
# Typ: der Datentyp - Text, Zahl, Gleitkommazahl, Datum, Auswahlliste | |||
# Standardwert: ein Wert entsprechend des Datentyps, welcher beim Ausführen des Reports voreingestellt ist. Für Auswahllisten wird hier eine kommaseparierte Liste von Werten angegeben, welche dann dem Nutzer als Klappbox gezeigt wird. Der Standardwert kann in dieser Liste mit ein '*' markiert werden, z.B. "5,6*,7". | |||
# Nutzerdefiniert: der Nutzer kann den Wert des Parameters ändern | |||
# Pflichtfeld: der Nutzer muss zwingend einen Wert eingeben | |||
Diese Angaben können durch Doppelklick in die entsprechenden Spalte der Tabelle der Parameter im Reporteditor geändert werden. | |||
''(ab Version 2022, 29.08.2023)'' | |||
Es werden außerdem Standardparameter übermittelt, die z.B. Informationen zum Nutzer enthalten, welcher den Report ausführt: | |||
# user.login: Loginname des Nutzers | |||
# user.name: Name des Nutzers | |||
# user.department: Abteilung des Nutzers | |||
# user.email: Email-Adresse des Nutzers | |||
# user.telefon: Telefonnummer des Nutzers | |||
# <Name-des-Kartenbildes>.scale: Maßstab, in dem das Kartebild <Name-des-Kartenbildes> erstellt wurde. Dies stellt eine Alternative zur Tabelle REPORTDATEN dar. | |||
[[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | |||
==Crystal Reports== | |||
===Installation der Crystal-Reports-Laufzeitumgebung=== | |||
'''ACHTUNG:''' Ab Version 2016 SP2 wird die Crystal-Reports-Laufzeitumgebung nicht mehr mit ausgeliefert sondern muss separat heruntergeladen und installiert werden. Gehen Sie dazu wie folgt vor: | |||
* Laden Sie die Laufzeitumgebung von hier herunter: https://www.sap.com/cmp/td/sap-crystal-reports-eclipse-trial.html (Download "Runtime libraries"). | |||
* Packen Sie die Zip-Datei aus und kopieren Sie alle Dateien aus dem Order ''lib'' in das GMSC-K-Installationsverzeichnis unter C:\Program Files\Intergraph\GeoMedia SmartClient Kommunal\Instances\Default\Server\thirdparty\CrystalReports\. | |||
* Starten Sie anschliessend den GMSC-K-Server-Dienst neu. | |||
===Vorbereiten einer Crystal Report-Datei für die Integration von Kartenausschnitten=== | |||
* In der CR-Datei muss ein Bildbereich definiert werden. (Einfügen OLE-Objekt) | |||
* Per rechte Maustaste im Bild den Grafik-Formatieren Dialog aufrufen und den Haken aus „Kann grösser werden entfernen“ | |||
[[File:Format editor.png|500px]] | |||
* Im Reiter „Bild“ kann man die Bildgrösse in Millimeter einsehen. Im selben Tab den Button „Speicherort der“ betätigen, um einen dynamischen Speicherort anzugeben. | |||
[[File:Format editor2.png|500px]] | |||
* Im nun geöffneten Formeleditor eingeben, wie sich der Bildpfad zur Laufzeit berechnet: | |||
[[File:Formel editor.png|900px]] | |||
Dabei wird ein Crystal Report-Parameter verwendet (?bild1) gefolgt von der ID der Objektes welches in diesem Report dargestellt werden soll (KA_Haltung.ID) und die Dateiendung des Bildes (.png). | |||
Der Name des Bild-Parameters wird dabei als Name für die Bilddefinition verwendet. Über diesen schreibt GeoMedia SmartClient Kommunal zur Laufzeit einen Teil des Bildpfades in diesen Parameter und Crystal Report vervollständigt diesen mit Hilfe der oben angegebenen Formel. | |||
[[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | |||
===Integration des Massstabes zu einem Kartenauschnitt=== | |||
* Für diese Funktion muss ein Parameter mit den Namen „reportdatenid“ erstellt werden. Dieser wird genutzt um zur Laufzeit eine eindeutige ID für jeden Reporterstellungsprozess zu erzeugen. | |||
* Dies erfolgt mit Hilfe eines Unterberichts in Crystal Report. Also muss zuerst ein Unterbericht erstellt werden ( Einfügen Unterbericht) | |||
* Zuerst einen Namen eingeben und dann den Berichtsassistenten aufrufen | |||
[[File:Unterbericht einf.png|500px]] | |||
* Dann die Tabelle „Reportdaten“ auswählen. | |||
[[File:Standardberichterst assi.png|900px]] | |||
* Dann den „Datenwert01“ der Tabelle „Reportdaten“ anzuzeigenden Wert auswählen | |||
[[File:Standardberichterst assi2.png|900px]] | |||
* Danach diesen Dialog per Weiter-Button beenden | |||
* Im Verknüpfung-Reiter die ID des Hauptobjektes und den Parameter „reportdatenid“ übernehmen. | |||
[[File:Unterbericht einf2.png|500px]] | |||
* Den Dialog mit OK bestätigen, Unterbericht einfügen und per Doppelklick öffnen. | |||
* Im Menü Bericht Auswahl-Assistenz Datensatz den Auswahl-Assistent öffnen. | |||
* Hier wird definiert wie der Massstab zur Laufzeit aus der Zwischentabelle Reportdaten ermittelt wird. Die Ermittlung erfolgt dabei auf dem Feld „Datenschlüssel“ dieser Tabelle und der setzt sich in diesem Fall wie folgt zusammen: ID der Reportdaten + ID des Hauptobjektes + Name des Bildparameters/Bilddefinition | |||
* Die Tabelle der Reportdaten wird zur Laufzeit von GeoMedia SmartClient Kommunal gefüllt und nach der Reporterstellung wieder geleert. | |||
[[File:Auswahl assi.png|600px]] | |||
''(ab Version 2022, 29.08.2023)'' | |||
Es kann auch der Reportparameter <Name-des-Kartenbildes>.scale verwendet werden. | |||
[[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | [[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | ||
== | ===Nutzen von Shared Variablen=== | ||
Shared Variablen (SV) werden verwendet um Dateninhalte an verschiedenen Stellen eines Reports gemeinsam zu verwenden. Dies ist besonders für den Informationsaustausch zwischen dem Hauptbericht und den Unterberichten interessant. Dabei kann zum Beispiel ein Unterbericht genutzt werden, um bestimmte Daten aufzubereiten (z.B. Personen die mit einer bestimmten Personenart verknüpft sind oder Summenberechnungen über Datensätze, die mit dem Hauptobjekt verknüpft sind) und das Ergebnis danach in die Shared Variable zu schreiben, so dass das es im Hauptbericht zur Verfügung steht. | |||
'''Beispiel:''' Finden der Person mit einer bestimmten Personenrolle (Notar) | |||
:1) Shared Variablen werden mit Hilfe von Formeln genutzt. Zuerst wird eine Formel angelegt, die die SV initialisiert: | |||
:[[File:formel editor3.png|600px]] | |||
:2) Diese SV muss nun in einen möglichst weit oben liegenden Bereich des Berichtes eingefügt werden. Dieser Bereich muss ein anderer Bereich sein und er muss über dem Bereich angeordnet sein, in dem die SV genutzt werden soll. Dies dient dazu, das die SV erst von CR initialisert werden muss, um dann in den weiter unten liegenden Bereichen verwendbar zu sein. Der Bereich in dem die SV eingefügt wird, kann (oder sollte) dann ausgeblendet werden. (Der passende Screenshot dazu befindet sich weiter unten in Abschnitt 5) | |||
:3) Jetzt wird ein Unterbericht erstellt, der die Personen, die dem Hauptobjekt zugewiesen sind nach einer bestimmten Personenart filtert (hier 'NT' für Notar): | |||
:[[File:datenbank assi.png|600px]] | |||
:[[File:Haltungsbericht testen.png|600px]] | |||
Die | :4) Zuerst benötigen wir eine Formel, die die SV zurücksetzt. Dies ist notwendig, wenn man einen Report für mehrere Datensätze macht und die SV ansonsten noch den Inhalt des vorherigen Datensatzes enthält. Diese Formel sollte in den Berichtskopf des Unterberichts eingefügt werden: | ||
:<syntaxhighlight lang="sql" line > | |||
SHARED StringVar Notar_Nachname; | |||
Notar_Nachname := ''; | |||
</syntaxhighlight> | |||
:[[File:formel editor4.png|600px]] | |||
:5) Danach wird die SV in diesem Unterbericht mit einer weiteren Formel mit Inhalt gefüllt (Zeile 2: der Nachname wird zugewiesen). Wichtig ist dabei, das die SV im Unterbericht selber vorkommen (z.B. in den Detailbereich gezogen) muss, damit diese auch ausgeführt wird. Die unten aufgeführte Formel listet alle Notar-Nachnamen komma-separiert auf. Möchten man nur einen Notar anzeigen reicht es den If-The-Else Teil komplett durch die Zeile nach dem Then-Befehl zu nutzen: | |||
:<syntaxhighlight lang="sql" line > | |||
if( Notar_Nachname = '' ) | |||
then | |||
Notar_Nachname := {AX_PERSON.NACHNAMEODERFIRMA} | |||
else | |||
Notar_Nachname := Notar_Nachname + ", " + {AX_PERSON.NACHNAMEODERFIRMA}; | |||
</syntaxhighlight> | |||
:[[File:formel editor5.png|600px]] | |||
:6) Jetzt den Unterbericht ebenso wie die SV zur Initialisierung in einen möglichst weit oben liegenden Detail-Bereich des Hauptberichtes ziehen. Dies sollte aber nicht der Seiten- oder Berichtskopf sein, damit die SV sich nur auf den aktuellen Datensatz bezieht: | |||
:[[File:haltungsbericht.png|600px]] | |||
:7) Die vorherigen Schritte dienten nur dem Erzeugen und Befüllen der SV. Um die SV zu nutzen wird im Hauptbericht eine weitere Formel angelegt, die den Inhalt der SV zurück gibt. Diese Formel kann dan als normales Textfeld beliebig oft im Hauptbericht verwendet werden. Bitte darauf achten das Semikolon in der zweiten Zeile weg zu lassen: | |||
:[[File:formel editor6.png|600px]] | |||
:[[File:haltungsbericht2.png|600px]] | |||
<div id="mainpage-welcome-box" style="margin:0em 0em 0.3em 0em; width=30px ;border:1px solid #cccccc; background-color:#CAE1FF; padding: 0.5em;"> | |||
'''Tip:''' Hier wird eine SV vom Typ String/Text verwendet, für Zahlen gibt es den Variablentyp 'NumberVar'.</div> | |||
[[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | [[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | ||
== | ===MSSQL-Datenbank per ODBC einbinden=== | ||
Die ODBC-Verbindung bezieht sich auf eine Verbindung zu einem Datenbankserver, auf denen sich die eigentlichen Datenbanken befinden. D.h. Schritte 1 bis 7 beziehen sich auf das Einrichten einer Verbindung zu diesem Datenbankserver mit Hilfe von ODBC. Im Schritt 8 wir dann über diese Datenbankserver-Verbindung die eigentliche Datenbank ausgewählt, die man in Crystal Reports verwenden möchte. | |||
:1. Zuerst muss in Windows eine ODBC-Verbindung eingerichtet werden. Dazu die Datenquellenverwaltung öffnen. | |||
:[[Datei:ODBC sys.PNG|643px]] | |||
:2. Eine neue Datenquelle hinzufügen. | |||
:[[Datei:Datenquelle.PNG|643px]] | |||
:3. SQL-Server auswählen. | |||
:4. Dann einen Namen vergeben (so taucht diese Verbindung später in Crystal Reports wieder auf) und einen im Netzwerk vorhandenen Server auswählen. | |||
:5. Dann auf "Weiter" klicken und die Anmeldedaten eintragen. | |||
:6. In den nachfolgenden (per "Weiter" geklickt) Dialogfenstern entsprechende Einstellungen vornehmen (können auch alle auf den voreingestellten Werten gelassen werden) und im letzten Dialogfenster "Fertig stellen" klicken. | |||
:7. Nun Crystal Reports öffnen und unter dem Menüpunkt Datenbank den Datenbankassistenten aufrufen. Dann das Kreuz links neben dem ODBC-Eintrag auswählen und dann den Datenbank-Server (den eben erstellten ODBC-Eintrag) auswählen den man verwenden möchte. | |||
:8. Im letzten Schritt noch die Benutzerdaten eintragen und die Datenbank auswählen. Die Datenbank kann man erst auswählen, wenn die Anwender-ID und Kennwort richtig eingetragen sind. | |||
==Eclipse BIRT== | |||
''(ab Version 2016 SP2)'' | |||
Eclipse BIRT ist eine Open Source Reportsoftware. Der BIRT Designer kann hier heruntergeladen werden: http://download.eclipse.org/birt/downloads/#designer. | |||
Im folgenden wird beschrieben wie Sie einen BIRT-Report in GMSC-K einbinden. | |||
Eine komplette Beispielreportvorlage findet Sie hier: [[Datei:Stammblatt_Flurstuecke.zip]] | |||
===Report-Parameter definieren=== | |||
Im ersten Schritt müssen Sie folgende Report-Parameter definieren, die später beim Aufruf des Reports aus GMSC-K übergeben werden: | |||
* jdbcDriverClass - Datenbankverbindung | |||
* jdbcDriverUrl - Datenbankverbindung | |||
* jdbcUsername - Datenbankverbindung | |||
* jdbcPassword - Datenbankverbindung | |||
* selectionId - Verweis auf markierte Datensätze, die im Report angezeigt werden sollen | |||
* reportDataId (optional) - Verweis auf zusätzlich Daten, wenn ein Kartenbild eingebunden wird | |||
* karte (optional) - Verweis auf ein Kartenbild, der Name dieses Parameters muss mit dem Namen des Bildes in der Reportdefinition in GMSC-K übereinstimmen | |||
:[[Datei:birt_reportparameter.PNG|245px]] | |||
[[ | [[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | ||
===Datenquelle erstellen=== | |||
Legen Sie nun eine neue JDBC-Datenquelle an | |||
:[[Datei:birt_datasource.PNG|876px]] | |||
und verbinden Sie deren Eigenschaften (Properties) mit den entsprechenden Reportparameteren. | |||
:[[Datei:birt_datasource_properties.PNG|876px]] | |||
[[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | |||
===Daten einbinden=== | |||
Im nächsten Schritt legen Sie ein Dataset an und verweisen Sie in der SQL-Abfrage durch einen Join mit der Tabelle ''MARKIERUNG'' und dem Parameter ''selectionId'' auf die in GMSC-K selektierten Datensätze: | |||
:[[Datei:birt_dataset_query.PNG]] | |||
Verbinden Sie den Parameter der SQL-Abfrage mit dem Reportparameter ''selectionId''. | |||
:[[Datei:birt_dataset_parameters.PNG]] | |||
[[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | |||
===Kartenbild integrieren=== | |||
Um ein Kartenbild zu integrieren benötigen Sie den Reportparameter ''karte'' (siehe Abschnitt zu Reportparametern). Legen Sie dann in im Report an der gewünschten Stelle ein Bild an und setzen die URI auf den Wert | |||
''params["karte"].value + row["FLURSTUECK_ID"] + ".png"'' | |||
wobei ''FLURSTUECK_ID'' der Verweis auf die ID des aktuellen Datensatzes ist, der wie unten gezeigt angelegt wird. | |||
:[[Datei:birt_karte_einbinden.PNG|1079px]] | |||
<br /> | |||
<br /> | |||
:[[Datei:birt_karte_einbinden_2.PNG|759px]] | |||
Der Maßstab des Bildes kann über die Reportdaten angezeigt werden. Legen Sie dazu den Reportparameter ''reportDataId'' und ein Dataset für die Tabelle ''REPORTDATEN'' mit dem Parameter ''reportDataId'' an: | |||
:[[Datei:birt_reportdaten_query.PNG|786px]] | |||
:[[Datei:birt_reportdaten_parameter.PNG|786px]] | |||
Im Data Set Parameter-Binding geben Sie für den Parameter ''reportDataId'' den Wert ''params["reportDataId"].value + row["FLURSTUECK_ID"] + "karte"'' an. | |||
Benutzen Sie dann die Spalte ''DATENWERT01'' aus dem Dataset, um den Maßstab einzubinden: | |||
:[[Datei:birt_reportdaten_massstab.PNG|1067px]] | |||
[[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | [[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | ||
== | == JasperReports == | ||
''(ab Version 2016 SP1)'' | |||
JasperReports ist eine Open Source Reportsoftware. Der Designer JapserReports Studio kann hier heruntergeladen werden: https://community.jaspersoft.com/community-download. | |||
Hinweis: Im Unterschied zu BIRT oder Crystal Reports können Unterberichte auch als separate Dateien eingebunden werden. Damit GMSC-K alle Reportdateien zur Verfügung hat, müssen Sie alle nötigen jrxml-Dateien in eine Zip-Datei packen und diese in GMSC-K hochladen. Dabei muss die Hauptreportdatei folgender Namenskonvention entsprechen: [GMSC-K-Reportdefinitionname]_main.jrxml. Verwenden Sie für Unterreports eingebettete Tabellen können Sie einfach nur die jrxml-Datei hochladen, deren Name dann beliebig sein kann. | |||
Eine Beispielreportvorlage, die sowohl Unterberichte aus Dateien als auch aus eingebetteten Tabellen verwendet, findet Sie hier: [[Datei:JasperReports Stammblatt.zip]] | |||
Im folgenden wird beschrieben wie Sie einen JasperReport in GMSC-K einbinden. | |||
===Report-Parameter definieren=== | |||
Im ersten Schritt müssen Sie folgende Report-Parameter definieren, die später beim Aufruf des Reports aus GMSC-K übergeben werden: | |||
* selectionId - Verweis auf markierte Datensätze, die im Report angezeigt werden sollen | |||
* reportDataId (optional) - Verweis auf zusätzlich Daten, wenn ein Kartenbild eingebunden wird | |||
* karte (optional) - Verweis auf ein Kartenbild, der Name dieses Parameters muss mit dem Namen des Bildes in der Reportdefinition in GMSC-K übereinstimmen | |||
:[[Datei:jasper_reportparameter.PNG|343px]] | |||
[[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | |||
===Datenquelle erstellen=== | |||
Legen Sie nun eine neue JDBC-Datenquelle an: | |||
:[[Datei:jasper_datasource.PNG]] | |||
[[ | [[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | ||
===Daten einbinden=== | |||
Im nächsten Schritt legen Sie ein Dataset an und verweisen Sie in der SQL-Abfrage durch einen Join mit der Tabelle ''MARKIERUNG'' und dem Parameter ''selectionId'' auf die in GMSC-K selektierten Datensätze: | |||
Verbinden Sie den Parameter der SQL-Abfrage mit dem Reportparameter ''selectionId''. | |||
[[ | :[[Datei:jasper_dataset_query.PNG]] | ||
[[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | |||
===Kartenbild integrieren=== | |||
''' | Um ein Kartenbild zu integrieren benötigen Sie den Reportparameter ''karte'' (siehe Abschnitt zu Reportparametern). Legen Sie dann in im Report an der gewünschten Stelle ein Bild an und setzen die URI auf den Wert | ||
''$P{karte} + $F{ID} + ".png"'' | |||
wobei ''$F{ID}'' der Verweis auf die ID des aktuellen Datensatzes ist, der wie unten gezeigt angelegt wird. | |||
[[ | :[[Datei:jasper_karte_einbinden.PNG]] | ||
Der Maßstab des Bildes kann über die Reportdaten angezeigt werden. Legen Sie dazu den Reportparameter ''reportDataParameter'' und ein Dataset für die Tabelle ''REPORTDATEN'' mit dem Parameter ''reportDataId'' an: | |||
[[ | :[[Datei:jasper_reportdaten_query.PNG]] | ||
Im Data Set Parameter-Binding geben Sie für den Parameter ''reportDataParameter'' den Wert ''$P{reportDataId} + $F{ID} + "karte"'' an. | |||
[[ | :[[Datei:jasper_reportdaten_parameter.PNG]] | ||
Benutzen Sie dann die Spalte ''DATENWERT01'' aus dem Dataset, um den Maßstab einzubinden. | |||
[[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | |||
[[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | [[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | ||
== | =Flächenbilanz= | ||
'''Flächenbilanz einzeln:''' | |||
:*Klicken Sie mit der rechten Maustaste auf [[File:Projekte_16.png|16px]] (''Projekt'') > [[File:Exportieren_16.png|16px]] (''Export'') > [[File:neu_16.png|16px]] (''Flächenbilanz (einzeln)''). | |||
:[[File:x53.png|800px]] | |||
Es öffnet sich zunächst der schon für den DXF-Export verwendete Dialog zur Markierung von Objekten in der Karte, wobei dieser Dialog nur Sichten mit Geometrietyp „Fläche" oder „beliebig" anzeigt und beachtet. | |||
:*Zeichnen Sie ein oder mehrere Polygone über das Auswahltool des Markierungsdialogs ein. Die getroffenen Objekte werden in der Karte als markiert dargestellt, wobei Objekte markiert werden, die innerhalb der Markierungspolygone liegen oder davon geschnitten werden. | |||
:*Die Anzahl der markierten Objekte pro Sicht wird in der Sichtenliste angezeigt. | |||
:[[File:x54.png|800px]] | |||
:*Klicken Sie auf [[File:Exportieren_16.png|16px]] (''Export'') in der Toolbar des Markierungsdialoges. Es wird ein modaler Dialog geöffnet der nochmals die Liste der Sichten anzeigt, welche durch die Markierung betroffen sind. | |||
:[[File:x55.png|400px]] | |||
:*Nachdem Sie „OK" geklickt haben, schliessen sich Export- und Markierung-Dialog und die Berechnung startet mit Fortschrittsanzeige. Dabei wird eine CSV-Datei erzeugt. | |||
:*Nach Abschluss der Berechnung wird die CSV zum Client transferiert, dort im temporären Verzeichnis gespeichert und das über das Betriebssystem registrierte Programm für CSV-Dateien (Excel, OpenOffice, etc.) automatisch damit geöffnet: | |||
:[[File:x56.png|800px]] | |||
Bei der Flächenbilanz (einzeln) wird eine CSV-Datei nach folgenden Regeln erzeugt: | |||
#Innenliegende Flächen werden komplett übernommen | |||
#Schneidende Flächen werden mit ihrem Anteil, der innerhalb der Begrenzungsfläche liegt, übernommen. Pro Objekt und Sicht gibt es immer nur eine Flächenausgabe, d.h. entstehen durch die Verschneidung eines Objektes einer Sicht mehrere Teilflächen, geht nur die Gesamtsumme dieser Teilflächen in die Statistik ein. | |||
#Kommt ein Objekt mehrfach in den gewählten Sichten vor, geht das Objekt auch mehrfach, also einmal pro Sicht, in die Statistik ein. | |||
Im Modus „Einzeln" wird pro markiertes Objekt eine Zeile in der CSV-Datei unter Angabe von Objekt-ID (Spalte A), Fläche (Spalte B), Sichtenname (Spalte C) und den ggf. im Spaltenaufbau definierten Attributen erzeugt. | |||
'''Flächenbilanz Einzeln mit Spaltenaufbau:''' | |||
:*Klicken Sie mit der rechten Maustaste auf [[File:Projekte_16.png|16px]] (''Projekt'') > [[File:Exportieren_16.png|16px]] (''Export'') > [[File:neu_16.png|16px]] (''Flächenbilanz (einzeln)''). | |||
:*Wählen Sie ein Objekt aus und starten Sie Export. Es öffnet sich ein Dialogfenster, in dem Spaltenaufbauten angegeben werden können, um zu definieren welche Attribute mit ausgegeben werden. | |||
:*Öffnen Sie Spalteneditor hinter einer Sicht: | |||
:[[File:x60.png|600px]] | |||
Spalteneditor öffnet sich, kann erstellt und gespeichert werden. | |||
[[File:x61.png|800px]] | |||
:*Klicken Sie auf "OK". | |||
:[[File:x62.png|600px]] | |||
Export startet. CSV datei wird geöffnet. Die im Spaltenaufbau für die Sicht gespeicherten Attribute werden mit ausgegeben. | |||
[[File: | '''Flächenbilanz Summe:''' | ||
:*Klicken Sie mit der rechten Maustaste auf [[File:Projekte_16.png|16px]] (''Projekt'') > [[File:Exportieren_16.png|16px]] (''Export'') > [[File:neu_16.png|16px]] (''Flächenbilanz (Summe)'') | |||
:[[File:x57.png|800px]] | |||
:*Alle Schritte wie bei der Flächebilanz (einzeln). | |||
:[[File:x58.png|300px]] | |||
Bei der Flächenbilanz (Summe) wird eine CSV-Datei nach folgenden Regeln erzeugt: | |||
#Innenliegende Flächen werden komplett übernommen | |||
#Schneidende Flächen mit ihrem Anteil, der innerhalb der Begrenzungsfläche liegt, übernommen. Pro Objekt und Sicht gibt es immer nur eine Flächenausgabe, d.h. entstehen durch die Verschneidung eines Objektes einer Sicht mehrere Teilflächen, geht nur die Gesamtsumme dieser Teilflächen in die Statistik ein. | |||
#Kommt ein Objekt mehrfach in den gewählten Sichten vor, geht das Objekt auch mehrfach, also einmal pro Sicht, in die Statistik ein. | |||
:[[File:x59.png|800px]] | |||
[[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] | [[{{{hochlink|#top}}}|Hoch zum {{{hochtext|Seitenanfang}}}]] |
Aktuelle Version vom 30. August 2023, 07:40 Uhr
Suchcenter
Mit dem Suchcenter können Sie in GeoMedia SmartClient Kommunal vorgefertigte Suchanfragen starten. Sie können z.B. nach Adressen oder Flurstücken suchen, indem Sie die entsprechende vordefinierte Suchanfrage auswählen. Ist noch keine Suchanfrage auswählbar oder sollen neue, individuelle Suchanfragen über das Suchcenter bereitgestellt werden, so können diese mithilfe des Filter-Managers konfiguriert werden.
Das Fenster "Suchcenter" öffnen Sie mit einem Klick auf (Suchcenter) in der Statusleiste. Wählen Sie aus der Liste aus, wonach Sie suchen wollen. Im unteren Teil des Fensters erscheinen die Eingabefelder. Tragen Sie Ihre Suchbegriffe dort ein. Sollte Ihnen die genaue Schreibweise nicht bekannt sein, können Sie mit einem Platzhalter (*) die Eingabe abkürzen. Sie können die Suche nun mit der Schaltfläche "Suche starten" initiieren.
Das Ergebnis wird in einer Tabelle angezeigt, die mit der Suchcenter-Abfrage verknüpft ist. In der Statusleiste wird die Anzahl der gefundenen Ergebnisse angezeigt.
Wenn zu viele Ergebnisse in der Tabelle erscheinen, müssen Sie Ihre Suche präzisieren. Das können Sie tun, indem Sie ein weiteres Eingabefeld füllen (falls vorhanden). Nach Eingabe des Wertes starten Sie die Abfrage erneut mit "Suche starten". Das Ergebnis aktualisiert sich in der noch geöffneten Tabelle. Um ein Ergebnis in der Karte anzuzeigen, klicken Sie auf das Symbol neben dem Tabelleneintrag. Um die zu dem Ergebnis zugehörigen Daten anzuzeigen und gegebenenfalls zu ändern, klicken Sie auf das Symbol .
Ist die Funktion nicht vorhanden, gibt es keine ungefilterte Sicht auf die entsprechende Objektklasse. In diesem Fall wird ihnen die Auswahl der Sichten angezeigt, sofern sie die Funktion (Objekte in der Karte anzeigen) eines einzelnen Eintrags öffnen, in deren Objektklasse sich das gesuchte Objekt befindet. Je nachdem welche Sicht Sie dann auswählen, wird das Objekt in dieser Sicht angezeigt. Zum Beispiel entspricht dann die Darstellung der Definition der ausgewählten Sicht. Um die Funktion also dauerhaft angezeigt zu bekommen, muss mindestens eine ungefilterte Sicht auf die Objektklasse vorhanden sein.
Falls keine Suchergebnisse gefunden werden, erscheint eine entsprechende Meldung.
Die Darstellung der Suchergebnisse können Sie über Spalten- und Sortierkonfiguration beeinflussen. Unter "Filterkonfiguration" stehen in der zugehörigen Auswahlliste vordefinierte Filterfunktionen zur Verfügung, um die Suchergebnisse nach beliebigen Kriterien zu filtern. Wenn Sie Filterergebnisse rückgängig machen wollen, sodass wieder alle Datensätze in der Tabelle angezeigt werden, dann müssen Sie nur den Standard-Filter "keine" aus der Filterliste wählen.
Abfragen aus der Karte
- Ein oder mehrere Objekte in der Karte können ausgewählt werden.
- Je nach Einstellung wird die Auswahl durch eine andere Darstellung hervorgehoben (eine Markierung).
- Die Markierung ist eine Darstellungsdefinition, die pro Sicht individuell definiert werden kann.
- Standardmäßig werden Farben in rötlichen Tönen für die Hervorhebung ausgewählter Datensätze verwendet.
- Für die Auswahl der Objekte in der Karte stehen in der Werkzeugleiste der Karte mehrere Funktionen zur Verfügung:
Arbeitsschritte:
- Klicken Sie die gewünschte Funktion an.
- Klicken Sie das Objekt in der Karte an oder zeichnen Sie je nach Funktion die Auswahlfläche (als Rechteck oder Kreis o.ä.) in die Karte. Bestätigen Sie mit Linksklick.
Ergebnis:
- In der Karte erscheint ein Kontextmenü mit einer Auflistung der "gefundenen" Objekte pro Sicht.
- Die Art des Kontextmenüs hängt von der Anzahl der Objekte unterhalb des Mauszeigers ab. Dabei kann es vorkommen, dass mehrere Objekte einer oder mehrerer Sichten gefunden werden. Im Kontextmenü werden die Sichten, in denen sich die Objekte befinden, aufgelistet. Sie müssen sich dann für ein Objekt (einer Sicht) entscheiden.
In der folgenden Beispiel-Abbildung wurde per Punktauswahl ein Gebäude auf einem Flurstück ausgewählt. Da sich die markierte Stelle mit anderen Objekten auf der Karte (z.B. Flurstücke, Adressen) überschneidet, stehen diese Objekte im Kontextmenü zur Auswahl. Im Beispiel wird das Objekt "Gebäude für Handel- und Dienstleistungen" ausgewählt.
Was können Sie mit den ausgewählten Objekten tun?
Es öffnet sich ein weiteres Kontextmenü. (Im Beispiel das von "Gebäude für Handels- und Dienstleistungen".)
Sie haben in Abhängigkeit des Geometrietyps (Punkt, Linie, Text, Fläche) und Ihrer Nutzer- bzw. Gruppen-Berechtigungen folgende
Optionen zur Verfügung:
Räumliche Untertabellen
In GeoMedia SmartClient Kommunal ist es möglich, räumliche Zuordnungen von Objekten unterschiedlicher Objektklassen zu ermitteln. Diese Informationen können an den Objektklassen mittels räumlicher Untertabellen dargestellt werden.
Überblick
Als Beispiel sollen alle Gebäude auf einem Flurstück angezeigt werden. Das ist die Situation auf der Karte:
Es wurde also ein Flurstück auf der Karte mit darauf liegenden Wohngebäuden ausgewählt und die zugehörige Tabelle mit dem Datensatz geöffnet (siehe Abfragen aus der Karte). Der Datensatz wird über (Öffnen) aufgerufen. Im Maskenexplorer in der linken oberen Ecke wird im Beispiel nun die Registerkarte "Fachobjekte" ausgewählt. Im zugehörigen Fenster werden unterliegende Objekte angezeigt, in diesem Fall also Wohngebäude, die sich mit dem gewählten Flurstück überschneiden. Diese können jeweils über bearbeitet werden oder ggf. auch mit zentriert in der Karte angezeigt werden.
Konfiguration
Prinzipiell können alle Objekte, die in räumlicher Beziehung zu anderen Objekten stehen, in der räumlichen Untertabelle angezeigt werden. Dazu sind folgende Konfigurationen nötig:
- Es wird eine Registerkarte mit der räumlichen Untertabelle angelegt. Diese soll im Maskenexplorer erscheinen, wenn der Datensatz geöffnet wird. (Im obigen Beispiel war dies "Fachobjekte" für die Sicht "Flurstücke"). Das Anlegen dieser Registerkarte mit der Untertabelle erfolgt über den Masken-Designer (siehe unten).
- Es wird eine Spaltenkonfiguration für die Tabelleneinträge der räumlichen Untertabelle erstellt, um festzulegen, welche Datenfelder in der Tabelle dargestellt werden sollen.
Beginnen Sie Ihre Konfiguration mit dem Masken-Designer, indem Sie diesen über Rechtsklick auf eine Sicht (im Beispiel: Flurstücke) > Konfiguration > Masken-Designer aufrufen.
Die räumliche Untertabelle der Beispiel-Sicht "Flurstücke" befindet sich in der Registerkarte "Fachobjekte" (in der Beispielabbildung rechts oben zu erkennen). Ist in Ihrer Sicht noch keine Untertabelle vorhanden, so legen Sie zunächst eine neue Registerkarte an, indem Sie das Symbol anklicken und auf die Registerkartenleiste im rechten Fenster hinüberziehen (siehe auch unter Allgemeine Vorgehensweise bei Maskenkonfigurationen). Unter "Value" in der zugehörigen Einstellungsmaske (im Fenster weiter unten) können Sie die Registerkarte benennen. Ziehen Sie anschließend eine räumliche Untertabelle über das zugehörige Symbol (räumliche Untertabelle) in die erstellte Registerkarte.
Um Konfigurationen an der räumlichen Untertabelle vornehmen zu können, klicken Sie zunächst auf Ihre Tabelle, sodass nun im unteren Abschnitt des Masken-Designers die zugehörige Einstellungsmaske erscheint. Darin lässt sich die Auswahl der Objektklassen für den räumlichen Filter vornehmen. Klicken Sie hierzu auf das Symbol (Objektklasse auswählen).
Es öffnet sich die Objektklassenauswahl. Über Eingabe in das Feld "Filtereingabe" kann nach einer Objektklasse gesucht werden oder die Auswahl durch die Eingabe eines Teilbegriffs eingeschränkt werden. Alternativ kann eine Fachanwendung gewählt und die gewünschte Objektklasse aus der zugehörigen Liste ausgesucht werden.
Die gewählten Objektklassen erscheinen nun im Maskenfeld "Objektklasse". Mit Doppelklick lassen sie sich wieder aus dem Feld entfernen. Rechts neben dem Feld kann der räumliche Filter gesetzt werden (im Beispiel: "schneidet", d.h. alle Objektklassen, die das betreffende Flurstück schneiden, werden aufgelistet - zu weiteren räumlichen Operatoren siehe Topologische Operatoren).
Anschließend wird die Konfiguration über (Speichern) gespeichert. Beim Öffnen des Datensatzes zu einem Objekt der entsprechenden Sicht wird nun die erstellte Registerkarte angezeigt. Öffnen Sie diese, so finden Sie darin die im Masken-Designer definierte räumliche Untertabelle. Nun können Sie noch bestimmen, welche Datenfelder zu den Objekten der Tabelle aufgelistet werden sollen.
Klicken Sie hierzu auf das Symbol (Spalten-Assistent) über der Tabelle, um die Spaltenkonfiguration vorzunehmen. Ziehen Sie die gewünschten Datenfelder von der Liste ins rechte Fenster (siehe hierzu Spaltenkonfiguration) und speichern Sie.
Öffnen Sie nun erneut die räumliche Untertabelle zu einem Objekt der entsprechenden Sicht, so werden dort - falls vorhanden - unterliegende Objekte nach benutzerdefiniertem Spaltenaufbau angezeigt.
Räumliche Abfragen
Mit räumlichen Abfragen können Sie räumliche Beziehungen zwischen Objekten analysieren. Die Ergebnisse sind Datensätze, die in einer Tabelle zur weiteren Bearbeitung oder Ausgabe angezeigt werden.
Den Editor zum Erstellen räumlicher Abfragen können Sie in jeder Tabelle über das Symbol (Öffnet den Editor zum Erstellen von räumlichen Abfragen) öffnen.
Sie können im Editor eine benutzerdefinierte räumliche Abfrage anlegen, indem Sie auf (neue räumliche Abfrage erstellen) klicken.
Vergeben Sie einen Namen und ggf. einen Beschreibungstext für die Abfrage. Anschließend wählen Sie die gesuchte Objektklasse aus. Damit legen Sie die Tabelle fest, die sich nach dem Starten der Abfrage mit den Ergebnissen öffnet. Klicken Sie hierzu auf das Symbol (Objektklasse auswählen). Es öffnet sich die Objektklassenauswahl (siehe oben). Dort können Sie nach einem Objektklassen-Namen suchen oder erst die Fachanwendung wählen und dann die gewünschte Objektklasse aus der zugehörigen Liste.
Anschließend können Sie zusätzlich noch einen Filter auswählen. Dieser muss allerdings im Vorfeld schon angelegt worden sein (siehe Filterkonfiguration). In der Beispiel-Abbildung unten wurde der Filter "Gebäudefunktion – Wohngebäude" gewählt.
Neben der gesuchten brauchen Sie anschließend auch eine zu verschneidende Objektklasse. Dazu wählen Sie die gesuchte Objektklasse über das zugehörige Symbol das Symbol aus (im Beispiel: "Flurstück"). Auch bei der zu verschneidenden Objektklasse können Sie einen Filter wählen, der die Datenmenge einschränkt (im Beispiel: "Flurstücke städtisch").
Alternativ gibt es die Möglichkeit, in der Tabelle oder in der Karte markierte Objektklassen auszuwählen. Die Wahl von Objektklassen aus der Tabelle bedeutet, dass Sie die Tabelle der zu verschneidenden Objektklasse öffnen und Datensätze markieren müssen. Bei der Wahl von Objektklassen aus der Karte müssen Sie zuvor Objekte in der Karte markieren. Mit der Schaltfläche aktualisieren Sie die Anzahl der in der Tabelle ausgewählten Datensätze, falls diese sich geändert hat.
Der räumliche Filter entscheidet nun, in welcher Art und Weise (siehe unten) die räumliche Verschneidung durchgeführt wird (im Beispiel: innerhalb, d.h. alle Gebäude, die sich innerhalb von städtischen Flurstücken befinden).
Die Abfrage kann nun über Klick auf (räumliche Abfrage ausführen) gestartet werden. Es öffnet sich die Tabelle mit den gefundenen Objektklassen. In der Statusleiste wird die Anzahl an Ergebnissen (Anzahl der geladenen Datensätze) angezeigt. Die Datensätze der (Ergebnis-)Tabelle können nun eingesehen werden bzw. die Objekte zentriert in der Karte dargestellt werden.
Wenn die Ergebnisse Ihren Erwartungen entsprechen, kann die räumliche Abfrage über gespeichert werden. Die Abfrage erscheint ab jetzt in der Liste links im Editor unter dem Ordner der entsprechenden Fachanwendung. Per Doppelklick kann die Abfrage wieder ausgewählt und bearbeitet werden.
Topologische Operatoren
Es stehen verschiedene topologische Operatoren (räumliche Beziehungen) zur Wahl, die als räumlicher Filter für die Abfrage genutzt werden können. Dazu gehören:
- Enthält
- Kreuzt
- Verschieden
- IstGleich(Räumlich)
- Schneidet
- Überschneidet
- Berührt
- Innerhalb
- im Abstand von
Im Folgenden sollen diese Beziehungen (außer bei Linien-Geometrien) anhand des Beispiels "Wohnhäuser auf Flurstücken" erläutert werden. Hierzu wurde jeweils ein einzelnes Flurstück mit Wohngebäuden per Punktauswahl ausgewählt und die zugehörige Tabelle geöffnet. Der Tabelleneintrag wurde ausgewählt und der Editor zum Erstellen von räumlichen Abfragen geöffnet. Als gesuchte Objektklasse wurden Wohngebäude gewählt, als zu verschneidende Objektklasse Flurstücke, und es wurde über Markierung von "in Tabelle ausgewählte Objekte" der aktuelle Flurstück-Datensatz ausgewählt. Anschließend wurden die zur Verfügung stehenden räumlichen Filter getestet (Gebäude "..." Flurstück):
Enthält:
Es werden alle Objekte herausgefiltert, die Objekte der zu verschneidenden Objektklasse enthalten. Im Beispiel wäre dies ein Gebäude (in der folgenden Abbildung blau dargestellt), das das betreffende Flurstück "enthält", d.h. das so groß ist, dass es das Flurstück überdeckt. In der Abbildung werden die Grenzen des enthaltenen Flurstücks mit grünen Linien angedeutet.
Kreuzt:
Dies betrifft Linien-Geometrien. Es werden alle Objekte herausgefiltert, die sich mit Objekten der zu verschneidenden Objektklasse kreuzen. Im Beispiel kreuzt eine strittige Flurstücksgrenze (rot eingezeichnet) das betreffende Flurstück (grün markiert).
Verschieden:
Es werden alle Objekte herausgefiltert, die von der zu verschneidenden Objektklasse verschieden sind - im Beispiel also alle Wohngebäude außerhalb des gewählten Flurstücks.
IstGleich(Räumlich):
Es werden alle Objekte herausgefiltert, die (räumlich) gleich einem Objekt der zu verschneidenden Objektklasse sind. Im Beispiel wäre dies also ein Wohnhaus (in der folgenden Abbildung blau dargestellt), das genau die Fläche des Flurstücks abdeckt:
Schneidet:
Es werden alle Objekte herausgefiltert, die sich mit der zu verschneidenden Objektklasse schneiden, d.h. es gibt an irgendwelchen Stellen räumliche Schnittpunkte zwischen den verschiedenen Objekten. In der Beispiel-Abbildung schneiden sich fünf Gebäude mit dem grün markierten Flurstück, da sie sich gleiche Flächen teilen. Das blaue Gebäude oben links in der Abbildung gehört nicht mit zu den Ergebnissen, da es sich nicht mit dem betreffenden Flurstück schneidet.
Überschneidet:
Es werden alle Objekte herausgefiltert, die sich mit Objekten der zu verschneidenden Objektklasse überlappen. Dies betrifft im Beispiel also Gebäude, die nur zu einem Teil auf dem entsprechenden Flurstück stehen (in der Abbildung ist dies das markierte Gebäude auf dem grünen Flurstück). Die ermittelten Gebäude würden also sowohl bei "schneidet" als auch bei "überschneidet" gelistet werden.
Berührt:
Es werden alle Objekte herausgefiltert, die sich an den Grenzen mit einem Objekt der zu verschneidenden Objektklasse berühren.
Innerhalb:
Das Gegenteil von "enthält". Es werden nur die Objekte herausgefiltert, die sich komplett innerhalb der zu verschneidenden Objektklasse befinden. In der Beispiel-Abbildung sind dies also nur die markierten Wohngebäude, die sich komplett innerhalb des grünen Flurstücks befinden:
Im Abstand von:
Bei Wahl dieses Filters erscheint ein zusätzliches Textfeld im Editor, in das ein beliebiger Abstand (in Metern) zur zu verschneidenden Objektklasse eingegeben werden kann:
Im Beispiel wird nach Gebäuden gefiltert, die sich in einem Abstand von bis zu 10 Metern zum gewählten (grün markierten) Flurstück befinden. Die ermittelten Wohngebäude sind in der Karte rot markiert:
Report erstellen
GMSC-K vefügt ab Version 2016 SP2 über drei verschiedene Reportsoftwareanbindungen: Crystal Reports, Eclipse BIRT und Jasper Reports. Damit können Sie Daten aus GMSC-K unter Angabe einer Vorlage in ein PDF exportieren wobei auch die Möglichkeit besteht ein Kartenbild einzubinden. Zunächst eine kurze Übersicht:
Crystal Reports | Eclipse BIRT | Jasper Reports | |||||
---|---|---|---|---|---|---|---|
Homepage | https://www.crystalreports.com/ | https://www.eclipse.org/birt/ | https://community.jaspersoft.com/ | ||||
Lizenz | Kommerziell | OpenSource | OpenSource mit kommerziellen Erweiterungen und Support | ||||
Support vom Hersteller | Ja | Ja, über Mailinglisten | Ja | ||||
Reportlayout | Millimeter genau möglich | Automatisches Layout mit Größenvorgaben | Millimeter genau möglich | ||||
Unterreports | Ja, eigene Unterreportvorlage | Ja, direkte Einbindung von Untertabellen ohne eigene Unterreportvorlage | Ja, direkte Einbindung von Untertabellen oder eigene Unterreportvorlage | Skriptsprache | Ja | Ja | Ja |
- Objekte für die man einen Report erstellen möchte in Tabelle markieren
- mit der Maus auf das Report-Icon in der Tabelle klicken, es öffnet sich der Reportdefinitons-Editor.
Aufbau des Reportdefinitons-Editors
- Liste der zur Verfügung stehenden Reports
- Eine neue Reportdefinition wird angelegt. Dabei wird der Name und Reportpfad aus den entsprechenden darüber liegenden Eingabefeldern verwendet.
- Die aktuell ausgewählte Reportdefinition wird mit den aktuellen Daten der Eingabefelder gespeichert.
- Die aktuell ausgewählte Reportdefinition wird gelöscht.
- Name des aktuell ausgewählten Report bzw. Namen-Eingabefeld für einen neu anzulegenden Report
- Auswahl der Reportsoftware (ab Version 2016 SP2)
- Optionale Aktion, die vor der Ausführung Reports gestartet werden soll, z.B. ALB-Abrufprotokoll
- Format der Reportergebnisdatei (PDF, Word etc.)
- Eingabefeld für den Pfad zur Reportvorlagedatei, die für einen neu anzulegenden Report verwendet werden soll. Zur Pfadauswahl dient der Button am rechten Ende des Eingabefeldes
- Eingabefeld für den Pfad zur Reportvorlagedatei, welche in der aktuell ausgewählten Reportdefinition gespeichert werden soll. Mit dem Pfadauswahl-Button kann dabei ein externern vorliegender Report ausgewählt werden.
- Öffnet die Reportvorlagedatei der aktuellen Reportdefinition lokal in der dafür vorgesehenen Anwendung. Dabei wird der lokale Pfad zu diesem Report in Feld 10 eingetragen.
- Ersetzt die Reportvorlage in der aktuellen Reportdefinition mit dem im Feld 10 angegebenen Report.
- Speichert die Reportvorlagedatei lokal in einem selbstgewählten Ordner.
- Eingabefeld für den Namen des Alternativreports. Der Name muss der einer bereits angelegten Reportdefinition sein. Diese Funktionalität spielt nur bei der Verwendung von Kartenausschnitten als Bild innerhalb des Reports eine Rolle. Der hier angegebene Report wird dann verwendet, wenn die Maßstabsangaben des Hauptreports zu klein für die Erstellung des Kartenausschnittbildes sind. Weiterhin wird dies nur bei der Einzelreporterstellung ausgewertet.
- Zugeordnet Reports können verwendet werden, um innerhalb eines Report verschiedene Papierformate zu verwenden. Z.B. kann für dies Ausgabe der Sachdaten das A4-Format verwendet werden, für die Ausgabe der Karte jedoch A3. Reports können durch Drag&Drop aus der Reportliste links in die Tabelle der zugeordneten Reports eingefügt werden. Ein Report mit zugeordneten Reports besitzt selbst keine Reportvorlage sondern für jeden Datensatz werden nacheinander die zugeordneten Reports ausgeführt und das Ergebnis in einer Gesamt-PDF-Datei gespeichert.
- Erstellt einen neuen Bilddefinitionseintrag in der darunter liegenden Bilddefinitionstabelle. Dies wird benötigt um Kartenausschnitte als Bild in den Report einzufügen.
- Löscht den aktuell ausgewählten Bilddefinitionseintrag.
- Kopiert den aktuell ausgewählten Bilddefinitionseintrag.
- Zeigt wahlweise nur die Bilddefinitionseinträge des aktuellen Projektes an oder alle. Damit kann ein Bilddefinitionseintrag einfach von einem Projekt in ein anderes kopiert werden.
- Name der Bilddefinition. Dies muss sich auf einen entsprechenden Parameter in der Reportvorlagedatei beziehen.
- Breite des zu Bildbereichs in der Reportvorlagedatei in Millimeter, d.h. das Bild wird mit dieser Breite von Kartenauschnitt erzeugt. Wird hier ein anderer Betrag angegeben als im Bildbereich, wird das Bild im Report entsprechend skaliert.
- Höhe des zu Bildbereichs in der Reportvorlagedatei in Millimeter, d.h. das Bild wird mit dieser Höhe von Kartenauschnitt erzeugt. Wird hier ein anderer Betrag angegeben als im Bildbereich, wird das Bild im Report entsprechend skaliert.
- Die Größe des Randbereichs des Bildes um das Fachobjekt in Prozent.
- Liste von Attributen, welche eine Verknüpfung zu anderen Objekten darstellen, von denen die Geometrie als Grundlage für die Erstellung des Kartenausschnittes genommen werden soll. Die Angabe erfolgt dabei in der Punktnotation wie sie im Maskeneditor zur Information verwendet wird. Wird hier nichts angegeben, wird automatisch nur die Geometrie des selektierten Objektes verwendet. Sobald hier ein Eintrag vorhanden ist, werden nur noch die hier angegebenen verknüpften Objektgeometrien verwendet. Um dann auch das selektierte (Haupt-)Objekt mit einzubeziehen muss dies durch die Angabe von „position“ als Attributname geschehen. Als Trenner ist Komma (,) oder Semikolon (;) möglich. Aber immer nur eins von beiden.
- Liste der möglichen Maßstäbe, die diese Bilddefinition unterstützt, z.B. bei 1:1000 Angabe von 1000. Wird kein passender Maßstab gefunden, wird der Alternativreport ausgeführt. Als Trenner ist Komma (,) oder Semikolon (;) möglich. Aber immer nur eins von beiden.
- Zu verwendete Arbeitssitzung für die Erstellung des Kartenausschnittbildes. Dadurch ist es möglich sich gezielt eine Arbeitssitzung zu definieren, welche den Vorstellungen für den Kartenausschnitt entsprechen und immer wieder verwendet werden kann.
- Hier kann optional der Name einer Darstellungsvariante angegeben werden.
- Liste der Sichtenfilter. Hier kann man genauer definieren, welche Objekte man in den einzelnen Sichten des Kartenausschnittes haben möchte. Die Syntax ist wie folgt: Objektklassen-ID = Attributpfad. Die Objektklassen-ID erhält man im Eigenschaftsdialog der jeweiligen Sicht. Der Attributpfad entspricht den verknüpften Objekten ausgehend von dem selektierten Hauptobjekt (wie in Punkt 25 beschrieben). Als Trenner ist Komma (,) oder Semikolon (;) möglich. Aber immer nur eins von beiden.
- Die ID des Projektes, für die dieser Bilddefinitionseintrag angelegt wurde. Ein Bilddefinitionseintrag ist immer einem Projekt zugeordnet da die Angaben zur Sichtenzuordnung in Punkt 29 immer projektabhängig sind.
- Gibt die gewünschte Auslösung für Rasterdaten an, die ggf. im Kartenbild ausgegeben werden.
- Erstellt einen Report und öffnet die fertige Datei danach automatisch mit der dafür vorgesehenen Anwendung lokal.
- Erstellt einen Report und speichert diesen in einem vom Nutzer definierten Ordner.
- Erstellt einen Report und öffnet die fertige Datei danach automatisch mit der dafür vorgesehenen Anwendung lokal. Ausserdem wird für jedes selektierte Objekt ein Dokument in GeoMedia SmartClient Kommunal angelegt, das die eben erstellten Report enthält und damit dauerhaft in GeoMedia SmartClient Kommunal hinterlegt ist.
- Erstellt für jedes selektierte Objekt eine einzelnen Report und hinterlegt diesen per Dokument-Objekt in GeoMedia SmartClient Kommunal.
- Führt eines Testlauf durch, bei dem kein Report erzeugt wird. Am Ende öffnet sich eine Textdatei mit dem Ergebnis des Testlaufs. Dies ist vor allem sinnvoll, um vorher zu überprüfen, ob der angegebene Maßstab für den Kartenausschnitt ausreicht.
Reportparameter
(ab Version 2020, 23.08.2021)
Für Reports können zusätzliche Parameter definiert werden, die dann im Report ausgewertet werden können. Ein Reportparameter wird wie folgt definiert:
- Name: Name, mit welchem im Report auf den Parameter zugegriffen wird
- Bezeichner: Bezeichner, welcher dem Nutzer bei Ausführung des Reports angezeigt wird
- Typ: der Datentyp - Text, Zahl, Gleitkommazahl, Datum, Auswahlliste
- Standardwert: ein Wert entsprechend des Datentyps, welcher beim Ausführen des Reports voreingestellt ist. Für Auswahllisten wird hier eine kommaseparierte Liste von Werten angegeben, welche dann dem Nutzer als Klappbox gezeigt wird. Der Standardwert kann in dieser Liste mit ein '*' markiert werden, z.B. "5,6*,7".
- Nutzerdefiniert: der Nutzer kann den Wert des Parameters ändern
- Pflichtfeld: der Nutzer muss zwingend einen Wert eingeben
Diese Angaben können durch Doppelklick in die entsprechenden Spalte der Tabelle der Parameter im Reporteditor geändert werden.
(ab Version 2022, 29.08.2023) Es werden außerdem Standardparameter übermittelt, die z.B. Informationen zum Nutzer enthalten, welcher den Report ausführt:
- user.login: Loginname des Nutzers
- user.name: Name des Nutzers
- user.department: Abteilung des Nutzers
- user.email: Email-Adresse des Nutzers
- user.telefon: Telefonnummer des Nutzers
- <Name-des-Kartenbildes>.scale: Maßstab, in dem das Kartebild <Name-des-Kartenbildes> erstellt wurde. Dies stellt eine Alternative zur Tabelle REPORTDATEN dar.
Crystal Reports
Installation der Crystal-Reports-Laufzeitumgebung
ACHTUNG: Ab Version 2016 SP2 wird die Crystal-Reports-Laufzeitumgebung nicht mehr mit ausgeliefert sondern muss separat heruntergeladen und installiert werden. Gehen Sie dazu wie folgt vor:
- Laden Sie die Laufzeitumgebung von hier herunter: https://www.sap.com/cmp/td/sap-crystal-reports-eclipse-trial.html (Download "Runtime libraries").
- Packen Sie die Zip-Datei aus und kopieren Sie alle Dateien aus dem Order lib in das GMSC-K-Installationsverzeichnis unter C:\Program Files\Intergraph\GeoMedia SmartClient Kommunal\Instances\Default\Server\thirdparty\CrystalReports\.
- Starten Sie anschliessend den GMSC-K-Server-Dienst neu.
Vorbereiten einer Crystal Report-Datei für die Integration von Kartenausschnitten
- In der CR-Datei muss ein Bildbereich definiert werden. (Einfügen OLE-Objekt)
- Per rechte Maustaste im Bild den Grafik-Formatieren Dialog aufrufen und den Haken aus „Kann grösser werden entfernen“
- Im Reiter „Bild“ kann man die Bildgrösse in Millimeter einsehen. Im selben Tab den Button „Speicherort der“ betätigen, um einen dynamischen Speicherort anzugeben.
- Im nun geöffneten Formeleditor eingeben, wie sich der Bildpfad zur Laufzeit berechnet:
Dabei wird ein Crystal Report-Parameter verwendet (?bild1) gefolgt von der ID der Objektes welches in diesem Report dargestellt werden soll (KA_Haltung.ID) und die Dateiendung des Bildes (.png). Der Name des Bild-Parameters wird dabei als Name für die Bilddefinition verwendet. Über diesen schreibt GeoMedia SmartClient Kommunal zur Laufzeit einen Teil des Bildpfades in diesen Parameter und Crystal Report vervollständigt diesen mit Hilfe der oben angegebenen Formel.
Integration des Massstabes zu einem Kartenauschnitt
- Für diese Funktion muss ein Parameter mit den Namen „reportdatenid“ erstellt werden. Dieser wird genutzt um zur Laufzeit eine eindeutige ID für jeden Reporterstellungsprozess zu erzeugen.
- Dies erfolgt mit Hilfe eines Unterberichts in Crystal Report. Also muss zuerst ein Unterbericht erstellt werden ( Einfügen Unterbericht)
- Zuerst einen Namen eingeben und dann den Berichtsassistenten aufrufen
- Dann die Tabelle „Reportdaten“ auswählen.
- Dann den „Datenwert01“ der Tabelle „Reportdaten“ anzuzeigenden Wert auswählen
- Danach diesen Dialog per Weiter-Button beenden
- Im Verknüpfung-Reiter die ID des Hauptobjektes und den Parameter „reportdatenid“ übernehmen.
- Den Dialog mit OK bestätigen, Unterbericht einfügen und per Doppelklick öffnen.
- Im Menü Bericht Auswahl-Assistenz Datensatz den Auswahl-Assistent öffnen.
- Hier wird definiert wie der Massstab zur Laufzeit aus der Zwischentabelle Reportdaten ermittelt wird. Die Ermittlung erfolgt dabei auf dem Feld „Datenschlüssel“ dieser Tabelle und der setzt sich in diesem Fall wie folgt zusammen: ID der Reportdaten + ID des Hauptobjektes + Name des Bildparameters/Bilddefinition
- Die Tabelle der Reportdaten wird zur Laufzeit von GeoMedia SmartClient Kommunal gefüllt und nach der Reporterstellung wieder geleert.
(ab Version 2022, 29.08.2023)
Es kann auch der Reportparameter <Name-des-Kartenbildes>.scale verwendet werden.
Shared Variablen (SV) werden verwendet um Dateninhalte an verschiedenen Stellen eines Reports gemeinsam zu verwenden. Dies ist besonders für den Informationsaustausch zwischen dem Hauptbericht und den Unterberichten interessant. Dabei kann zum Beispiel ein Unterbericht genutzt werden, um bestimmte Daten aufzubereiten (z.B. Personen die mit einer bestimmten Personenart verknüpft sind oder Summenberechnungen über Datensätze, die mit dem Hauptobjekt verknüpft sind) und das Ergebnis danach in die Shared Variable zu schreiben, so dass das es im Hauptbericht zur Verfügung steht.
Beispiel: Finden der Person mit einer bestimmten Personenrolle (Notar)
- 1) Shared Variablen werden mit Hilfe von Formeln genutzt. Zuerst wird eine Formel angelegt, die die SV initialisiert:
- 2) Diese SV muss nun in einen möglichst weit oben liegenden Bereich des Berichtes eingefügt werden. Dieser Bereich muss ein anderer Bereich sein und er muss über dem Bereich angeordnet sein, in dem die SV genutzt werden soll. Dies dient dazu, das die SV erst von CR initialisert werden muss, um dann in den weiter unten liegenden Bereichen verwendbar zu sein. Der Bereich in dem die SV eingefügt wird, kann (oder sollte) dann ausgeblendet werden. (Der passende Screenshot dazu befindet sich weiter unten in Abschnitt 5)
- 3) Jetzt wird ein Unterbericht erstellt, der die Personen, die dem Hauptobjekt zugewiesen sind nach einer bestimmten Personenart filtert (hier 'NT' für Notar):
- 4) Zuerst benötigen wir eine Formel, die die SV zurücksetzt. Dies ist notwendig, wenn man einen Report für mehrere Datensätze macht und die SV ansonsten noch den Inhalt des vorherigen Datensatzes enthält. Diese Formel sollte in den Berichtskopf des Unterberichts eingefügt werden:
SHARED StringVar Notar_Nachname; Notar_Nachname := '';
- 5) Danach wird die SV in diesem Unterbericht mit einer weiteren Formel mit Inhalt gefüllt (Zeile 2: der Nachname wird zugewiesen). Wichtig ist dabei, das die SV im Unterbericht selber vorkommen (z.B. in den Detailbereich gezogen) muss, damit diese auch ausgeführt wird. Die unten aufgeführte Formel listet alle Notar-Nachnamen komma-separiert auf. Möchten man nur einen Notar anzeigen reicht es den If-The-Else Teil komplett durch die Zeile nach dem Then-Befehl zu nutzen:
if( Notar_Nachname = '' ) then Notar_Nachname := {AX_PERSON.NACHNAMEODERFIRMA} else Notar_Nachname := Notar_Nachname + ", " + {AX_PERSON.NACHNAMEODERFIRMA};
- 6) Jetzt den Unterbericht ebenso wie die SV zur Initialisierung in einen möglichst weit oben liegenden Detail-Bereich des Hauptberichtes ziehen. Dies sollte aber nicht der Seiten- oder Berichtskopf sein, damit die SV sich nur auf den aktuellen Datensatz bezieht:
- 7) Die vorherigen Schritte dienten nur dem Erzeugen und Befüllen der SV. Um die SV zu nutzen wird im Hauptbericht eine weitere Formel angelegt, die den Inhalt der SV zurück gibt. Diese Formel kann dan als normales Textfeld beliebig oft im Hauptbericht verwendet werden. Bitte darauf achten das Semikolon in der zweiten Zeile weg zu lassen:
MSSQL-Datenbank per ODBC einbinden
Die ODBC-Verbindung bezieht sich auf eine Verbindung zu einem Datenbankserver, auf denen sich die eigentlichen Datenbanken befinden. D.h. Schritte 1 bis 7 beziehen sich auf das Einrichten einer Verbindung zu diesem Datenbankserver mit Hilfe von ODBC. Im Schritt 8 wir dann über diese Datenbankserver-Verbindung die eigentliche Datenbank ausgewählt, die man in Crystal Reports verwenden möchte.
- 1. Zuerst muss in Windows eine ODBC-Verbindung eingerichtet werden. Dazu die Datenquellenverwaltung öffnen.
- 2. Eine neue Datenquelle hinzufügen.
- 3. SQL-Server auswählen.
- 4. Dann einen Namen vergeben (so taucht diese Verbindung später in Crystal Reports wieder auf) und einen im Netzwerk vorhandenen Server auswählen.
- 5. Dann auf "Weiter" klicken und die Anmeldedaten eintragen.
- 6. In den nachfolgenden (per "Weiter" geklickt) Dialogfenstern entsprechende Einstellungen vornehmen (können auch alle auf den voreingestellten Werten gelassen werden) und im letzten Dialogfenster "Fertig stellen" klicken.
- 7. Nun Crystal Reports öffnen und unter dem Menüpunkt Datenbank den Datenbankassistenten aufrufen. Dann das Kreuz links neben dem ODBC-Eintrag auswählen und dann den Datenbank-Server (den eben erstellten ODBC-Eintrag) auswählen den man verwenden möchte.
- 8. Im letzten Schritt noch die Benutzerdaten eintragen und die Datenbank auswählen. Die Datenbank kann man erst auswählen, wenn die Anwender-ID und Kennwort richtig eingetragen sind.
Eclipse BIRT
(ab Version 2016 SP2)
Eclipse BIRT ist eine Open Source Reportsoftware. Der BIRT Designer kann hier heruntergeladen werden: http://download.eclipse.org/birt/downloads/#designer. Im folgenden wird beschrieben wie Sie einen BIRT-Report in GMSC-K einbinden. Eine komplette Beispielreportvorlage findet Sie hier: Datei:Stammblatt Flurstuecke.zip
Report-Parameter definieren
Im ersten Schritt müssen Sie folgende Report-Parameter definieren, die später beim Aufruf des Reports aus GMSC-K übergeben werden:
- jdbcDriverClass - Datenbankverbindung
- jdbcDriverUrl - Datenbankverbindung
- jdbcUsername - Datenbankverbindung
- jdbcPassword - Datenbankverbindung
- selectionId - Verweis auf markierte Datensätze, die im Report angezeigt werden sollen
- reportDataId (optional) - Verweis auf zusätzlich Daten, wenn ein Kartenbild eingebunden wird
- karte (optional) - Verweis auf ein Kartenbild, der Name dieses Parameters muss mit dem Namen des Bildes in der Reportdefinition in GMSC-K übereinstimmen
Datenquelle erstellen
Legen Sie nun eine neue JDBC-Datenquelle an
und verbinden Sie deren Eigenschaften (Properties) mit den entsprechenden Reportparameteren.
Daten einbinden
Im nächsten Schritt legen Sie ein Dataset an und verweisen Sie in der SQL-Abfrage durch einen Join mit der Tabelle MARKIERUNG und dem Parameter selectionId auf die in GMSC-K selektierten Datensätze:
Verbinden Sie den Parameter der SQL-Abfrage mit dem Reportparameter selectionId.
Kartenbild integrieren
Um ein Kartenbild zu integrieren benötigen Sie den Reportparameter karte (siehe Abschnitt zu Reportparametern). Legen Sie dann in im Report an der gewünschten Stelle ein Bild an und setzen die URI auf den Wert
params["karte"].value + row["FLURSTUECK_ID"] + ".png"
wobei FLURSTUECK_ID der Verweis auf die ID des aktuellen Datensatzes ist, der wie unten gezeigt angelegt wird.
Der Maßstab des Bildes kann über die Reportdaten angezeigt werden. Legen Sie dazu den Reportparameter reportDataId und ein Dataset für die Tabelle REPORTDATEN mit dem Parameter reportDataId an:
Im Data Set Parameter-Binding geben Sie für den Parameter reportDataId den Wert params["reportDataId"].value + row["FLURSTUECK_ID"] + "karte" an. Benutzen Sie dann die Spalte DATENWERT01 aus dem Dataset, um den Maßstab einzubinden:
JasperReports
(ab Version 2016 SP1) JasperReports ist eine Open Source Reportsoftware. Der Designer JapserReports Studio kann hier heruntergeladen werden: https://community.jaspersoft.com/community-download.
Hinweis: Im Unterschied zu BIRT oder Crystal Reports können Unterberichte auch als separate Dateien eingebunden werden. Damit GMSC-K alle Reportdateien zur Verfügung hat, müssen Sie alle nötigen jrxml-Dateien in eine Zip-Datei packen und diese in GMSC-K hochladen. Dabei muss die Hauptreportdatei folgender Namenskonvention entsprechen: [GMSC-K-Reportdefinitionname]_main.jrxml. Verwenden Sie für Unterreports eingebettete Tabellen können Sie einfach nur die jrxml-Datei hochladen, deren Name dann beliebig sein kann.
Eine Beispielreportvorlage, die sowohl Unterberichte aus Dateien als auch aus eingebetteten Tabellen verwendet, findet Sie hier: Datei:JasperReports Stammblatt.zip
Im folgenden wird beschrieben wie Sie einen JasperReport in GMSC-K einbinden.
Report-Parameter definieren
Im ersten Schritt müssen Sie folgende Report-Parameter definieren, die später beim Aufruf des Reports aus GMSC-K übergeben werden:
- selectionId - Verweis auf markierte Datensätze, die im Report angezeigt werden sollen
- reportDataId (optional) - Verweis auf zusätzlich Daten, wenn ein Kartenbild eingebunden wird
- karte (optional) - Verweis auf ein Kartenbild, der Name dieses Parameters muss mit dem Namen des Bildes in der Reportdefinition in GMSC-K übereinstimmen
Datenquelle erstellen
Legen Sie nun eine neue JDBC-Datenquelle an:
Daten einbinden
Im nächsten Schritt legen Sie ein Dataset an und verweisen Sie in der SQL-Abfrage durch einen Join mit der Tabelle MARKIERUNG und dem Parameter selectionId auf die in GMSC-K selektierten Datensätze: Verbinden Sie den Parameter der SQL-Abfrage mit dem Reportparameter selectionId.
Kartenbild integrieren
Um ein Kartenbild zu integrieren benötigen Sie den Reportparameter karte (siehe Abschnitt zu Reportparametern). Legen Sie dann in im Report an der gewünschten Stelle ein Bild an und setzen die URI auf den Wert
$P{karte} + $F{ID} + ".png"
wobei $F{ID} der Verweis auf die ID des aktuellen Datensatzes ist, der wie unten gezeigt angelegt wird.
Der Maßstab des Bildes kann über die Reportdaten angezeigt werden. Legen Sie dazu den Reportparameter reportDataParameter und ein Dataset für die Tabelle REPORTDATEN mit dem Parameter reportDataId an:
Im Data Set Parameter-Binding geben Sie für den Parameter reportDataParameter den Wert $P{reportDataId} + $F{ID} + "karte" an.
Benutzen Sie dann die Spalte DATENWERT01 aus dem Dataset, um den Maßstab einzubinden.
Flächenbilanz
Flächenbilanz einzeln:
Es öffnet sich zunächst der schon für den DXF-Export verwendete Dialog zur Markierung von Objekten in der Karte, wobei dieser Dialog nur Sichten mit Geometrietyp „Fläche" oder „beliebig" anzeigt und beachtet.
- Zeichnen Sie ein oder mehrere Polygone über das Auswahltool des Markierungsdialogs ein. Die getroffenen Objekte werden in der Karte als markiert dargestellt, wobei Objekte markiert werden, die innerhalb der Markierungspolygone liegen oder davon geschnitten werden.
- Die Anzahl der markierten Objekte pro Sicht wird in der Sichtenliste angezeigt.
- Nachdem Sie „OK" geklickt haben, schliessen sich Export- und Markierung-Dialog und die Berechnung startet mit Fortschrittsanzeige. Dabei wird eine CSV-Datei erzeugt.
- Nach Abschluss der Berechnung wird die CSV zum Client transferiert, dort im temporären Verzeichnis gespeichert und das über das Betriebssystem registrierte Programm für CSV-Dateien (Excel, OpenOffice, etc.) automatisch damit geöffnet:
Bei der Flächenbilanz (einzeln) wird eine CSV-Datei nach folgenden Regeln erzeugt:
- Innenliegende Flächen werden komplett übernommen
- Schneidende Flächen werden mit ihrem Anteil, der innerhalb der Begrenzungsfläche liegt, übernommen. Pro Objekt und Sicht gibt es immer nur eine Flächenausgabe, d.h. entstehen durch die Verschneidung eines Objektes einer Sicht mehrere Teilflächen, geht nur die Gesamtsumme dieser Teilflächen in die Statistik ein.
- Kommt ein Objekt mehrfach in den gewählten Sichten vor, geht das Objekt auch mehrfach, also einmal pro Sicht, in die Statistik ein.
Im Modus „Einzeln" wird pro markiertes Objekt eine Zeile in der CSV-Datei unter Angabe von Objekt-ID (Spalte A), Fläche (Spalte B), Sichtenname (Spalte C) und den ggf. im Spaltenaufbau definierten Attributen erzeugt.
Flächenbilanz Einzeln mit Spaltenaufbau:
- Klicken Sie mit der rechten Maustaste auf (Projekt) > (Export) > (Flächenbilanz (einzeln)).
- Wählen Sie ein Objekt aus und starten Sie Export. Es öffnet sich ein Dialogfenster, in dem Spaltenaufbauten angegeben werden können, um zu definieren welche Attribute mit ausgegeben werden.
- Öffnen Sie Spalteneditor hinter einer Sicht:
Spalteneditor öffnet sich, kann erstellt und gespeichert werden.
- Klicken Sie auf "OK".
Export startet. CSV datei wird geöffnet. Die im Spaltenaufbau für die Sicht gespeicherten Attribute werden mit ausgegeben.
Flächenbilanz Summe:
- Alle Schritte wie bei der Flächebilanz (einzeln).
Bei der Flächenbilanz (Summe) wird eine CSV-Datei nach folgenden Regeln erzeugt:
- Innenliegende Flächen werden komplett übernommen
- Schneidende Flächen mit ihrem Anteil, der innerhalb der Begrenzungsfläche liegt, übernommen. Pro Objekt und Sicht gibt es immer nur eine Flächenausgabe, d.h. entstehen durch die Verschneidung eines Objektes einer Sicht mehrere Teilflächen, geht nur die Gesamtsumme dieser Teilflächen in die Statistik ein.
- Kommt ein Objekt mehrfach in den gewählten Sichten vor, geht das Objekt auch mehrfach, also einmal pro Sicht, in die Statistik ein.