popupRecord suche nach bestimmtem Datensatz
Hi zusammen,
hab noch eine Frage zur popupRecord Funktion.
Ich würde gerne aus einer anderen Tabelle einen Datensatz aufpoppen lassen der aber nicht die Festgelegte Nummer des Datensatzes ist sondern einen bestimmten Datensatz suchen. Habe 2 Felder: 'Name' und 'Nachname' und den Button 'Datensatz suchen'. Würde dann gerne den Datensatz einer Tabelle öffnen der mit den Feldern übereinstimmt. Oder geht das nicht weil Theoretisch die Datensätze doppelt angelegt sein könnten? Danke vorab für Eure Tipps
9 Antworten
-
Guten Morgen. Doch, das geht, aber es kann natürlich immer nur ein Datensatz geöffnet werden, und da nimmt man in der Regel den ersten gefundenen. Der Code für die Schaltfläche könnte so aussehen (TABELLE durch den tatsächlichen Namen der Tabelle erestzen):
let SuchName := Name;
let SuchVorname := Vorname;
let myID := first(select TABELLE where Name = SuchName and Vorname = SuchVorname))
if myID != null then
popupRecord(myID)
else
alert("Ein Datensatz mit dem Namen " + Vorname + " " + Nachname + " wurde nicht gefunden!")
end
-
Klappt! Sogar besser als gewünscht mit der Meldung!! Super, Vielen Dank!
-
theorethisch kann man bei Dubletten einen Dialog starten und dem Benutzer die Auswahl geben, was er öffnen möchte. Dafür muss man ein eindeutiges Datenfeld festlegen z.B. Geburtstag. Dann wäre die Formel für einen Button:
---
let SuchName := Name;
let SuchVorname := Vorname;
if cnt(select TABELLE where Name = SuchName and Vorname = SuchVorname) > 1 then
let myD := dialog("Mehrere Datensätze gefunden", "Es wurden mehrere Personen gefunden", (select TABELLE)[Name = SuchName and Vorname = SuchVorname].text(Geburtsdatum));
popupRecord(first((select TABELLE)[Name = SuchName and Vorname = SuchVorname and text(Geburtsdatum) = myD]))
else
if cnt(select TABELLE where Name = SuchName and Vorname = SuchVorname) = 1 then
popupRecord(first(select TABELLE where Name = SuchName and Vorname = SuchVorname))
else
alert("Ein Datensatz mit dem Namen " + Vorname + " " + Name + " wurde nicht gefunden!")
end
end
---
So werden bei mehreren gefundenen Personen auch mehrere Buttons mit Geburtsdatums angezeigt.
Die Anzeige kann man natürlich aufhübsche, muss man aber bedenken, dass die Buttons im Dialog nicht besonders groß sind.
Leo
Leo
-
Leos Variante ist quasi die Luxus-Version! ;)
-
Stimmt,
bei Namen ist es vielleicht nicht so spannend. Ich habe bei uns eine "Artikelschnelleingabe". Die Artikel sind etwa so aufgebaut : XXXX-YYYY. Die Ersten 4 Zahlen sind eigentliche Artikel und die Letzten - die Gebindevarianten. Der Benutzer tippt die 4 Zahlen und klick auf OK. Wenn es nur eine Gebindevariante gibt, wird der Artikel in die Bestellung übernommen, bei mehreren erscheint der Dialog. Sehr praktisch.
Leo
-
Ja, mit Luxus meinte ich auch nicht überflüssigen Schnickschnack, sondern eine gute, absolut sinnvolle Zusatzfunktion. Auf die Idee, das zusätzliche Suchriterium ggf. direkt in den Dialog einzubinden, wäre ich so nicht gekommen. Man lernt halt jeden Tag dazu.
-
Hallo zusammen
Der Code funktioniert super
Kann ich eine solche Abfrage auch über mehrere Tabellen ausführen?
à la: select TABELLE and TABELLE2 and TABELLE3...if cnt(select TABELLE and TABELLE2 and TABELLE3 where Name = SuchName and Vorname = SuchVorname) > 1 then (aber so klappt es nicht :)
Oder wie kann ich das sonst lösen wenn ich mit einer Abfrage mehrere Tabellen durchsuchen möchte?Danke & LG
-
Hi Marcel,
AFAIK nein, nur so:
if cnt(select TABELLE where Name = SuchName and Vorname = SuchVorname) + cnt(select TABELLE2 where Name = SuchName and Vorname = SuchVorname) + cnt(select TABELLE3 where Name = SuchName and Vorname = SuchVorname) > 1 then
lg, Torsten
-
Top, danke! LG
Content aside
-
1
„Gefällt mir“ Klicks
- vor 3 JahrenZuletzt aktiv
- 9Antworten
- 2828Ansichten