0

Daten in eine weitere Tabelle mittels Schaltflächen übergeben.

Hallo zusammen,

noch bin ich dabei mich in Ninox zurecht zu finden - klappt ganz gut, aber nun komme ich selbst mit der Suche im Forum an meine Grenzen.

Ich habe mir eine Datenbank erstellt, welche sich in mehrere Bereiche gliedert. 

Bereich 1

Bereich 2

Bereich 3

 

Jeder Bereich stellt ein Tätigkeitsfeld dar. In jeder Tabelle der Bereich befindet sich eine Registerkarte "Buchhaltung" in der verschiedene Parameter (Tagessatz, Reisekosten oder Pauschalbetrag) erfasst werden.

Ferner ist in jedem Bereich eine Verknüpfung zu Adressdaten und Ansprechpartner.

 

Nun sollen aus den Registerkarten mittels Schaltflächen die relevanten Daten zur Rechnungserstellung in eine weitere Tabelle "Rechnungen" übergeben werden.

Wie gehe ich hier am besten vor? Wie können die Daten (mit Bezügen zu den Adressdaten) übergeben werden?

Ich danke schon im Voraus vielen Dank für jede Denkrichtung.

 

Dank und Gruß

Björn

5 Antworten

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

    Hallo Björn, grundsätzlich kann mann mit create() einen neuen, leeren Datensatz erstellen und diesen anhand der ID mit Daten befüllen. In folgendem Beispiel würde ein neuer Datensatz in der Tabelle 'Rechnungen' erstellt, das Feld 'RechDatum' mit dem heutigen Datum und das Feld 'Betrag' mit dem Wert aus 'Tagessatz' befüllt. Zuletzt würde der neue Datensatz zur weiteren Bearbeitung geöffnet:

     

    let me := this;
    let newRg := create Rechungen;
    newRg.(RechDatum := today());
    newRg.(Betrag := me.Tagessatz);
    openRecord(newRg)

     

    Das ist aber nur ein allgemeines Schema. In der Praxis stellen sich noch viele Fragen. Zum Beispiel: Wie wird die Rechnungsnummer erstellt? Wo kommen die Adressdaten her? Welche Daten sollen aus den Bereichen in die neue Rechnung übernommen werden? Besteht die Rechnung aus einzelnen Positionen oder wie erfolgt die Preisberechnung?

     

    Nebenbei: Die Adressdaten des Rechnungsempfängers sollten unbedingt fest in der Rechnung gespeichert werden, nicht als Verknüpfung zur Kundentabelle o.ä. Sonst ändert sich bei einem Umzug des Kunden im Nachhinein plötzlich die Rechnung.

    • Bjorn_Burk
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Super vielen Dank - damit kann ich arbeiten und komme einige Schritte weiter.

    Ich werde jetzt probieren, die ID des Rechnungsempfängers mit zu übergeben und diese dann als statischen Text beim erstellen in den Datensatz der Rechnung zu schreiben. - ein neues Lernfeld ;-)

    • Bjorn_Burk
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Jetzt komme ich doch noch einmal um die Ecke. Ich wollte den Hinweis mit den Firmendaten beherzigen und hatte die Idee die ID des Firmendatensatzes zumübergeben (was ich auch gut hinbekomme), der Weg von der ID zu einem statischen Text aus der Tabelle Firma bekommeich aber nicht gebacken.

    Bzw. Was wäre hier evtl. Dein Ansatz die Daten statisch in den Rechnungen zu halten, ohne die Firma erneut einzugeben?

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

    Also, erneut eingeben sollst du die Daten auf keinen Fall. ;) Grundsätzlich brauchst du in der Rechnungs-Tabelle halt eigene Datenfelder für den Rechnungsempfänger und dessen Anschrift. Das sind in der Regel die gleichen Felder wie in den Kunden-Stammdaten: Firma, Straße, PLZ, Ort etc.  Die muss es auch in der Rechnungstabelle geben.

    Woher genau die Daten dann kommen, hängt natürlich vom jeweiligen Datenmodell ab. Da ich deines nicht kenne, muss ich hier auch im Allgemeinen bleiben. In der Regel ist die Rechnungs-Tabelle aber mit einer Kunden-Tabelle verknüpft, in der sich die Stammdaten wie Name, Adresse usw. befinden. Das heißt, man legt eine Rechnung an und verknüpft sie mit dem betreffenden Kunden. Jetzt kann man über die Verknüpfung auf die Daten des Kunden zugreifen. Um sie fest in der Rechnung zu speichern, muss man die Werte der einzelnen Felder auslesen und in entsprechende Datenfelder der Rechnung übertragen. Angenommen, das Verknüpfungsfeld zur Tabelle 'Kunden' heißt auch 'Kunden':

    Firma := Kunden.Firma
    Strasse := Kunden.Strasse
    PLZ := Kunden.PLZ
    usw.

    Man braucht also für jeden Wert, dass man übernehmen will, auch ein eigenes Datenfeld in der Rechnungstabelle. Wenn die ID des Kunden schon beim Anlegen der Rechnung feststeht, kann man die benötigten Stammdaten gleich beim "create" übernehmen (siehe erster Kommentar). Wird der Kunde erst im Rechnungsformular ausgewählt, dann geht es auch mit einem Trigger "Nach Änderung" im Verknüpfungsfeld. Genauer kann ich leider nicht angeben, weil ich wie gesagt die betreffenden Tabellen, Felder und Abläufe nicht kenne.

    Normalerweise soll man mehrfach gespeicherte Daten vermeiden und statt dessen Verknüpfungen nutzen. Aber bei Dokumenten wie Rechungen ist es etwas anderes, weil deren Inhalte zu einem bestimmten Datum festgeschrieben werden. Der betreffende Datensatz muss also auch in fünf Jahren noch exakt denselben Inhalt haben wie die seinerzeit gedruckte Rechnung. Das wäre nur über Verknüpfungen nicht gewährleistet, weil sich die verknüpften Daten ja ändern können (z. B. durch Umzug oder Umbenennung der Firma des Kunden).

    • Bjorn_Burk
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke!

    Ich hatte zwar den richigen Ansatz aufgrund des Inputs, wenn man aber praktisch alles auf links dreht, kann das nichts werden...

    Vielen Dank für die Unterstützung und Geduld!