14 Antworten Neueste Antwort am Sep 1, 2016 1:16 AM von claja

    Selektiver Filter mit Mehrfachauswahl

    oliverw

      Hallo

      Ich bin recht neu bei FM13. Ich habe eine Tabelle in einem Layout mit Datenbereich. In einem Feld wird der Status eines Datensatzes gespeichert. Z. B. geplant, freigegeben, storniert usw. Ich suche eine Möglichkeit, die Datensätze per Mehrfachselektion zu filtern. Z. B. mit einem Markierungsfeld 2 Stati gleichzeitig auswählen. Das will mir partout nicht gelingen..... Hoffe auf gute Ideen von euch

        • 1. Re: Selektiver Filter mit Mehrfachauswahl
          HLandschulz

          Hallo Oliver,

           

          Du kannst z.B. in den Suchermodus wechseln -> erstes Markierungsfeld anklicken -> neue Abfrage (im Menü "Abfragen") -> zweites Markierungsfeld ankreuzen -> Ergebnismenge suchen.

           

          Heike

          • 2. Re: Selektiver Filter mit Mehrfachauswahl
            oliverw

            Nabend Heike,

            danke für die Anregung. Meine Beschreibung war wohl unvollständig. Ich suche einen Weg das in eine Anwendung zu integrieren. Das Feld Status ist ein Textfeld der Länge 1. Es gibt verschiedene, mögliche Stati. Ich suche einen weg, eine einfache Selektionsmöglichkeit für den Anwender in das Layout einzubauen (siehe Bild). Was ich nicht hin bekomme, ist mehrere Ausprägungen gleichzeitig zu selektieren.

            screenshot.2015-09-07.jpg

            Ich hoffe das ist jetzt verständlicher. Sonst stelle ich mal eine Beispieldatei rein.

            VG

            Oliver

            • 3. Re: Selektiver Filter mit Mehrfachauswahl
              erolst

              Wenn du das in einem Skript automatisieren willst, dann probiere mal:

               

              Setze Variable [ $suchStati ; DeineTabelle::Such2 ]

              Wenn [ IstLeer ( $suchStati ) ]

                Alle Scripts abbrechen

              Ende Wenn

              Suchmodus aktivieren

              Gehe zu Layout [ Suchtabelle ( Suchtabelle ) ]

              Schleife

                Setze Feldwert [ Suchtabelle::status ; ZeichenLinks ( HoleWert ( $suchStati ; Hole ( AbfrageAnzahl ) ) ; 1 ) ]

                Schleife verlassen wenn [ Hole ( AbfrageAnzahl ) = ElementeAnzahl ( $suchStati ) ]

                Neuer Datensatz/Abfrage

              Schleife Ende

              Suchabfrage durchführen

               

              Ich benutze die englische Version, daher heißen manche Schritte/Funktionen evlt. ein bisschen anders …

              • 4. Re: Selektiver Filter mit Mehrfachauswahl
                oliverw

                Hallo und danke für die Rückmeldung . Ich werde das am Wochenende mal ausprobieren.

                Grüße und einen schönen Abend

                • 5. Re: Selektiver Filter mit Mehrfachauswahl
                  oliverw

                  Hallo

                  So, das klappt schon mal - danke. Jedoch wird die Suche ja mit jeder Benutzersuche wieder "zerschossen". Optimal wäre, wenn dann auch nur in den selektierten Datensätzen gesucht würde. In der Anwendung müssen nämlich häufig Datensätze nach einer vorigen Statusselektion gesucht werden. Ich werde das mal mit einer Tabellenbeziehung auf das Statusfeld versuchen. Oder hat jemand noch einen cleveren Ansatz?

                  VG

                  O

                  • 6. Re: Selektiver Filter mit Mehrfachauswahl
                    Markus Schneider

                    ERgebnismenge einschraeken aus dem Menue 'Abfragen' sollte helfen (ist auch ein scriptschritt)

                    • 7. Re: Selektiver Filter mit Mehrfachauswahl
                      oliverw

                      Danke das funktioniert . Für mein Konzept wäre es super, die Datensätze irgendwie vor der benutzerdefinierten Suche filtern, dass sie davon nicht mehr beeinflusst werden. Quasi die Daten für das Layout über eine Abfrage bereitstellen. Aber das scheint nicht so einfach möglich zu sein.....

                      Danke für die Anregungen

                      • 8. Re: Selektiver Filter mit Mehrfachauswahl
                        oliverw

                        Habe es jetzt so gemacht wie vorgeschlagen und es klappt. Den Code kann ich leider nur als Grafik kopieren.

                        DANKE NOCH MAL

                        • 9. Re: Selektiver Filter mit Mehrfachauswahl
                          erolst

                          Schön dass es klappt – aber vergleiche noch mal deinen Code mit meinem Vorschlag; du hast dieselbe Logik (unnötigerweise) zweimal drin, was an sich nicht schlimm ist, aber problematisch werden kann, wenn du was ändern willst und eine Stelle vergisst (das generelle Problem mit Redundanz).

                           

                          Außerdem:

                          • ElementeMitte() ist unnötig – wenn du nur ein einzelnes Element brauchst, ist HoleElement() einfacher.

                          • Du brauchst keinen eigenen Zähler zu führen, weil du dazu die Anzahl der Abfragen verwenden kannst

                          • Verwende keine $$globalenVariablen, wenn $lokaleVariablen es auch tun

                           

                          Probier mal:

                           

                          Variable setzen [ $filterStatus ; Aufträge::… ]

                          Wenn [ IstLeer ( $filterStatus ) ]

                            # [ kürzer ]

                            Aktuelles Script verlassen

                          Ende ( wenn )

                          Variable setzen ( $anzahlAbfragen ; ElementeAnzahl ( $filterStatus ) )

                          Suchenmodus aktivieren [ ]

                          Schleife [ Anfang ]

                            Feldwert setzen [ Aufträge::Status ; HoleElement ( $filterStatus ; Hole ( AbfrageAnzahl ) ) ]

                            Verlasse Schleife wenn [ Hole ( AbfrageAnzahl ) = $anzahlAbfragen ]

                            Neuer Datensatz/Abfrage

                          Schleife ( Ende )

                          Ergebnismenge suchen [ ]

                          • 10. Re: Selektiver Filter mit Mehrfachauswahl
                            oliverw

                            Hallo

                            Das klappt natürlich auch hervorragend - danke noch mal. Wie hast du denn das Script hier rein kopiert?

                            • 11. Re: Selektiver Filter mit Mehrfachauswahl
                              claja

                              Hallo erstmal - ich bin neu hier und bei Filemaker auch. Ich bin gerade dabei, eine arg in die Jahre gekommene Access-DB zu migrieren, von daher eher vertraut mit SQL und VB und tue mich noch ein bisschen schwer mit den FM Konzepten.

                              Dieses Filtern via Markierungsfelder habe ich auch an diversen Stellen. Meine Frage hierzu: Wenn ich das richtig verstanden habe, gibt es eine Tabelle in welcher der Status der Markierungsfelder gespeichert und dann für die Suche verwendet wird. Wie sieht das dann aber in einer Mehrbenutzerumgebung aus?

                              Schon mal Danke für Euren Rat.

                              • 12. Re: Selektiver Filter mit Mehrfachauswahl
                                HLandschulz

                                Hallo,

                                 

                                willcommen im Club ;-)

                                 

                                Machst Du bitte das nächste Mal für eine neue Frage einen neuen Beitrag - erfahrungsgemäß werden solche Spagetti-Treads sehr unübersichtlich.

                                 

                                Ich vermute, Du hast nicht richtig verstanden, daß die Markierungsfelder in einer Tabelle stehen.

                                Das kommt immer darauf an, wie die Datenbank aufgebaut ist.

                                Beschreib doch, wie Deine Datenbank aufgebaut ist und was Du erreichen willst.

                                Um die Mehrbenutzerumgebung muß man sich nur bei bestimmten Anforderungen kümmern - FileMaker macht da schon viel alleine.

                                 

                                Heike

                                • 13. Re: Selektiver Filter mit Mehrfachauswahl
                                  claja

                                  Hallo Heike,

                                   

                                  danke für die Reaktion. Die Frage habe ich hier eingestellt, da es exakt um dasselbe Thema/Problem geht.

                                   

                                  Vereinfacht dargestellt habe ich folgende Tabellen:

                                   

                                  Projekte

                                  Personen

                                  Aktionen

                                  Status

                                   

                                  Die beiden Tabellen „Projekte" und „Personen" sind über Fremdschlüssel über „Aktionen" N:M verknüpft, die Kombination der Fremdschlüssel von Personen und Projekte ist in Tabelle „Aktionen“ eindeutig (Jede Person kann jedem Projekt nur einmal zugeordnet werden, jede Person kann mehreren Projekten zugeordnet werden, jedem Projekt können mehrere Personen zugeordnet werden).

                                   

                                  Projekte - (1:N) - Aktionen - (N:1) - Personen

                                   

                                  Die Tabelle „Aktionen“ ist mit der Tabelle „Status“ verknüpft. Jede Aktion hat einen oder keinen Status (z.B. Anrufen, Erledigt)

                                   

                                  Wie im Ausgangsbeispiel soll Mithilfe von Markierungsfeldern (Checkboxen) gefiltert werden. Angezeigt werden sollen im Projekt alle Personen mit den Status (Mehrzahl), die im Markierungsfeld aktiviert sind.

                                   

                                  Das Ganze findet in einer Mehrbenutzerumgebung statt. Und das ist auch mein Problem, weil ich ja pro Nutzer die Information benötige, welche Markierungsfelder er individuell gerade aktiviert hat.

                                   

                                  Ich habe schon einiges rumprobiert, das ist allerdings wenig elegant und vor allem nicht besonders flexibel (z.B. Wenn in Tabelle Status sich was ändert oder neu hinzukommt).

                                   

                                  Für einen Tipp, in welche Richtung ich bei/mit Filemaker denken sollte, wäre ich sehr dankbar. 

                                  • 14. Re: Selektiver Filter mit Mehrfachauswahl
                                    claja

                                    Nur falls noch einmal jemand über das Thema stolpert. Unter

                                     

                                    filter by checkbox

                                     

                                    gibt es nicht nur einen interessanten Beitrag, sondern vor allem auch eine sehr nützliche Beispielsdatei zum Download.