Reinfolge aus Datenbank sinnvoll darstellen



  • Hallo liebe C++ gemeinde,

    Ich habe eine Datenbank in der eine Spalte namens "Reinfolge" existiert.
    Dort stehen zahlen von 0 - 99 drin. Jetzt soll der Nutzer die Reinfolge der Datensätze selber bestimmen können. (Die datensätze sollen zb nach dieser Reinfolge sortiert / Abgefragt werden)
    Nunn stellt sich für mich die Frage nach einem Sinnvollen eingabekonzept. Ich dachte zu erst an eine ComboBox in der ich einfach alle möglichen Zahlen (0 - 99) aufliste und die wechlche sich in der Spalte "Reinfolge" befinden aus der ComboBox entferne. Ist diese Idee gut ? Wie würdet ihr ein solches vorhaben Realisieren ?

    Danke
    TheGeek



  • Nö halte ich für keine gute Idee. Was ist, wenn der User sich mal verklickt und die falsche 'Reihenfolge' ausgewählt hat? Dann kann er das nicht mehr ändern.
    Ich hab sowas noch nicht gemacht, aber mein erster Versuch wäre die Daten in einem StringGrid darzustellen, dann kann der User die Datensätze mit der Maus verschieben. Den Wert Reihenfolge sieht er dann gar nicht mehr, der existiert dann nur noch in der Tabelle für den Select zur Ausgabe der Datensätze.
    Die geänderte Reihenfolge würde ich dann erst beim Beenden des Programms zurück in die Tabelle schreiben (kommt aber drauf an, ob Du diese Sortierung noch an anderer Stelle brauchst).



  • Ich mein die reinfolge via Drag&Drop zu ändern klingt zwar gut ist aber für mein Vorhaben zu aufwendig ... Ja ich geb dir recht mit dem Entfernen der benutzen Zahlen aus der ComboBox ist wirklich nicht so gut ... gibs noch andere vorschläge ?



  • Das kann das StringGrid, ohne dass Du dafür etwas anderes machen mußt, als im StringGrid, unter Options, RowMoving auf true zu setzen. Dann kanst Du die Zeilen verschieben. Am Ende brauchst Du nur den (die) PK-Wert(e) aus den TStringGrid::Cells zu lesen und ein Update auf das Feld Reihenfolge zu machen.
    Das funktioniert allerdings nur wenn TStringGrid::FixedColumns einen Wert > 0 hat.


Log in to reply