0

Verknüpfungen

Hallo. 
wie bekomme ich eine Verknüpfung hin? Ich habe eine Tabelle mit dem Namen „Einstellungen“ Dort habe ich ein Zahlenfeld „Version“. Wenn ich dort eine Nummer eingebe (Zum Beispiel: 1.0) möchte ich, dass in der Tabelle Leistungsnachweis ein gleiches Zahlenfeld mit dem Namen „Version“ gefüllt wird. 

Kann mir da jemand helfen? 

 

Vielen Dank und Grüße, Jens

12 Antworten

null
    • Horst_Fertig
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Servus !

    Also eine Verknüpfung braucht's dafür eher nicht (vorausgesetzt, ich reime mir den Zweck der Übung hier halbwegs richtig zusammen).

    Eine Tabelle "Einstellungen" besteht ja typischerweise nur aus genau einem Datensatz und wenn in einer Tabelle X ein entsprechendes Feld mit einem aktuell in den Einstellungen vorgegebenen Wert gefüllt werden soll, bedeutet das, dass es irgendein "Ereignis" dafür geben muss, welches das zunächst mal auslöst, wie zum Bleistift der Trigger "Bei neuem Datensatz".

    Dort könnte man dazu unterbringen...

    'Erstellt mit Version' := first(select Einstellungen).Version
    

    ...sofern denn das Zielfeld so heißt, ansonsten halt entsprechend anpassen. Natürlich muss das auch nicht schon ausgelöst werden beim Anlegen eines Datensatzes, sondern kann auch (erst) über den Trigger nach Änderung nach Eingabe eines Wertes in einem beliebigen anderen Feld der Tabelle / des Formulars passieren.

    HTH und Grüße

    HF

      • Jens_Waschwill
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Hallo Horst. Vielen Dank dafür, aber es funktioniert nicht. 
       

      Mein Wunsch wäre, wenn ich in der Tabelle Einstellungen das Feld Version (Zahlenfeld) fülle, soll er diese Zahl in der Tabelle Leistungsnachweis.Version schreiben. Dort ist es auch ein Zahlenfeld. 
       

      Mache ich da etwas falsch ?

    • Horst_Fertig
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Servus !

    Aha - also tatsächlich so herum? Ein neuer oder geänderter Wert in einer "Einstellungen"-Tabelle soll bestehende Datensätze in einer anderen Tabelle aktualisieren, bzw. verändern?

    Auch wenn ich jetzt den tieferen Sinn von so einer Übung ehrlich gesagt überhaupt nicht erkennen kann (mit anderen Worten: Wozu ist denn sowas gut?), wäre ja hier gleich die nächste Frage:

    Soll dann dieser Automatismus nur bei den Datensätzen (in der Tabelle Leistungsnachweis), bei denen noch KEINE Version eingetragen ist, gesetzt werden, oder gnadenlos immer (wieder) bei ALLEN Datensätzen in dieser Tabelle (und dann verstehe ich's endgültig nicht mehr, wozu das gut sein soll...)

    Grüße

    HF

      • jewasch
      • vor 1 Jahr
      • Gemeldet - anzeigen

        Hi. 
      Naja, ich will erreichen, dass die Anwender sehen mit welcher Version sie arbeiten. 
      Zusätzlich habe ich nämlich eine Änderungstabelle. Dort können die Anwender Datenbankänderungen einsehen mit der Angabe der Version. 

      aber du hast recht . Wenn die es wissen wollen, können sie ja unter Einstellungen die Angabe finden.  

      • Horst_Fertig
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      Aha! Ja gut, so in der Richtung habe ich mir das ja "ganz oben" - also in meiner ersten Antwort ja auch schon gedacht - und wenn Du das so umsetzt wird's ja auch problemlos bei allen NEUEN, sprich zukünftigen Datensätzen in dieser Tabelle funktionieren - nämlich dass dann in jedem Datensatz direkt ersichtlich ist, mit welcher Version der DB dieser DS erstellt wurde. Macht Sinn.

      Das was Du dann jetzt aber offensichtlich darüber hinaus willst, ist eine (einmalige) Ergänzung sämtlicher bereits bestehender Datensätze auf einen Rutsch über den aktuellen Wert in der Einstellungen-Tabelle.

      Kannst Du dann z.B. so angehen: Baue einen Button in die Tabelle Einstellungen ein (oder benutze den Trigger "Nach Änderung" in dem Versionsfeld) und ein entsprechendes Script (gegebenenfalls anpassen an die eigenen Tabellen-, / Feldnamen)

      let me := this;
      let myR := (select Leistungsnachweis);
      for i in myR do
          myR.(Version := me.Version)
      end
      
      • Horst_Fertig
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      Hoppla, habe eben etwas zu früh auf den Antworten-Button gedrückt und wollte eigentlich noch kurz was dazu schreiben. Aber ich denke, Du kommst jetzt auch so dahin, wo Du hin willst, oder?

      Grüße

      HF

      • jewasch
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      super. Perfekt! Vielen Dank 

      Viele Grüße, Jens 

      • jewasch
      • vor 1 Jahr
      • Gemeldet - anzeigen

        Hallo Horst. Eine Frage. Hast du eine Idee mit welchem Befehl (innerhalb eine Buttons) ich auf den Hauptscreen zurückkommen kann? CloeseRecord () funktioniert nicht.

      Auf diesen Bildschirm möchte ich zurückkommen. 

      Vielen Dank

      • Horst_Fertig
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      Nö, das weiß ich leider nicht, ob man über (irgend-) einen eingebauten Befehl auf diese Ebene (aus einer Tabelle heraus) zurück kommt.

      Ich denke, dafür solltest Du in die Anwendung ein "Dashboard" einbauen und zur eigentlichen "Startseite" für die Benutzer machen.

      In dieser Tabelle (die man natürlich nennen kann, wie man will, das muss nicht auf gut Denglisch "Dashboard" sein - und die i.d.R.NUR in der Formularansicht gezeigt wird (und - ebenso wie eine typische "Einstellungen-Tabelle nur aus einem einzigen Datensatz besteht!), baut man sich dann alle schicken Buttons und Funktionen und sonstiges ein, die dann die jeweils gewünschten, bzw. benötigten Tabellen (oder Ansichten, etc.) öffnen.

      (Fast) alle anderen Tabellen werden dabei als "versteckt" gekennzeichnet und sind ohne Admin-Modus für den normal sterblichen User gar nicht mehr sichtbar, sondern eben nur über die entsprechenden Funktionen im "Dashboard" (oder wie auch immer) erreich- und nutzbar. Das ermöglicht nicht nur ein viel "aufgeräumteres" Bild sondern auch eine bessere Kontrolle über das was man eben so alles mit der Anwendung vorhat.

      Grüße

      HF

      • jewasch
      • vor 1 Jahr
      • Gemeldet - anzeigen

        Super gut. Vielen Dank. Ich habe NInox geschrieben. Die finden die Idee sehr gut und wollen es in der nächsten Version umsetzen. :-) 

      Eine Frage habe ich noch. Habe Deinen Ratschlag beherzigt und in einer Formel eingebaut, dass die dynamische Auswahl sich leeren soll. Allerdings möchte ich das bei zwei Situationen ausklammern. Daher habe ich eine if Then-Formel verwendet. Das funktioniert mit einer Bedingung (also mit der „11“  super. Aber bei zwei geht es nicht. Die „7“ schaut er gar nicht an. Habe ich da was falsch gemacht ? 

      if not Themenauswahl = "11" or Themenauswahl = "7" then
          Themenauswahl := null
      end
      

      Gracias. 

      Viele Grüße, Jens

      • Horst_Fertig
      • vor 1 Jahr
      • Gemeldet - anzeigen

      jewasch 

      Servus und Moin !

      Probier's mal damit, sollte funktionieren...

      if number(Themenauswahl) != 7 and number(Themenauswahl) != 11 then
          Themenauswahl := null
      end

      Denk dran, dass die Geschichte "Null-basiert" ist, der erste Eintrag in der Auswahlliste also 0 ist und nicht 1.

      Die Zahlenwerte im Script dann also gegebenenfalls anpassen...

      Grüße

      HF

      • jewasch
      • vor 1 Jahr
      • Gemeldet - anzeigen

        Super gut. Vielen Dank. Ich habe mir vorher die ID in der Liste anzeigen lassen. Fällt mir noch ziemlich schwer alleine darauf zu kommen, die richtige Syntax der Formel zu verwenden.

       Daher nochmals Danke.

      Viele Grüße, Jens 

Content aside

  • Status Answered
  • vor 1 JahrZuletzt aktiv
  • 12Antworten
  • 65Ansichten
  • 3 Folge bereits