Fremdschlüsselanzeige

Navigation:  GS-Designer > Formulardesigner > Arbeiten mit dem GS-Formulardesigner > Beispiele >

Fremdschlüsselanzeige

Vorheriges ThemaZurück zur ÜbersichtNächstes Thema

Designer_clip0159

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