Selbstdefinierte Funktion erkennt Variablen nicht richtig
Hallo Zusammen,
ich habe eine globale Funktion definiert, die den Inhalt einer .vcf Karte erstellen soll
function vcard(firstname : text,lastname : text,phonehome : text,phonemobil : text,street : text,zip : number,city : text,email : text) do
let ftime := format(now(), "YYYY-MM-DDThh:mm:ssZ");
let phome := text(phonehome);
"BEGIN:VCARD
VERSION:3.0
N:" + lastname + ";" + firstname + ";;;
FN:" + firstname + " " + lastname + "
TEL;TYPE=HOME;TYPE=VOICE:" + phome + "
TEL;TYPE=CELL;TYPE=VOICE:" + phonemobil + "
ADR;TYPE=HOME:;;" + street + ";" + city + ";;" + zip + ";
EMAIL;TYPE=INTERNET;TYPE=HOME;TYPE=PREF:" + email + "
REV:" + ftime + "
END:VCARD"
end
Von verschiedenen Tabellen soll die Funktion angesprochen werden mit folgendem Skript:
let phome := text(Festnetz);
let pmobil := text(Mobil);
let mail := text('E-Mail');
createTextFile(this, vcard(Vorname, Nachname, phome, pmobil, Strasse, PLZ, Ort, mail), Vorname + " " + Nachname + ".vcf")
Jetzt zu dem Problem - Felder die richtig definiert worden sind, wie Vorname / Nachname / Straße / Ort (text) PLZ (number) funktionieren erwartungsgemäß und werden richtig erkannt und eingesetzt. Felder wie Telefon und Email werden auch nach der Formatierung (text) in der Funktion einfach ignoriert und mit Vornamen und Nachnamen ausgefüllt.
Gebe ich die Felder via alert()
aus funktioniert es erwartungsgemäß...
Gibt es Variablendefinitionen für die globalen Funktionen wie mail oder phone? Beides wird leider bei der Eingabe ignoriert.
11 Antworten
-
Hatte das gleiche Problem gehabt,
bei mir funktioniert es so:
function vcard(firstname : text,lastname : text,phonehome : text,phonemobil : text,street : text,zip : number,city : text,email : text) do
let ftime := format(now(), "YYYY-MM-DDThh:mm:ssZ");
"BEGIN:VCARD
VERSION:3.0
N:" + lastname + ";" + firstname + ";;;
FN:" + firstname + " " + lastname + "
TEL;TYPE=HOME;TYPE=VOICE:" + phonehome + "
TEL;TYPE=CELL;TYPE=VOICE:" + phonemobil + "
ADR;TYPE=HOME:;;" + street + ";" + city + ";;" + zip + ";
EMAIL;TYPE=INTERNET;TYPE=HOME;TYPE=PREF:" + email + "
REV:" + ftime + "
END:VCARD"
end-----
createTextFile(this, vcard(Vorname, Nachname, text(Festnetz), text(Mobil), Strasse, PLZ, Ort, text('E-Mail')), Vorname + " " + Nachname + ".vcf")
----
Keine Ahnung warum.
Leo
-
Habe es nun auch unabhängig davon gelöst und bin auf die gleiche Lösung gekommen. Sieht so aus als würden Variablen die man im Vorfeld definiert nicht in den Funktionsaufruf genommen. Aber wenn man sie direkt im Funktionsaufruf formatiert funktioniert es tadelos.
-
Hallo Leo,
Könntest Du ein Template erstellen? Irgendwie will es bei mir nicht funktionieren?
Danke Andreas
-
Danke Leo
-
Hallo Leo,
danke für die Datenbank, funktioniert super und das Kontakte erstellen geht jetzt deutlich schneller von der Hand.
Ich bräuchte allerdings für meinen Anwendungsfall noch die zwei zusätzlichen Felder "Firma" und "Notiz". Gibt es die Möglichkeit, die mit reinzunehmen?
Viele Grüße! -
Ah, Kommando zurück, hab es mit etwas herumprobieren und dem Info-Dokument im Webinar über den Aufbau von Funktionen selbst geschafft:
function vcard(firma : text,notizen : text,firstname : text,lastname : text,phonehome : text,phonemobil : text,street : text,zip : text,city : text,email : text) do
let ftime := format(now(), "YYYY-MM-DDThh:mm:ssZ");
"BEGIN:VCARD
VERSION:3.0
N:" + lastname + ";" + firstname + ";;;
FN:" + firstname + " " + lastname + "
TEL;TYPE=HOME;TYPE=VOICE:" + phonehome + "
TEL;TYPE=CELL;TYPE=VOICE:" + phonemobil + "
NOTE: " + notizen + "
ORG: " + firma + "
ADR;TYPE=HOME:;;" + street + ";" + city + ";;" + zip + ";
EMAIL;TYPE=INTERNET;TYPE=HOME;TYPE=PREF:" + email + "
REV:" + ftime + "
END:VCARD"
end;
VCARD := createTextFile(this, vcard(Firma, Notiz, Vorname, Nachname, text('Telefon privat'), text('Telefon Mobil'), Adresse, PLZ, Ort, text('E-Mail')), Vorname + " " + Nachname + ".vcf")
-
Hallo zusammen,
Besten Dank für eure Inputs. Da mir persönlich Funktionen wegen der leserlichkeit weniger gut gefallen, habe ich das anders umgesetzt. Ausserdem habe ich noch ein paar weitere Informationen hinzugefügt.
Basierend auf den Feldern die in Outlook zur verfügung stehen, habe ich folgende Daten integriert:
- Vor-, Nachname
- Anrede
- Unternehmen
- Webseite
- Position
- 5 Telefonnummern
- 3 Adressen
- 3 E-Mail Adressen
- Notizen
Evtl. kann mein Code für jemanden nützlich sein.
"###########################################################################################";
"Variablen definieren";
"###########################################################################################";
"================================================";
"Name";
"================================================";
let myVor := Vorname;
let myNach := Nachname;
let myAnr := text(Anrede);
"================================================";
"Unternehmen";
"================================================";
let myUnternehmen := "Musterfirma";
let myWeb := "www.musterfirma.ch";
let myPos := "Musterposition";
"================================================";
"Telefonnummern";
"================================================";
let myTel1 := "111";
let myTel2 := "222";
let myTel3 := "333";
let myTel4 := "444";
let myTel5 := "555";
"================================================";
"Adressen";
"================================================";
let myAdr1 := "Adresse 1";
let myPLZ1 := "1234";
let myOrt1 := "Ort 1";
let myAdr2 := "Adresse 2";
let myPLZ2 := "5678";
let myOrt2 := "Ort 2";
let myAdr3 := "Adresse 3";
let myPLZ3 := "9101";
let myOrt3 := "Ort 3";
"================================================";
"Email";
"================================================";
let myEmail1 := "max.muster@mail1.ch";
let myEmail2 := "max.muster@mail2.ch";
let myEmail3 := "max.muster@mail3.ch";
"================================================";
"Notizen";
"================================================";
let myNotizen := "Testnotiz";
"================================================";
"Zeitstempel";
"================================================";
let myRev := format(now(), "YYYY-MM-DDThh:mm:ssZ");
"###########################################################################################";
"VCARD erstellen";
"###########################################################################################";
let myTxt := "BEGIN:VCARD
VERSION:3.0
N:" + myNach + ";" + myVor + ";;" + myAnr + ";
FN:" + myVor + " " + myNach + "
ORG: " + myUnternehmen + "
TITLE: " + myPos + "
TEL;TYPE=WORK;TYPE=VOICE:" + myTel1 + "
TEL;TYPE=WORK;TYPE=VOICE:" + myTel2 + "
TEL;TYPE=HOME;TYPE=VOICE:" + myTel3 + "
TEL;TYPE=CELL;TYPE=VOICE:" + myTel4 + "
TEL;TYPE=HOME:" + myTel5 + "
NOTE: " + myNotizen + "
ADR;TYPE=WORK:;;" + myAdr1 + ";" + myOrt1 + ";;" + myPLZ1 + ";
ADR;TYPE=HOME:;;" + myAdr2 + ";" + myOrt2 + ";;" + myPLZ2 + ";
ADR;TYPE=POSTAL:;;" + myAdr3 + ";" + myOrt3 + ";;" + myPLZ3 + ";
EMAIL;TYPE=INTERNET:" + myEmail1 + "
EMAIL;TYPE=INTERNET:" + myEmail2 + "
EMAIL;TYPE=INTERNET:" + myEmail3 + "
REV:" + myRev + "
END:VCARD";
"###########################################################################################";
"VCARD speichern";
"###########################################################################################";
VCARD := createTextFile(this, myTxt, Vorname + " " + Nachname + ".vcf") -
Guten Morgen zusammen,
dank Euch erstmal für die tolle Anregungen! Erstelle nach dem Vorbild von Andri Flury vcard und lege diese in ein Bildfeld. In den Mobile Apps/Mac Client funktioniert dies auch wie gewünscht und schnell. Über die Webinstanz erhalte ich jedoch nur ein Ladesymbol. Die vCard wird zwar im Feld im Hintergrund angezeigt, aber die Ladezeit endet nicht.
Woran könnte das liegen und habt ihr hier vielleicht einen Lösungsansatz?
Noch eine zweite Frage, gibt es eine Möglichkeit die vCard auf direkt zu öffnen im Trigger/Button?
Viele Grüße
Chris
-
Hallon Andri,
dank Dir für die Rückmeldung. Dann muss ich wohl weiter schauen woran es bei uns hängt.
Viele Grüße
Chris
Content aside
- vor 2 JahrenZuletzt aktiv
- 11Antworten
- 3087Ansichten
-
2
Folge bereits