Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: Treeviewzugriff: Neuen Datensatz erstellen im Treeview

  Alt 3. Sep 2005, 15:21
Hallo Ingo,

in meinem Beispiel hatte ich den Primärschlüssel ID der Tabelle OUTLINE in der data property eines TreeNode mitgeführt. Ich stelle mir neben OUTLINE (master table) eine Tabelle REPORTS (detail table) vor mit den Feldern ID, OUTLINE_ID, NAME, CONTENT. ID ist der Primärschlüssel der detail table, OUTLINE_ID der auf die Tabelle OUTLINE verweisende Fremdschlüssel, NAME ein Text zur benutzerfreundlichen Anzeige und Identifikation deiner Reports und CONTENT ein BLOB-Feld mit deinem Report.

Du brauchst dann nur das Ereignis OnChange() der TreeView zu programmieren. Hier das nötigste, wieder sinngemäß:

Delphi-Quellcode:
const
  SEL_REPORTS
    = 'select id, name, content, outline_id from reports '
    + 'where outline_id = %d';

function TMainForm.ListItems: TListItems;
begin
  Result := ListView.Items;
end;

procedure TMainForm.TreeViewChange(Sender: TObject; Node: TTreeNode);
var
  iOutline, iReport: integer;
  li: TListItem;
begin
  ListItems.Clear;
  if Assigned(node)
    then iOutline := Integer(Node.Data)
    else iOutline := 0;
  with QReports do begin
    SQL.Text := Format(SEL_REPORTS, [iOutline]);
    Open;
    while not Eof do begin
      li := ListItems.Add;
      li.Caption := FieldValues['NAME'];
      iReport := FieldValues['ID'];
      li.Data := Pointer(iReport);
      li.ImageIndex := -1;
      // ...
      Next;
    end;
  end;
end;
Schönes Wochenende auch vom marabu
  Mit Zitat antworten Zitat