Erstellen Sie ein Programm, das die Attribute "Artikelnummer" und "Artikename" der Tabelle "Artikel" in einem CListCtrl anzeigt. Wird eine Zahl in das Editfeld eingegeben und mit "Show" bestätigt, werden nur noch die Datensätze angezeigt, bei denen das Attribut "Bestellte Menge" gleich dem eingegebenen Wert ist. |
void CDb3View::OnButton1() { // Zwischenspeicher für das Formatieren des Strings // und Konvertierung einer Int-Zahl in einen CString CString zwsp; // Kopieren der in dem Editfeld angezeigten Information // in die dazugehörige Klassenvariable UpdateData(); // Löschen vorheriger Einträge der Listbox m_list.ResetContent(); // Öffnen der DB wenn sie noch nicht offen ist // wird normalerweise nicht gebraucht // aber zur Sicherheit :-) if (!m_pSet->IsOpen()) m_pSet->Open(); // Da ich nur die Datensätze anzeigen möchte, dessen Attribut // "BestellteEinheiten" gleich der Zahl ist, die man in das Editfeld // eingegeben hat, muss ein Filter aktiviert werden. // Dieser ist nur eine CString Membervariable der Klasse CRecordSet // und beinhaltet eigentlich nur den Teil der SQL-Klausel, die nach dem // Schlüssenwort "Where" folgt m_pSet->m_strFilter.Format("[BestellteEinheiten]=%d",m_zahl); // Das CRecordSet muss nun unter Anwendung des Filters noch einmal // neu geladen werden, damit der Filter Wirkung zeigt m_pSet->Requery(); // Solange, bis kein weiteres Element in der Tabelle angekommen while (!m_pSet->IsEOF()) { // Den in die Listbox zu schreibenden String zusammenstellen zwsp.Format("%d; %s",m_pSet->m_Artikel_Nr,m_pSet->m_Artikelname); // String zur Listbox hinzufügen m_list.AddString(zwsp); // Zum nächsten Datensatz im CRecordSet springen m_pSet->MoveNext(); } }