0

Verknüpfte Tabellen

Hallo,

wie muss ich denn bei der N:M Beziehung in dem Beispiel die Tabelle Mitarbeiter mit Datenfeldern bestücken? Ich kann ja einem Datenfeld nicht zwei andere Tabellen zuordnen.

236 Antworten

null
    • Alexander_Koenig
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo, wenn Sie die Tabelle drucken möchten geht das mit Hilfe von Ansichten.
    In der Ansicht können Sie nach dem Zeitraum filtern.

    Vergleichende Filter unterstützt Ninox an dieser Stelle noch nicht, über einen kleinen Umweg ist aber auch dies möglich: Ändern Sie die Spalte mit der Funktion “Spalten einblenden…” aus dem Ansichtsmenü. Setzen Sie die Formel auf
    formatieren(Datum, YYYY-MM-DD)
    Dann können Sie mit Vergleichen wie
    >=”2015-03-01″ and <=”2015-03-31″
    arbeiten.
    • ddraht
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Vielen Dank für die schnelle Hilfe;)

    dass hat schon mal geklappt.
    Hier fehlt mir ein Handbuch mit Beschreibung der Syntaxen mit Beispielen...

    besten Gruß
    Dieter
    • Alexander_Koenig
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo, Wir nehmen den Hinweis gerne auf.
    Die Ninox Sprachbefehle werden hier aufgezeigt: http://manual.ninoxdb.de/de/funktion-und-sprache/
    Dort ist auch eine Beispieldatenbank zum download, die unterschiedliche Anwendungen verdeutlicht.
    VG, Alex
    • zemann
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Leute,
    Hab da ein Problem, mit dem ich mich schon lange herumschlage. Ich kapier es einfach nicht.
    Wie schaffe ich es, dass ich aus einer Tabelle mit 4 Spalten: Fahrzeugnummer,Datum, Anfangszeit und Endzeit eine Neue Tabelle2 anlegen kann, welche mir nur eine Fahrzeugnummer, Datum,Anfangszeit, Endzeit und Dauer angibt. Insgesamt habe ich 7 Fahrzeugnummern.
    Es soll die Auslastung berechnet werden. Gruß Ulf
    • Leonid_Semik
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Ulf,

    Normalerweise legst du neuen Ansicht an (+ oben rechts in der Zeile, wo (Alle) steht). Dann gehst du auf Spalte "Fahrzeugnummer" und legst Die Nummer als Filter an. Dann fügst du noch eine Spalte " Funktion" an, benennst diese in "Dauer" um und schreibst darin die Formel :
    If Endzeit=null then Anfangzeit-Anfangzeit else Endzeit-Anfangzet

    Ohne diese Formel wir dir bei Fahrzeugen, die noch nicht zurück sind eine negative Zahl rein geschrieben.
    Da wir aber mit der datenbankarbeiten und in der Spalte "Fahrzeugnummer" die Werte sich wiederholen, werde ich die Tabelle normalisieren und daraus zwei Tabellen machen: Fahrzeuge und Zeiterfassung.
    Ich habe dir eine einfache Vorlage gebastelt mit Erfassung für 3 Fahrzeuge. Dort kannst du pro Fahrzeug eine neue Zeit mit + erfassen und Dauer wird noch nach Datum gruppiert.
    https://www.dropbox.com/s/fbyk8xwyse7su8o/Fahrzeuge.ninox?dl=0

    Ich hoffe, ich habe dein Anliegen richtig verstanden

    Gruß
    Leo
    • Frank_Schafer
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo,

    ich habe eine Tabelle "Adressen" mit einer Untertabelle "Spenden". Die Senden-Tabelle hat die Felder "Datum", "Betrag" und "Gedruckt" (Auswahlfeld Leer/Ja/Nein). In der Adress-Tabelle habe ich ein Feld "Summe Spenden" dass die Summe des Feldes "Betrag" der Spenden-Tabelle anzeigen soll. Soweit funktioniert das gut.

    Jetzt möchte ich aber diese Summe auf die Datensätze einschränken, die in dem Feld "Gedruckt" = Nein sind. Wie mache ich das?

    Ebenso möchte ich in einem Ausdruck der Adresse eine Liste aufführen, die nur Datensätze anzeigt, die das Feld "Gedruckt" = Nein haben, dabei soll das Feld aber nicht gedruckt werden. Wie stelle ich diesen Filter ein?
    • Alexander_Koenig
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Frank,
    Filtern sie in der Druckansicht. Klicken sie auf die Tabelle. Klicken sie auf “Anzuzeigende Spalten festlegen”.
    Wählen Sie das "Gedruckt" Feld aus und nehmen "Nein" als Filter.

    Zur Berechnung der Summe der "nicht Gedruckten":
    Das geht mit einem Filter in der Ninox Sprache:
    sum(Spenden[Gedruckt = 0].Betrag)
    Die 0 steht für Nein.
    VG, Alex
    • zemann
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Ja, vielen Dank. Ist ja prima und hilft mir sehr weiter.
    Nun das nächste Problem.
    Anfangszeit ist 23:00 Endzeit 00:34
    Man erhält einen negativen Wert. Wird aber 01:34 gearbeitet ( Nachtschicht)
    Die Auswertung ist für den Rettungsdienst, wir arbeiten im 2 Schichtsysrem mit jeweils 12 Stunden. (7:00 bis 19:00 und 19:00 bis 7:00)
    Dies nur zur Erklärung.
    • Leonid_Semik
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Ulf,

    Die Felder "Anfang" und "Ende" sind als Uhrzeit angelegt. Wenn du diese stattdessen als "Datum + Uhrzeit" anlegst, rechnet Ninox die Differenz auch nach Mitternacht korrekt. Das Feld Datum brauchst du dann nicht.
    In der Ansicht kannst du dann ein Feld Datum anlegen mit Formel:

    if format(Anfang, "DD.MM.YY") = format(Ende, "DD.MM.YY") then
    format(Anfang, "DD.MM.YY")
    else
    format(Anfang, "DD.MM.YY") + "/" + format(Ende, "DD.MM.YY")

    Und Die Felder "Anfang" und "Ende" umformatieren

    format(Anfang, "HH:mm")

    format(Ende, "HH:mm")

    So kriegst du wieder Spalten mit Datum und Uhrzeit, wobei bei Mitternacht Einsatz zwei Datums erscheinen.

    Gruß Leo
    • zemann
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Doch,
    Du hast mir sehr geholfen. Danke.

    Bist du in der Nähe von Bargteheide?
    • Leonid_Semik
    • vor 8 Jahren
    • Gemeldet - anzeigen
    354 km.
    Da hier keine Benachrichtigungsfunktion gibt, ist es schwer die Kommunikation zu führen. Die Seite ist als Support von Entwickler an Anwender und nicht als Forum zwischen Anwender gedacht. Ich würde dir gerne bei deinem Projekt weiter helfen. Solange wir kein Forum haben schreib mir an leo.semik@gmail.com.

    Gruß Leo
    • Frank_Schafer
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Alex,

    vielen Dank für diese Info. Die gefilterte Summierung funktioniert schon mal. :)

    Zur Filterung der Druckansicht: Geht das auch ohne die Spalte "Gedruckt" in die Ansicht zu übernehmen? Die hat da nämlich eigentlich nichts zu suchen... ;) Ich kann mir bisher eigentlich nur damit behelfen, diese Spalte einzublenden und dann die Weite auf 1 zu setzen. Je nach Rahmen-Art bleibt dann aber eine kleine umrahmte Spalte
    • Alexander_Koenig
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Frank,

    über einen workaround könnte man das erreichen.

    Man fügt ein Formel Feld ein "zu zahlen":

    if Gedruckt = 1 then
    0
    else
    Betrag


    Dieses Feld wird gedruckt. Im Filter der Druckansicht dann dieses Feld nach >0 filtern.
    VG, Alex
    • weisewol
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Miteinander,
    als Neueinsteiger eine vielleicht simple Frage zum Datenmodel. Ich möchte gern die Kunden jeweils einer Firma zuordnen (Beispiel: Kunde Meier ist Kunde der Fa. X, Kunde Müller ist Kunde der Fa. Y.)
    Wie kann ich bei einer Neuanlage eines Kunden ein Auswahlfeld zur Festung der Fa. X oder Y einfügen ?
    Danke für jeden Tipp !
    • Frank_Bohmer
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo weisewol,
    dazu müssen zuerst die zwei Tabellen Kunde und Firma angelegt werden. Im Datenmodell der Tabelle Kunde kann man dann (unten rechts) auf "Mit einer Tabelle verknüpfen" klicken. Wenn man nun die Firma in die Liste der Felder zieht, hat das zwei Effekte:
    1. Es entsteht im Kunden ein Feld zur Auswahl der Firma.
    2. In der Firma entsteht eine Untertabelle mit allen zugeordneten Kunden.
    Viele Grüße, Frank
    • Claus.3
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo, ich möchte eine DB erstellen wo ich einen Strukturvertrieb abbilden kann.
    Ergebnis soll sein, dass, wenn ich bei einem Geschäftspartner (GP) ein Umsatzvolumen eingebe dies zum Volumen des GPs zählt, aber auch zu seiner Upline und dessen Upline, usw.
    Bei 2 Ebenen ist das kein Problem, aber sobald ich eine 3. eingebe geht der Umsatz nicht mehr auf die 1. Ebene weiter.

    Meine DB schaut so aus:
    Tabellen: Upline, Umsatz, Geschäftspartner

    Verbindungen:
    Geschäftspartner:Umsatz = 1:n (Komp:ja)
    Upline:Umsatz = 1:n (Komp:nein)
    Upline:Geschäftspartner = 1:n (Komp:nein)

    habt ihr eine zündende Idee dazu?

    Danke.
    • Leonid_Semik
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Claus,
    deiner Logik nach gibt es nur eine Ebene Upline-GP. Die Uplines sind eigentlich auch Geshäftspartner oder? Ich würde einfach die Tabelle GP mit sich selbst verknüpfen. Dann hast du bei jedem GP einen GP als Übergeordnet und eine Reihe von Uplines-GP einzutragen. So hast du die Möglichkeit einen Umsatz einzutragen und eine Summe von Uplines-Umsätzen zu berechnen.

    Hier Beispiel. https://www.dropbox.com/s/0oddx1l51ga63z1/NetzVertrieb.ninox?dl=0

    Hoffe das hilft

    Leo
    • Leonid_Semik
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Korrektur,
    habe in der Datenbank Uplines und Underlines verwechselt. Kannst aber problemlos umbenennen.

    Leo
    • Claus.3
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Leo, danke für deine Idee! - ein sehr guter Ansatz! - Da ich allerdings das Ganze monatsabgegrenzt haben will (also z.B: im Feb.16 hat die Upline mit ihren Downlines folgenden Umsatz gemacht) werde ich vermutlich noch eine Tabelle Umsatz (nach Monat) benötigen. Dabei bin ich gerade am Basteln, scheitere aber daran, dass ich immer die Summe der gesamten Umsätze, also nicht monatsrein bekomme. ... Irgendwie ist das bei mir mit den Datenbanken schon eine Weile aus :-/ ... vor ein paar Jahren hätte ich mich damit wahrscheinlich gespielt ;-)
    • Leonid_Semik
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Claus,
    Ich gucke heute Abend wie ich dir helfen kann. Eine Frage: werden die Umsätze tagesaktuell oder monatlich eingetragen?
    • Claus.3
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Super! - herzlichen Dank Leo.
    Die Umsätze werden monatlich eingetragen.
    LG Claus
    • Leonid_Semik
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Claus,
    ich komme leider hier auch nicht weiter. Habe jetzt 3 Tabellen
    Abrechnungstermine, Geschäftspartner und Umsatz.
    Geschäftspartner ist mit sich selbst verknüpft. Die Umsätze und Geschäftspartner sind mit Abrechnngstermine verknüpft.
    Mit Berechnungen klappt momentan nicht, vielleicht können die Herren von Ninox helfen?

    https://www.dropbox.com/s/pmthbg7cbaajdio/Netzmarketing1.ninox?dl=0
    Leo
    • Claus.3
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Leo, nochmals herzlichen Dank für deine Bemühungen. ... Ich werd' heute einfach weitertüfteln. ... Ja wäre toll, wenn die Jungs von Ninox hier eine Lösung parat hätten. :-)
    LG Claus
    • Leonid_Semik
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Claus,
    habe jetzt eine Idee. Die Downlines kann man in der Formel Ebene für Ebene manuell ansprechen. Schleifen wird Ninox erst ab dem Update unterstützen. Die Formel sind in der Tabelle Umsatz - Spalte "inkl. Downlines" Ich habe jetzt bis zu 10 Ebenen nach unten reingeschrieben. Wenn du mehr Ebenen hast, muss man dann die Variablen line1, line2 ...... ergänzen.
    Beim Geschäftspartner sieht man direkt nur die erste Downlines Ebene. Alle weiteren Ebenen muss man manuell als Spalten einfügen.
    Arbeitsweise: am besten zuerst einen Termin wählen, dann die Umsätze rein Schreiben. Hier die Datenbank.
    https://www.dropbox.com/s/v628qr3gzi5zis5/Netzvertrieb.ninox?dl=0

    Bei Fragen fragen :-)

    Gruß Leo
    • schocki
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Ist geplant in der Formularansicht Zeilen von verknüpften Tabellen mehrzeilig darzustellen und wenn von welchem Zeitraum bis zur Implementierung kann man ausgehen? MfG schocki