3 Antworten Neueste Antwort am Jan 5, 2017 6:39 AM von jkoester

    Tabellenweite suche nach Datensätzen

    niklasweber

      Hallo,

       

      Ich habe zwei Tabellen, die miteinander verbunden sind. In beiden Tabellen gibt es ein Feld "Barcode".
      Nun möchte ich, dass FileMaker Pro 15 automatisch, nachdem in der einen Tabelle ein Wert in das Feld "Barcode" eingesetzt wurde, in der anderen Tabelle Datensätze mit diesem Barcode sucht, um darauf folgend automatisch Änderungen vorzunehmen.

       

      Ich habe schon alles probiert, was nach meinen Ansichten nach hätte funktionieren können. Habe aber nichts passendes zustandegebracht.
      Es wäre nett, wenn mir jemand helfen könnte.

       

      LG Niklas

        • 1. Re: Tabellenweite suche nach Datensätzen
          erolst

          niklasweber wrote:

          Ich habe zwei Tabellen, die miteinander verbunden sind. In beiden Tabellen gibt es ein Feld "Barcode".

          Nun möchte ich, dass FileMaker Pro 15 automatisch, nachdem in der einen Tabelle ein Wert in das Feld "Barcode" eingesetzt wurde, in der anderen Tabelle Datensätze mit diesem Barcode sucht, um darauf folgend automatisch Änderungen vorzunehmen.

          In diesem Fall kannst du einfach den Script-Schritt "Gehe zu Bezugsdaten" verwenden, z.b

           

          Wenn [ IstLeer ( TabelleB::barcode ) ]

            Aktuelles Script abbrechen

          Ende Wenn

          Gehe zu Bezugsdatensatz [ TabelleB ( TabelleB ) ; nur Bezugsdatensätze ; nur aktuellen abgleichen ]

          # [ "automatisch Änderungen vornehmen" ]

           

          und nicht vergessen, ein passendes Ziellayout auszuwählen; die Voreinstellung "aktuelles Layout" ist fast nie richtig ...

          • 2. Re: Tabellenweite suche nach Datensätzen
            kraemer@sky-data.de

            So generell würde ich erst folgende Überlegung anstellen:

             

            Je nachdem, woher der Barcode kommt (im Falle von Import zB), läufst Du Gefahr, dass dieser Barcode nicht eindeutig ist. Somit könnte deine DB Inkonsistent werden! Deshalb würde ich die beiden Tabellen nicht über den Barcode sondern über eine eindeutige ID (Tabelle1) it einem Feld REFID (Tabelle2) verknüpfen. Der Barcode in Tabelle2 erübrigt sich dadurch auch.

             

            Des Weiteren hast Du durch den Befehl "Ersetze alle Feldwerte" bereits so die Möglichkeit, notwendige Änderungen an ALLEN Datensätzen in Tabelle2 vorzunehmen, die mit dem "Hauptdatensatz" in Tabelle1 verknüpft sind. Alternativ nur einzelne Werte in einem der Bezugsdatensätze, so wie Erholst es bereits beschrieben hat.

             

            Elegant und ohne Layoutwechsel löst Du solche Dinge zB auch mithilfe globaler Felder. Erstelle eine NEUE Hilfstabelle GLOBAL mit nur einem Feld GL_ID (dieses stellst Du auf globale Speicherung). Verknüpfe Tabelle1 über die ID mit dem Feld GL_ID, Tabelle2 verbindest Du über REFID mit GL_ID.

             

            Lass Dein Layout auf der neuen Hilfstabelle GLOBAL basieren

             

            Sobald du nun in das Feld GL_ID einen gültigen Wert schreibst (der Du zB Über das einlesen eines Barcodes generiert wird, per scritptrigger über ein Suchfeld o. ä.), werden die Daten aus Tabelle1 ebenso in einem Ausschnitt angezeigt wie alle passenden Datensätze aus Tabelle2 und du musst dich um nichts mehr kümmern ausser die Felder und Ausschnitte schick auf deinem Layout zu platzieren ....

             

            HTH

             

            Gerd

            • 3. Re: Tabellenweite suche nach Datensätzen
              jkoester
              Ich habe zwei Tabellen, die miteinander verbunden sind. In beiden Tabellen gibt es ein Feld "Barcode".

              Ein weiterer Ansatz: Wenn in unterschiedlichen Tabellen gleichnamige Felder, mit möglicherweise identischer Funktionalität, abgeglichen werden müss(t)en, kann auch eine Optimierung des Datenmodells überlegt werden.

              Lagere das Feld Barcode in eine separate Tabelle aus und verknüpfe diese mit den beiden genannten Tabellen und Deine Probleme mit dem Abgleich lösen sich in Luft auf.

               

              Grüße Jörg