0

Formelfeld füllt sich nicht bei neuem Datensatz per Button

Hallo Zusammen,
ich habe eine Haupttabelle mit einer Untertabelle (1:N)  wo ich per Button einen neuen Datensatz in der Untertabelle erstelle und sich dann diverse Felder füllen. Das klappt auch wunderbar. 

In der Untertabelle ist ein Formelfeld was sich automatisch füllt wenn ich auf die herkömmlich Weise  "+ Neuer Datensatz"  klicke.

Erstelle ich den neuen Datensatz per Button bleibt das Formelfeld leer. Die Tabelle woher der Wert kommt ist eine eigene Haupttabelle ('Tabelle WERTE') ohne irgendeine Verknüpfungen.

Folgende Formel nutze ich per Button:

let my := this;
let new := (create Untertabelle);
new.(Haupttabelle := my);
new.('Feld IST 1' := my.'Feld SOLL 1');
new.('Feld IST 2' := my.'Feld SOLL 2');

Zusammengefasst - im neuen Datensatz der Untertabelle ist ein Formelfeld mit der Formel: 'Tabelle WERTE . 'aktueller Wert' und dieses Formelfeld zeigt keine Zahl an wenn ich einen neuen Datensatz in der Untertabelle über den Button erstelle.

Über Eure Hilfe würde ich mich sehr freuen.
Liebe Grüße Antje

6 Antworten

null
    • Leonid_Semik.2
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hallo Antje,
    wenn die Tabelle 'Tabelle WERTE' keine Verknüpfungen hat und du den Wert des Feldes 'aktueller Wert' anzeigen möchtest. Dann sollte die Formel so sein:
     

    first ( select 'Tabelle WERTE').'aktueller Wert'

    Dabei wird der erste Datensatz der Tabelle ausgewählt (auch wenn die Tabelle nur einen Datensatz hat, musst du Ninox mit first() sagen, welcher Datensatz aus dem select Array genommen werden soll).

    Leo

    • juwelen
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hallo Leo,

    vielen Dank für Deine schnelle Hilfe. Ich muss mich revidieren. Die 'Tabelle Werte' hat eine Verknüpfung zur Untertabelle (N:1) - sorry habe das völlig übersehen, da ich die Verknüpfung ausgeblendet habe. Trotz allem werden diverse Formelfelder nicht befüllt, wenn ich einen neuen Datensatz per Button erstelle. Muss die 'Tabelle Werte'  ggf. mit in die Formel?

    let my := this;
    let new := (create Untertabelle);
    new.(Haupttabelle := my);
    new.('Feld IST 1' := my.'Feld SOLL 1');
    new.('Feld IST 2' := my.'Feld SOLL 2');

    • Leonid_Semik.2
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hallo Antje,
    wenn du einen neuen Datensatz in der Untertabelle erstellst, dann hast du natürlich keine Verknüpfung zu der Tabelle  'Tabelle WERTE' , bzw. die Verknüpfung ist da aber die Datensätze sind nicht verknüpft.  Ja - die Tabelle muss auch in die Formel rein. Die Frage ist hier - welchen Wert der Tabelle 'Tabelle WERTE' soll mit dem neuen Datensatz der Untertabelle verknüpft werden

    • juwelen
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hallo Leo,

    es müssen ca. 10 Formelfelder in der Untertabelle aus der 'Tabelle Werte'  befüllt werden.

    Einfachhalber würde ich die Formelfelder 'Formel 1', 'Formel 2' etc. benennen. Ich kann das in meiner Datenbank dann anpassen. Was mir fehlt ist der korrekte Aufbau der Formel. Könntest du mir diesen nennen? Habe schon sämtliche Varianten probiert und komme leider nicht weiter. Lieben Dank vorab.

    • Leonid_Semik.2
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hallo Antje,
    Die Formelfelder werden einmal mit der Formel ausgestattet. Nehmen wir deine Formel:
     

    'Tabelle WERTE'. 'aktueller Wert'
    

    Das heißt: der Datensatz der Tabelle Untertabelle ist verknüpf mit einem Datensatz der Tabelle 'Tabelle Werte'. Beim Erstellen vom Datensatz in der Untertabelle wird korrekterweise der Datensatz der Haupttabelle zugeordnet:
     

    let my := this;
    let new := (create Untertabelle);
    new.(Haupttabelle := my);
    new.('Feld IST 1' := my.'Feld SOLL 1');
    new.('Feld IST 2' := my.'Feld SOLL 2');
    

    Jetzt fehlt mir die Zuordnung zum Datensatz der Tabelle 'Tabelle WERTE'. z.B. so:

    et my := this;
    let new := (create Untertabelle);
    new.(Haupttabelle := my);
    new.('Feld IST 1' := my.'Feld SOLL 1');
    new.('Feld IST 2' := my.'Feld SOLL 2');
    new.('Tabelle WERTE'):=first(select 'Tabelle WERTE')
    

    Hier wird der erste Datensatz der Tabelle 'Tabelle Werte' mit dem neuen Datensatz verknüpft. Das Formelfeld zeigt dann den Wert des Feldes 'aktueller Wert' von dem verknüpften Datensatz. Wenn du aber nicht den ersten Datensatz verknüpfen möchtest, musst du zuerst diesen Datensatz definieren. 

    • juwelen
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hallo Leo,

    genau das ist es. Funktioniert einwandfrei 🙂

    Vielen lieben Dank und noch einen schönen Abend

    Antje

Content aside

  • vor 1 JahrZuletzt aktiv
  • 6Antworten
  • 84Ansichten
  • 2 Folge bereits