Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Hab ein Mega Problem eine SMDBGrid ab und aufwärts zu sortieren

Frage Entwicklung

Mitglied: brazo98

brazo98 (Level 1) - Jetzt verbinden

18.01.2006, aktualisiert 23.01.2006, 6003 Aufrufe, 3 Kommentare

Hallo ich habe mir soeben auf der Seite www.scalabium.com die dbgrid free Komponente herunter geladen und installiert.
Nun wollte folgende machen das SMDBGrid sollte bei klick auf den Titel auf und abwärts sortieren also A->Z und umgekehrt.
Nun weiss ich nicht ob die das schon von Haus aus mit rein bingen falls ja dann wäre ich dankbar wenn das jemand weiss. Falls nein habe ich hier noch ein paar Infos.

Nun ich habe eine MySQL am laufen, und habe eine Ztable auf die Stammdaten gelinkt. Das SMDBGrid zeigt mir dann die Daten an.
Ich habe es nun mal versucht mit einer SQL-Menge dort geht das weil ich dann diesen Code verwendet habe der geht auch.
Schlecht ist halt wenn ich in den DBedit nun eine Person suche zeigt es mir den nicht mehr im SMDBGrid an sonder nur in den Feldern. Also kann ich leider nicht mit der SQL-Menge arbeiten sondern muss bei der Tabelle bleiben. Hier der Code der geht mit SQL:

private var bsSortOrde

procedure TForm2.SMDBGrid1TitleClick(Column: TColumn);
var sSortColumn: String;

begin
sSortColumn := smdbgrid1.Columns.Items[Column.index].FieldName;
zquery14.close;
if bsSortOrder then
begin
zquery2.SQL.Text:=('select *,(Stimmaktien/10) as anteil_stimm, (Stammaktien+(Stimmaktien/10)) as summe_zeile from uemaske where kundenid = :kundenid and aktiv=0 order by kundenid, ')+ sSortColumn;
End
else
begin
Zquery2.SQL.Text:=('select *,(Stimmaktien/10) as anteil_stimm, (Stammaktien+(Stimmaktien/10)) as summe_zeile from uemaske where kundenid = :kundenid and aktiv=0 order by kundenid, ')+sSortColumn +' DESC';
select *,(Stimmaktien/10) as anteil_stimm, (Stammaktien+(Stimmaktien/10)) as summe_zeile from
//uemaske where kundenid = :kundenid and aktiv=0 order by kundenid
end;
Zquery2.Open;
bsSortOrder := not bsSortOrder;
end;



Und hier habe ich versucht das mal so ab zu ändern ging leider nicht! Bin echt am verzweifeln ich wäre echt froh wenn mir hier jemand weiter helfen könnte Danke!

procedure TForm2.SMDBGrid2TitleClick(Column: TColumn);
var sSortColumn: string;
var stDescending: string;
var stAscending: string;
begin
stDescending := SMDBgrid2.Columns.Items[Column.Index].FieldName;
if bsSortOrder then
begin
SMDBGrid2.SetSortField(datasource1.DataSet.FindField('id'),stDescending);
end
else
begin
SMDBGrid2.SetSortField(datasource1.DataSet.FindField('id'),stAscending);
end;
end;

HIer liegt das Problem bei ,stDescending und stAscending. Wenn man das so umgestalten könnte das diese beiden eben auf klick sich ändern wäre das Problem schon gelöst weil die sind zuständig für das auf und abwärtige sortieren.

Vielen vielen danke
Mitglied: reini56
22.01.2006 um 21:41 Uhr
Ich glaub das hilft dir:#
procedure TfrmHTML1.SMDBGrid2TitleClick(Column: TColumn);

{$J+}
const PreviousColumnIndex : integer = 1;
{$J-}
begin
(Column.Grid as TSMDBGrid).ClearSort;
if SMDBgrid2.DataSource.DataSet is TCustomADODataSet then
with TCustomADODataSet(SMDBgrid2.DataSource.DataSet) do
begin

if (Pos(Column.Field.FieldName, Sort) = 1) and (Pos(' DESC', Sort)= 0) then
begin
Sort := Column.Field.FieldName + ' DESC';
// if Column is TSMDBColumn then
TSMDBColumn(Column).SortType := stDescending;
Sortname := Column.Field.FieldName;

end
else
begin
Sort := Column.Field.FieldName + ' ASC';
TSMDBColumn(Column).SortType := stAscending;
Sortname := Column.Field.FieldName;
end;
end;
end;
Bitte warten ..
Mitglied: brazo98
23.01.2006 um 09:23 Uhr
Hallo danke für deinen Code nun habe ich das mal getestet.
Leider mosert er mir hier in dieser Zeile das es ein undefierter Bezeichner sein solle hier mal der Output ich wäre dir sehr dankbar wenn du mich hier zum Ziel supporten würdest das ist echt schon lange ein delemer bekomme und bekomme das nicht hin.

if SMDBgrid2.DataSource.DataSet is TCustomADODataSet then

[Fehler] Unit2.pas(891): Undefinierter Bezeichner: 'TCustomADODataSet'[Fehler] Unit2.pas(891): Operator ist auf diesen Operandentyp nicht anwendbar
[Fehler] Unit2.pas(892): Undefinierter Bezeichner: 'DataSource9'
[Fehler] Unit2.pas(892): Undefinierter Bezeichner: 'DataSource9'
[Fehler] Unit2.pas(892): 'DO' erwartet, aber Bezeichner 'DataSet' gefunden
[Fehler] Unit2.pas(895): Undefinierter Bezeichner: 'Sort'
[Fehler] Unit2.pas(895): Inkompatible Typen
[Fehler] Unit2.pas(900): Undefinierter Bezeichner: 'Sortname'
[Warnung] Unit2.pas(1016): Text hinter dem abschließenden 'END.' wird vom Compiler ignoriert
[Fataler Fehler] lss.dpr(7): Verwendete Unit 'Unit2.pas' kann nicht compiliert werden

Danke
Bitte warten ..
Mitglied: brazo98
23.01.2006 um 09:34 Uhr
Hallo also ich benutze keine ADO Komponete ich mache das nur mit Zquery oder normale Datasource komponenten.

Wie das die Routine heisst keine Ahnung aber die TCustomADODataset geht hier nicht denke ich !

Vielen vielen dank.

Und die var Sortname: String und die sort: string hat glaube ich auch gefehlt kann das sein?

danke nochmals
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Access 2016 - Ip Adressen sortieren (5)

Frage von NorbertKn zum Thema Microsoft Office ...

Tipps & Tricks
FTP Hosting nach Letzte Änderungen sortieren (2)

Frage von table1 zum Thema Tipps & Tricks ...

Microsoft Office
gelöst Excel 2010 mit VBA sortieren ? (4)

Frage von dressa zum Thema Microsoft Office ...

Neue Wissensbeiträge
Viren und Trojaner

Link: Neues Botnetz über IoT-Geräte

Information von certifiedit.net zum Thema Viren und Trojaner ...

Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows 10
Seekrank bei Windows 10 (18)

Frage von zauberer123 zum Thema Windows 10 ...

Switche und Hubs
gelöst VLAN für Gäste WLAN einrichten über FritzBox und Switch (10)

Frage von Elo-14 zum Thema Switche und Hubs ...

Windows Server
Frage zu Server Rack (10)

Frage von rainergugus zum Thema Windows Server ...