0

Versionsnummer generieren _ Übertragen von Werte einer Haupttabelle in die Untertabelle funktioniert nicht

Hallo,

 

Als erstes - bin neu hier. Denke ich habe das richtige Programm gefunden für mich. Nun gehts ans machen....

Habe eine Datenbank angelegt wie an den Fotos zu sehen.

Ziel ist es in der Tabelle "Versionen" direkt einen Datensatz anlegen zu können worauf über die Verknüfung eine Versionsnummer des Berichts generiert werden soll.

 

In dieser Version (mit zwei Haupttabellen) klappt das übernehmen der Berichts_ID von der einen Haupttabelle in die verknüpfte mit dem Script (bei Änderung des Feldes "Bericht" (also das Feld wo die Verknüpfung des Datensatzes in der Tabelle Versionen mit dem Bericht geschieht)):

Berichtsnummer := Bericht.'Berichts ID'.

 

Nun dachte ich mir es wäre doch einfacher oder sinnvoller die Tabelle "Versionen" nicht als Haupttabelle anzulegen sondern als Untertabelle.

Ich wollte bei Anlegen eines Datensatzes in der Untertabelle mit dem oben angeführten Sript die Berichtsnummer in die UntertTabelle eintragen und mit folgendem Script eine Versionsnummer generieren.  

'Versions Nr.' := max((select Versionen).'Versions Nr.') + 1

 

Dieses Script funktioniert in der Haupttabelle wunderbar zum generieren einer Berichts_ID. Ich dachte durch das Anlgen der "Versionen" als Untertabelle ist dieses Sript ausreichend um eine Versionsnummer zu generieren die sich nur auf den jeweiligen Bericht bezieht und nicht einfach jeden Datensatz in dieser Tabelle mitzählt. Der "Sprung" während der Bedienung vom Datensatz in der Haupttabelle in die Untertabelle ist doch ausreichend um in Dieser bereits eine Verknüpfung und eine Selectierung/Auswahl aller zu diesem "Hauptdatensatz" gehörenden Datensätze der Untertabelle zu machen oder liege ich da falsch?

das erste Sript (Berichtsnummer := Bericht.'Berichts ID') funktioniert aber auch nicht nicht. Es übernimmt einfach diese Nummer nicht - Das Feld bleibt leer....

 

ein Anderer Ansatz war dieser:

Berichtsnummer := Bericht.'Berichts ID'

let ID := Berichtsnummer;

Versions_ID := max((select Versionen where Bericht_Nummer = ID).Versions Nr.) + 1

 

Irgendwie übertragt er aber die Berichtsnummer nicht. und somit funktionierts nicht

 

Ich hoffe ich habs verständlich ausgedrückt.

ist mein Ansatz falsch? Denke ich zu einfach? 

Bitte um Hilfe

 

Vielen Dank

4 Antworten

null
    • stefannagel
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Das Bild einfügen funktionierte nicht 

    hier die Bilder

    • stefannagel
    • vor 3 Jahren
    • Gemeldet - anzeigen
    • mirko3
    • vor 3 Jahren
    • Gemeldet - anzeigen

     Hallo Stefan. Leider ist das Problem nicht ganz trivial. Deshalb kann das Script nicht im Bereich
    "Bei neuem Datensatz folgendes Skript ausführen" eingetragen werden, sondern im Verknüpfungs-
    feld "Bericht" der Untertabelle "Version" bei "Nach Änderung folgendes Script ausführen".
    Script funktioniert nur, wenn Du das Verknüpfungsfeld nicht umbenannt hast. Das Ergebnis ist eine einfache, fortlaufende Nummer
    für die Versionen eines Berichts. Ich hoffe, Deinen Text richtig interpretiert zu haben. Gruß Mirko
    *
    let nummer := Bericht;
    Versions_ID := max((select Versionen)[Bericht = nummer].Versions_ID) + 1
    *

    • stefannagel
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hi MZ!

    Vielen Dank für deine rasche Antwort!

    Habe mit deiner Hilfe alles lösen können!

     

    echt toll!!! 

    LG

    Stefan