I tried to use a MapButton but Map crashed after clicking on it. MapButton allows the user to click or draw a rectangle in the drawing area and returns the coordinates for further processing. See developer sample #30.
As alternative one can use the following call:
Autodesk.Map.IM.Graphic.Polygon poly = this.Application.Documents.Active.Map.GetRectangle("first point:", "second point:");
further details Map API Doc: MapLogic.GetRectangle Method
Map 2103, SP2
Thursday, 24 April 2014
Map API - MapButton
In Map 2013 SP2 funktioniert der MappButton nicht - es kommt zum Absturz. Über den MapButton kann man dem Benutzer ermöglichen z.B. ein Punkt oder ein Rechteck im Zeichenbereich aufzuziehen und dann die entsprechende Koordinaten auszuwerten (siehe Developer Sample 30_MapButton).
Als Alternative kann man folgenden Aufruf verwenden (Beispiel Rechteck):
Autodesk.Map.IM.Graphic.Polygon poly = this.Application.Documents.Active.Map.GetRectangle("Erster Eckpunkt:", "Zweiter Eckpunkt:");
siehe Map API Doc: MapLogic.GetRectangle Method
Map 2013, SP2
Als Alternative kann man folgenden Aufruf verwenden (Beispiel Rechteck):
Autodesk.Map.IM.Graphic.Polygon poly = this.Application.Documents.Active.Map.GetRectangle("Erster Eckpunkt:", "Zweiter Eckpunkt:");
siehe Map API Doc: MapLogic.GetRectangle Method
Map 2013, SP2
Thursday, 17 April 2014
Username / Benutzername speichern
Namen des aktuellen Benutzers über Trigger abspeichern / save name of current user via trigger:
create or replace TRIGGER wfe_sk_strassenkarte_I BEFORE INSERT ON wfe_sk_strassenkarte
FOR EACH ROW
DECLARE
begin
SELECT USER_MGMT.GETVALUE('LOGIN_NAME') INTO :new.visum FROM dual;
END;
Map 2103, SP2
create or replace TRIGGER wfe_sk_strassenkarte_I BEFORE INSERT ON wfe_sk_strassenkarte
FOR EACH ROW
DECLARE
begin
SELECT USER_MGMT.GETVALUE('LOGIN_NAME') INTO :new.visum FROM dual;
END;
Map 2103, SP2
Wednesday, 16 April 2014
Start external application from form
From a waste water industry model form we want to launch an external application with certain parameters. In Map form designer you can add a button with VB.net script. Map API provides a function called OpenURL which seemed to be a good starting point.
The following script will open Notepad++:
Public Overrides Sub Button_Click()
Me.Application.OpenUrl("C:\Program Files (x86)\Notepad++\notepad++.exe")
End Sub
It doesn't just open Notepad++. Notepad++ also tries to open a file C:\0:
It seems Map adds a parameter to the call which Notepad++ interprets as a reference to a file to be opened. Unfortunately I was not able to call Notepad++ with further parameters - such as a specific file name.
I couldn't figure out whether OpenURL is a suitable function for calling external apps or not. Instead of using Map API one can use the .Net Framework functionality as well. The following VB.net script launches the external app including certain startup parameters:
Public Overrides Sub Button_Click()
'Haltung auslesen
dim d as Autodesk.Map.IM.Forms.DialogControls.TextBox
dim name_number as String
d = Me.Dialog.Controls.Item("NAME_NUMBER")
name_number = d.Value
dim parameter as String = " /p Q:\KINS\Daten\öffKanal/h " + name_number
'Msgbox( "Aufruf von:C:\Program Files (x86)\KINS\KINS.EXE " + parameter)
'Aufruf
Dim startInfo As New System.Diagnostics.ProcessStartInfo
startInfo.FileName = "C:\Program Files (x86)\KINS\KINS.EXE"
startInfo.Arguments = parameter
Dim pro As New System.Diagnostics.Process
pro.Start(startInfo)
End Sub
Map 2013 SP2
Map API Industry Model Docs |
Public Overrides Sub Button_Click()
Me.Application.OpenUrl("C:\Program Files (x86)\Notepad++\notepad++.exe")
End Sub
It doesn't just open Notepad++. Notepad++ also tries to open a file C:\0:
Notepad++ message when called from Map form |
I couldn't figure out whether OpenURL is a suitable function for calling external apps or not. Instead of using Map API one can use the .Net Framework functionality as well. The following VB.net script launches the external app including certain startup parameters:
Public Overrides Sub Button_Click()
'Haltung auslesen
dim d as Autodesk.Map.IM.Forms.DialogControls.TextBox
dim name_number as String
d = Me.Dialog.Controls.Item("NAME_NUMBER")
name_number = d.Value
dim parameter as String = " /p Q:\KINS\Daten\öffKanal/h " + name_number
'Msgbox( "Aufruf von:C:\Program Files (x86)\KINS\KINS.EXE " + parameter)
'Aufruf
Dim startInfo As New System.Diagnostics.ProcessStartInfo
startInfo.FileName = "C:\Program Files (x86)\KINS\KINS.EXE"
startInfo.Arguments = parameter
Dim pro As New System.Diagnostics.Process
pro.Start(startInfo)
End Sub
Map 2013 SP2
Externes Programm aus Formular starten
Wir müssen aus dem Abwasser-Haltungsformular eine Applikation mit Parametern - unter anderem die aktuelle Haltungsnummer - aufrufen. Im Formular kann man einen "Button" einbinden und mit VB.Net Script hinterlegen. In der Map API gibt es eine Funktion, die für einen Aufruf vom Namen her "passen" könnte - OpenURL.
Damit lässt sich tatsächlich ein Programm starten, z.B. so:
Public Overrides Sub Button_Click()
Me.Application.OpenUrl("C:\Program Files (x86)\Notepad++\notepad++.exe")
End Sub
Beim Aufruf von Notepad++ erscheint jedoch folgende Meldung:
Es scheint, dass beim Aufruf schon ein Parameter angehängt wird den Notepad++ als Verweis auf eine bestimmte Datei interpretiert. Legt man eine Datei mit dem Namen "0" im Root Verzeichnis von C: an, öffnet Notepad++ die Datei auch beim Aufruf.
Es hat nicht funktioniert, das Programm mit eigenen Parametern aufzurufen - z.B. mit einem bestimmten Dateinamen.
Eine Datei - die mit einem Programm verknüpft ist - liess sich nicht öffnen:
Public Overrides Sub Button_Click()
Me.Application.OpenUrl(" C:\Temp\testdatei.txt")
End Sub
Um ein Programm zu starten kann man die Funktionalität des .Net Frameworks nutzen:
Public Overrides Sub Button_Click()
'Haltung auslesen
dim d as Autodesk.Map.IM.Forms.DialogControls.TextBox
dim name_number as String
d = Me.Dialog.Controls.Item("NAME_NUMBER")
name_number = d.Value
dim parameter as String = " /p Q:\KINS\Daten\öffKanal/h " + name_number
'Msgbox( "Aufruf von:C:\Program Files (x86)\KINS\KINS.EXE " + parameter)
'Aufruf
Dim startInfo As New System.Diagnostics.ProcessStartInfo
startInfo.FileName = "C:\Program Files (x86)\KINS\KINS.EXE"
startInfo.Arguments = parameter
Dim pro As New System.Diagnostics.Process
pro.Start(startInfo)
End Sub
Map 2013, SP2
Map API Dokumentation |
Damit lässt sich tatsächlich ein Programm starten, z.B. so:
Public Overrides Sub Button_Click()
Me.Application.OpenUrl("C:\Program Files (x86)\Notepad++\notepad++.exe")
End Sub
Beim Aufruf von Notepad++ erscheint jedoch folgende Meldung:
Meldung in Notepad++ nach Aufruf aus Map |
Es hat nicht funktioniert, das Programm mit eigenen Parametern aufzurufen - z.B. mit einem bestimmten Dateinamen.
Eine Datei - die mit einem Programm verknüpft ist - liess sich nicht öffnen:
Public Overrides Sub Button_Click()
Me.Application.OpenUrl(" C:\Temp\testdatei.txt")
End Sub
Um ein Programm zu starten kann man die Funktionalität des .Net Frameworks nutzen:
Public Overrides Sub Button_Click()
'Haltung auslesen
dim d as Autodesk.Map.IM.Forms.DialogControls.TextBox
dim name_number as String
d = Me.Dialog.Controls.Item("NAME_NUMBER")
name_number = d.Value
dim parameter as String = " /p Q:\KINS\Daten\öffKanal/h " + name_number
'Msgbox( "Aufruf von:C:\Program Files (x86)\KINS\KINS.EXE " + parameter)
'Aufruf
Dim startInfo As New System.Diagnostics.ProcessStartInfo
startInfo.FileName = "C:\Program Files (x86)\KINS\KINS.EXE"
startInfo.Arguments = parameter
Dim pro As New System.Diagnostics.Process
pro.Start(startInfo)
End Sub
Map 2013, SP2
Thursday, 3 April 2014
Master-Detail forms and form designer
When you open a master-detail form in form designer and then close the designer without saving alle settings for the detail forms are lost. Either you have a copy of your forms (you can save form definitions as XML) you can re-import or you need to set up the detail forms again.
Map 2013, SP2
Map 2013, SP2
Master-Detail Formulare - Formulardesigner
Öffnet man ein Master-Detail Formular im Formular Designer und schliesst den Designer ohne zu speichern gehen die Einstellungen für die Detailformulare verloren.
Entweder man kann eine Sicherungskopie einspielen (Formulare lassen sich als XML exportieren) oder man muss die Detailformulare wieder neu einrichten.
Map 2013, SP2
Entweder man kann eine Sicherungskopie einspielen (Formulare lassen sich als XML exportieren) oder man muss die Detailformulare wieder neu einrichten.
Map 2013, SP2
Subscribe to:
Posts (Atom)