J
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