0

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

null
    • Hotel Grand Ferdinand
    • Tobias_Grussmann
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Gibt es so etwas wie eine RANG Funktion in Ninox

    =RANG(ZAHL;BEZUG; [Argument])

    ??

    • Hotel Grand Ferdinand
    • Tobias_Grussmann
    • vor 2 Jahren
    • Gemeldet - anzeigen

    kann ich das in einem Array  berrechnen ?

    • Torsten_Stang.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    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"

    • Torsten_Stang.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    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

    • Hotel Grand Ferdinand
    • Tobias_Grussmann
    • vor 2 Jahren
    • Gemeldet - anzeigen

    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 end

    first(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 end

    Nr 3

    if if 'nr 1' = '1. Art. Nr.' or 'nr 2' = '2. Art. Nr.' then
    0 else 1 end = 1 then Nr else null end

    first(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 end

    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

    first(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 end

     

    usw...

    Wie kann ich das nun schlanker machen?

    • Hotel Grand Ferdinand
    • Tobias_Grussmann
    • vor 2 Jahren
    • Gemeldet - anzeigen

    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

    • Torsten_Stang.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    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?

    • Hotel Grand Ferdinand
    • Tobias_Grussmann
    • vor 2 Jahren
    • Gemeldet - anzeigen

    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.

    test 1

    test 2

    test 3

    • Hotel Grand Ferdinand
    • Tobias_Grussmann
    • vor 2 Jahren
    • Gemeldet - anzeigen

    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

    • Hotel Grand Ferdinand
    • Tobias_Grussmann
    • vor 2 Jahren
    • Gemeldet - anzeigen

    den Text 'Text (Inv)' bekomme ich durch...

     

    first(for i in select 'Inventory / Store' do
    i.'Artikel / Inv'
    end)

    • Torsten_Stang.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Ö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...

    • Hotel Grand Ferdinand
    • Tobias_Grussmann
    • vor 2 Jahren
    • Gemeldet - anzeigen

    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...

    • Hotel Grand Ferdinand
    • Tobias_Grussmann
    • vor 2 Jahren
    • Gemeldet - anzeigen

    könnte man in  diesem Ansichts feld den Artikel einzeln (unabhängig) und auch mehrfach erfassen?

    • Hotel Grand Ferdinand
    • Tobias_Grussmann
    • vor 2 Jahren
    • Gemeldet - anzeigen

    sowie auch hier... ?

    test 1

    • Hotel Grand Ferdinand
    • Tobias_Grussmann
    • vor 2 Jahren
    • Gemeldet - anzeigen

    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

    • Torsten_Stang.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    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.

    • Hotel Grand Ferdinand
    • Tobias_Grussmann
    • vor 2 Jahren
    • Gemeldet - anzeigen

    ja genau Torsten es sollte sehr GUI sein... sodas ich jedem ein Tablett gebe kann und sage, "Bitte zählen" .

    • Hotel Grand Ferdinand
    • Tobias_Grussmann
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hab so etwas mit Excel und VBA schon im einsatz (Reibungslos) jedoch ist xlsm eben auch nur Excel und keine konstante online DB.

    • Torsten_Stang.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    ... 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 ... :-/

    • Hotel Grand Ferdinand
    • Tobias_Grussmann
    • vor 2 Jahren
    • Gemeldet - anzeigen

    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.

    • Hotel Grand Ferdinand
    • Tobias_Grussmann
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Kann man mit NINOX Berrechnungsprozesse abgrenzen....?

    • Torsten_Stang.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    "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.

    • Hotel Grand Ferdinand
    • Tobias_Grussmann
    • vor 2 Jahren
    • Gemeldet - anzeigen

    ok Danke Torsten.

    • Hotel Grand Ferdinand
    • Tobias_Grussmann
    • vor 2 Jahren
    • Gemeldet - anzeigen

    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

    • Torsten_Stang.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Feldbezeichnungen ggfls. anpassen:

     

    let my:=this;
    (select Items) [contains(lower('Volltext Suche'),lower(my.Artikelsuche))]

Content aside

  • vor 2 JahrenZuletzt aktiv
  • 30Antworten
  • 860Ansichten