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 7 JahrenMon, May 28, 2018 at 2:40 PM UTC
    • Gemeldet - anzeigen

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

    Birger

    • Dirk_Pulver_2020
    • vor 7 JahrenMon, May 28, 2018 at 3:01 PM UTC
    • 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 7 JahrenMon, May 28, 2018 at 3:12 PM UTC
    • 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 7 JahrenWed, May 30, 2018 at 10:43 AM UTC
    • 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 7 JahrenWed, May 30, 2018 at 11:04 AM UTC
    • 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 7 JahrenWed, May 30, 2018 at 11:10 AM UTC
    • 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 7 JahrenWed, May 30, 2018 at 11:20 AM UTC
    • 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 7 JahrenWed, May 30, 2018 at 12:28 PM UTC
    • 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 7 JahrenWed, May 30, 2018 at 1:14 PM UTC
    • Gemeldet - anzeigen

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

    • Dirk_Pulver_2020
    • vor 7 JahrenWed, May 30, 2018 at 1:17 PM UTC
    • 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 7 JahrenWed, May 30, 2018 at 6:12 PM UTC
    • Gemeldet - anzeigen

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

     

    Leo

    • Dirk_Pulver_2020
    • vor 7 JahrenWed, May 30, 2018 at 8:31 PM UTC
    • Gemeldet - anzeigen

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

    • Leonid_Semik
    • vor 7 JahrenWed, May 30, 2018 at 9:26 PM UTC
    • 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. 

Content aside

  • vor 7 JahrenWed, May 30, 2018 at 9:26 PM UTCZuletzt aktiv
  • 13Antworten
  • 3572Ansichten