Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 5982 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
gelöst VBA Excel Problem mit UserForm, ListBox und TextBox (12)

Frage von abuelito zum Thema Microsoft Office ...

Windows Server
gelöst Ordner erstellen Problem (3)

Frage von IrgendEinName zum Thema Windows Server ...

Schulung & Training
Neues Wissen sortieren (7)

Frage von PharIT zum Thema Schulung & Training ...

Windows Update
WSUS Problem, einige Clients ziehen keine Updates mehr (7)

Frage von Leo-le zum Thema Windows Update ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
iOS
16 iPads zentrall verwalten (18)

Frage von simonlohr zum Thema iOS ...

Viren und Trojaner
Ransomware .nm4 (15)

Frage von Zyklo92 zum Thema Viren und Trojaner ...

Windows 7
Freeware MSI Tool (13)

Frage von uridium69 zum Thema Windows 7 ...

Zusammenarbeit
Administrator Verhalten nach Vertragskündigung (13)

Frage von sysbone zum Thema Zusammenarbeit ...