AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datensatz Sortierreihenfolge ändern und verschieben
Thema durchsuchen
Ansicht
Themen-Optionen

Datensatz Sortierreihenfolge ändern und verschieben

Ein Thema von DevStar · begonnen am 14. Dez 2009 · letzter Beitrag vom 18. Dez 2009
Antwort Antwort
Seite 1 von 2  1 2      
DevStar

Registriert seit: 26. Aug 2007
79 Beiträge
 
#1

Datensatz Sortierreihenfolge ändern und verschieben

  Alt 14. Dez 2009, 10:11
Datenbank: Firebird • Version: 2.5 • Zugriff über: Delphi
Hallo,

ich habe ein dbGrid mit einer Spalte "Sortorder", d.h. in dieser Reihenfolge werden die Datensätze angezeigt.

SQL-Code:
Lfd. Nummer Name Vorname Sortorder
1 Müller Lieschen 1
2 Maier Peter 5 <---------
3 Schulze Jan 2
4 Werner Otto 3
5 Ellenberger Markus 4
Jettz möchte ich die Reihenfolge eines Datensatz verschieben, indem ich ihn nach oben oder unten verschiebe. Am besten über einen Button bzw. zwei Button.

In diesem Fall müssten sich die nachfolgenden Werte von Sortorder aber auch immer mitändern.

Ich habe das mal bei einer Paradox-DB gesehen und das ging dort sehr schnell.

Gruß DEVSTAR
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Datensatz Sortierreihenfolge ändern und verschieben

  Alt 14. Dez 2009, 10:12
Erweitere die Tabelle um ei entsprechendes Feld, nachdem du dann sortierst
Markus Kinzler
  Mit Zitat antworten Zitat
DevStar

Registriert seit: 26. Aug 2007
79 Beiträge
 
#3

Re: Datensatz Sortierreihenfolge ändern und verschieben

  Alt 14. Dez 2009, 10:13
Ja, das Feld Sortorder gibt es ja schon.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Datensatz Sortierreihenfolge ändern und verschieben

  Alt 14. Dez 2009, 10:28
Zitat von DevStar:
Ja, das Feld Sortorder gibt es ja schon.
Das dürfte nicht so leicht sein.
Wenn Du einen Datensatz verschieben möchtest musst Du ja bei allen Datensätzen das "Sortierfeld" in der Tabelle updaten.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Datensatz Sortierreihenfolge ändern und verschieben

  Alt 14. Dez 2009, 10:34
Ich mach das so, dass dieses Sortfeld ein flieskommafeld ist. wenn ich jetz en datensatz verschiebe nimm ich einfach den wert der nächsten und übernächsten und gib dem eintrag die hälfte davon.
Irgendwann gibts dann aber ne berechnungsgrenze, dann muss man einfach einmal mit ner funktion drüber und alles durchnummerieren.
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

Re: Datensatz Sortierreihenfolge ändern und verschieben

  Alt 14. Dez 2009, 10:39
Wieso bei allen? IMHO dürften doch die beiden auszutauschenden genügen, oder irre ich mich? Beispiel:
Code:
1 Erster DS
2 Zweiter DS
3 Dritter DS
4 Vierter DS
Wenn man nun z.B. 2 und 3 tauschen möchte, könnte das doch so funktionieren (erstes Update):
Code:
1 Erster DS
0 Zweiter DS //temporär auf 0 oder eine andere nicht existente Zahl
3 Dritter DS
4 Vierter DS
Zweites Update:
Code:
1 Erster DS
0 Zweiter DS
2 Dritter DS //alter Wert des "0"-DS
4 Vierter DS
Drittes Update:
Code:
1 Erster DS
3 Zweiter DS //alter Wert des anderen DS
2 Dritter DS
4 Vierter DS
In Reihenfolge dann:
Code:
1 Erster DS
2 Dritter DS
3 Zweiter DS
4 Vierter DS
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Datensatz Sortierreihenfolge ändern und verschieben

  Alt 14. Dez 2009, 11:03
Zitat von DeddyH:
Wieso bei allen? IMHO dürften doch die beiden auszutauschenden genügen, oder irre ich mich? ...
Im zweifell irrst immer Du
Ne, ich hatte erst einen halben Kaffee und da war mein "Gehirn" noch nicht auf voller Leistung.

Sharky meint dazu
DeddyH hat recht
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#8

Re: Datensatz Sortierreihenfolge ändern und verschieben

  Alt 14. Dez 2009, 11:09
Zitat von Sharky:
Ne, ich hatte erst einen halben Kaffee und da war mein "Gehirn" noch nicht auf voller Leistung.
Verständlich, da war ich Dir 1 1/2 Tassen voraus
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
DevStar

Registriert seit: 26. Aug 2007
79 Beiträge
 
#9

Re: Datensatz Sortierreihenfolge ändern und verschieben

  Alt 14. Dez 2009, 12:35
Zitat von DeddyH:
Wieso bei allen? IMHO dürften doch die beiden auszutauschenden genügen, oder irre ich mich?
Stimmt, 2 reichen.

Klappt nur nicht.....

Code für "Nach-Oben-Schieben" im Grid
Delphi-Quellcode:
      with DataModule.DataSet do
        begin
          Open;
          if Locate('SORTORDER', IntToStr(iSortorder), [loCaseInsensitive]) then
            iSortorder := FieldByName ('SORTORDER').AsInteger;


          iOldSortorder := iSortorder;
          iNewSortorder := iSortorder-1;

          sSQL_Befehl1 := 'UPDATE kunden SET sortorder = ' + IntToStr(iNewSortorder) + ' '+
                          'WHERE sortorder = ' + IntToStr(iOldSortorder) + '';

          sSQL_Befehl2 := 'UPDATE kunden SET sortorder = ' + IntToStr(iOldSortorder) + ' '+
                          'WHERE sortorder = ' + IntToStr(iNewSortorder) + '';
        end;
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Datensatz Sortierreihenfolge ändern und verschieben

  Alt 14. Dez 2009, 12:48
vor dem zweiten update bzw nach dem ersten dürften die zahlen gleich sein, weswegen das zweite dann beide wieder auf das andere macht.
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz