Papyrus Base: Datensätze immer neu durchnummerieren

In einer PapyrusWord Tabelle gibt es die Funktion LINE. Gibt es für PapyrusBase etwas ähnliches oder wie kann ich Datensätze fortlaufend nummerieren; je nach Sortierung neu?

Hallo,

ist meine Frage

a) unverständlich?

b) einfach Unsinn?

oder c) keiner weiß eine Antwort?

Ich hätte gerne diese Möglichkeit, um damit in einem Report mehrere Formeln (für verschieden Stichworte) schreiben zu können, die dann nach Sortierreihenfolge und Suche die Datensätze abarbeiten könnten. Die Personen und die Sortierung in den Datensätzen könnten sich ändern, ohne dass ich die Formeln ändern müsste. Und ich hätte nur einen Report anstatt zB 50, die ich dann zusammensetzen müsste.

Ich schätze eine Mischung aus a und c. :wink:

In einer Base-Tabelle kannst du nicht einfach so durchnummerieren. Erst bei einem tabellarischen Report dürfte das möglich sein, nämlich ebenfalls mit der Funktion LINE(). Ob das hilft, kann ich aus der bisherigen Beschreibung nicht beurteilen.

Aber intern muss das Programm beim Sortieren doch irgendwie registrieren, welcher Datensatz an erster Stelle steht, an zweiter usw. Und wenn man das irgendwie in einem Feld sichtbar machen könnte, müssten sich doch so die Datensätze „nummerieren“ lassen. Oder liege ich da ganz falsch.

Oder gibt es einen Befehl für den Report, der die Datensätze der Reihe nach – nach bestimmten Bedingungen – durchsucht und die Ergebnisse sammelt?

Sicher – da wird es vermutlich eine Liste geben, die die angezeigten Datensätze enthält (bzw. deren IDs) und eine aktuelle Sortierposition zuweist. Als Benutzer hast Du darauf aber keinen Zugriff.

Wie schon gesagt, könntest Du es in einem tabellarischen Report so haben: Erste Zeile Tabellenkopf und aus dem ersten Feld der zweiten Zeile ein Rechenfeld machen mit der Formel “LINE()-1”. In die weiteren Felder der Zeile können Datenfelder einfließen.

Außer den Summen, Mittelwerts- und Standardabweichungsfunktionen etc. nicht.

Weitere Erläuterung:

Es gibt ca. 50 Kinder, die in unterschiedliche Klassen gehen. Beim Steckbrief von Kind1 möchte ich jetzt als zusätzliches Report-Ergebnis eine Aufzählung haben, welche Kinder mit in seine Klasse gehen. Diese Kinder sollen dann nach der Sortierung der Steckbriefabfrage als Aufzählung in einem Tabellenfeld des Steckbriefs erscheinen.

Was lebt, ändert sich. Neue Kinder kommen dazu, andere gehen weg. Jedesmal die Formel zu ändern, wenn eine Aktualisierung ansteht, möchte ich eigentlich nicht. Deshalb hoffte ich ja auf die Nummerierung. Für jedes Kind einen eigenen Report durchlaufen zu lassen, um das dann in die Tabelle einzufügen, ist zu aufwändig.

Ich wünsche mir eine Formel (in einem Tabellenfeld), die mir das für jedes Kind liefert.

Habe es geschafft. Nicht über eine Nummerierung, sondern mit einer 4D Verknüpfung eines Tabellenfeldes der Steckbrieftabelle.

Es braucht 1. eine extra Datei mit einer Tabelle, die wie folgt „voreingestellt“ wurde.

Da ich gut 50 Kinder nach gleicher Klasse durchsuche, hat die Tabelle 120 Zeilen mit 4 Spalten: Nr, Vorname, Nachname und Klasse. Die Nr brauchte ich aber nur zur Orientierung bei der Erstellung. Die unteren Felder verknüpfe ich mit den oberen 60 Zeilen, indem ich A1 in A61, B1 in B61…, A2 in A62, B2 in B62 … A60 in A120, B60 in B120 … als „Rechenformel“ eingetragen habe. Das geht ja ganz komfortabel mit in den Spalten die Zeilen 61-120 selektieren, die erste „Formel“ eintragen und den Rest macht ja das Programm.

Als weitere Fleißarbeit bekommen die Felder der unteren 60 Zeilen alle Feldlabel, also Namen. Dabei habe ich gelernt, dass der Feldname nicht identisch mit dem Formelinhalt sein darf. So habe ich bei den Namen die Buchstaben nach hinten gestellt: Feld A61hat als Formel A1 und als Namen 1A. Abgespeichert als DBCounter.pap

Identisch mit dieser Datei wird eine Reportdatei erstellt, die die 4 gleichen Felder hat. Feld B1 - D1 hat Verknüpfung mit der Datenbank: Vornamen, Nachnamen und Klasse. A1(Nr) bekommt die Formel LINE. Report so eingestellt, dass alles fortlaufend untereinander geschrieben wird. So erhält man eine Tabelle mit Anzahl der Zeilen, wie Kinder mit Klassenbezeichnung. Diese Datei wird mit leeren Zeilen ergänzt, das die Tabelle 60 Zeilen hat. Die Tabelle kopieren und vor Zeile 1 in die vorher erstellt Datei einfügen. Die Datei abspeichern, dass es zu einer Tabelle jetzt mit 180 Zeilen kommt. Automatisch übernehmen die letzten 60 Zeilen jetzt die Inhalte der ersten 60 Zeilen. Die dazwischen können gelöscht werden. Datei abspeichern.

Auf die unteren 60 Zeilen kann ich jetzt mit einer D4 Verknüpfung aus der Steckbrieftabelle mit Formeln zugreifen. Um die Formel im Rechenfeld der Steckbrieftabelle nicht zu lang zu machen, kopiere ich alle Dateien in den gleichen Ordner. So kann ich mit z.B. [DBCounter.pap#2B] auf einen passenden Vornamen zugreifen. Hier die Formel:

( IF (A10 : [DBCounter.pap#1D]) AND (C3 !: [DBCounter.pap#1B]) AND (C3 !: [DBCounter.pap#1C]) THEN [DBCounter.pap#1B] + ’ ’ + [DBCounter.pap#1C] + ', ') +

( IF (A10 : [DBCounter.pap#2D]) AND (C3 !: [DBCounter.pap#2B]) AND (C3 !: [DBCounter.pap#2C]) THEN [DBCounter.pap#2B] + ’ ’ + [DBCounter.pap#2C] + ', ') +

( IF (A10 : [DBCounter.pap#60D]) AND (C3 !: [DBCounter.pap#60B]) AND (C3 !: [DBCounter.pap#60C]) THEN [DBCounter.pap#60B] + ’ ’ + [DBCounter.pap#60C] + ', ')

A10 enthält die Klassenbezeichnung z.B. 2a; xxD in DBCounter.pap enthält auch die Klassenbezeichnung. C3 enthält Vor- und Nachnamen. Ergebnis ist dann bei gleicher Klassenzugehörigkeit der Vor- und Nachname des Kindes.

Die Namen werden in das Tabellenfeld eingetragen, sobald die Steckbriefreportdatei in den gleichen Ordner wie DBCounter.pap gespeichert wird.

Bei dieser Vorgehensweise kann ich z.B. den Steckbriefreport noch Nachnamen sortieren, die Kinder in der gleichen Klasse aber nach Vornamen.

Die lange Formel habe ich mit einer Tabelle erstellt. Formel als eine Zeile . Die Nummern hinter # in Tabulatoren einschließen ([TAB]1[TAB]), Zeile selektieren und in Tabelle verwandeln. Dann die eine Tabulatorzeile 59x kopieren, die Spalten mit den Zahlen selektieren, ins Rechenfeld LINE eintragen, Tabelle selektieren und in Text umwandeln und fertig ist diese lange Formel. – Vorher automatische Ersetzungen ausstellen, da sonst die ’ in Kommas umgewandelt werden. Oder sonst die falschen Kommas mit Suchen und Ersetzen wieder zurückverwandeln.

Ich habe versucht, die Formel mit vollständigem Pfad statt relativem Pfad umzubauen. Auf dem Mac:

[/Volumes/Daten HD/PapyrusDokumente/PlinkeDaten/DBCounter.pap#2B]

Bei einer Zeile funktionierte es. Als ich die gesamte Formel mit Suchen und Ersetzen verändert hatte, funktionierte es nicht mehr. Also habe ich es bei der kürzeren Version belassen.

Hallo, ich habe jetzt auch das Problem, das ich Datensätze aufsteigend nummerieren will, weiss aber zudem: wenn ich in einer Datenbanktabelle ganz links die (bis dato unsichtbare) Feldbegrenzung aufziehe, also die “Nullte” Spalte sichtbar mache, sehe ich die internen Datensatznummerierungen.

Meine Frage: haben die ein Feldbezeichnung, die ich in einer Formel ansprechen könnte?

Habe nämlich Produkte, die ich auf diese Art schnell und einfach durchnummerieren könnte.

Man könnte dann mit Global ersetzen mittels z.B. “Artikelnr= Nr. + 500” dann schön Artikelnr= 501, 502 503, usw. erzeugen.

In der Tabelle steht “Nr.” über der Spalte, aber damit funktionierts nicht. Oder doch?

Geht im Moment nicht, aber ich hab’s Christian gesagt, er baut eine Formelabfrage für die internen Datensatz-Nummern ein. Kommt.

Das ist doch mal schön… :wink: