Re: Listview Spalten zur Laufzeit?
Ok, 90000 sind ein ganzer Haufen....und du hast wirklich den gesamten Code richtig zusammenkopiert? Ich musste den ersten Code doch ein bisschen ändern...hab mich ein wenig vertan. Zeigt er die Spaltenüberschriften mittlerweile an oder nicht?
|
Re: Listview Spalten zur Laufzeit?
Ja, wie gesagt! Er zeigt von drei gewählten Spalten die ersten beiden an.
Und dann passiert nix mehr. Der Cursor bleibt als Sandur stehen! |
Re: Listview Spalten zur Laufzeit?
Probier mal, diesen Codeteil:
Delphi-Quellcode:
ausukommentieren, und definiere die Spalten manuell, also im Designmodus. Anschließend führe das ganze aus, mich würde interessieren ob er so irgendwelche Werte in die List kriegt...
for i := 0 to Spalten-1 do //Spaltenarray durchlaufen und alle "gewählten" Spalten hinzufügen.
begin if CheckListBox1.Checked[i] then lv_Anzeige.Columns.Add.Caption := List_Names[i]; end; |
Re: Listview Spalten zur Laufzeit?
Liste der Anhänge anzeigen (Anzahl: 1)
Also so funktioniert der Code. Natürlich sind so alle Spalten fest vorgegeben!
Delphi-Quellcode:
procedure TForm1.bSucheClick(Sender: TObject);
var ListItem : TlistItem; begin Screen.Cursor := crHourGlass; lfertig.Caption:= ''; lInfo.Caption:=''; Memo1.Lines.Clear; dbMain.HostName:=SetupForm.edServer.Text; //Server dbMain.User:=SetupForm.edLogin.Text; //Benutzername dbMain.Password:=SetupForm.edPassword.Text; //Passwort dbMain.Database:=SetupForm.edDB.Text; //Name der Datenbank dbMain.Connected:=True; //Verbindung herstellen lvAnzeige.Items.Clear; try qrMain.SQL.Text := 'SELECT * ' + 'FROM ' + 'table_ordertracking T,' + 'kundenmg K ' + 'WHERE ' + 'T.Customer_Number=K.Customer_Number ' + 'AND ' + 'T.Customer_Number like ''' + edknr.Text + '''"%" ' + 'AND ' + 'T.Order_Number like ''' + edatnr.Text + '''"%" ' + 'ORDER BY ' + 'T.DPrint;'; qrMain.Open; qrMain.FieldByName('Order_Type').AsString; gauge1.Visible:= True; gauge1.maxvalue := qrMain.recordcount; lvAnzeige.Items.BeginUpdate; while not qrMain.Eof do begin ListItem := lvAnzeige.Items.Add; ListItem.Caption:=qrMain.FieldByName('Order_Type').AsString; ListItem.SubItems.Add(qrMain.FieldByName('Customer_Number').AsString); ListItem.SubItems.Add(qrMain.FieldByName('Order_Number').AsString); ListItem.SubItems.Add(FormatDateTime('dd.mm.yyyy hh:mm:ss', qrMain.FieldByName('First_Event').AsDateTime)); ListItem.SubItems.Add(qrMain.FieldByName('DPrint').AsString); ListItem.SubItems.Add(qrMain.FieldByName('PrePrint').AsString); ListItem.SubItems.Add(qrMain.FieldByName('Print').AsString); ListItem.SubItems.Add(qrMain.FieldByName('BMSLogout').AsString); ListItem.SubItems.Add(qrMain.FieldByName('Count_DPrint').AsString); ListItem.SubItems.Add(qrMain.FieldByName('CeWe_Batch').AsString); gauge1.progress := gauge1.progress + 1; end; lvAnzeige.Items.EndUpdate; gauge1.progress := 0; gauge1.Visible:= false; finally dbMain.Connected:=False; //Verbindung trennen Screen.Cursor := Cursor; end; end; |
Re: Listview Spalten zur Laufzeit?
Ja, den code kenne ich, aber ich will dass du genau den neuen Code ohne das dynamische Spaltenhinzufügen ausprobierst. Sorry, aber mir gehen langsam auch die Ideen aus. Du könntest auch versuchen, jeden Wert den du zur Liste hinzufügst mit einer Messagebox auszugeben, so kannst du sehen ob die Daten auch wirklich von der Datenbank kommen. Es könnte natürlich auch sein dass irgendwo beim Daten holen ein Fehler ist und deswegen das Programm hängen bleibt. Musst du es immer abschießen?
|
Re: Listview Spalten zur Laufzeit?
Nun, ich werde es mal so versuchen wie du gesagt hast. Einen Fehler beim Datenholen schließe ich allerdings aus, da der andere Code ja auch Problemlos läuft. Melde mich wieder...
Gruß Celina |
Re: Listview Spalten zur Laufzeit?
Also auch wenn ich die Spalten vorgebe und den Code dafür weglasse wird nichts eingefügt!
|
Re: Listview Spalten zur Laufzeit?
Und das mit der MessageBox? Also was ich meine ist, dass du einen Wert in einer MB ausgibst, anstatt ihn nur der List hinzuzufügen:
Delphi-Quellcode:
Dann müsste er dir jedes Element ausgeben, vorausgesetzt er kann es ordnungsgemäß von der Datenbank einlesen.
for i := 0 to Spalten-1 do //Alle möglichen Spalten durchgehen
begin if CheckListBox1.Checked[i] then //Soll die gewählte Spalte angezeigt werden? begin MessageBox(SQL_Names[i]+': '+qrMain.FieldByName(SQL_Names[i]).AsString); |
Re: Listview Spalten zur Laufzeit?
Fehler Inkompatible Typen HWND und String!
|
Re: Listview Spalten zur Laufzeit?
:wall: :wall: :wall: Nicht MessageBox, sondern ShowMessage, sorry
Ich bin übrigens weg, falls du mehr hilfe brauchst: PN oder Mail |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 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