0

Anzeige Verknüpfung in einem Datensatz

Hallo, ich möchte gern in einem Datensatz z.B. bei Kunden eine Verknüpfung als Ansicht anzeigen, wo nur Aufträge etc. nur diese Kunden angezeigt werden. Habe im Handbuch nichts gefunden.

16 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo, es gibt ein Gestaltungslement namens "Ansicht", mit welchem sich Daten aus externen Tabellen anzeigen lassen, aber ohne die Lupe und das Plus-Zeichen. Welche Daten dort angezeigt werden sollen, gibt man in den Optionen unter "Funktion" an. Bei verknüpften Tabellen genügt es, das betreffende Verknüpfungsfeld anzugeben, bei nicht-verknüpften nutzt man den "select"-Befehl und filtert die Daten entsprechend.

    • Rene
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke. Dies hatte ich bereits vor meiner Frage gemacht select .... . Es werden hier aber alle Daten angezeigt. Bei der Musterdatenbank "Warenwirtschaft" sieht man beim Kunden im Formular eine Tabelle, wo nur Bestellung dieses Kunden aufgeführt sind und nicht alle Bestellungen. Diese Selektion meine ich bezugnehmend auf den einzelnen Kunden.

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Das, was man in der DB-Vorlage "Warenwirtschaft" im Kundenformular unter dem label "Rechnungen" sieht, ist eine ganz normale 1:N-Verknüpfung. Eine solche "Tabelle" (bzw. mehrzeiliges Verknüpfungsfeld) wird automatisch erstellt, sobald man eine Verknüpfung vornimmt. Und sie zeigt auch automatisch nur die Datensätze an, die mit diesem Kunden verknüpft sind.

    Ich interpretiere deine Worte deshalb so, dass du noch gar keine Verknüpfung hast, sondern eine solche erst erstellen willst. Ist das richtig? Falls ja: 

    Öffne einen Datensatz der Tabelle 'Kunden' (oder wie immer sie bei dir heißt), aktiviere den Adminin-Modus (Schraubenschlüssel rechts oben) und klicke unten in der Werkzeugleiste auf "Rückverknüpfung". Aus der erscheinenden Übersicht wählst du dann die zu verknüpfende Tabelle aus, zum Beispiel 'Aufträge' (oder wie immer sie bei dir heißt), und zack - haste so eine Verknüpfungstabelle im Kundenformular (und in der Gegen-Tabelle 'Aufträge' ein einzeiliges Verknüpfungsfeld zum Kunden).

    Man kann dieselbe Verknüpfung auch von der Tabelle 'Auträge' aus erstellen. Nur, dass man dort nicht auf "Rückverknüpfung", sondern auf "Verknüpfung" klickt. Das Ergebnis ist dasselbe wie beim oben beschriebenen Weg. Ninox erstellt immer automatisch in beiden Tabellen die entsprechenden Verknüpfungsfelder. 

    Das Thema "Tabellen verknüpfen" ist auch im Handbuch vertreten:
    https://ninoxdb.de/de/manual/tabellen-und-beziehungen/tabellen-verknuepfen

     

    Aber vielleicht reden wir ja immer noch aneinander vorbei und du meinst noch ganz was anderes?

    • Rene
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ja ich glaube es geht aneinander vorbei oder ich habe es zu kompliziert gemacht. Hier einfach mal meine Idee:

    Es besteht eine Tabelle Kunde, eine Tabelle Kundenanfrage (mit Angebotsdaten etc. zum Kalkulieren und Angebot erstellen) und eine Tabelle Kundenaufträge. Beim Kunden soll im Formular eine Ansicht mit den verknüpften Afragen (mit Status gewonnen und verloren etc.) angezeigt werden und eine Ansicht mit der Darstellung der Aufträge/Rechnungen.

     

    Vielleicht ist es zu verschachtelt. In der Tabelle Kundenaufträge wird im Wesentlichen Bezug genommen auf die Tabelle Kundenanfrage. Es wird eine neue Auftrags-/Rechnunbgsnummer erzeugt. Durch die Verknüpfung nach der bestehenden Angebotsnummer werden alle Daten aus dem Angebot übernommen in Aufträge/Rechnungen, hier auch der Bezug aus der Angebotstabelle zu Kunden - Firma/Name. Vielleicht ist hier durch die Verknüfung aus Angebote zu Firma/Name das Problem, da diese Daten in Aufträge/Rechnungen übernommen werden und somit eine reine Darstellung in dem Kunden nicht möglich ist.

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ja gut, aber sind die Tabellen nun schon miteinander verknüpft oder nicht? Weil: Wenn sie verknüpft wären, dann müssten im Formular der Tabelle 'Kunden' auch automatisch die Verknüpfungstabellen zu 'Anfragen' und 'Rechnungen' sichtbar sein. So, wie in der Vorlage "Warenwirtschaft" die Rechnungen.

     

    Am besten, du zeigst mal einen Screenshot deines Datenmodells. Sonst tappe ich weiter im Dunkeln.

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Habe eben doch noch ein bisschen gerätselt, und dabei ist als mögliches Szenario folgendes Bild vor meinem geistigen Auge entstanden:

    Tabelle 'Kunden' ist mit 'Kundenanfrage' verknüpft.

    Tabelle 'Kundenanfrage' ist mit 'Kundenaufträge' verknüpft.

    Tabelle 'Kundenaufträge' ist NICHT mit Tabelle 'Kunden' verknüpft.

    In Tabelle 'Kunden' sollen 'Kundenaufträge' des jeweiligen Kunden angezeigt werden.

    Sollte dem so sein, so könnte man im Formular der Tabelle 'Kunden' ein Gestaltungslement "Ansicht" platzieren und dort bei "Funktion" folgende Angabe machen:

    Kundenanfrage.'Kundenaufträge'

    Damit würden alle Aufträge des Kunden angezeigt, die indirekt über eine Anfrage mit diesem Kunden verbunden sind.

    Davon abgesehen kann man unabhängig von Verknüpfungen auch über den "select"-Befehl Daten anderer Tabellen anzeigen lassen. Dazu bedarf es allerdings eines gemeinsamen, eindeutigen Datenfeldes, z. B. der KundenNr. Wenn die als Feld sowohl in der Tabelle 'Kunden' als auch in der Tabelle 'Kundenaufträge' existiert, dann könnte man in der Ansicht folgendes angeben:

    let myKundenNr := this.KundenNr;
    select 'Kundenaufträge' where KdNr = myKundenNr

    Damit würden nun alle Aufträge angezeigt, deren KundenNr mit der des aktuellen Kunden übereinstimmt. Was im Ergebnis dasselbe sein kann wie bei der verknüpften Variante, aber nicht zwingend dasselbe sein muss.

    Kommen wir der Sache näher? Wenigstens ein bisschen?

    • Rene
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Vielen Dank. Ich habe es hinbekommen und die Logik der Verknüpfung verstanden. Wenn ich bei einer Tabelle eine Ansicht verknüpfe wird eine Tabelle als Ansicht erzeugt und bei der verknüpften Tabelle wird ein Suchfenster aufgebaut, was in diesem Formular dann bleiben und befüllt werden muss.

    • Rene
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Noch eine Frage dazu: Durch das Probieren Ansichten in Tabellen und deren Verknüpfungen baut Ninox ja vorn immer eine laufende Nummer (steigend) auf. Wie kann ich diesen Zähler zurücksetzen, da ich bei Fertigstellung meiner DB ja alles löschen möchte und mit der Nutzung beginnen will. Danke. Viele Grüße René

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    'n Abend, freut mich, dass es gekkappt hat. Zur laufenden Nummer: Diese Datensatznummer (Nr) wird von Ninox automatisch vergeben und dient ausschließlich der internen Zuordnung. Sie wird zwar als Voreinstellung in der Tabellenansicht mit angezeigt, hat aber keinen sachlichen Bezug zum Inhalt des jeweiligen Datensatzes. Von daher spielt es praktisch überhaupt keine Rolle, ob ein Datensatz die Nummer 1, die Nummer 244 oder auch 3188 hat.

    Wenn man die Nummerierung aber dennoch zurücksetzen und keine Daten übernehmen will, kann man die betreffende Tabelle einfach duplizieren (Zahnrad -> "Felder bearbeiten ..." -> Button unten links). So wird eine Kopie dieser Tabelle mit allen Feldern, aber ohne Datensätze angelegt. Hier beginnt die Zählung dann wieder bei Null.

    • Rene
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo und Guten Morgen !

    Ich habe deine erste Variante auch mal getestet, wo nur Kunde mit Kundenanfrage und Kundenanfrage mit Kundenauftrag verknüpft ist, aber nicht Kundenauftrag mit Kunde. Hat auch funktioniert mit Funktion: Kundenanfrage.'Kundenaufträge'

     

    Danke.

     

    Nochmal eine Frage zu Verknüfungen: Ist bei einer Verknüpfung immer ein Suchfeld (bei der iniziierten Tabelle) und auf der Gegenseite eine Ansichtstabelle erforderlich ? Kann man bei der Gegenseite, wenn man die Tabelle nicht benötigt diese auch ausblenden lassen bzw. geht eine Verknüpfung auch nur zweischen Feldern ? Viele Grüße René

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Moin. Verknüpft werden immer Tabellen, und da es sich in der Regel um 1:N-Verbindungen handelt, hat man automatisch in der einen Tabelle ein einzeiliges Verknüpfungsfeld, in der anderen ein mehrzeiliges. Man kann aber bei beiden wählen, welche Informationen man darin sehen will, wenn einem die Standard-Anzeige von Ninox nicht gefällt.

     

    Beim einzeiligen Verknüpfungsfeld gibt es in den Optionen den Punkt "Anzeigen als". Dort kann man sich mit einer einfachen Formel die gewünschte Anzeige zusammenstellen. Nehmen wir als Beispiel die Verknüpfung im Formular 'Kundenanfrage' zum jeweiligen Kunden. Dort steht als Standard vielleicht die KundenNr plus Name, bspw. "K123 Meier". Wenn man mehrere Kunden namens "Meier" hat, möchte man zur Unterscheidung vielleicht auch noch den Ort anzeigen. Dann trägt man wie gesagt bei "Anzeigen als" folgendes ein:

     

    KundenNr + " " + Name + ", " + Ort

     

    Die Anzeige im Verknüpfungsfeld wäre dann: "K123 Meier, Hintertupfingen".

     

    Bei den Tabellenansichten der mehrzeiligen Verknüpfungsfeldern ist es im Grunde noch simpler. Dort kann man einfach auf einen Spaltentitel klicken und über die erscheinenden Buttons einzelne Spalten (= Felder) ein- und ausblenden, sortieren usw. Man sollte das aber im Admin-Modus machen (Schraubenschlüssel rechts oben), sonst werden die Änderungen nicht dauerhaft gespeichert.

     

    Und ja, man kann ein- und mehrzeilige Verknüpfungsfelder auch komplett ausblenden, wenn man sie nicht sehen muss und will. Das geht, wie bei allen anderen Datenfeldern und Gerstaltungselementen auch, über den Punkt "Feld nur anzeigen, wenn" in den erweiterten Feld-Optionen. Dort kann man eine Bedingung eintragen oder, wenn man das Feld bedingungslos ausblenden will, einfach nur "false". Will man es irgendwann doch wieder anzeigen oder sonstige Änderungen in den Optionen vornehmen, dann muss man es über die Feldliste unter "Felder bearbeiten" aufrufen, da es im Formular ja nicht mehr zu sehen ist, also auch nicht direkt aktiviert werden kann.

    • Rene
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke für die Info. Einen Teil davon hatte ich schon vorher so gemacht und umgesetzt, aber einige Infoss sind echt neu und hilfreich gewesen. Noch eine Frage: Wozu nutzt man Untertabellen ? Um feinere Details und Infos zur Hauttabelle zu nutzen ?

    Kann man für eine Untertabelle auch grundlegende Vorgaben bzw. das Aussehen einer Haupttabelle nutzen (also duplizieren) ? Kann eine Haupttabelle im Nachgang auch in eine Untertabelle umgewandelt / als Nutzung zugeführt werden ?

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ich zitiere mal das Handbuch (vielleicht doch mal reinschauen? https://ninoxdb.de/de/manual/tabellen-und-beziehungen/tabellen-verknuepfen):

    "Neben den normalen Tabellen kennt Ninox auch sogenannte Untertabellen. Diese unterscheiden sich von den normalen Exemplaren dadurch, dass Ninox bei ihrer Erzeugung die notwendigen Verknüpfungen automatisch einrichtet."

    Außerdem ist die Verknüpfung/Abhängigkeit noch enger. Wird in der Haupttabelle ein Datensatz (z. B. Auftrag) gelöscht, werden ggf. auch automatisch alle verbundenen Datensätze der Untertabelle (z. B. Auftragspositionen) des betreffenden Kunden gelöscht. Das ist bei normalen, verknüpften Tabellen nicht so. Man muss also genau schauen, wofür man Untertabellen einsetzt.

    Ja, verknüpfte Tabellen lassen sich auch nachträglich zu Untertabellen machen (und umgekehrt). Dazu öffnet man die Tabelle (z. B. Auftragspositionen), die Untertabelle der N:1 verknüpften Tabelle (z. B. Aufträge) werden soll und stellt in den Feldoptionen "Komposition" auf "Ja" (bzw. auf "Nein", um es rückgängig zu machen). Eigenschaften der Haupttabelle werden dabei nicht übernommen, von den oben beschriebenen Unterschieden abgesehen entspricht die Handhabung von Untertabellen der von "normalen" Tabellen.

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ups, im dritten Absatz muss es natürlich heißen:

     

    "[...] werden ggf. auch automatisch alle verbundenen Datensätze der Untertabelle (z. B. Auftragspositionen) des betreffenden AUFTRAGS gelöscht."

    • Rene
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Vielen Dank erstmal für die schnellen Infos. Ich habe das Feld Feldoptionen "Kompositionen " bei Online Ninox (im Internet) nicht gefunden. Ich schaue heute mal local auf dem Rechner, da ich diese Variante hauptsächlich nutze undd derzeit online noch den Testzugang habe.

     

    Ich habe aber noch folgende Fragen: Kann man auch nur einzelne Dateien für Mitarbeiter z.B. bei der Teamverwaltung freischalten ? Kann man Tabellen auch unter zwei Datenbanken verknüpfen ? Kann man z.B. Rechnung mit Inhalt 2019 gesondert archivieren ? Haben Sie auch schon die DB Buchhaltung genutzt bzw. weiterentwickelt ?

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Du findest das Thema Untertabellen und den Begriff "Komposition" unter der oben angegebenen URL (Abschnitte "Untertabellen" und "Beziehungstypen"):

    https://ninoxdb.de/de/manual/tabellen-und-beziehungen/tabellen-verknuepfen

     

    Nx_Untertabelle_Komposition1

     

    Zu den anderen Fragen: Ja. Nein. Kommt drauf an. Nicht wirklich.

Content aside

  • vor 4 JahrenZuletzt aktiv
  • 16Antworten
  • 5362Ansichten