6 Antworten Neueste Antwort am Jun 8, 2017 12:12 AM von to-wer

    Filterung von Einblendlisten im Ausschnitt

    to-wer

      Hallo zusammen,

       

      diese Sache bereitet mir seit Wochen Kopfzerbrechen. Vielleicht hat einer eine zündende Idee.

      Es soll ein  Projekt mit einer Artikel/Bestelldatenbank werden, wo ich aber eine ganz bestimmte Funktionalität haben möchte.

      Ich habe eine Artikelliste, in der gibt es neben dem Artikel die Artikelnummer, Preis und ein Feld wo entweder Obst oder Gemüse steht.

       

      EIne Tabelle Bestellung hat eine Beziehung mit einer Tabelle Bestellpositionen, welche als Ausschnitt im Layout Bestellung erscheinen.

      Im Layout der Bestellung möchte ich zwei Ausschnitte, einen für Obst und einen für Gemüse. Im jeweiligen Ausschnitt soll auch nur das Obst und nur das Gemüse dargestellt werden.

      Diese Ausschnitte sind mit eine Tabelle Bestellpositionen verknüpft, welche eine Beziehung mit den Artikeln hat (derzeit über die Artikelnummer)

      Geht so etwas überhaupt?

       

      Im ersten Feld des jeweiligen Auschnittes wähle ich per Einblendmenü den Artikel aus und es wird automatisch der Rest der Zeile mit Art.Nr. / Preis etc. vervollständigt. Das geht leider immer nur in der ersten Zeile.

       

      Meine Fragen: Warum kann ich nur eine Zeile ausfüllen, obwohl der Ausschnitt mit 8 Zeilen definiert ist.

      Wie kann ich die Einblendliste filtern, dass ich nur Obst ODER Gemüse habe? Oder ist es besser, zwei Tabellen anzulegen, eine für Obst und eine für Gemüse?

       

      Vielen Dank für eure Hilfe & viele Grüße

      Torsten

        • 1. Re: Filterung von Einblendlisten im Ausschnitt
          erolst

          HI Torsten,

           

          Damit ich's nucht immer wiederholen muss: ich gehe beim folgenden Text von

           

          Bestellung --< Bestellposition >-- Artikel

           

          aus, verbunden durch

           

          Bestellung::id = Bestellposition::id_Bestellung / Bestellposition::id_Artikel = Artikel::id

           

          (Hierzu s.u.)

           

          Weitere Felder: Artikel::name, Artikel::typ

           

          to-wer wrote:

          Im Layout der Bestellung möchte ich zwei Ausschnitte, einen für Obst und einen für Gemüse. Im jeweiligen Ausschnitt soll auch nur das Obst und nur das Gemüse dargestellt werden.

          Diese Ausschnitte sind mit eine Tabelle Bestellpositionen verknüpft, welche eine Beziehung mit den Artikeln hat (derzeit über die Artikelnummer)

          Geht so etwas überhaupt?

          Mir ist nicht klar, worauf sich die Frage bezieht. Dass eine solche Beziehung mehrerer Tabellen möglich ist, sieht man ja schon daran, dass du sie erstellt hast.

           

          Meinst du die Ausschnitte? Ja du kannst zwei Ausschnitte plazieren, die unterschiedliche Artikeltypen anzeigen.

           

          Dazu kannst du einen Portalfilter nutzen, der einfach

           

          Artikel::typ = "Obst" oder IstLeer ( Artikel::typ ) bzw. Artikel::typ = "Gemüse"oder IstLeer ( Artikel::typ )

           

          lautet. (IstLeer() deshalb, weil du sonst keinen leeren Pseudo-Datensatz zur Eingabe sehen würdest.)

           

          Meinst du die Artikel-Nr.? Du kannst Beziehungen über diese "Nummer" (meistens ist das ja keine, sondern eher ein gemischter Code) herstellen, sollte man aber nicht. Definiere in deinen Tabellen jeweils einen eigenen, eindeutigen Primärschlüssel, der keine andere Funktion hat, als innerhalb der Tabelle einen Datensatz eindeutig zu identifizieren. Verwende diesen Primärschlüssel, um Beziehungen herzustellen.

           

          Unten gehe ich davon aus, dass dieses Feld einfach 'id' heißt.

           

          to-wer wrote:

           

          Im ersten Feld des jeweiligen Auschnittes wähle ich per Einblendmenü den Artikel aus und es wird automatisch der Rest der Zeile mit Art.Nr. / Preis etc. vervollständigt. Das geht leider immer nur in der ersten Zeile.

           

          Meine Fragen: Warum kann ich nur eine Zeile ausfüllen, obwohl der Ausschnitt mit 8 Zeilen definiert ist.

          Was - die Eingabe oder das Vervollständigen? Dazu müsste man wissen, wie du dieses automatische Ausfüllen definiert hast.

           

          to-wer wrote:

          Wie kann ich die Einblendliste filtern, dass ich nur Obst ODER Gemüse habe?

          Es gibt zwar bessere Auswahlwerkzeuge als Einblendlisten, aber die sind langwieriger zu erklären.

           

          Mach folgendes: Lege in der Tabelle "Artikel" zwei Formelfelder an, Ergebnistyp Text.

          Formel: Wenn ( typ = "Obst" ; name )

          Analog für Gemüse.

           

          Nennen wir die beiden Felder cNameWennObst und cNameWennGemuese.

           

          Erstelle zwei neue Wertelisten mit der Option "Feldwerte" (oder "Werte aus Feld"?), definiert als

          1. Feld: Artikel::id, 2. Feld: Artikel::cNameWennObst, nur Werte aus 2. Feld anzeigen

          Analog für Gemüse.

           

          Jetzt brauchst in den Ausschnitten (die bis auf den Ausschnittfilter ja identisch sind) die Felder:

           

          - Bestellpositionen::id_artikel: Formatiere es als Einblend(Popup)menü mit einer der beiden neuen Wertelisten (derjenigen, die zum Filter passt ...)

          - Anzahl

           

          Diese beiden Felder müssen betretbar sein; alle weiteren Felder (Artikel-Nr, Preis) sind eigentlich optional und müssen nicht betreten werden können.

           

          Bedenke übrigens, dass du den Preis aus Artikel in ein Feld in Bestellposition kopieren solltest, um bei einer Preisänderung nicht alte Bestellungen zu verfälschen. Wie es mit der Artikel-Nr. aussieht, musst du selbst entscheiden; falls sich die niemals ändert, brauchst du kein Feld in Bestellpositionen, sondern kannst im Ausschnitt direkt das Bezugsfeld aus Artikel anzeigen. (Ja, das geht )

           

          Um beim Anlegen einer Position den Preis aus Artikel zu kopieren, kannst du beim Feld Bestellposition::preis einfach die Auto-Eingabe-Formel

           

          Artikel::preis

           

          angeben.

           

          to-wer wrote:

          Oder ist es besser, zwei Tabellen anzulegen, eine für Obst und eine für Gemüse?

          Nö, das würde im Gegenteil die Dinge stark komplizieren ...

           

          Hoffe, das hilft dir erstmal. Hab' keine Scheu, nachzufragen.

          • 2. Re: Filterung von Einblendlisten im Ausschnitt
            Jens Teich

            Zeigst du bitte mal deinen Beziehungsgraf?

            • 3. Re: Filterung von Einblendlisten im Ausschnitt
              to-wer

              Hallo Erolst,

              vielen Dank für die ausführliche Erklärung.

              Das mit den verschiedenen Einblendlisten klappt hervorragend - das habe ich soweit auch verstanden ;-)

               

              Mit der Vervollständigung der Zeilen in den Ausschnitten geht zum Teil. Da will ich nochmal in mich gehen, welche Felder ich da überhaupt brauche (also welche Felder ich in Bestellposition übernehme).

              Angelegt ist das erste Feld zur Auswahl des Artikels als Einblendliste und die anderen Felder als normale Felder, welche per Referenzwert berechnet werden. Nur die Anzahl möchte ich editierbar machen.

              Das klappt in der ersten Zeile, aber eben nur dort. In der zweiten Zeile kann ich schon gar nichts mehr auswählen, obwohl der Ausschnitt mit 8 Zeilen angelegt ist. Kann das eine Frage der Beziehung sein? Die Beziehung von Bestellpositionen zu Teile ist m:n.

               

               

              Bisher hatte ich die entsprechenden Felder als Referenzwert berechnet, basierend auf der Artikel-Nr. als Beziehung.

              Aber irgendwie ist es durcheinander gekommen - vermutlich durch die ganzen Einstellungen, die ich probiert habe.

              Was meinst Du genau mit "Auto-Eingabe-Formel" ?

               

              Viele Grüße

              • 4. Re: Filterung von Einblendlisten im Ausschnitt
                to-wer

                Hallo nochmal,

                 

                jetzt habe ich noch ein anderes Phänomen bei den Ausschnitten.

                Das Vervollständigen pro Zeile funktioniert. Allerdings wird der jeweils andere Ausschnitt mit dem gleichen Inhalt gefüllt wie der bearbeitete Aussschnitt.

                z.B: Ausschnitt obst ist leer. ich trag in Ausschnitt Gemüse Tomaten ein. Sofort wird im Obst auch die Tomate eingetragen.

                Brauche ich da mehrere Bestellpositionstabellen pro Bestellung?

                Das war meine Befürchtung, weshalb ich die Frage stellte, ob das geht, dass man in einem Layout zwei Ausschnitte für die eigentlich gleiche Tabelle - aber mit unterschiedlichen Artikeln nutzen kann.

                 

                VG

                Torsten

                • 5. Re: Filterung von Einblendlisten im Ausschnitt
                  erolst

                  to-wer wrote:

                  Brauche ich da mehrere Bestellpositionstabellen pro Bestellung?

                  Das war meine Befürchtung, weshalb ich die Frage stellte, ob das geht, dass man in einem Layout zwei Ausschnitte für die eigentlich gleiche Tabelle - aber mit unterschiedlichen Artikeln nutzen kann.

                  Sieh dir mal die angehängte Beispieldatei an.

                  1 von 1 Personen fanden dies hilfreich
                  • 6. Re: Filterung von Einblendlisten im Ausschnitt
                    to-wer

                    der Wahnsinn... vielen Dank dafür. Kann man Dir hier Punkte dafür geben ?

                    Im Großen und Ganzen hatte ich es auch so. Aber meine Fehler lagen im Detail... die Beziehungen waren bei mir fast alle m:n, warum auch immer. Direkt selbst einstellen kann man da nichts, oder?

                    Nachdem ich die Namen nach Deinem Schema (mit ID) geändert habe, wurden auf einmal auch die Beziehungen geändert.

                    Wenn ich es richtig verstanden habe, sind im Prinzip in beiden Ausschnitten die gleichen Daten, es wird durch die Filterung aber eben nur das angezeigt, was man möchte.

                    Jetzt gehts an die nächsten großen Kleinigkeiten.

                    VG