Datensätze nummerieren

Hallo,

kann man Datensätze in einer Tabelle durchnummerieren? Hab da schon mal was mit dem Befehl "rec" bekommen. Allerdings nummeriert dieser Befehl die Datensätze so wie sie in der Tabelle erscheinen.

Das heißt wenn ich nur einen Teil der Tabelle markiere, diesen zB. mit den x-Werten der Größe nach sortiere und dann den Befehl "rec" verwende, muss nicht unbedingt bei 1 begonnen werden und es können Lücken auftauchen.

Gibt es da einen Befehl der (das NUR die markierten Felder nummeriert werden ist klar) nur die markierten Felder vom Anfang der Tabelle mit 1 beginnend ohne Lücken durchnummeriert.

Gruß und Dank
Tobi
Hallo Tobi,


poste gerne mal dein "rec"-Script. Moeglicherweise musst du lediglich eine Zeile wie:

For each rec in theFTab

aendern in:

For each rec in theFTab.GetSelection

Falls ich dich richtig verstanden habe (Was ist ein "rec"-Befehl?) dann versuch's mal.

Viel Erfolg & Gruss

Uwe
Hallo Tobi,

Versuch es doch mal mit den
Memotools
Da geht das auch prima mit.

LG Andreas
Memo Tools (Link)

Oder hiermit (Tabelle editierbar setzen, Feld in das die Nummer soll aktivieren):


theTable = av.GetActiveDoc
theVTab = theTable.GetVTab
theBitmap = theVTab.getSelection
theActFld = theTable.GetActiveField

i = 1
for each rec in theBitmap
SortNo = theTable.ConvertRecordToRow(rec)
theVTab.SetValueNumber(theActFld, rec, i)
i = i + 1
end

@Uwe: Der Befehl "rec" in den FieldCalculator eingesetzt liefert eine durchlaufende Nummerierung anhand der internen ID (RecNo).
Hallo Maxilla,

dann werd ich mir mal den "Dialog Designer" und das "Using Avenue" Buch schnappen und versuchen mein erstes Skript zu schreiben.....

Dank an alle
Gruß Tobi
Ähm, das wäre dafür aber ein bissl übertrieben.

Wie du das oben kursiv gesetzte Script ausführst:

- Geh im Projektfenster auf "Script",
- klick "Neu"
- kopier in das sich öffnende Fenster (wahrscheinlich "Script1") über StrgC / Strg-V das kursivgeschriebene meiner Antwort rein
- klick auf den Haken ("Kompilieren")

- Nun mach deine Tabelle auf
- setz sie editierbar
- aktiviere ein Nummernfeld in das die durchlaufende Nummerierung soll
- öffne auf dem direkten Weg das Script und klick auf das rennende Männchen ("Ausführen")

Mit den MemoTools ist's für Skript-Ungeübte tatsächlich etwas einfacher...
Hallo

"Das Objekt Projekt kann die Anforderung GetVTab nicht erkennen" steht da nach Ausführung des Skripts.

Keine Ahnung was da gemeint ist.

Was ist der "direkte Weg zum Skript"?

Gruß Tobi
- Tabelle und Skript nebeneinander aufmachen.
- Tabelle aktivieren und dann ohne Umwege das Script aktivieren (nicht erst das Projektfenster)...

Das mit dem "öffnen auf direktem Weg" war missverständlich, sorry. Hätte heißen müssen: Aktiviere auf direktem Weg das bereit offene Scriptfenster
:)
Falls es dich interessiert, ein PS:

Jedes Script wird sozusagen immer bezogen auf dasjenige "Fenster" angewendet, dass direkt vor Ausführung des Skriptes aktiv war.

In dem Skript heißt es nun:

theTable = av.GetActiveDoc
theVTab = theTable.GetVTab

"ActiveDoc" (also zuvor aktives "Fenster") war in diesem Falle das "Project" (und das heißt jetzt im Skript dummerweise "theTable"). In der zweiten Zeile wird das Projekt dann nach der VTab gefragt, eine Frage die nur eine Tabelle beantworten kann.

Resultat: Passende Fehlermeldung
Ja so ähnlich steht es im Dialog Designer auch. Aber verstanden hab ich nichts.

Aber so wie ich mir das vorstellte gehts halt nicht. Dachte halt wenn eine Druckleitung sich von Ost nach West erstreckt kann man die Schächte bzw. fiktiven Schächte mit den Rechtswerten von West nach Ost sortieren und dann durchnummerieren. Dann hat der westlichste Schacht die kleinste Nummer "1" und der östlichste die größte Nummer.

Anschließend kann man die Nummer mit der vom Landkreis vorgegebenen Nummer zB. 025 für Ortsteil 6 für Druckleitung 01 für Teilgebiet zusammenfügen

Also
"025601"+"000".left(3-[Tabelle].asstring.count)+[Tabelle].asstring

=025601001

Lieber mit der alten Methode von Hand machen

Gruß
Tobi
Hi Tobi

für dich das ganze noch mal im Dialog Feldwertberechnung.

Also:
Sortier die Tabelle und aktiviere dann das Feld für die Nummerierung. Falls du eine Selektion hast, musst du diese nach oben schieben (Promote). Öffne die Feldwertberechnung und tipp folgendes ein:

av.FindDoc("MyTable").ConvertRecordToRow(rec)

Ersetz "MyTable" durch den Namen deiner Tabelle.

Doch, doch, das funktioniert ;-)

Machs jut, M.
Genau so hab ich es mir vorgestellt.

Vielen vielen Dank Maxilla!

Gruß
Tobi