Hallo zusammen!
Ich arbeite z.Z an einem Problem, das zwar gelöst ist, aber nicht besonders elegant. Vielleicht hat einer von Euch einen besseren Ansatz.
Ich habe ein DBGrid, in dem ich z.B. Artikeldatensätze für einen Bericht anzeige.
Jetzt möchte ich einen oder auch mehrere Datensätze (die Markiert werden(Multiselect)) innerhalb des Grid nach oben oder nach unten verschieben. Also die Reihenfolge der Datensätze ändern.
Die Datensätze sind innerhalb der Tabelle über einen Index sortiert. Dieser Index ist leider auch ein Schlüssel- darf also nicht mehrfach vorkommen.
Wie kann man die Datensatzposition innerhalb eines Record ändern.
Ein Ansatz ist z.B. die zu bewegenden Datensätze in ein ClientDataSet zu schreiben und in der orig. Tabelle zu löschen.
Dann per SQL in der Reihenfolge eine Lücke zu schaffen. Dann die Datensätze aus dem ClientDataset mit geänderter Reihenfolge in die Tabelle zurückschreiben.
Kann man die Datensatzpointer in einem ClientDataset auch direkt umhängen? Also den Vektor bearbeiten?
Oder kann man in einem TStringGrid mehrere Rows verschieben?
Ich bin für jeden Ansatz dankbar!
Danke in vorraus!
Ich arbeite z.Z an einem Problem, das zwar gelöst ist, aber nicht besonders elegant. Vielleicht hat einer von Euch einen besseren Ansatz.
Ich habe ein DBGrid, in dem ich z.B. Artikeldatensätze für einen Bericht anzeige.
Jetzt möchte ich einen oder auch mehrere Datensätze (die Markiert werden(Multiselect)) innerhalb des Grid nach oben oder nach unten verschieben. Also die Reihenfolge der Datensätze ändern.
Die Datensätze sind innerhalb der Tabelle über einen Index sortiert. Dieser Index ist leider auch ein Schlüssel- darf also nicht mehrfach vorkommen.
Wie kann man die Datensatzposition innerhalb eines Record ändern.
Ein Ansatz ist z.B. die zu bewegenden Datensätze in ein ClientDataSet zu schreiben und in der orig. Tabelle zu löschen.
Dann per SQL in der Reihenfolge eine Lücke zu schaffen. Dann die Datensätze aus dem ClientDataset mit geänderter Reihenfolge in die Tabelle zurückschreiben.
Kann man die Datensatzpointer in einem ClientDataset auch direkt umhängen? Also den Vektor bearbeiten?
Oder kann man in einem TStringGrid mehrere Rows verschieben?
Ich bin für jeden Ansatz dankbar!
Danke in vorraus!
Comment