0

Mehreren Datensätzen einen Wert zuweisen

Liebe Ninox-Community,

nun bin ich doch auf Eure Hilfe angewiesen.

Vielleicht meinem „greisen“ Alter oder meiner Haarfarbe geschuldet … ich komme allein gerade nicht weiter und vielleicht kann mich jemand von euch wieder in die Spur bringen.

Problemstellung:

- Tabelle „Auftraege“ verbunden mit einer (Unter)-Tabelle „ Auftragspositionen“ / 1:N

- einzelne Auftragspositionen sollen gekennzeichnet werden können (in einem separaten Tabellenfeld „Status“)

- die so gekennzeichneten Auftragspositionen sollen in einer Rechnung zusammengefasst werden, fuer die in diesem Moment dann eine Rechnungsnummer erzeugt wird, die den einzelnen Positionen dann zugeordnet wird

Im Moment habe ich die einfache “Frage“, wie ich dieser Gruppe von Auftragspositions-Datensaetzen dieselbe Rechnungsnummer zuordne? Kann mir jemand auf die Spruenge helfen, wie (wahrscheinlich) die Schleifenstruktur hier aussehen muss?

Bitte setzt bei mir nicht zuviel voraus … und denkt an die Haarfarbe ;-) 

Vielen Dank im Voraus

Holger

6 Antworten

null
    • DV digital vereinfacht GmbH
    • Sebastian_Kalberg
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Holger,

    mein erster Gedanke ist, dass du ja eigentlich noch eine Tabelle "Rechnungen" bräuchtest, die dann auch eine Untertabelle "Rechnungspositionen" hat ooooooder du machst nur eine Tabelle Positionen die dann sowohl mit Aufträgen und Rechnungen verknüpft ist, sodass du dann keine 2 Tabellen Auftragspositionen und Rechnungspositionen brauchst.

    In einem Auftrag würdest du ja dann klicken "Rechnung erstellen", sodass eine neue Rechnung erstellt wird mit allen Positionen, die auch im Auftrag vorhanden sind.

    let new := (create Rechnungen);
    for i in me.Positionen do
                    let newPos := duplicate(i);
                    i.(Auftrag := 0);
                    i.(Rechnung := new)
    end;
    new.Rechnungsnummer := "XYZ"
    closeRecord();
    popupRecord(new);

    Nach diesem Schritt, hast du nun eine Rechnung mit allen Positionen aus dem Auftrag und einer Rechnungsnummer "XYZ".

      • Holger_Wollnik.1
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Sebastian Kalberg herzlichen Dank für deine schnelle Antwort. 

      Eine separate Rechnungstabelle wollte ich eigentlich umgehen ... kommt mir sehr redundant vor. 

      Vielmehr wollte ich eben die Auftr. - positionen nur entsprechend kennzeichnen und mit einer Rechnungsnr. versehen. 

      Aber vielleicht komme ich um die von dir beschriebenen Vorgehensweise doch nicht herum. 

      Für den ebenfalls noch geplanten Druck würde eine eigenständige Rechnungstabelle vielleicht die Sache doch auch erleichtern. 

      Danke auf jeden Fall für den snippet. Damit werde ich es auf jeden Fall versuchen. 

      thx

    • DV digital vereinfacht GmbH
    • Sebastian_Kalberg
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Okay, du kannst dafür natürlich auch in einer Auftragsposition ein Textfeld „Rechnungsnummer“ anlegen und mit einem Button im Auftrag (dort sollte es dann auch eine Rechnungsnummer geben) allen Positionen diese Rechnungsnummer zuordnen.

    let me := this;
    for i in Auftragspositionen do
    i.Rechnungsnummer := me.Rechnungsnummer;
    end;
    
    
      • Holger_Wollnik.1
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Sebastian Kalberg diesen Weg hatte ich eigentlich vor Augen, bin aber an der Syntax gescheitert. 

      Mit diesem Ansatz von dir werde ich es einmal versuchen.
      Herzlichen Dank bis dahin und ein schönes sonniges Wochenende. 

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

    Hallo, wenn ich mal ein wenig klugscheißen darf: Angebote, Aufträge und insbesondere Rechnungen sollte man schon aus formalen Gründen strikt getrennt halten. Was aber nicht ausschließt, dass man sie in einer gemeinsamen Tabelle verwaltet, da der Aufbau in der Regel ja immer derselbe ist: Kopfdaten plus Positionen als Untertabelle.

    Bei meiner eigenen Lösung nutze ich zur Unterscheidung ein Auswahlfeld mt den drei Dokumenttypen "Angebot", "Auftrag" und "Rechnung". Will ich dann bspw. ein Angebot zum Auftrag und diesen später zur Rechnung machen, kann ich jeweils mit einem einfachen duplicate() sämtliche Daten inkl. der Positionen in einen neuen Datensatz schreiben und diesem den entsprechenden Dokumenttyp sowie eine typspezifische Nummer zuweisen.

    So erhalte ich alle Dokumente im Original, kann aber Änderungen berücksichtigen, z. B. wenn mehr oder weniger bestellt als angeboten wurde. Ganz nebenbei kann ich auch alle drei Typen mit einem einzigen, dynamischen Drucklayout abbilden, bei dem sich dann u. a. automatisch die Überschrift ändert.

    Ein solches Vorgehen macht natürlich nur Sinn, wenn man nicht hunderte von Angeboten, Aufträgen und Rechnungen pro Monat erfasst. Dann ist es aber sehr effektiv.

    Nur so als Idee.
     

    • Holger_Wollnik.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Vielen Dank für die Anregungen. Ich bin ja für jeden Hinweis und für jede Idee dankbar, möchte dieses Forum andererseits aber auch nicht überstrapazieren.

    Ich werde mit meinem "Auftraggeber" mal das Lastenheft diskutieren ... und mich evtl. dann nochmal melden müsse, wenn ich deinen Vorschlag nicht aus eigener Kraft umgesetzt bekomme.

    Bis hierher aber schon einmal recht herzlichen Dank für den Input!

Content aside

  • vor 2 JahrenZuletzt aktiv
  • 6Antworten
  • 70Ansichten
  • 4 Folge bereits