Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Rangliste sortieren nach...

Empfohlene Antworten

Veröffentlicht

Hallo,

suche Lösung für meine WM2010-Tipp-Programm Problematik:

Ich habe eine kleine Gridtabelle die mit einer Datenbank gebunden ist.

3 cols (0-Col ist die Überschrift-Col, gefolgt von Col1 und Col2)

6 rows (0-Row ist wieder eine Überschrift, gefolgt von Row 1-5)

Col1 = Spieler

Col 2 = Punkte

Die Punkte für den jeweiligen Spieler passen, jetzt will ich die aber in einer Art Rangliste angezeigt haben, d.h. Der Spieler mit der höchsten Punktzahl soll den 1 Platz belegen, gefolgt von Platz 2 usw.

Wie also kann ich die 0-Col mit statischen Werten wie Platz 1 bis xxx füllen

und trotzdem meine Spieler nach höchster Punktzahl sortieren.

Ich hab da was mit fg.select und fg sort = flexDortGenericAscending ausprobiert aber des funzt net so wie ich will.

(die Punkte parameter übergebe ich direkt in den Grid, d.h. ich speicher es nicht irgendwo in einer Datenbank)

Wer kann mir weiterhelfen, die WM fängt ja in ein paar tagen an ;-)

Zur besseren Verständnis hier die Quellcodes:

Private Sub Form_Load()

Dim strSql As String

Dim rs As New ADODB.Recordset

Dim i As Integer

On Error GoTo Form_Load_err

rs.CursorLocation = adUseClient

'i = 1

strSql = "Select * From UserName order by UserName.Punkte desc"

rs.Open strSql, adoCon, adOpenStatic, adLockReadOnly

Do While Not rs.EOF

gridHighscore.AddItem vbTab & _

GetField(rs, "UserName") & vbTab & _

GetPunktestand(GetField(rs, "id"))

'i = i + 1

rs.MoveNext

Loop

'1, 1, 1, 2

gridHighscore.Select 1, 2

'gridHighscore.ColSort(0) = flexSortNone

gridHighscore.Sort = flexSortGenericDescending

'gridHighscore.Sort 0, gridHighscore.Rows - 1, 0, 1

rs.Close

Sorry, mein Fehler... Bin normalerweise in der Systemadministration...

Bin nur aus Spass und aus persönlicher fortbildungsinteresse bei den Programmierern gelandet ;-) also habt ein bischen Geduld, ich mach das erst seit 2 Wochen.

Es ist VSFlexGrid Pro 7

Hallo,

dein (auskommentierter) Ansatz mit dem Zähler i ist doch schon ok.

Diesen Zähler weist du innerhalb des do...loop für die aktuelle Zeile und passende Spalte zu und erhöhst ihn am Ende der Schleife um 1.

Gruß Martin

Hi Martin,

hab's letztendlich anders gelöst. Ich habe eine statische Col (grau markiert) mit den Rängen Platz 1 bis xx angelegt. die ändert sich dann nie. Die anderen Cols tue ich order by Punktestand und Name asc.

Trotzdem danke für Deine Überprüfung.

Hmm...

da hast Du vermutlich recht, dann müssen wir privat eine Lösung für dieses logisches Problem lösen. ;)

P.S. ich hab ein neues Problem

-> siehe neusten Eintrag: Gridtabelle oder so ähnlich

anscheinend denken die anderen Tipper auch so wie Du...

Die wollen bei Punkte Gleichheit auch den geteilten xten-Platz haben.

Jetzt ist nur die Frage: Nur wie? Sprach Zeus????

Bitte um schnelle Antwort, noch 1x schlafen bis zur WM:bimei

Genauso, wie ich oben geschrieben habe, allerdings schreibst du den Zähler nur ins Grid, wenn sich die Pkt.zahl zur vorhergehenden unterscheidet, sonst nimmst du die Platznr. des Vorgängers. Hierbei muß natürlich das Grid vorab nach Pkt.zahl sortiert sein.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.