0

Standortfeld Suche mit Befehlschaltfläche

Guten Tag,

hat jemand eine Empfehlung wie ich aus einem ausgefüllten Standortfeld eine Suche mit einer Befehlfehltaste gestalten kann?

 

Beispiel: In dem Standortfeld eine Adresse drin. Mit dem Klick auf der Befehltaste soll eine seperate Seite geöffnet werden, mit weitere Datensätze mit dieser Adresse. Ist das Möglich?

12 Antworten

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

    Hallo, angezeigt wird bei Standortfeldern zwar ein Text mit der Adresse, intern gespeichert werden m. W. aber die numerischen Werte für Längen- und Breitengrad. Dieselbe Adresse kann also verschiedene Location-Werte haben, so dass ein direkter Vergleich zu falschen Ergebnissen führen kann. Statt dessen müsste man die Adresse wohl in ihre Bestandteile zerlegen und dann bspw. Straße und Ort vergleichen. Hier stellt sich allerdings das Problem, dass der Aufbau unterschiedlich sein kann. Das heißt, je nachdem, wo genau man in die Karte geklickt hat, kann da bspw. stehen:

     

    "Alexanderpl. 1, 10178 Berlin, Deutschland" oder "Berolinahaus, Alexanderpl. 1, 10178 Berlin, Deutschland"

     

    Man müsste beim Zerlegen also von hinten vorgehen, z. B. so:

     

    let myAdr := split(text(Standort), ",");
    let myOrt := item(myAdr, cnt(myAdr) - 2);
    let myStr := item(myAdr, cnt(myAdr) - 3);
    [...]

     

    Sollten die Adressdaten also auch in anderer Form vorliegen, z. B. in einzelnen Texfeldern für Straße und PLZ, dann wäre es wahrscheinlich effektiver, diese Felder zur Suche heranzuziehen.

     

    Der Wunsch  "Separate Seite [...] mit weiteren Datensätzen" ist ebenfalls nicht ganz ohne. Man könnte eventuell eine temporäre Tabelle erstellen. Ich würde aber wohl eher mit einer eingebetteten Ansicht arbeiten (unter "Gestaltungselemente").

    • Frank.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Guten Tag,

    vielen Dank für Deine Antwort. Die Eingabe der Adresse erfolgt beim genauen eintippen der Adresse also nicht bei der manuelle Standort Suche via Karte. Ursprünglich hatte ich die die einzelne aufgeschlüsselt in einzelne Felder, habe aber dies abgeschafft , da ich beim anlegen des Kunden generell die Kartensicht sehen muss.

    das was du sagst, hört sich logisch an. Wie gehe ich den da vor? 

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

    Ich kenne den Kontext nicht, aber normalerweise werden Adressdaten ja immer strukturiert in Einzelfeldern gespeichert, um auch auf einzelne Elemente wie Straße, Postleitzahl usw. zugreifen zu können. Und man will ja auch mal einen Brief, eine Rechnung oder eine Bestellung adressieren.

     

    Eine andere Frage wäre, wie die Daten in die Felder kommen. Wenn der Weg über die Map für dich der effektivere ist, dann könnte man auch einen Trigger "Nach Änderung ..." im Standortfeld erstellen und die Felder für Straße, PLZ und Ort nach Auswahl mit folgendem Code automatisch befüllen:

     

    let myAdr := split(text(STANDORT), ",");
    STRASSE := trim(item(myAdr, cnt(myAdr) - 3));
    let myOrt := item(myAdr, cnt(myAdr) - 2);
    PLZ := trim(item(split(myOrt, " "), 1));
    ORT := trim(item(split(myOrt, " "), 2))

     

    Eine Ansicht mit anderen Datensätze derselben Adresse könnte dann bspw. so aussehen:

     

    let me := this;
    select TABELLE where PLZ = me.PLZ and STRASSE = me.STRASSE

     

    Wobei die hier groß geschriebenen Bezeichnungen natürlich durch die tatsächlichen Namen ersetzt werden müssten.

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

    Ach so, um in der Ansicht nur die anderen zu sehen, sollte man auch noch die Datensatz-Nr abgleichen:

     

    let me := this;
    select TABELLE where PLZ = me.PLZ and STRASSE = me.STRASSE and Nr != me.Nr

    • Frank.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Und in diesem fall erstelle ich nun Felder und fülle dies als Skript aus:

    Feld Straße :

    let myAdr := split(text(Adresse), ",");
    Strasse := trim(item(myAdr, cnt(myAdr) - 3));

    Feld PLZ

     etc.

     

    oder?

    • Frank.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    wie bekomme ich die Adresse Standortfeld aufgeteilt in das normale einzelne Feld mhhh

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

    Du brauchst nur ein Skript, um die drei Textfelder STRASSE, PLZ und ORT zu befüllen. Und zwar als so genannten Änderungs-Trigger. Das heißt, es soll immer automatisch ausgeführt werden, wenn sich der Inhalt des Standort-Feldes ändert.

     

    Vorgehensweise: Aktiviere den Administratormodus und öffne die Optionen zum Feld STANDORT. Dort gibt es unter "Erweiterte Optionen" einen Punkt namens "Nach Änderungen folgendes Skript ausführen". Da rein klicken und den o. a. fünfzeiligen Code einsetzen, ggf. die Feldnamen ändern und mit "OK" speichern.

     

    Sobald du nun den Inhalt des Feldes STANDORT änderst, wird automatisch die Adresse zerlegt und in die drei Textfelder gespeichert.

    • Frank.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    ah habe erledigt. folgende lösung.

     

    let me := this;
    select 'Tabelle' where Standort = me.Standort

    • Frank.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    in Tabelle Ansicht! 

    • Frank.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Eine Frage wie heßt die Bedingung, wenn ich in der Tabelle Ansicht nur die Einträge sehen möchte ohne die eigene welche gerade offen ist.

     

    Jeder Datensatz ist mit einer Nummer verzert. Und in jeder Nummer ist ein Datensatz mit der Adresse hinterlegt. 

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

    let me := this;
    select 'Tabelle' where Standort = me.Standort and Nr != me.Nr

     

    Ich weise aber noch mal darauf hin, dass es beim direkten Vergleich der Standortfelder zu falschen Ergebnissen kommen kann, weil die Längen- und Breitengrade nicht exakt übereinstimmen, wenn der Standort per Klick in die Map gewählt wird (siehe erste Antwort auf Seite 1).

    • Frank.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    wird immer direkt eingetippt ohne auswahl via Klick. Super. Besten Dank! Klappt wunderbar.