0

I - Dötzchen

Hallo, bin der Kai und frisch angemeldet.

Habe bisher eher mit Excel zu tun gehabt un mit Datenbanken so gut wie nichts.

Als frisch gebackener Eigentümer einer Wohnung geht es mir um das Thema der Nebenkostenabrechnung.

Dafür möchte ich gerne einen Datenbank erstellen - und dabei tu ich mich extrem schwer

und würde auf Eure Hilfe hoffen.

 

Damit meine ich bewußt Hilfe, und kein Vorbeten und Lösungen von anderen erstellen lassen.

Ich bin sehr gewillt zu lernen.

Stoße da aber an einen Punkt, am dem ich nicht weiter komme

 Bisher erstellt sind verschiedene Tabellen, die n zu 1 verknüpft sind.

 

1) Verteilungsschlüssel

2) Kategorien

3) Belegerfassung. Hier werden dann die Belege mit Buchungsjahr erfasst und mit den Kategorien und den verschiedenen Abrechnungsschlüsseln verknüpft.

Jetzt würde ich halt gerne auf so eine Art Knopfdruck eine Selektion haben.

Mir fehlt da aber komplett der Ansatz, wie ich das anstellen soll.

Muss ich dafür wieder ne neue Tabelle erstellen, mit Funktinen oder, oder oder

Könnt Ihr ein wenig Hell ins dunkle bringen?

 

Danke vorab

Kai

17 Antworten

null
    • Rafael_Sanchis
    • vor 1 Jahr
    • Gemeldet - anzeigen

    I send an idea, work for me is in Spanish, but maybe to begin.

    • dervespakai
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Danke, aber eine Idee habe ich bereits.

    Bei mir scheitert es an der technischen Umsetzung.

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

    Hallo Kai ...

     said:
    Jetzt würde ich halt gerne auf so eine Art Knopfdruck eine Selektion haben.

    Was genau soll denn da wo selektiert werden, nach welchen Kriterien und in welcher Form?

    Grundsätzlich kann man in einer Tabellenansicht die angezeigten Daten durch Klick auf den jeweiligen Spaltentitel nach verschiedenen Kriterien filtern (1), sortieren (2) und gruppieren (3).

    Weitere Infos dazu finden sich in der Doku:
    https://docs.ninox.com/de/schritt-fuer-schritt/grundlagen/sortieren-und-filtern

    • dervespakai
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Ja, aber genau das möchte ich nicht.

    Es gibt nachher einen (viele) Datensätze die einen Abrechnungsbeleg verkörpern

    Dieser besteht aus einem Betrag, einer Kategorie (zb Haftplichtversicherung, Porto, Verwalterhonorar oder oder)

    einem Buchungsjahr

    einem Verteilerschlüssel (zb 1:18, oder oder) 

    der Information, ob dieser Datensatz umlagefähig ist, oder nicht

    der Information, ob für die Abrechnung relevant, oder dem Wirtschftsplan.

     

    Wenn man sich also all die Arbeit gemacht hat, möchte ich gerne zb sagen können

     

    Zeig mir die Datensätze aus 2022, die Abrechnungsrelevant sind, die umlagefähig sind usw usw

    ohne das selber in den Einstellungen der Tabelle manuell zu filtern.

     

    Mit select kann ich bsp auf ein Feld zugreifen

    Wobei mir dann nicht klar ist, ob

     

    xxxxxx . xxxxxx oder wofür zb. 

    hochkomma xxxxx hochkomma

     

    steht

     

    vg

    Kai

    • dervespakai
    • vor 1 Jahr
    • Gemeldet - anzeigen

    ps, nach select schreibt der mir alle Werte hintereinander in ein Feld

    sobal ich where eingebe komme ich nicht weiter

     

    Weder auf dem Ipad, noch online

      • Developer by Smartplanung
      • smartplanung
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Hallo  ,

      wenn ich dich richtig verstehe, sehe ich hierfür mehrere Möglichkeiten. Am Ende kommt es tatsächlich auf das Handling an, was wie oft benötigt wird.

      Für Belege anzulegen erstellst Du eine Tabelle "Belege" oder wie auch immer Du die Tabelle nennen magst. In dieser Tabelle erstellst Du die benötigten Felder (Buchungsdatum, ggf. PDF, Firma, usw.). Wenn es etwas zu kategorisieren gibt, machst Du das am besten über eine separate Tabelle und referenzierst mit einem dynamischen Auswahlfeld auf diese Tabelle (z.B. select Kategorien). Dann hast Du dafür schon mal feste Werte und kannst diese Liste zukünftig dynamisch erweitern.

      Für Verteilerschlüssel gibt es auch verschiedene Möglichkeiten. Ich habe es mal mit der Funktion eval() realisiert, wo ich in einer weiteren Tabelle Verteilerschlüssel angelegt habe. Mit eval() lassen sich kurz gesagt Berechnungen aus einem String in Code umwandeln, geht aber nur mit jährlicher Lizenz mit einer Ninox-Cloud. Dann wurde der jeweiligen Buchung ein Verteilerschlüssel (auch mit dynamischem Auswahlfeld) zugewiesen und im Hintergrund konnte das Ganze entsprechend berechnet werden. Du kannst allerdings auch direkt Verteilerschlüssel im Code hinterlegen und z.B. mit switch case den entsprechenden Verteilerschlüssel anwenden (für den Einstieg ggf. die bessere Variante).

      https://docs.ninox.com/de/skripten/einfuehrung-in-ninox-skript/verzweigung-festlegen/mehrfachverzweigung-festlegen

      Ein genaueres Beispiel:
      Eine Tabelle "Verteilerschlüssel" mit dem Feld "Name". Dort hast Du z.B. "Verteilerschlüssel 1", "Verteilerschlüssel 2", usw. als Datensätze drin. In deiner Belegtabelle legst Du wieder ein dyn. Auswahlfeld an mit select 'Verteilerschlüssel' und den angezeigten Namen setzt Du auf "Name".

      Wir gehen davon aus, dass Du ein Feld für die Kosten hast "Summe" und das dyn. Auswahlfeld "Verteilerschlüssel" heißt. Dann erstellst Du ein Formelfeld:

      switch 'Verteilerschlüssel' do
          case 1: Summe /18
          case 2: Summe / 18 / 12
          case 3: Summe / 18 / 4
      end

      mit case 1, 2, 3 wird jeweils abgeglichen, ob die ID der Auswahl vom dyn. Auswahlfeld übereinstimmt. Die ID ist in dem Fall die ID vom Datensatz in der Tabelle "Verteilerschlüssel".

      Wenn Du z.B. Übersichten über einzelne Belege haben möchtest, empfiehlt es sich, entweder für jeden Fall eine Ansicht zu erstellen oder eine Ansicht und die ganze Anweisung kompakt in ein Script zu packen und die select Anweisung mit zusätzlichen Auswahlfeldern zu verfeinern. Bei mehreren Ansichten kann man ggf. über Auswahlfelder die Sichtbarkeit steuern.

      Hier kurze Beispiele für eine select Abfrage:

      select Belege where number('Verteilerschlüssel') = 1

      zeigt alle Belege an, die den Verteilerschlüssel mit der ID 1 enthalten.

      select Belege where number(Kategorie) = 1

      oder

      select Belege where text(Kategorie) = "Abwasser"

      ginge auch.

      Ein reines select bringt immer alle vorhandenen Datensätze zurück. Wie Du schon angemerkt hast, kannst Du die Ergebnisse mit der where Klausel filtern. Du musst hierbei halt beachten, was für einen Datentyp das angesprochene Feld zurück gibt. Auswahlfelder kannst Du z.B. manipulieren indem Du sie in text() oder number() setzt. Bei einfachen Auswahlfeldern siehst Du die ID (number) neben den Namen der Auswahl.

      Ansonsten kann ich Dir nur die Ninox-Dokumentation empfehlen:

      https://docs.ninox.com/de/

      Alternativ gibt es im Webinar Team noch eine Referenzdatenbank (0001_Ninox-Reference), wo so gut wie jede Funktion beschrieben ist. Dafür eine Mail an den Support schreiben, dass sie dich in das Team einladen sollen.

      • Developer by Smartplanung
      • smartplanung
      • vor 1 Jahr
      • Gemeldet - anzeigen

      die select anweisung sollte in eine Ansicht - nicht in ein Formelfeld.

    • dervespakai
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Wow, erstmal vielen Dank.

    Ich werde mich damit beschäftigen, auch wenn ich für den Moment noch nicht  alles verstanden habe.

     

    Ich habe da aber noch eine kleine Bitte.

     

    Nehmen wir an, es gibt eine Tabelle „Belege“

    mit folgenden Feldern:

    - Summe

    - Buchungsjahr

     

    Wie spreche ich diese Felder nun an?

    Nich ein Hinweis.

    Entgegen der Dokumentaion werden bei mir bei den Formeln keine

    Zeilennummern oder autovervollständigungen angezeigt

    Nach einem Select in Verbindung mit where erhalte ich sofort einen Fehler.

     

    Es klemmt da noch ein bisschen bei der Verwendung des Formelditors bzw. dem freien formulieren.

     

    wann schreibt man ein xxxxxx.xxxxxxx?

    In der Dokumentation wird immer ein Hochkomma geschrieben.

    vg

    Kai

      • Developer by Smartplanung
      • smartplanung
      • vor 1 Jahr
      • Gemeldet - anzeigen

       es kommt darauf an, von wo aus Du auf die Felder zugreifen möchtest. Direkt in der Tabelle:

      Summe

      Buchungsjahr

      Im Editor kannst Du links an der Seite auch die Felter antippen, dann erscheinen sie im Editor-Feld.

      Wenn Du in einer Untertabelle von „Belege“ bist, ginge das wie folgt:

      Belege.Summe

      Belege.Buchungsjahr

      Von einer Tabelle, die keine Verknüpfung zu Belege hat:

      first(select Belege where Summe > 0).Summe

      oder

      first(select Belege where Summe > 0).Buchungsjahr

      oder ohne where

      first(select Belege).Summe

      first(select Belege).Buchungsjahr

      Das ansprechen der Felder funktioniert also immer mit Punktnotation. Sobald mehrere Ergebnisse möglich sind, wird ein first(select…) oder ein last(select…) benötigt (Angesprochene Tabelle —> Untertabelle = 1:n Betziehung).

      Die Hochkommas sind immer erforderlich, wenn die Feldnamen Leerzeichen oder Umlaute oder Sonderzeichen enthalten. Dasselbe gilt für Tabellen.

      Im Editor siehst Du auf dem iPad/iPhone oder Android keine Zeilennummern und bekommst auch keine Auto-Vervollständigung vorgeschlagen. Das geht nur mit PC/Mac am Browser oder der Mac-App. Für komplexeres Coding würde ich auch empfehlen auf einen PC mit Browser umzusteigen.

    • dervespakai
    • vor 1 Jahr
    • Gemeldet - anzeigen

    ich fürchte,  mir fehlt es am Grundverständnis.

    Ich bekomme nichtmals ein dynamisches Auswahlfeld erstellt.

    Bei der Suche in den docs erhalte ich nur Treffer zum Auswahlfeld, nicht aber dynamisch.

    Schreibt man diesen Code in die Formel?

    Oder wohin?

     

    Ich habe jetzt nochmal komplett von vorne angefangen und eine Tabelle Verteiler

    mit folgenden Feldern: nameverteiler, verteilergesamt und verteileranteil

     

    Nun eine zweite Tabelle Kategorie mit folgenden Feldern:

    namekategorie

     

    Jetzt also ein dynamisches Auswahlfeld in die Tabelle Kategorie.

     Ich füge es ein, in dem ich es von rechts in die Mitte zu den Feldern ziehe.

    Aber was jetzt?

     

    vg

    Kai

      • Developer by Smartplanung
      • smartplanung
      • vor 1 Jahr
      • Gemeldet - anzeigen

       na Du legst eine Tabelle "Kategorien" an - hast Du bereits getan.

      Dort fügst Du ein Textfeld "Name" ein und erstellst ein paar Datensätze (Kategorien)

      Nun erstellst Du eine Tabelle "Belege". Dort fügst Du ein dyn. Auswahlfeld ein und trägst dort unter "Dynamic values" folgendes ein:

      select Kategorien

      Unter "Name des dynamischen Werts" trägst Du "Name" ein - links in der Spalte im Codeeditor auch sichtbar - beim anklicken wird es auch automatisch in den Editor eingefügt.

      Nun speichern.

      Neuen Datensatz in Belege erstellen und schon kannst Du eine Kategorie im dyn. Auswahlfeld auswählen, welche in der Tabelle "Kategorien" hinterlegt sind.

    • dervespakai
    • vor 1 Jahr
    • Gemeldet - anzeigen

    ok, das hatte ich.

    Was aber, wenn die Tabelle Verteile mehrere Spalten hat?

    Wenn ich es so eingebe, dann hängt alles aneinander dran

     

    vg

    Kai

      • Kruna
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Hallo Kai, kann durch Gänsefüßchen ein Leerzeichen 'erzwingen' - quasi so

      art + " " + gesamt + " " + anteil

      Du kannst auch ein Bindestrich, Punkt etc pp einfügen, dann wäre es zB so

      art + " -  " + gesamt + " /  " + anteil

       

      Gruß kruna

    • dervespakai
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Super! vielen Dankeschön 

    • dervespakai
    • vor 1 Jahr
    • Gemeldet - anzeigen

    aktueller Stand, keine dynamischen Auswahlfelder, sondern Beziehungsfelder.

    Obwohl ich es hinbekommen habe

    • dervespakai
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Danke an Alle.

    Fürchte, die nächsten Fragen kommen

    • dervespakai
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Mag mir jemand einen Ansatz geben, wie ich jetzt von da nach hier komme?