1

Selbstlernende Kategorien/Tags

Alle meine Versuche, eine Datenbank mit drei Tabellen für 
Kontobuchungen mit selbstlernenden Kategorien/Tags 
zu erstellen, schlugen bei mir leider fehl.

Kann mir bitte jemand bei einer Lösung helfen...
Meine Muster-Datei/Ninox-Archiv habe ich bei Dropbox hochgeladen
https://www.dropbox.com/s/oru1o5su220v2v1/Tags_03.ninox?dl=0

14 Antworten

null
    • mirko3
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hi KaTe. Ich würde hier ein dynamisches Auswahlfeld, oder ein dynamisches Mehrfachauswahlfeld auf der Basis deiner Tags-Tabelle benutzen. Da viele Wege nach Rom führen, ist das hier nur einer. Beispiel anbei. Mirko

    • KaTe
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Danke Mirko für deinen Tipp.

    Mit dynamischem Auswahlfeld habe ich schon herum probiert. 
    Ich wollte das aber mit meiner Konstruktion mit drei Tabellen lösen,
    da ich so viele 'Tags' habe und pro Kontobuchung nur eine Kategorie/Tag zutrifft.

    Es sollten dann nur noch ein bis vier Werte dargestellt werden, aus denen ich auswählen kann.  Dieser Wert soll dann in der Tabelle 'Konto' in das Feld 'Tags' übernommen werden, um später den Wert auch wieder ändern zu können.

    Aktuell klappt es schon, wenn Daten verknüpft sind. Es hakt aber noch bei neuen Datensätzen. Der Button Neu löst einen neuen Datensatz in der Tabelle 'Verknüpfung' aus, 

    Es fehlt aber noch die Übergabe des Wertes 'Empfänger' im Feld 'Wer' der Tabelle 'Verknüpfung'.  

    Hier meine Formel (Button Neu):
    let p := (create 'Verknüpfung');
    popupRecord(p)

    Nach Auswahl des 'Tags' und über einen Trigger im Feld 'Suche_Tags' weise ich dann den Wert der Tabelle 'Tags' zu.

    Der Button Neu braucht jetzt vermutlich nur noch eine Programm-Zeile.

    • mirko3
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Dann vielleicht so.

    let wer := 'Empfänger';
    let p := (create 'Verknüpfung').(Wer := wer);
    popupRecord(p)
    
    • KaTe
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Danke für die schnelle Hilfe.
    Werde das morgen mal testen...

    • KaTe
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hallo Mirko, 
    der Befehl legt jetzt einen neuen Datensatz im Formular 'Verknüpfung' an.
    Das Feld 'Wer' enthält den Wert vom 'Empfänger'.
    Der Wechsel zum Formular mit popupRecord(p) funktioniert
    bei meiner mac-Version von Ninox leider nicht.

    • KaTe
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Funktioniert das bei dir?

    Mein Versuch...
    let wer := 'Empfänger';
    let p := (create 'Verknüpfung').(Wer := wer);
    popupRecord(record('Verknüpfung',number(p)));
    openTable("Verknüpfung");
    popupRecord(p)

    funktioniert leider auch nicht wie gewünscht ;-(

    • Ninox-Professional
    • planoxpro
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Moin, das create und die Wertzuweisung sollte man trennen. Außerdem sollten die Namen von Variablen möglichst aus mindestens zwei Zeichen bestehen (auch wenn das hier wohl nicht ursächlich war). Ich würd's mal so versuchen:  

    let me := this;
    let newV := (create 'Verknüpfung');
    newV.(Wer := me.'Empfänger');
    popupRecord(newV)

    Das müsste eigentlich auch in der Mac-App funktionieren.

    • KaTe
    • vor 1 Jahr
    • Gemeldet - anzeigen

    So funktioniert es.

    Vielen Dank an für die Hilfe  ;-)

    Hat jemand noch einen Tip, um den ersten Wert eines  
    dynamisches Auswahlfeldes mit einem Button oder Trigger zu aktivieren?

    record('Verknüpfung', number(Auswahl)).Tags???

      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

      KaTe 

      Welcher Eintrag des dynamischen Auswahlfeldes der erste ist, hängt ja von der Sortierung ab. Man müsste daher über ein select mit denselben Filter- und Sortier-Kriterien wie im dynAF die Nummer des ersten Datensatzes ermitteln und zuweisen. Wenn im DynAF unter "Dynamic values" also bspw. "(select TABELLE) order by FELD" angegeben wurde, wäre der Code zur Auswahl des ersten Eintrags wie folgt:

      let myRec := first((select TABELLE) order by FELD);
      DYNAF := number(myRec)
      
    • KaTe
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Die Sortierung ist bei mir aktuell nicht wichtig. 
    Mit folgendem Befehl hat es funktioniert...

    let ABC := 'Empfänger';
    let myRec := first((select 'Verknüpfung')[Wer = ABC]);
    Auswahl := number(myRec)

    Vielen Dank an euch alle, 
    KaTe

    Ich habe noch ein paar Änderungen vorgenommen.
    Als Anhang hier das fertige Ergebnis...

    • KaTe
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Tolle Arbeit

      • Rafael_Sanchis
      • vor 1 Jahr
      • Gemeldet - anzeigen

      KaTe 

      Hi KaTe sorry for intruding here. In the selection there are three labels but in the Tag1 field only show 1, 

    • KaTe
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Das ist so gewollt, da pro Konto-Eintrag nur eine Kategorie (Tags) erlaubt ist.
    Pro Konto-Empfänger aber auch mehrere möglich sind.
    Hier ein Beispiel:
    Im Supermarkt kann ich Lebensmittel, Körperpflege, Kleidung,
    Zeitschriften und Gartenartikel kaufen.
    Dann muss die Buchung aber aufgeteilt (gesplittet) werden.

      • Rafael_Sanchis
      • vor 1 Jahr
      • Gemeldet - anzeigen

      KaTe OK thanks 👍

Content aside

  • Status Answered
  • 1 „Gefällt mir“ Klicks
  • vor 1 JahrZuletzt aktiv
  • 14Antworten
  • 144Ansichten
  • 5 Folge bereits