Erstellung einer Rangliste - Brauche Hilfe
Hallo, ich bin hier ziemlich neu und nicht besonders bewandert mit den "speziellen" Möglichkeiten von Ninox. Vielleicht kann mir jemand helfen.
Ich habe ein Tabelle mit Umsätzen einzelner Vermittler. In meinem Dashboard möchte ich eine Rangliste erstellen. Diese soll nicht Umsatz sortiert sein, sondern nach der Anzahl der Verträge. Ich denke, dass der ein oder andere von euch eine weitaus elegantere Lösung hat, als die unten stehende. Das einzige, was bei mir bisher funktioniert ist folgendes, wobei die Umwandlung in ein Array von JSON-Objekten nur dazu dient, das Array zu sortieren:
let ArrResult := [""];
let Selection := (select XY order by Agent);
let Agent := first(Selection).Agent;
let Counter := 0;
for Record in Selection do
if Record.Agent = Agent then
Counter := Counter + 1;
else
let Arr := ["{ ""agent"":""" + Agent + """, ""counter"":" + Counter + """}"];
ArrResult := array(ArrResult, Arr);
Agent := Record.Agent;
Counter := 1
end
end;
let ArrJSON := for i from 0 to cnt(ArrResult) do
parseJSON(item(ArrResult, i))
end;
let List := for Item in ArrJSON order by number(counter) * -1 do
[Item.agent + " | " + Item.company + " | (" + Item.counter + ")"]
end;
join(List, "
")
9 Antworten
-
Hallo Thorsten. Die Idee über ein JSON object zu gehen ist clever. Falls du die Anzahl der Verträge über die Häufigkeit der Agents in der Tabelle bestimmst, sollte es auch so gehen. 1. das nicht ausgerichtete join() 2. ausgerichtete, simple html-Tabelle. Mirko
let uniqueName := unique((select xy).Agent); let result := (for i in uniqueName do { name: i, count: cnt(select xy where Agent = i) } end order by -number(count)); join(for j in result do j.name + " " + j.count end, " ");
let uniqueName := unique((select xy).Agent); let result := (for i in uniqueName do { name: i, count: cnt(select xy where Agent = i) } end order by -number(count)); html(--- <table>{ for j in result do } <tr><td>{ j.name }</td><tdt>{ j.count }</td></tr>{ end } </table> ---)
-
irgendetwas mache ich falsch :-( (Danke für deine Geduld)
let ArrJSON := [{
name: "Tom",
umsatz: 3
}, {
name: "Bill",
umsatz: 2
}, {
name: "Thea",
umsatz: 1
}];
rt := html(---
<table>{ for j in ArrJSON do }
<tr><td>{ j.name }</td><tdt>{ j.umsatz }</td></tr>{ end }
</table>
---) -
Aua! ein tag ist falsch! Da steht <tdt> statt <td>!
-
nochmals vielen Dank! Jetzt habe ich dies schönste Liste ever und viel gelernt. die "---" in html habe ich bisher noch in keiner Dokumentation gefunden, aber ich verstehe jetzt den Aufbau...
Content aside
- Status Answered
- vor 8 TagenZuletzt aktiv
- 9Antworten
- 42Ansichten
-
2
Folge bereits