0

Untertabelle blättern

Hallo, ich möchte gerne in einem Script durch alle zugeordneten Einträge einer Untertabelle blättern und Felder auslesen. Ich fand bei meiner Recherche irgendwie nicht den richtigen Code.... kann mir da jemand einen Tipp geben ?

13 Antworten

null
    • Birger_H
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo. Ich weiß leider nicht genau, was Sie erreichen möchten.

    Birger

    • Dirk_Pulver_2020
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Ich habe eine Tabelle A, die mit einer Untertabelle B verknüpft ist. Jetzt hat jeder Eintrag in der Haupttabelle A mehrere Verknüpfungen zu Einträgen in der Untertabelle B. In der Haupttabelle A möchte ich ein Script starten, dass dann aus allen verknüpften Datensätzen der Untertabelle B einzeln Werte ausliest und verarbeitet. D.h. ich möchte per script durch die Untertabellen-Einträge blättern und Werte auslesen.

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo Dirk,

    dafür musst du lediglich die Untertabelle ohne "select" ansprechen. z.B.

    ---

    for i in 'Untertabelle B' do

    ....

    end

    ---

    oder

    ---

    delete 'Untertabelle B'

    ---

    so werden nur die verknüpften Datensätze gelöscht (mit delete select 'Untertabelle B' wären dann alle Datensätze gewesen)

    Grüße

    Leo

    • Dirk_Pulver_2020
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Spannend, passt nur noch nicht ganz:

    for i in Uploads do
    'Upload-Code' := 'Upload-Code' + Uploads.'10_Objekt'.'Objekt-Nr' + " "
    end;

    Ich habe in der Untertabelle 2 Einträge und möchte dort das Feld Objekt-Nr. auslesen und in einem  Textfeld Upload-Code aneinander reihen (jetzt mal als Beispiel).

    Ergebnis am Ende im Textfeld ist:

    Wert1Wert2 Wert1Wert2

     

    D.h. er läuft die Schleife zwar 2 mal durch, sammelt aber jedesmal beide Werte zusammen ein....
    Wo ist mein Fehler ?

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    mit der Schleife hast Uploads als "i" deklariert. Wenn du in der Schleife Uploads nochmals mit dem Namen Uploads  ansprichst, läft ninox quasi noch eine Schleife durch. Richtiger wäre:

    ---

    for i in Uploads do
    'Upload-Code' := 'Upload-Code' + i.'10_Objekt'.'Objekt-Nr' + " "
    end;

    ---

    Leo

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Noch spannender ist bei Ninox, dass du solche Aufgaben auch ohne Schleife erledigen kannst. Wenn 'Upload-Code' ein Berechnungsfeld wäre, dann würde die Formel dafür so aussehen:

    ---

    join(Uploads.'10_Objekt'.'Objekt-Nr'," ")

    ---

    Leo

    • Dirk_Pulver_2020
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Ja cool - es funzt - super, danke !! Dann werde ich das mal noch mit Select und Join mal austesten... diese Funktionen sind schon mächtig.

    • Dirk_Pulver_2020
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hm - jetzt habe ich ein anderes Zielfeld angegeben - schon  tut's nicht mehr.

    Dieser Code tut - aber es kommt wieder alles 2 mal:

    for i in Uploads do
    'Upload-Code' := 'Upload-Code' + Uploads.Code_Vorlage + "
    "
    end;

     

    setzte ich ein i davor, dann Fehlerschleife

    • Ninox-Professional
    • planoxpro
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Fehlen vielleicht schlichtweg die einfachen Anführungszeichen bei 'Code_Vorlage'?

    • Dirk_Pulver_2020
    • vor 6 Jahren
    • Gemeldet - anzeigen

    nein - leider schon getestet, sowohl i.'Uploads.Code_Vorlage' als auch i.'Uploads'.'Code_Vorlage' usw....

    Das Feld Code_Vorlage ist ein Berechnungsfeld (Textblock)

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Versuch bitte den "Uploads" zwischen "i"und "Code_Vorlage" zu entfernen. 

     

    Leo

    • Dirk_Pulver_2020
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Krass - jetzt geht es! Muss ich das verstehen ??

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Ich versuch's zu erklären. Wenn du die Schleife anfängst (for i in Uploads do) ersetzt du in jedem schritt der Schleife den Namen der durchlaufende Tabelle (Uploads) dirch "i". Innerhalb der Schleife heißen jetzt alle Felder der Uploads - i.Nr, i.'Code Vorlage' usw.