0

Datenbank so in Ordnung?

Hallo zusammen,

hab mal meine gebastelte Datenbank im link drinnen. Wenn jemand lust hat, kann er oder sie ja mal drüber schauen ob das so geht. Bin für jeden hinweis zum besser machen offen. Hab ja keine kenntnisse im programieren, aber mit euren beiträgen kommt man sehr gut voran.

https://gofile.me/4mF3s/iHNMc0SzK  (eventuell zertifikat akzeptieren, da selbst Signiert)

5 Antworten

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

    Hallo Zub, für Außenstehende ist es immer schwierig, anderer Nutzer Datenbanken zu beurteilen. Erst recht, wenn diese nicht mal Demodaten enthalten, anhand derer man bestimmte Funtkionen testen könnte. Von daher würde ich sagen: Die Datenbank ist in Ordnung, wenn sie so funktioniert, wie du willst. Wenn es dir um etwas Bestimmtes geht, dann müsstest du die Frage etwas präzisieren.

     

    PS: Mich wundert allerdings, dass die DB ohne jegliche Daten 70 MB groß ist.

    • Michi.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Gute Frage warum die so groß ist. Die wird halt mit Daten drinnen bisschen träge. Vor allem bei der Rechnungsstellung. Wenn man alles eingetragen hat. Rechnugsnummer erzeugt , pdf hinterher. Dann drückt man auf versandt . Hier kommen etliche for schleifen die den Status Regeln. Das dauert schon bisschen. Das 2. Große Mango ist der pdf druck. Oder besser der fehlende seitenumbruch. Wie kann man das lösen? Da in der kopfzeile noch das Firmenlogo und in der fußzeile der Rest steht. Noch kann ich das wenn nötig mit schieben lösen. Aber eben nur ich nicht die anderen mitarbeiter

    • Michi.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Das ist der Code in Rechnungsstellung bei änderung. 

     

    for i in (select Rechnungsstellung)[Rechnungstyp = 1 and 'in Rechnung wandeln' = false and 'erwarteter Zahlungseingang' < today()] do
    i.(Rechnungsstatus := "Angebot Versendet")
    end;
    for i in (select Rechnungsstellung)[Rechnungstyp = 1 and 'in Rechnung wandeln' = true] do
    i.(Rechnungsstatus := "Rechnung gestellt")
    end;
    for i in (select Rechnungsstellung)['Zahlungserinnerung erzeugen' = true] do
    i.(Rechnungsstatus := "Im Mahnverfahren")
    end;
    for i in (select Rechnungsstellung)['Offener Rechnungsbetrag' < 1] do
    i.(Rechnungsstatus := "Bezahlt")
    end;
    for i in (select Rechnungsstellung)['Offener Rechnungsbetrag' > 1 and 'Offener Rechnungsbetrag' < 'Brutto-Gesamt:'] do
    i.(Rechnungsstatus := "Teilzahlung")
    end;
    for i in (select Rechnungsstellung)[Rechnungstyp > 1 and 'erwarteter Zahlungseingang' > today() and 'Offener Rechnungsbetrag' = 'Brutto-Gesamt:'] do
    i.(Rechnungsstatus := "Versendet")
    end;
    for i in (select Rechnungsstellung)[Versandart = 7] do
    i.(Rechnungsstatus := "noch nicht Versandt")
    end;
    for i in (select Rechnungsstellung)[Rechnungstyp = 4 or 'in Gutschrift wandeln' = true] do
    i.(Rechnungsstatus := "Begutschriftet")
    end;
    for i in (select Rechnungsstellung)[Rechnungstyp = 2 and 'erwarteter Zahlungseingang' < today() and 'Offener Rechnungsbetrag' = 'Brutto-Gesamt:' and 'in Gutschrift wandeln' = false and 'Zahlungserinnerung erzeugen' = false] do
    i.(Rechnungsstatus := "Überfällig")
    end

     

    Wie geht das besser, in perfonens Hinsicht und vielleicht einfacher um die Argumente zu wählen

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

    Moin, vielleicht liegt's an mir, aber ehrlich gesagt verstehe ich die Idee des Codes überhaupt nicht. Das Script ist als Trigger "Nach Änderung" in der Tabelle 'Rechnungstellung' angelegt. Das heißt, bei jeder Änderung des aktuellen Rechnungs-Datensatzes wird die gesamte Tabelle mit neun "for"-Schleifen nach verschiedenen Kriterien gefiltert und der Status der betreffenden Rechnungen geändert. Das ergibt für mich überhaupt keinen Sinn. Was ist das eigentliche Ziel?

    • Michi.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke, du hast recht. Brauch nur eine for schleife für die Automatische status umstellung nach dem datum. (Versendet in richtung überfällig) den rest kann ich anders lösen. Da gehts dann auch wieder schneller.