Tabellefeldern kopieren

Hallo.

Ich habe folgende Erweiterung :

'Segment
'Create segmented polyline theme from continuous polyline theme
'Rons
'ArcView button
'4/5/2001

theView = av.GetActiveDoc

theActivethemeList = theView.GetActivethemes
if (theActivethemeList.Count = 0) then
MsgBox.Error("No active themes.","")
Exit
end

theTheme = theView.GetActiveThemes.Get(0)

theName = theTheme.getName
fnDefault = FileName.Make("c:\temp\").MakeTmp(theName,"shp")
fnNew = FileDialog.Put( fnDefault,"*.shp","New Theme" )
if (fnNew = nil) then exit end
fnNew.SetExtension("shp")
FTabOut = FTab.MakeNew( fnNew, POLYLINE )

if (theTheme.GetFTab.GetSelection.Count > 0) then
theFTabs = theTheme.GetFTab.GetSelection
nRecs = theFTabs.Count
else
theFTabs = theTheme.GetFTab
nRecs = theFTabs.GetNumRecords
end


FTabOut.AddFields({Field.Make("id", #FIELD_LONG, 8, 0)})
FTabOut.AddFields({Field.Make("name", #FIELD_CHAR, 50, 0)})


theCount = 0
nRecsAdded = 0
theID = -1

thisFtab = theTheme.GetFTab
shpFldIn = theTheme.GetFTab.FindField("shape")
shpFldOut = FTabOut.FindField("shape")
fldIDOut = FTabOut.FindField("id")

for each rec in theFTabs
theCount = theCount + 1
av.SetStatus(theCount * 100/ nRecs)
shp = thisFTab.ReturnValue(shpFldIn, rec)

px = 0
py = 0

For each part in shp.AsList
For each p in part
shpNew = Polyline.Make({{px@py, p.GetX@p.Gety}})
if (px > 0) then
nRecNew = FTabOut.AddRecord
FTabOut.SetValue(shpFldOut,nRecNew,shpNew)
FTabOut.SetValue(fldIDOut,nRecNew,theCount)
end
px = p.GetX
py = p.Gety
end
end
end
av.SetStatus(100)

newTheme = FTheme.Make( FTabOut )
theView.AddTheme( newTheme )
theName = newTheme.GetName
theExt=theName.asstring.right(4)
theName=theName.asstring.substitute(theExt,"")
newTheme.SetName (theName)
theView.GetWin.Activate

Jetzt meine Frage:

Ich habe eine beliebige Tabelle, wo ich nicht weiss wie die Felder bezeichnet worden sind.
Deshalb möchte ich alle Felder in die neue Tablle übertragen.

Bei diesem Script wurden ja einzelne Felder angesprochen und in die anderer Tabelle übertragen.
Ist das möglich alle Felder gleichzeitig anzusprechen ?
Hallo Sebastian,

Du holst Dir mit getFields eine Liste der Felder der Ausgangstabelle und arbeitest diese Liste in einer FOR EACH Schleife ab. In der Schleife holst DU Dir zu jedem Feld die benötigten Parameter aus der Ausgangstabelle und erstellst das entsprechende Feld in der Zeiltabelle.

Fröhliches basteln!
Jörg