Hallo Leute,
weiss jemand, ob man über eine Verknüpfung (1:n-Beziehung) angebundene Daten irgendwie in die Stammtabelle bringen kann, also die verknüpften Inhalte entweder in mehrere Felder oder in eines mit Komma getrennt, schreiben kann?
Hoffe meine Frage war einigermassen klar formuliert.
Gruß
Wolfgang
weiss jemand, ob man über eine Verknüpfung (1:n-Beziehung) angebundene Daten irgendwie in die Stammtabelle bringen kann, also die verknüpften Inhalte entweder in mehrere Felder oder in eines mit Komma getrennt, schreiben kann?
Hoffe meine Frage war einigermassen klar formuliert.
Gruß
Wolfgang
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von Johannes Brinkmann am Mo., 25.08.2003 - 16:11
Permalinkich hatte vor kurzem ein vergleichbares Problem (mit verschiedenen Nutzungen auf einer Fläche). Dafür habe ich zunächst neue Felder in meiner Attributtabelle angelegt.
Dann habe ich es mit einem Skript mit select-by-Abfragen gelöst.
Also: wähle ersten Datensatz, schau welche Nutzungen vorhanden und schreibe das Ergebnis (bzw. die Ergebnisse) in die neuangelegten Felder der Attributtabelle. Gehe dann zum nächsten Datensatz usw.
Es geht sicherlich cleverer, aber so geht's eben auch.
Gruß
Johannes
Gespeichert von Johannes Brinkmann am Mo., 25.08.2003 - 16:12
Permalinkich denke nicht, dass Dir das gesamt Skript helfen würde und gebe Dir mal die wesentlichen Bausteine:
theView = av.GetActiveDoc
theTheme = theView.FindTheme("thema1.shp")
thm2 = theView.FindTheme("thema2.shp")
theFTab = theTheme.GetFTab
thm2FTab = thm2.GetFTab
theView.SetEditableTheme(thm2)
StrFld = theFTab.FindField("fld0")
str2Fld1 = thm2FTab.FindField("fld1")
str2Fld2 = thm2FTab.FindField("fld2")
str2Fld3 = thm2FTab.FindField("fld3")
theBitmap = theFTab.GetSelection
attribut = theFTab.FindField("fld")
attributStr = theFTab.FindField("fld").AsString
for each rec in theFTab
suche = theFTab.ReturnValue(attribut,rec)
theQuery = "["+attributStr+"]="+suche.Quote
theFTab.Query(theQuery, theBitmap, #VTAB_SELTYPE_NEW)
theFTab.UpdateSelection
thm2.SelectByTheme(theTheme, #FTAB_RELTYPE_INTERSECTS , 0, #VTAB_SELTYPE_NEW)
theBitmap2 = thm2FTab.GetSelection
for each rec2 in theBitmap2
if (thm2FTab.ReturnValueString(str2Fld1,rec2) = "") then
thm2FTab.SetValueString(str2Fld1,rec2,suche)
elseif (thm2FTab.ReturnValueString(str2Fld2,rec2) = "") then
thm2FTab.SetValueString(str2Fld2,rec2,suche)
elseif (thm2FTab.ReturnValueString(str2Fld3,rec2) = "") then
thm2FTab.SetValueString(str2Fld3,rec2,suche)
elseif.....
end
end
thm2.StopEditing(TRUE)
end
Hoffe, konnte Dir helfen
Johannes