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 }