Einzelnen Beitrag anzeigen

Benutzerbild von celinaw
celinaw

Registriert seit: 2. Apr 2004
162 Beiträge
 
#1

Listview Spalten zur Laufzeit?

  Alt 29. Apr 2004, 01:10
Hi

Hab mal wieder ein Problem!
Mit untem stehendem Code füge ich das Abfrage Ergebnis in eine Listview ein.
Wie kann ich es jetzt machen, das ich mit Hilfe von Checkboxen auswählen kann welche Spalten aus der SQL Abfrage in das Listview eingefügt werden?
Nach möglichkeit möchte ich die Spaltenüberschrift aber weiterhin selber angeben und nicht aus der SQL übernehmen. Z.B. steht in der SQL DB die Spalte "Customer_Number"! Ich möchte aber das Sie in der Listview "Kunden Nr" heißt!

Ist das überhaupt machbar? Also im Moment habe ich ja die Spaltenüberschriften 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;

Gruß Celina
  Mit Zitat antworten Zitat