|
Erstellen Sie ein Programm, welches ein TreeControl enthält. In diesem TreeControl werden an oberer Hierarchieebene die unterschiedliche Werte des Attributs "BestellteAnzahl" der Tabelle "Artikel" eingetragen. Als Unterpunkte dieser Einträge werden die Werte des Attributs "Artikelname" eingetragen. |





void CDb4View::OnInitialUpdate()
{
m_pSet = &GetDocument()->m_db4Set;
CRecordView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
CString zwsp;
// Sicherstellen das Datenbank offen ist
if (!m_pSet->IsOpen())
m_pSet->Open();
// Sortieren der Tabelle nach "BestellteEinheiten"
// Dies ist der Teil der SQL-Klausel, der nach SORT BY kommt
m_pSet->m_strSort = "[BestellteEinheiten]";
// Neu laden des CRecordSet, um die Sortierung aktiv werden zu lassen
m_pSet->Requery();
// Variable für das Attribut "BestellteEinheiten" des letzten Datensatzes
int oldanzahl=-1;
// Variable für das Item der TreeControl bei dem Untereinträge
// angehängt werden
HTREEITEM parent;
// Solange noch Einträge in der Tabelle vorhanden sind
while (!m_pSet->IsEOF())
{
// nur wenn dieser Parent (Bestellte Einheiten) in der TreeControl
// noch nicht existiert..
if (oldanzahl != m_pSet->m_BestellteEinheiten)
{
// neue Bestellte Einheiten merken
oldanzahl = m_pSet->m_BestellteEinheiten;
// in String umwandeln
zwsp.Format("%d",m_pSet->m_BestellteEinheiten);
// als neuer parent in die TreeControl einfügen
parent = m_tree.InsertItem(zwsp);
}
// Artikelname als Child von dem aktuellen parent einfügen
m_tree.InsertItem(m_pSet->m_Artikelname,parent);
// zum nächsten Datensatz springen
m_pSet->MoveNext();
}
// Diese Einfügemethode funktioniert nur, weil die Datensätze
// vorher sortiert wurden
}