Schaltfläche Nächster Datensatz
Hallo ich habe für die Schaltfläche im Webinar Team dieses Script gefunden
Schaltfläche Nächste Datensatz nach ID
let myId := this.Nr;
openRecord(first(select Books where number(Nr) > number(myId)).Nr)
Jetzt springt der Datensatz von ID zu Id ich würde gerne nachdem ich die Spalte BookName sortiert habe, das der Datensatz nach dieser Spalte entsprechend alphabetisch den nächsten Datensatz aufruft. Wie sieht denn dann das Script aus.
Danke für die Hilfe
Wolfgang
17 Antworten
-
Gibt es hierzu keine Lösung????
-
Hallo Wolfgang,
Hier mal eine ungetestete Idee:
Wenn Du immer nach BookName sortierst würde evtl. eine berechneter Index (angestossen als Änderungstrigger im Feld BookName) helfen?
var myIndex := 1;
for i in Books order by BookName do
i.Index := myIndex;
myIndex := myIndex+1;
end
dementsprechend könntest Du im Button zum nächsten springen mit:
let myId := Index;
openRecord(first(select Books where Indexx > myId)
lg, Torsten
-
Hallo Torsten, o. K. ich verstehe den Code.
Wenn ich das bei BooksName bei (Nach Änderung folgendes Script eingeben) eingebe, bekomme ich eine Fehlermeldung „ Eine Tabellenspalte wurde nicht gefunden: Books in Zeile 2, Spalte 14“
Ich befinde mich in der Tabelle Books, auch wenn diese in der linken Spalte nicht auftaucht.
Worin liegt jetzt mein Fehler.
Noch eine Frage wo sehe ich beim iPad den Spaltenanzeiger, der in der Desktopversion rechts unten ist (1/14)
Danke
Wolfgang
-
Hallo Wolfgang,
sorry, sollte heissen:
for i in select Books order by BookName do
lg, Torsten
-
var myIndex := 1;
for i in select Books order by BookName do
i.(Index := myIndex);
myIndex := myIndex + 1
endGibt leider Fehlermeldung Index in Zeile 3, Spalte 12
noch eine Idee???
-
Hallo Wolfgang,
versuch mal beim Button folgende Formel:
---
let myFlag := false;
let myN := BookName;
let myArr := for i in (select Books) order by BookName do
if not myFlag and i.BookName != myN then
void
else
if i.BookName = myN then myFlag := true else i end
end
end;
openRecord(first(myArr))
---
Leo
-
Hallo Leo perfekt, ich verstehe den Code zwar nicht, aber es funktioniert super. Jetzt bitte noch für Vorherigen Datensatz
Was muss ich da ändern????
Meine Vermutung ist nur eine Änderung bei openRecord statt first.....????
Wolfgang
-
Statt first last geht nicht
-
last() sollte gehen, wenn first() geht.
Birger
-
Dann springt er nur zum letzten Datensatz aber nicht zu dem davor
-
Die Formel lautet:
---
let myFlag := false;
let myN := BookName;
let myArr := for i in (select Books) order by BookName do
if not myFlag and i.BookName != myN then
i
else
if i.BookName = myN then myFlag := true end
end
end;
openRecord(last(myArr))
---
Leo
-
Wow Leo Danke funktioniert perfekt!!!!
Vielleicht könnte Ninox hier im Forum einen separaten Bereich einrichten, wo derartige Lösungen von Dir und anderen strukturiert abgelegt werden. Das würde bestimmt vielen helfen.
Wolfgang
-
Wird schwierig sein. Ninox ist so vielseitig und jede Anforderung ist sehr individuell. Der Copytexter hat eine wunderbare Datenbank 0001_Ninox_Referenz im Webinar Team. Dort sind auch anwendungsbeispiele aufgelistet. Ich werde diese Lösung auch dort platzieren.
Leo
-
Ja die Datenbank 0001_Ninox_Referenz im Webinar Team ist für Fortgeschrittene sicherlich hilfreich. Für Newbies, so wie für mich, die sich erst an die Sriltsprache heran tasten zu komplex.
Aber wie so oft, je mehr man sich damit beschäftigt, desto besser wird es.
BG Wolfgang
Content aside
- vor 1 JahrZuletzt aktiv
- 17Antworten
- 4218Ansichten
-
2
Folge bereits