
Abb.: Fremdschlüsselanzeige im Formulardesigner
set edObjekt = GSForm.GSControls("edObjekt")
set edObjektID = GSForm.GSControls("edObjektID")
set edFremdschluessel = GSForm.GSControls("edFremdschluessel")
set edZusatz = GSForm.GSControls("edZusatz")
set cbProjektID = GSForm.GSControls("cbProjektID")
set edUser1 = GSForm.GSControls("edUser1")
set edUser2 = GSForm.GSControls("edUser2")
set edUser3 = GSForm.GSControls("edUser3")
set edUser4 = GSForm.GSControls("edUser4")
set cbTyp = GSForm.GSControls("cbTyp")
function OK_Click()
OBJ_ID = edObjektID.Text
cond = "OBJ_ID = " & OBJ_ID & " and Typ = " & cbTyp.ItemIndex
set FremdSchls = GSQuery.Select("Fremdschlüssel", nothing, cond)
Fremdschluessel = edFremdschluessel.Text
if edZusatz.Text <> "" then
Fremdschluessel = Fremdschluessel & chr(8) & edZusatz.Text
end if
if (FremdSchls.Count = 0) then
set FRM_Objekt = GSAppl.CreateObject("Fremdschlüssel")
else
set FRM_Objekt = FremdSchls(1)
end if
FRM_Objekt.Properties("OBJ_ID").AsInteger = OBJ_ID
FRM_Objekt.Properties("Fremdschlüssel").AsString = Fremdschluessel
FRM_Objekt.Properties("Projekt").AsString = cbProjektID.GetItemValue(cbProjektID.ItemIndex)
FRM_Objekt.Properties("Benutzerwert 1").AsString = edUser1.Text
FRM_Objekt.Properties("Benutzerwert 2").AsString = edUser2.Text
FRM_Objekt.Properties("Benutzerwert 3").AsString = edUser3.Text
FRM_Objekt.Properties("Benutzerwert 4").AsString = edUser4.Text
FRM_Objekt.Properties("Typ").AsString = cbTyp.GetItemValue(cbTyp.ItemIndex)
FRM_Objekt.Write false
GSForm.ModalResult = 1
end function
function FormShow()
Daten_auslesen
end function
sub Daten_auslesen
set Objekt = GSAppl.SelectedTreeObject
Objekt.ReadObjectData false, true
ObjID = Objekt.ObjectID
cond = "OBJ_ID = " & ObjID
set Fremdschls = GSQuery.Select("Fremdschlüssel", nothing, cond)
if Fremdschls.Count > 1 then
Msgbox "Es gibt mehr als einen Fremdschlüssel!"
end if
' Objekt-Infos in Textfelder schreiben
' und Textfelder deaktivieren(Schreibschutz)
edObjekt.Text = Objekt.FileAs
edObjekt.Enabled = false
edObjektID.Text = Objekt.ObjectID
edObjektID.Enabled = false
' Fremdsysteme füllen
cbTyp.AddItem ""
cbTyp.AddItemValue "SICAD", 1
cbTyp.AddItemValue "DXF", 2
cbTyp.AddItemValue "ESRI", 3
cbTyp.AddItemValue "MAPINFO", 4
cbTyp.AddItemValue "GEOMEDIA", 5
cbTyp.AddItemValue "IKIS", 6
cbTyp.AddItemValue "MAGELLAN", 7
cbTyp.AddItemValue "TIFFANY", 8
cbTyp.AddItemValue "SISNET", 9
cbTyp.AddItemValue "MAPPOINT", 10
cbTyp.AddItemValue "SISVIEW", 11
cbTyp.AddItemValue "STRAKAT", 12
cbTyp.AddItemValue "SMALLWORLD", 13
cbTyp.AddItemValue "GEMGIS", 14
cbTyp.AddItemValue "SYNCRO", 15
cbTyp.AddItemValue "GOOGLEMAPS", 16
cbTyp.AddItemValue "NIS", 17
cbTyp.AddItemValue "ROESBERG", 18
cbTyp.AddItemValue "GFT", 19
cbTyp.AddItemValue "INGRADAWEB", 20
cbTyp.AddItemValue "AVACAD", 21
cbTyp.AddItemValue "POLYGIS", 22
cbTyp.AddItemValue "RITOP", 23
cbTyp.AddItemValue "BAVARIAGIS", 24
' Alle GIS-Projekte laden
set Projekte = GSQuery.Select("GISProjekt", nothing, "")
cbProjektID.AddItem ""
' ProjektID füllen
for each Projekt in Projekte
s = Projekt.Properties("GIP_ID").AsString & " | " & Projekt.Properties("System").AsString
cbProjektID.AddItemValue s, Projekt.Properties("GIP_ID").AsInteger
next
if FremdSchls.Count > 0 then
set FremdSchl = Fremdschls(1)
' Den Fremdschlüssel aufteilen in Fremdschlüssel und Fremdschlüssel-Zusatz
FRM_KEY_KOMPLETT = FremdSchl.Properties("Fremdschlüssel").AsString
Pos = InStr(1, FRM_KEY_KOMPLETT, Chr(8), 1)
FRM_KEY = Left(FRM_KEY_KOMPLETT, Pos - 1)
FRM_ZUSATZ = Right(FRM_KEY_KOMPLETT, Len(FRM_KEY_KOMPLETT) - Pos)
' Und in die Textfelder schreiben
edFremdschluessel.Text = FRM_KEY
edZusatz.Text = FRM_ZUSATZ
edUser1.Text = FremdSchl.Properties("Benutzerwert 1").AsString
edUser2.Text = FremdSchl.Properties("Benutzerwert 2").AsString
edUser3.Text = FremdSchl.Properties("Benutzerwert 3").AsString
edUser4.Text = FremdSchl.Properties("Benutzerwert 4").AsString
' Das in der DB gespeicherte GIS-Projekt laden
GISID = FremdSchl.Properties("Projekt").AsInteger
set GISObjs = GSQuery.Select("GisProjekt", nothing, "GIP_ID = " & GISID)
set GISObj = GISObjs(1)
if not GISObj is nothing then
GISObj.ReadObjectData false, false
' Den richtigen Eintrag auswählen ???
cbProjektID.ItemIndex = cbProjektID.IndexofItem(GISID & " | " & GISObj.Properties("System").AsString)
end if
cbTyp.ItemIndex = Fremdschl.Properties("Typ").AsInteger
end if
end sub