Nach Nummer Sortieren
Es gibt ja die Funktion mit FIRST, LAST, CONCAT usw.
Habe in einer Funktion mehrer Zahlen und möchte diese nun mit einer Funktion Sortieren.
Auflistung
concat(for i in (select Items)[Vorhanden > 0] do
i.number('Art. Nr.')
end)
First
first(for i in (select Items)[Vorhanden > 0] do
i.'Art. Nr.'
end)
Last
last(for i in (select Items)[Vorhanden > 0] do
i.'Art. Nr.'
end)
Hat jemand eine Ahnung wie man bei Ninox das Sortieren könnte sprich 2. 3. 4. 5. usw...
Max sind es 10 Positionen (Top 10). erste und letzte sind ja kein problem... aber wie komme ich zu Nr. 2 - Nr. 9
30 Antworten
-
Gibt es so etwas wie eine RANG Funktion in Ninox
=RANG(ZAHL;BEZUG; [Argument])
??
-
kann ich das in einem Array berrechnen ?
-
die Doku sagt:
"You may also order by one field while returning another:
(select Invoice) order by Amount
This will return the id's of all Invoice records in the ascending order of Amount.
select Invoice[Status=2] order by Amount
Same but limiting the returned id's to a status of 2"
-
zu früh abgesandt, sorry. Um beim Beispiel in der Doku zu bleiben also:
let myArray := select Invoice[Status=2] order by Amount
for i in range(0,10) do
item(myArray,i).Amount
end
-
ok und in meinem Fall sollte dann wie sein
Wenn Nummer Vorhanden größer wie 0 dann gib mir Anhand der [Nr] alle diese Nr. und sortiere der Größe nach...?
habe eine Funktion gebaut aber da stürzt die Berrechnung ab... (Überlastung)
NR 2
if if 'nr 1' = '1. Art. Nr.' then
0 else 1 end = 1 then Nr else null endfirst(for i in (select Items)[Vorhanden > 0] do
i.'nr 2' end)if 'nr 2' = first(for i in (select Items)[Vorhanden > 0] do
i.'nr 2' end) then 2 endNr 3
if if 'nr 1' = '1. Art. Nr.' or 'nr 2' = '2. Art. Nr.' then
0 else 1 end = 1 then Nr else null endfirst(for i in (select Items)[Vorhanden > 0] do
i.'nr 3' end)if 'nr 3' = first(for i in (select Items)[Vorhanden > 0] do
i.'nr 3' end) then 3 endNr 4
if if 'nr 1' = '1. Art. Nr.' or 'nr 2' = '2. Art. Nr.' or 'nr 3' = '3. Art. Nr.' then
0 else 1 end = 1 then Nr else null endfirst(for i in (select Items)[Vorhanden > 0] do
i.'nr 4' end)if 'nr 4' = first(for i in (select Items)[Vorhanden > 0] do
i.'nr 4'
end) then
4
end
usw...
Wie kann ich das nun schlanker machen?
-
für die Berrechnung der Neuen Nr (zb 4) sind aktuell 3 Felder...
1.) nr 4
if if 'nr 1' = '1. Art. Nr.' or 'nr 2' = '2. Art. Nr.' or 'nr 3' = '3. Art. Nr.' then
0 else 1 end = 1 then Nr else null end
2.) 4. Art. Nr.
first(for i in (select Items)[Vorhanden > 0] do
i.'nr 4' end)
3.) Neue Nummer 4
if 'nr 4' = first(for i in (select Items)[Vorhanden > 0] do
i.'nr 4' end) then 4 end
-
Beim besten Willen - ich blick' gerade weder durch Dein Datenmodell noch was Dein Ziel ist. Kannst Du's mal erklären, was da wie und warum sortiert werden soll?
-
Hallo Torsten.
Es gibt eine Tabelle (Inventory) und es gibt eine Tabelle (Items) nicht verknüpft
in Inventory wird ein Suchbegriff in einem Textfeld eingegebn.
dieser Suchbegriff erscheint nun in allen Datensätzen in Items.
Dieser suchbegriff (buchstaben) wird nun mit einem Text verglichen und in beliebigen Positionen gesucht.
Das funktioniert soweit ganz gut. nun habe ich bei jedem Artikel eine Treffer (Vorhanden) oder auch nicht.
Die Artikel die einen Treffer erziehlen, werden nun Anhand einer Sortierung und einer "Neuen Nummer" wieder als Text zu (inventory) zurückgegeben.
Das funktioniert soweit auch ganz gut, jedoch braucht die mega Formel der Sortierung gewaltige Rechenleistung.
-
in Vorhanden überprüfe ich mit
if 'Text (Inv)' = null then
0
else
var myCOUNT := 0;
var myTEXT := lower('Volltext Suche');
while index(myTEXT, text(lower('Text (Inv)'))) != -1 do
myCOUNT := myCOUNT + 1;
myTEXT := substr(myTEXT, index(myTEXT, text(lower('Text (Inv)'))) + 1)
end
;
myCOUNT
end -
den Text 'Text (Inv)' bekomme ich durch...
first(for i in select 'Inventory / Store' do
i.'Artikel / Inv'
end)
-
Öhm, Du möchtest also in der Tabelle 'Inventory' die Datensätze aus 'Items', welche Deinen Suchkriterien entsprechen, anzeigen?
Das würde ich schlicht mit dem Gestaltungselement "Ansicht" lösen...
-
Ja das hab ich auch zuerst so lösen wollen,... nur ist die Sache die, das ich die schnellerfassung (Nummern feld) neben der gefunden Text somit auch mehrfach auf einmal erfassen kann (trigger bei änderung) und nur die tastatur brauche...
-
könnte man in diesem Ansichts feld den Artikel einzeln (unabhängig) und auch mehrfach erfassen?
-
sowie auch hier... ?
-
Wenn es eine andere möglichkeit gibt für eine "Schnellerfassung" ?
Mein Model funktioniert soweit auch gut, jedoch braucht die ((MEGA)) Formel der Sortierung in der im der Erste mit "First" Abgegrenzt wird ziemliche Rechenpower...
und da dachte ich mir diese Array Funktion zur Sortierung statt der Zwiebelschalen Step für Step Funktion... :-))) wäre sicher schneller der
-
Arrrgl, jetzt versteh' ich, worauf Du hinauswillst... ;)
Das Ansicht-Element ist (nomen est omen) ausschließlich zur Ansicht von Datensätzen gedacht. Du könntest aber sehr wohl das erste Item aufrufen und Dich von dort mittels Pfeiltasten durch die Datensätze der Ansicht bewegen, das geht auch, wenn Du mit dem Cursor gerade in einem spezifischen Feld (z.B. für Deinen Inventur-Wert) bist. Das ist zwar funktional, aber halt keine narrensichere GUI, so wie Du es offenbar vor hast.
-
ja genau Torsten es sollte sehr GUI sein... sodas ich jedem ein Tablett gebe kann und sage, "Bitte zählen" .
-
Hab so etwas mit Excel und VBA schon im einsatz (Reibungslos) jedoch ist xlsm eben auch nur Excel und keine konstante online DB.
-
... und die Daten aus Ninox exportieren und das Ergebnis wieder nach Ninox importieren wäre keine Option?
Ich denke mit Ninox wirst Du so einfach keine zufriedenstellende GUI hinbekommen ... :-/
-
Ja das mit importieren und exportieren wäre eine Option. Mein Gedanke wäre halt weg von XLSM zu einer Workflow effizienten ALLES in EINEM Oberfläche.
-
Kann man mit NINOX Berrechnungsprozesse abgrenzen....?
-
"alles in einer Oberfläche" - das wird mit Ninox wie gesagt so nicht machbar sein. Wenn Du einen etablierten Prozess hast, dürfte der Weg über Ex- und Import der beste für beide Seiten (Entwickler und Anwender). Den Import in eine separate Tabelle, welche per Skript durchlaufen werden kann und fertig ist die Laube.
-
ok Danke Torsten.
-
Torsten könntest du mir bitte noch erklären wie ich die Ansicht konfiguriere damit ich sowie du beschrieben hast aufgrund meiner Text eingabe die Artikel die zutreffen in der Ansicht habe.
Datensätze aus Tabelle (Items)
Suche aus Textfeld (Artikelsuche)
Gross & Kleinschreibung ignorieren
Unabhägig von Textanfang oder Textmitte
-
Feldbezeichnungen ggfls. anpassen:
let my:=this;
(select Items) [contains(lower('Volltext Suche'),lower(my.Artikelsuche))]
Content aside
- vor 3 JahrenZuletzt aktiv
- 30Antworten
- 889Ansichten