Concatting an Hyperlink ?

101 views
Skip to first unread message

Peter Schwarz

unread,
Jan 29, 2020, 8:36:42 AM1/29/20
to mementodatabase
Hi,

I would like to combine two (text-) fields into an URL via a calculation field. My attempted using this action for a field called "URL" with

concat ('# {Basic_Link}', '# {Title_ID}')

joins the text, but it is not a field with the field-type 'hyperlink' and therefore cannot call up a website directly. 
In addition, the calculated field "URL" is preceded by the text "For input string", which I don't want there either.

An example of my request is access to the IMDB database, each begins as {Basic_Link} with the text


and then only adds the movie reference number (e.g. 7286456) 

as {Title_ID} to access the specific film via the URL-Field 'www.imdb.com/title/tt7286456'.


Who can help me meet the requirement ?

Thanks in advance and regards
Peter

Ernst Moser

unread,
Jan 29, 2020, 1:05:17 PM1/29/20
to mementodatabase
Hallo
Du kannst den Name der Webseite in einem " Berechnungsfeld " zusammen bauen und dann in das Feldtyp " Link " schreiben lassen . Das Skript kommt unter " Einen Eintrag erstellen / Vor dem Speichern des Eintrages " . Für " v1undv2" muss der Berechnungsfeldname eintragen und "URL" ist das Linkfeld .

Hi there
You can assemble the name of the website in a "calculation field" and then have it written in the field type "Link". The script comes under "Create an entry / Before saving the entry". For "v1undv2" the calculation field name must be entered and "URL" is the link field.

var e = entry()
var url = e.field("v1undv2")
e.set("URL",url)

Peter Schwarz

unread,
Jan 30, 2020, 9:13:19 AM1/30/20
to mementodatabase
Hallo Ernst,

Danke für Deine Antwort. Hatte mir schon gedacht, dass es über JavaScript gehen würde.
Leider kenne ich mich mit Java nicht wirklich aus und mein Versuch es aus meinen eingangs genannten Feldern und Deinem JS-Vorschlag hat denn auch nicht funktioniert.

So gibt es bei mir jetzt vier Felder:
1. Feld "Link" als Textfeld mit der Vorbelegung des Basis-Textes "www.imdb.com/title/tt"
2. Feld "User_ID" als Ganzzahl (für den späteren Input der Film-Referenz-Nr.)
3. Feld V1undV2" als Berechnungsfeld mit der Formel:   concat ('# {Link}', '# {Title_ID}')
4. Feld "URL" als JavaScript-Feld mit Deiner Formel
    var e = entry()
    var url = e.field("V1undV2")
    e.set("URL",url)

Als Ergebnis für das Feld "V1undV2" wird dabei der folgende Inhalt ausgegeben
     For input string: "www.imdb.com/title/tt7286456"
     wobei der führende Text "For input string: " ja unerwünscht und überflüssig ist

Für das Feld "URL" gibt es die Fehlermeldung: 
    "TypeError: Cannot find function set in object [object Entry]. (field.js#3)

Irgendwas ist also noch falsch, was ich auch nach einigem Probieren mit verschiedenen Varianten der Feld-Definitionen bisher nicht hingekriegt habe.

Ein Hinweis, wo der Fehler in meiner Feld-Definition steckt, ist also sehr willkommen ;=)

Danke vorab und Gruß
Peter




Ernst Moser

unread,
Jan 30, 2020, 1:32:28 PM1/30/20
to mementodatabase
Hallo
Im Berechnungsfeld unter dem Feld der Formeleingabe gibt es die Möglichkeit die Ausgabe auf Text umzustellen. Das Vierte Feld URL ist kein JavaScript Feld sondern muss den Feldtyp "Link "aufweisen.

Ernst Moser

unread,
Jan 30, 2020, 1:52:45 PM1/30/20
to mementodatabase
Hallo
Du muss einen Auslöser machen in den kommt das Skript . so geht das .
Rechte Leiste " JS " sympol auswählen
mit Blauen Plus einen Neuen eintrag erstellen . Auslöser
Zeile 1 ( Ereignes ) Einen Eintrag erstellen
Zeile 2 ( Phase ) Vor dem Speichern des Eintrages
Zeile 3 Das Skript einschreiben .
Mit Hacken speichern
So wird das Skript bei einen Neuen Eintrag / Vor den Speicher ausgefürt .Wenn du den Eintrag änderst wird das Skript nicht ausgefürt und es bleibt alles beim Alten .
Beim Berechnungsfeld kanst du unter " Einstellungen für die Anzeige / Anzeigen als / " auswählen " Verstecktes Feld " . somit wird das Berechnungsfeld nicht angezeigt .

Peter Schwarz

unread,
Jan 30, 2020, 6:11:43 PM1/30/20
to mementodatabase
Hallo Ernst,

Danke nochmals für Deine sehr ausführliche Erklärung. Jetzt habe ich es hingekriegt.
War mir vorher nicht so klar, wie das mit den Scripten in MemDB funktioniert. 
Mit diesem Beispiel habe ich doch einiges verstanden. Danke daher vielmals !!!


Bei dieser Gelegenheit wäre es nett, wenn Du vielleicht auch nochmal eine Blick auf meine Frage hier im Forum aus dem vorigen Jahr wirst, die leider bisher noch keine Lösung gefunden hat. Diese findet sich hier:




Ernst Moser

unread,
Jan 31, 2020, 1:07:24 PM1/31/20
to mementodatabase
Hallo Peter
Habe mir dein "anderes Problem"angeschaut . Es ist möglich einen Text in ein Feld schreiben zulassen und das an Bedingungen zu knüpfen . Kannst du eine Vorlage in die Cloud stellen . ( Datenbamk bearbeiten / 3 Punkte Rechts / Teilen / " Teile Vorlage über den Online Katalog " Name und Katerlog auswählen , Beschreibung eingeben . Du bekommst dann eine Linkadresse angezeigt ( http://lips.mobi/t/ ......), die teilst du mir mit . Dann kann ich mit der Vorlage weiter Arbeiten . Was es tun soll muss ich auch wissen .
Ps : Du bringst es Persönlich vorbei . Meine Koratinaten sind N 45 E 13,5 . :) Von wo bist du ?

Peter Schwarz

unread,
Feb 1, 2020, 6:16:24 AM2/1/20
to mementodatabase
Moin, moin,

Dank meiner neuen Erkenntnisse, müsste ich das jetzt eigentlich in vergleichbarer Weise hinkriegen, indem ich einfach eine Variable so fülle, wie ich es brauche. Wenn es funktioniert, kann ich auch das Template hochladen. 

Was mir dagegen noch nicht gelungen ist, ist Dein kleines JavaScript in eine Bedingung zu bringen, da mein Zielfeld jetzt immer gefüllt wird, obwohl es vom Inhalt eines anderen (numerischen) Feldes abhängig ist. Aber daran bin ich noch dran, vielleicht gelingt es mir ja noch ;=)

Beste Grüße einstweilen aus 
52° N, 13° O
Reply all
Reply to author
Forward
0 new messages