select im Zusammenhang mit einer Suche
Ich stehe einmal wieder auf dem Schlauch, es mag an der Hitze liegen, wer weiß das schon.
Ich habe das folgende Script hier aus dem Forum für mein Dashboard auf meine Bedürfnisse angepasst.
---
let SuchName := 'Keyword Search';
if cnt(select BOOKS where BookName = SuchName) > 1 then
let myID := dialog("Mehrere Datensätze gefunden", "Es wurden mehrere Bücher gefunden", (select BOOKS)[BookName = SuchName].text(Year));
popupRecord(first((select BOOKS)[BookName = SuchName and text(Year) = myID]))
else
if cnt(select BOOKS where BookName = SuchName) = 1 then
popupRecord(first(select BOOKS where BookName = SuchName))
else
alert("Ein Datensatz mit dem Buchtitel " + 'Keyword Search' + " wurde nicht gefunden!")
end
end
---
mir geht es um das Feld .text(Year) das bei mehreren Treffern bei der Suche das Auswahlkriterium für die Dialogfunktion darstellt.
Diese Feld würde ich gerne durch den Namen des Autors als wesentlich eindeutigeres Kriterium ersetzen. Der Name des Autors ist jedoch in der verknüpften Tabelle AUTHORS enthalten und nicht in der Tabelle BOOKS auf die sich die Suche bezieht. BOOKS und AUTHORS sin N:1 verknüpft. Lege ich in Books ein Textfeld Autor an und schreibe dort den Namen hinein, kann ich .text(Year) durch .Autor ersetzen und das funktioniert. Lege ich in Books ein verstecktes f(x)Feld an um mit select(AUTHORS).Fullname den Autor in der Bookstabelle zu haben, dann bekomme ich da nur ein Array wo alle Autoren drin stehen.
Gibt es dafür eine Lösung wie ich direkt auf die Verknüpften Werte zugreifen kann oder einen Workaround der mir die passenden Autoren aus dem Array entsprechend der Suchkriterien rausholt?
Wie immer zu Dank verpflichtet
Wolfgang
2 Antworten
-
Hallo Wolfgang,
bei verknüpften Tabellen musst du select weglassen.
let myID := dialog("Mehrere Datensätze gefunden", "Es wurden mehrere Bücher gefunden", (select BOOKS)[BookName = SuchName].AUTHORS.Fullname);
Leo
-
Danke, das ist alles ganz einfach, wenn man die kleinen Geheimnisse kennt.
Wolfgang