0

Dropdown Feld mit Externen Daten füttern

Moin ihr Lieben,

ein kleines Anliegen habe ich und vielleicht hat jemand von euch eine Idee. Ich bastel grade an einer Datenmaske mit der ich Email Vorlagen versenden kann. Aktuell habe ich die Tabelle "Anschreiben". In dieser sind mehre Anschreiben hinterliegt.

Ich würde nun gerne auf der Kontaktseite ein Dropdown Feld anlegen. In diesem sollen automatisch alle Titel der  Briefe aus "Tabelle" anschreiben angezeigt werden. Meine Idee ist, dass wenn ich auf einen Button klicke, das ausgewählte Anschreiben direkt in mein Emailprogramm übertragen wird und die Mail fertig auf dem Destop angezeigt wird.

Ist sowas möglich?

 

Lg

Christoph

15 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hallo Christoph, wenn ich das Ziel richtig verstehe, dann sollte es mit einem Feld vom Typ "Auswahl (dynamisch)" erreichbar sein. Dieser Feldtyp findet sich nur, wenn man im Admin-Modus auf "Felder bearbeiten" klickt (unter "Daten-Felder" in der Liste ganz unten).

    In den Optionen dieses dynAF-Feldes wird unter "Dynamic values" die Tabelle angegeben, aus der die Auswahl-Einträge geholt werden sollen. Zum Beispiel mit

    select Anschreiben
    

    Unter "Name des dynamischen Werts" kann man das Feld aus 'Anschreiben' wählen, dessen Inhalt in der Auswahl angezeigt werden soll, z. B. 'Titel', wenn es denn so heißt.

    Mit einem Button oder Änderungstrigger lässt sich nun auswerten, welcher Eintrag gewählt wurde und die gewünschten Felder aus dem betreffenden Datensatz gelesen werden. Beispiel:

    let myA := record(Anschreiben, number(dynAF));
    Mailbetreff := myA.Titel;
    Mailtext := myA.Text
    
      • kirchenmusik
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Ganz lieben Dank!
      Das hat alles soweit funktioniert. Es ist mir nur noch nicht klar, wie ich es hinbekomme, dass auf einem Button Knopf sich eine Email (über das Standartemailprogramm) öffnet und der entsprechende Text eingefügt wird.

      Lg
      Christoph

      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      Den lokalen Mail-Client kann man mit openURL("mailto:" ...) öffnen und dabei auch Daten übergeben:

      let myA := record(Anschreiben, number(dynAF));
      'Empfänger' = "trallala@hoppsassa.de";
      Mailbetreff := myA.Titel;
      Mailtext := myA.Text;
      openURL("mailto:" + 'Empfänger' + "?subject=" + Mailbetreff + "&body=" + Mailtext)
      

      Wobei die Werte statt in Datenfelder (z. B. Mailbetreff) mit "let" auch in Variablen gelesen werden könnten, wenn sie nicht gespeichert werden sollen.

      Allerdings lässt sich auf diese Weise keine Datei als Anhang übergeben. Dazu müsste man ggf. die sendEmail()-Funktion oder via Make/Zapier einen eigenen SMTP-Server nutzen.

      • kirchenmusik
      • vor 1 Jahr
      • Gemeldet - anzeigen
      • kirchenmusik
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Ups da wurde mein Text unterschlagen... Also, eine Sache verstehe ich noch nicht nach dem ich die passenden Felder ergänzt habe:
      “Empfänger" ist ja nur ein Platzhalter für die Email, hier meckert Ninox aber, dass es das Feld in der Tabelle gar nicht gibt. Was ja auch logisch ist. Empfänger holt sich ja die Daten aus dem Feld "Email"... Oder habe ich da einen Denkfehler drinn? Gleiches bei Mailbetreff und Mailtext.

      Lg

      • truthein
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Hallo  : ich sehe auf deinem Screenshot auch kein Feld 'Empfänger'. Dort ist ein Feld 'E-Mail'. Wenn in diesem die Mailadresse steht, an die du senden willst, dann könntest du doch dieses Feld direkt verwenden in openURL("mailto:" + 'E-Mail' + ... ) (?)

      Ein neue Variable (=Platzhalter) initialisierst du mit «let 'Empfänger' := 'E-Mail';» entsprechend für die anderen Variablen.

      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Meine Angaben waren nur als Beispiel gedacht. Wenn die E-Mail-Adresse des Empfängers in einem Feld namens 'E-Mail' steht, kann man dieses natürlich auch direkt adressieren: 

      let myA := record(Anschreiben, number(dynAF));
      Mailbetreff := myA.Titel;
      Mailtext := myA.Text;
      openURL("mailto:" + 'E-Mail' + "?subject=" + Mailbetreff + "&body=" + Mailtext)
      

      Hauptsache, in dem openURL()-String steht am Ende hinter "mailto:" die richtige Empfängeradresse.

      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Ups. Na ja, doppelt gemoppelt hält besser. ;)

      • kirchenmusik
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Danke euch beiden. Ich näher mich. Die Email wird jetzt übernommen. Jedoch noch nicht der Titel und der Mailtext. Stattdessen sagt mir Ninox, dass die Tabellenspalte nicht gefunden wurde.
      Das verwirrt mich jedoch nun komplett.

      In der ersten Zeile muss ich ja "dynAF" durch den Tabellennamen ersetzten, der da ist "Anschreiben". Ok klappt. Aber wieso bekomme ich in Zeile 2 udn 3 eine Fehlermeldung? In der Tabelle "Anschreiben" lautet der Betreff "Titel" bzw der Text "Anschreiben" und durch die erste Zeile ist doch die Verbindung zur Tabelle hergestellt. Oder bin ich total auf dem Holzweg?

      Danke für eure Geduld und hilfe... Ich fuchse mich grade noch bei Ninox ein :)

      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Ich weiß nicht, welche Felder in deiner Tabelle existieren und welche nicht ... Wenn es auch die Felder 'Mailbetreff' und 'Mailtext' nicht gibt, dann kann man sie mit "let" davor zu Variablen machen oder die Inhalte ohne Umwege direkt in den Mail-String übernehmen:

      let myA := record(Anschreiben, number(dynAF));
      openURL("mailto:" + 'E-Mail' + "?subject=" + myA.Titel + "&body=" + myA.Text)
      • kirchenmusik
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Mega das war es !!!! Jetzt habe ich es auch endlich verstanden!!!

      Einziges Problem: Die gesammte Formatierung des Textes ist nicht mehr existent. Kann das daran liegen weil ich ein "Rich Text Feld" verwende oder kann die Vormatierung (Leerzeilen etc.) nicht übernommen werden?

      Lg und noch mal vielen dank!!!!

      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Ja, Rich-Text-Felder enthalten HTML-Code. Die Parameter beim "mailto:" werden aber als String an den Mail-Client übergeben. Und da auch die Zeilenumbrüche als Tags gespeichert werden, werden sie in der Mail nicht mehr angezeigt.

      Vielleicht gibt es Bastellösungen, mit denen man den Mail-Client zwingen kann, einen mit raw() übergebenen Quelltext als HTML zu interpretieren. Ich würde aber generell statt des Rich-Text-Feldes ein mehrzeiliges Textfeld nehmen. Dort vorgenommene Zeilenumbrüche werden dann auch in der Mail dargestellt.

      • Christoph_Hintermuller.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Nach dem ich noch ein urlEncode for "myA.Text" geklatscht habe, geht es nun einwandfrei. 

      Danke dir für deine Hilfe!

      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Super!

    • Ninox-Professional
    • planoxpro
    • vor 1 Jahr
    • Gemeldet - anzeigen
     said:
    In der ersten Zeile muss ich ja "dynAF" durch den Tabellennamen ersetzten, der da ist "Anschreiben".

    Genau genommen nicht durch den Tabellennamen, sondern durch den Namen des dynamischen Auswahlfeldes (das natürlich auch 'Anschreiben' heißen kann).