Dialog in dem alle Datensätze angezeigt werden!
-
Hallo erstmal!
Bin noch absoluter Newbie was die MFC betrifft.
Ich habe ein kleines Programm, dass Datensätze aus einer DB ein/ausliest.
Dies geschieht über ein View in dem die Datensätze angeziegt werden. Hier kann man mit vor und zurück usw. in der DB naveigieren.
Es wird halt aber immer nur ein DS angezeigt.
Nun möchte ich in einem 2. Dialog eine Gesamtliste habe wo alle DS angezeigt werden und das man irgendwann später einmal auch ausdrucken kann.Wie stelle ich das am geschicksten an: Esrtelle ich einen Listenfeld mit CListCtrl mit mehreren Spalten
oder gibt es noch eine andere Möglichkeit.Dieser Dialog soll nur zum Anziegen sein (keine Bearbeitung der DS stattfinden).
Besten Dank schon einmal im voraus.
Gruß
JoeF
-
Ja also ich würde es über ein ListCtrl machen.
Um die daten in das ListCtrl zu bekommen würde ich in OnInitDialog einfach einen Zeiger auf deine RecordSet klasse machen und dann mit einer Schleife die daten ins ListCtrl eintragen.[ Dieser Beitrag wurde am 01.02.2003 um 16:32 Uhr von xyz44 editiert. ]
-
xyz, lass die Faxen sein.
-
Was für Faxen? Habe ich was falsch gemacht?
-
Was für faxen? Funktioniert dass so nicht?
CU
JoeF
-
wollte nur mal xyz ver*****en. hatte mir seinen beitrag garnicht durchgelesen. weiß nicht ob das funktioniert. aber xyz lügt schon nicht und hat ein bisschen ahnung
-
er hat wohl mehr ahnung als du, allerdings weiß ich auch nicht ob der Fragensteller
nun weis was er machen muss, bzw. wie da was geht.Zum Thema CListCtrl -> FAQ ist bereits sehr gut damit bestückt...
Zum Thema ODBC, Dao usw. empfehle ich ebenfalls die FAQ, da steht auch ein sehr guter
Beitrag darüber.Devil
[ Dieser Beitrag wurde am 01.02.2003 um 18:06 Uhr von devil81 editiert. ]
-
er hat wohl mehr ahnung als du
jau :o
-
Hai, also falls du net weist was du tun sollst hier nen bischel genauer:
#include "DeinRecordSet.h" //das muss du in der .h datei deiner DialogKlasse schreiben // Dann erzeugst du ein Handel auf deine Klasse, einfach auf diene DialogKlasse rechts klicken und dann mit dem Assi eine Membervariable einfügen. Der VariablenTyp ist dann CDeinRecordSet udn den namen kannste ja aussuchen z.B. m_Handel und dann machst du folgendes in OnInitDialog CString Eintrag; //das erzeugst du zur Sicherheit falls du net nur Strings in der Tabelle speicherst sondern auch Zahlen,und die must du dann erst in String umwandeln. CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_LIST1); //Handel auf dein ListCtrl (IDC_LIST1 must du durch deine ID des CListCtrl ersetzen) m_Handel.m_pSet->MoveFirst(); //damit sagst du nur das er an den Anfang der Tabelle springen soll; pListCtrl.DeleteAllItem(); //Damit wenn du den Dialog auffrufst er erstmal das ListCtrl Säubert. Sonst stehen da noch die Einträge vom Vorherigen Auffruf drinne while(!m_Handel.m_pSet->IsEOF()) //Anfang der schleife { Eintrag.Format("%d",m_Handel.m_pSet->m_Zahl);//Das must du mit den Variablen machen die Zahlenwerte enthalten. Strings kannst du dirkt reinschreiben. Deswegen schreibe ichs zur Sicherheit rein.( Die bezeichnungen must du natürlich durch deine eigenen Ersetzen) pListCtrl.InsertItem(0,m_Handel.m_pSet->m_text,0); m_pSet->MoveNext(); }
So nochmal, du must natürlich die Variablen hinter m_pSet-> durch deine bezeichner ersetzen.
Hoffe der code funzt so ansonsten einfach nochmal posten. Für Rechtscreibfehler entschuldige ich ich gleich
[ Dieser Beitrag wurde am 01.02.2003 um 20:07 Uhr von xyz44 editiert. ]
[ Dieser Beitrag wurde am 01.02.2003 um 20:08 Uhr von xyz44 editiert. ]
-
Danke für die schnelle, ausführliche Hilfe. Hat mir echt geholfen.
Besten dank
CU
JoeF