ListView Problem



  • Hallo Forum

    Also folgender Source (SDI-Anwendung, CListView als View-Klasse)

    void CLagerlisteView::OnUpdate(CView* /*pSender*/, LPARAM /*lHint*/, CObject* /*pHint*/)
    {
        CLagerlisteDoc* pDoc = GetDocument();
        CLagerListeSet* pSet = pDoc->GetRecordset();
        int nListPos;
    
        GetListCtrl().DeleteAllItems();
    
        if(!pSet->IsOpen())
        {
            pSet->Open();
            pSet->Requery();
        }
        else
        {
            pSet->Requery();
        }
    
        for(pSet->MoveFirst(); !(pSet->IsEOF()); pSet->MoveNext())
        {
            CString strId;
            strId.Format("%ld", pSet->m_id);
            CString strEinzelpreis = "€";
    strEinzelpreis += pSet->m_einzelpreis.Left(pSet->m_einzelpreis.GetLength()-2);
    
            nListPos = GetListCtrl().InsertItem(0, "a");
            GetListCtrl().SetItemText(nListPos, 0, _T(pSet->m_bezeichnung));
        GetListCtrl().SetItemText(nListPos, 1, _T(pSet->m_kurzbezeichnung));
            GetListCtrl().SetItemText(nListPos, 2, _T(pSet->m_norm));
            GetListCtrl().SetItemText(nListPos, 3, _T(pSet->m_lieferant));
            GetListCtrl().SetItemText(nListPos, 4, _T(pSet->m_statistik));
            GetListCtrl().SetItemText(nListPos, 5, _T(pSet->m_gruppe));
            GetListCtrl().SetItemText(nListPos, 6, _T(pSet->m_menge));
            GetListCtrl().SetItemText(nListPos, 7, _T(strEinzelpreis));
        GetListCtrl().SetItemText(nListPos, 8, _T(pSet->m_einkaufsdatum));
        }
    }
    

    Nun habe ich folgendes Problem:
    Beim Start der Anwendung wird mir nur die Spalte "Bezeichnung" aufgefüllt.
    Um die ganze Liste aufzufüllen, muss ich z.B.: eine Menünachricht über schreiben in der ich die Funktion Requery() der Recordset-Klasse aufrufe.

    In der Doc-Klasse wird eine Instanz der Recordset-Klasse am Heap angelegt, und im Konstruktor der Doc-Klasse geöffnet.

    Wie kann ich die ganze Liste schon beim start der Anwendung auffüllen?

    mfg, Jover


Anmelden zum Antworten