0

Autmatische Änderung des Status

Hallo, 

hab sowohl Forum als auch Manual durchforstet, aber werde nicht schlau ...

siehe screenshots ... simple Warenwirtschaft mit Produkten, Kunden und nicht viel mehr ...

was ich will ist, dass sich der Status einer Bestellung, wenn das enstprechende Produkt dann in der Anlieferung aufgenommen wird, auf "geliefert" ändert und zudem den Druck des Bestell-Formulars in Gang setzt ...  

ist sicher simpel, aber mir fehlen die entsprechenden Befehle fürs Skript 

danke, anbei screenshots

 Bildschirmfoto 2019-10-26 um 17.34.51Bildschirmfoto 2019-10-26 um 17.34.40Bildschirmfoto 2019-10-26 um 17.35.26

16 Antworten

null
    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Astavakra,

    bist du dir sicher, dass dein Datenmodel richtig ist? Du kannst pro Bestellung nur einen Artikel aufnehmen aber dieser Artikel kann in mehreren Bestellungen vorkommen. Nehmen wir an, du hast noch eine Bestellung an John Lennon mit dem gleichen Artikel. Jetzt hast du Paul beliefert und den Artikel in die Tabelle Anlieferung aufgenommen. In diesem Moment erscheinen zwei Bestellungen in der Ansicht unten und Ninox kann nicht wissen welche Bestellung jetzt gemeint ist.

    Wenn es aber deine Absicht ist und du immer nur einen Artikel pro Bestellung in die Tabelle "Artikel" aufnimmst  (wenn du z.B. personalisierte Gittarren herstellst), dann währe die Formel für Trigger nach Änderung bei dem Feld Artikel der Tabelle Anlieferung:

    ---

    let my:=this;
    first(my.Artikel.Bestellungen).Status:=3;
    printRecord(first(my.Artikel.Bestellungen),"Bestellformular")

    ---

    Wobei 3-die ID von "geliefert" beim Feld Status ist, kann also eine andere Nmmer sein.

    Wenn dein Bestellformular in der Tabelle Bestellungen liegt dann wird mit dieser Formel auch Bestellformular geöffnet, vorausgesetzt die Namen im Printlayout stimmen überein.

     

    Leo

    • Astavakra
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke Leo,

     

    stimmt. ist ein guter Gedanken, den ich erst in weiterer Folge bearbeiten wollte ...

    und ja, es tut sich was, aber das öffnet ein neues Problem - er spuckt mir, auch wenn Paul bereits geliefert (3) und erleidgt (4) ist, bei weiterem Wareneingang dieses Artikels wieder Paul mit 3 aus ...

    und plötzlich sehe ich bei Bestellaufnahme den Artikel in der Warenlieferung gelistet ... 

    sag, ich will damit ja nicht immer das Forum beschäftigen - gibt es irgenwo eine Sammlung aller Funktionen, so dass ich mir aus der Theorie der "Sprache" meine Lösung selbst raus basteln könnte?

     

    danke jedenfalls

     

    Wäre da nicht die Möglichkeit, mit Mengen 

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

    Guten Morgen, was die "Sammlung aller Funktionen" betrifft: Im Webinar-Team findet sich eine Datenbank namens "0001_Ninox-Referenz" mit kurzen Erläuterungen und Beispielen zu allen Funktionen.

    Falls du noch nicht Mitglied dieses Teams bist: Kurze Mail an den Support mit Bitte um Einladung in das Webinar-Team genügt.

    • Astavakra
    • vor 4 Jahren
    • Gemeldet - anzeigen

    fein, danke ... mach ich 

    • Astavakra
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Kurzer fragender Nachtrag: hab jetzt etwas umgebaut, siehe Modell (wobei Reparaturen hierbei keine Rolle spielen) 

    Für mich passt die Komposition Kunden und Artikel so weitr besser, ich kann auch mehere Artikel pro Bestellung aufnehmen ...

    Wie gehe ich es jetzt am elegantesten an, dass ein etwaiger Wareneingang mir die jeweiligen Bestellungen anzeigt? bzw erkennt, wenn mehrere Kunden den selben bestellt haben ... 

     

    und ich würde auch gerne noch eine Art Mengenfunktion beio den Bestellungen haben - also ein Artikel mehrere Male ...

     

    danke

    Bildschirmfoto 2019-10-30 um 22.45.29Bildschirmfoto 2019-10-30 um 22.52.17

    • Astavakra
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Nachtrag Pt.2 ...

     

    Ist es möglich, aus der Range der Auswahl bei bestimmten Bedingungen nur eine bestimmte Menge anzuzeigen?

    zB wenn bei Leiste der Buchstabe F gewählt wird, dass bei Größe überhaupt nur von 36 - 44 zur Auswahl steht?

     

    danke nochmal und Gute Nacht

    Bildschirmfoto 2019-10-30 um 23.06.43Bildschirmfoto 2019-10-30 um 23.06.32

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

    Die Einträge von Auswahlfeldern lassen sich leider nicht filtern. Du könntest aber verschiedene Auswahlfelder mit den entsprechenden Größen für "F", "G" und "H" erstellen, an der selben Stelle platzieren und je nach gewähltem Leisten ein- bzw. ausblenden. Die Bedingung bei "Feld nur anzeigen, wenn" für das Auswahlfeld "F-Größen" würde dann bspw. lauten:

     

    text(Leisten) = "F"

     

    Bei den anderen Größen-Auswahlfeldern dann eben "G" bzw. "H" statt "F". Und damit das Layout erhalten bleibt, kann man für den Fall, dass im Feld "Leisten" noch keine Auswahl getroffen wurde, einen Platzhalter an die Stelle setzen. Dessen Sichtbarkeitsbedingung wäre dann:

     

    not Leisten

     

    oder 

     

    Leisten = null

    • Astavakra
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Vielen Dank!

    • Astavakra
    • vor 4 Jahren
    • Gemeldet - anzeigen

    @Der Copytexter

     

    GIbt es dann vielleicht die Möglichkeit, alle Werte der nicht angezeigten Felder zu deaktivieren/löschen?

    Das Problem tritt nämlich auf, wenn man Datensätze dupliziert und gewisse Felder ändert

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

    Moin Astavakra, die beschriebene Möglichkeit, Auswahleinträge zu "filtern", ist natürlich nur ein Workaround und zieht weitere Überlegungen nach sich. Zum Beispiel die Frage, wie man die Größeninformation nun speichert, ggf. auch mal abfragt usw. 

     

    Ich habe in einem ganz anderen Zusammenhang eine ähnliche Konstruktion mit mehreren Auswahlfeldern. Und dazu ein weiteres, normales Datenfeld, in dem ich den gewählten Wert speichere. In deinem Fall könnte das bspw. ein Textfeld namens "Größe" sein. Wenn du bei jedem Größen-Auswahlfeld nun einen Trigger "Nach Änderungen ..." setzt, dann lässt sich der jeweils gewählte Wert automatisch in das Feld übernehmen. Der Code für den Trigger könnte so aussehen (am Beispiel 'F-Größen'):

     

    if 'F-Größen' then
        'Größe' := text('F-Größen')
    else
        'Größe' := null
    end

     

    Dasselbe dann entsprechend auch noch bei 'G-Größen' und 'H-Größen'. Die Auswahlfelder würden also tatsächlich nur noch zur bequemeren Auswahl des zutreffenden Wertes dienen, gespeichert würde er immer im Feld 'Größe', das man auch abfragen kann und das bspwo. auch beim Duplizieren eines Datensatzes mit übertragen würde.

     

    Das ist aber wie gesagt nur ein Workaround. Ob sich der einmalige Mehraufwand dafür lohnt, die Erfassung der jeweiligen Größe also tatsächlich komfortabler bzw. effektiver ist, hängt natürlich immer vom Einzelfall ab.

    • Astavakra
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Das klingt gut, werd ich versuchen ... danke & schönes Wochenende!

    • Astavakra
    • vor 4 Jahren
    • Gemeldet - anzeigen

    darf ich dich noch was fragen? 

    dann wäre ich wohl durch und fertig ... hab es bereits zuvor erwähnt:

    "Wie gehe ich es jetzt am elegantesten an, dass ein etwaiger Wareneingang mir die jeweiligen Bestellungen anzeigt? bzw erkennt, wenn mehrere Kunden den selben bestellt haben ... "

    heißt, ich bekomme waren rein, würde die gerne in einer temporären tabelle ('anlieferung') aufnehmen und falls die eine oder andere darunter eine kundenbestellung ist, wird das angezeigt bzw die eine oder andere funktion (statusänderung, druckanweisung ...) gestartet ... zudem wäre es toll, würde bei mehrere bestellungen des selben artikels derjenige aktiviert werden, der das frühere bestelldatum aufweist ...

    thx :) 

    • Astavakra
    • vor 4 Jahren
    • Gemeldet - anzeigen

    dazu noch kurz das Modell

    Bildschirmfoto 2019-11-03 um 09.33.16

    • Astavakra
    • vor 4 Jahren
    • Gemeldet - anzeigen

    dazu noch kurz das Modell

    Bildschirmfoto 2019-11-03 um 09.33.16

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

    Ich tue mich offen gestanden schwer, anhand der vorliegenden Infos und Screenshots die praktischen Abläufe zu verstehen. Reduziert auf die technische Frage, wie sich im vorliegenden Datenmodell bei einer Anlieferung von Schuhen (Kunden-) Bestellungen zu eben diesen Schuhen anzeigen lassen - das ließe sich vielleicht mit einer Ansicht im Formular 'Anlieferung' regeln (wenn 'Anlieferung' mit 'Schuhe' verknüpft ist):

    Schuhe.'Liste best. Schuhe'.Bestellungen

    In diese Ansicht ließe sich u. a. bspw. das Feld 'Aufgenommen am' einblenden und auch danach sortieren.

    Davon abgesehen sind mir wie gesagt die sachlichen Hintergründe unklar. Ein Schuh kann mehrfach bestellt werden, es finden aber sich nirgendwo Hinweise auf Stückzahlen, Bestands- oder Bestellmengen? Wird für jede Größen- und Farbkombination ein eigener Datensatz angelegt (das wären eine ganze Menge für dasselbe Modell)? Und angeliefert wird auch immer nur jeweils ein Paar? Und das soll dann automatisch der "ältesten" Bestellung zugeordnet werden? Werden die eigenen Bestellungen beim Lieferanten auch irgendwo festgehalten?

    Fragen über Fragen ... ;)

    • Astavakra
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ja, sorry ... ich bin eher auf der Suche nach dem einen kleinen Tipp, auf dem ich dann selbstsänig aufbauen kann ... 

    der HIntergrund ist der, dass ich diese Datenbank nur dafür verwende, für Kunden bestelte Schuhe zuzuordnen ... natürlich kommt weitaus mehr rein, nämlich auch alle für das Geschäft nachbestellte Paare ... aus denen möchte ich halt bei Eingabe in Anlieferung (via Scan aller QRs auf den Kartons) die ausgespuckt bekommen, die nicht für das geschäft, sondern für Kunden sind ... ich hab es schon mit if then else versucht, scheitere aber ... 

    dank dir jedenfalls für die Mühe, ich spiel mich weiter :)

Content aside

  • vor 4 JahrenZuletzt aktiv
  • 16Antworten
  • 2865Ansichten