Frage zum Bedienelement ANSICHT
Wenn ich eine Suchleiste kreiere, die wiederum ein Gestaltungselement Ansicht befüllt, ergibt sich hier für mich eine wichtige Frage. Wenn ich daraufhin eine Zeile der ausgegebenen Möglichkeiten dieser Ansicht öffne, popt von rechts kommend ein Formularfeld mit der Auswahl auf. wenn ich die Ansicht mit select Tabelle filtere, und beide Tabellen keine Verknüpfung haben, gibt es dann trotzdem eine Möglichkeit von der ausgewählten Formularansicht, auf die jetzt darunter liegende Ebene mit dem Ansicht Bedienelement zu zugreifen, ohne eine Verknüpfung anlegen zu müssen?
Danke für eure Hilfe, R
3 Antworten
-
Kurzer Erfahrungsbericht auch zum Thema Ansichten und Performance:
Meine Erfahrung beruht auf Tabellen mit sehr vielen Datensätzen.. 10000+
Wenn ich aus einer Datenbank viele unterschiedliche Tabellen mit einem Textfeld durchsuchen möchte, dann kreiere ich ein Auswahlfeld mit X Möglichkeiten und X Ansichten, die jeweils nur dargestellt werden, wenn das Auswahlfeld auf passende Position gestellt ist.
Das funktioniert auch wunderbar, allerdings habe ich bemerkt, dass wenn ich die Formel der jeweiligen Ansicht in etwa so anlegen:
let my := this;
let FILTER := select(Tabelle)[contains(Name), my.Suchefeld];
if Auswahl = 1 then
FILTER
end;...die Performance durchi X Ansichten sehr leidet (Ninox beginnt langsam zu werden)
besser funktioniert folgendes:
let my := (Suchefeld);
if 'Suchen nach...' = 1 and Suchfeld != null then
(select TabelleX)[contains(lower(Text), my)]
endDie Ansichten werden auch nur dann angezeit, wenn das Suchfeld != null ist und die Auswahl auf der jeweiligen Position sitzt, ansonsten werden sie nicht dargestellt.
da Ninox hier anscheind bei einer Auswahl nur die Performance von einer Suche verbraucht. und mit der oberen Formel - egal bei welcher Auswahl - immer alle Ansichten durchsucht...
Ps. ich brauche deshalb X Ansichten, da unterschiedliche Spalten dargestellt werden müssen.
Solche Formel Optimierungen bringens anscheinend...Weiß jemand noch eine andere Möglichkeit?
Bei großen Datenbanken ist die GLOBALE Suche zu umfangreich. Ich würde hier auch gern ein SELEKITVES SUCHFELD haben. Bis dahin muss man es halt so umsetzen :)
LG Rene
-
Hallo Rene,
ist auch logisch, in dem ersten Code zwingst du Ninox zuerst alle +1000 Datensätze zu filtern (das braucht Zeit) und dann entscheiden ob Filter angewendet wird. in dem zweten Code prüft Ninox ganz schnell ob er überhaupt filtern soll und wenn Ja, dann macht er die Arbeit. Laut Entwikler sollte einsatz von like auch eine enorme Performanceverbesserung bringen.
---
let my := (Suchefeld);
if 'Suchen nach...' = 1 and my then
(select TabelleX)[Text like my]
end
---
wobei die Textsuche dann ab Wordanfang läuft.
Leo
-
Aha. Super, werd ich gleich mal probieren.
Wenn ich z.B. folgendes suche:
Vorname: Max
Nachname: Mustermanndann hab ich
let my:= Suchfeld;
select Tabelle[Vorname like my or Nachname like my]
Gut. Das funktioniert.
Was aber wenn ich mit dieser Technik nach "Mann" suche und als Ergebnis den Namen rausbekommen möchte.
kann ich das auch irgendwie so umsetzen?
Lg Rene
Content aside
- vor 5 JahrenZuletzt aktiv
- 3Antworten
- 1802Ansichten