Share via


CRecordView-klasse

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Een weergave waarin databaserecords in bedieningselementen worden getoond.

Syntaxis

class AFX_NOVTABLE CRecordView : public CFormView

Leden

Beveiligde constructors

Naam Description
CRecordView::CRecordView Maakt een CRecordView object.

Openbare methoden

Naam Description
CRecordView::IsOnFirstRecord Retourneert niet-nul als de huidige record de eerste record is in de gekoppelde recordset.
CRecordView::IsOnLastRecord Retourneert niet-nul als de huidige record de laatste record is in de gekoppelde recordset.
CRecordView::OnGetRecordset Retourneert een aanwijzer naar een object van een klasse die is afgeleid van CRecordset. ClassWizard overschrijft deze functie voor u en maakt indien nodig de recordset.
CRecordView::OnMove

Beveiligde methoden

Naam Description
CRecordView::OnMove Als de huidige record is gewijzigd, werkt u deze bij op de gegevensbron en gaat u naar de opgegeven record (volgende, vorige, eerste of laatste).

Opmerkingen

De weergave is een formulierweergave die rechtstreeks is verbonden met een CRecordset object. De weergave wordt gemaakt op basis van een dialoogvenstersjabloonresource en geeft de velden van het CRecordset object weer in de besturingselementen van de dialoogvenstersjabloon. Het CRecordView object gebruikt dialoogvenstergegevensuitwisseling (DDX) en recordvelduitwisseling (RFX) om het verplaatsen van gegevens tussen de besturingselementen op het formulier en de velden van de recordset te automatiseren. CRecordView biedt ook een standaard implementatie voor het verplaatsen naar de eerste, volgende, vorige of laatste record en een interface voor het bijwerken van de record die momenteel wordt weergegeven.

Opmerking

Als u werkt met de DAO-klassen (Data Access Objects) in plaats van de ODBC-klassen (Open Database Connectivity), gebruikt u in plaats daarvan klasse CDaoRecordView . Zie het artikel Overzicht: Databaseprogrammering voor meer informatie.

De meest voorkomende manier om uw recordweergave te maken, is met de wizard Toepassing. De wizard Toepassing maakt zowel de recordweergaveklasse als de bijbehorende recordsetklasse als onderdeel van uw skeleton starter-toepassing. Als u de recordweergaveklasse niet maakt met de wizard Toepassing, kunt u deze later maken met ClassWizard. Als u slechts één formulier nodig hebt, is de wizard Toepassing eenvoudiger. Met ClassWizard kunt u later in het ontwikkelingsproces een recordweergave gebruiken. Het gebruik van ClassWizard om een recordweergave en een recordset afzonderlijk te maken en deze vervolgens te verbinden, is de meest flexibele benadering, omdat u hiermee meer controle hebt over het benoemen van de recordsetklasse en de bijbehorende recordset. H/. CPP-bestanden. Met deze methode kunt u ook meerdere recordweergaven in dezelfde recordsetklasse hebben.

Om het voor eindgebruikers eenvoudig te maken om van record naar record te gaan in de recordweergave, maakt de wizard Toepassingswizard menubronnen (en optioneel werkbalk) voor het verplaatsen naar de eerste, volgende, vorige of laatste record. Als u een recordweergaveklasse maakt met ClassWizard, moet u deze resources zelf maken met de menu- en bitmapeditors.

Zie en IsOnLastRecord het artikel Using a Record View (Een recordweergave gebruiken) voor informatie over de standaard implementatie voor het verplaatsen van een record naar recordIsOnFirstRecord.

CRecordView houdt de positie van de gebruiker in de recordset bij, zodat de recordweergave de gebruikersinterface kan bijwerken. Wanneer de gebruiker naar het einde van de recordset wordt verplaatst, worden in de recordweergave objecten van de gebruikersinterface, zoals menu-items of werkbalkknoppen, uitgeschakeld om verder in dezelfde richting te gaan.

Zie 'Een recordweergave ontwerpen en maken' in het artikel Recordweergaven voor meer informatie over het declareren en gebruiken van uw recordweergave en -recordsetklassen. Zie het artikel Een recordweergave gebruiken voor meer informatie over hoe recordweergaven werken en hoe u deze kunt gebruiken.

Overnamehiërarchie

CObject

CCmdTarget-

CWnd

CView

CScrollView

CFormView

CRecordView

Requirements

Koptekst: afxdb.h

CRecordView::CRecordView

Wanneer u een object maakt van een type dat is afgeleid CRecordViewvan, roept u een van de vormen van de constructor aan om het weergaveobject te initialiseren en de dialoogvensterresource te identificeren waarop de weergave is gebaseerd.

explicit CRecordView(LPCTSTR lpszTemplateName);
explicit CRecordView(UINT nIDTemplate);

Parameterwaarden

lpszTemplateName
Bevat een door null beëindigde tekenreeks die de naam is van een dialoogvenstersjabloonresource.

nIDTemplate
Bevat het id-nummer van een dialoogvenstersjabloonresource.

Opmerkingen

U kunt de resource identificeren op naam (geef een tekenreeks door als het argument aan de constructor) of door de bijbehorende id (geef een niet-ondertekend geheel getal door als het argument). Het gebruik van een resource-id wordt aanbevolen.

Opmerking

Uw afgeleide klasse moet een eigen constructor leveren. Roep in de constructor van uw afgeleide klasse de constructor CRecordView::CRecordView aan met de resourcenaam of id als argument, zoals wordt weergegeven in het onderstaande voorbeeld.

CRecordView::OnInitialUpdate oproepen UpdateData, die aanroepen DoDataExchange. Deze eerste aanroep om besturingselementen (indirect) te DoDataExchange verbinden met CRecordViewCRecordset veldgegevensleden die zijn gemaakt door ClassWizard. Deze gegevensleden kunnen pas worden gebruikt nadat u de functie basisklasselid CFormView::OnInitialUpdate hebt aangeroepen.

Opmerking

Als u ClassWizard gebruikt, definieert de wizard een enum waarde CRecordView::IDD, geeft deze op in de klassedeclaratie en gebruikt deze in de initialisatielijst van leden voor de constructor.

Example

CMyRecordView::CMyRecordView()
   : CRecordView(CMyRecordView::IDD)
{
   m_pSet = NULL;
   // TODO: add construction code here

}

CRecordView::IsOnFirstRecord

Roep deze lidfunctie aan om te bepalen of de huidige record de eerste record is in het recordsetobject dat aan deze recordweergave is gekoppeld.

BOOL IsOnFirstRecord();

Retourwaarde

Niet-nul als de huidige record de eerste record in de recordset is; anders 0.

Opmerkingen

Deze functie is handig voor het schrijven van uw eigen implementaties van standaardopdrachten updatehandlers die zijn geschreven door ClassWizard.

Als de gebruiker naar de eerste record wordt verplaatst, schakelt het framework alle gebruikersinterfaceobjecten uit die u hebt voor het verplaatsen naar de eerste of de vorige record.

CRecordView::IsOnLastRecord

Roep deze lidfunctie aan om te bepalen of de huidige record de laatste record is in het recordsetobject dat is gekoppeld aan deze recordweergave.

BOOL IsOnLastRecord();

Retourwaarde

Niet-nul als de huidige record de laatste record in de recordset is; anders 0.

Opmerkingen

Deze functie is handig voor het schrijven van uw eigen implementaties van de standaardopdracht-updatehandlers die ClassWizard schrijft om een gebruikersinterface te ondersteunen voor het verplaatsen van record naar record.

Waarschuwing

Het resultaat van deze functie is betrouwbaar, behalve dat de weergave het einde van de recordset niet kan detecteren totdat de gebruiker deze heeft verplaatst. De gebruiker moet verder gaan dan de laatste record voordat de recordweergave kan zien dat alle objecten van de gebruikersinterface moeten worden uitgeschakeld om naar de volgende of laatste record te gaan. Als de gebruiker voorbij de laatste record gaat en vervolgens teruggaat naar de laatste record (of voordat de record wordt uitgevoerd), kan de recordweergave de positie van de gebruiker in de recordset bijhouden en gebruikersinterfaceobjecten correct uitschakelen. IsOnLastRecord is ook onbetrouwbaar na een aanroep van de implementatiefunctie OnRecordLast, die de opdracht ID_RECORD_LAST verwerkt, of CRecordset::MoveLast.

CRecordView::OnGetRecordset

Retourneert een aanwijzer naar het CRecordset-afgeleide object dat is gekoppeld aan de recordweergave.

virtual CRecordset* OnGetRecordset() = 0;

Retourwaarde

Een aanwijzer naar een CRecordset-afgeleide object als het object is gemaakt; anders een NULL-aanwijzer.

Opmerkingen

U moet deze lidfunctie overschrijven om een recordsetobject te maken of te verkrijgen en er een aanwijzer naar te retourneren. Als u de recordweergaveklasse declareert met ClassWizard, schrijft de wizard een standaardoverschrijving voor u. De standaard implementatie van ClassWizard retourneert de recordsetaanwijzer die is opgeslagen in de recordweergave als deze bestaat. Als dat niet zo is, wordt er een recordsetobject samengesteld van het type dat u hebt opgegeven met ClassWizard en wordt de lidfunctie aangeroepen Open om de tabel te openen of de query uit te voeren en wordt vervolgens een aanwijzer naar het object geretourneerd.

Zie het artikel Recordweergaven: Een recordweergave gebruiken voor meer informatie en voorbeelden.

CRecordView::OnMove

Roep deze lidfunctie aan om naar een andere record in de recordset te gaan en de velden ervan weer te geven in de besturingselementen van de recordweergave.

virtual BOOL OnMove(UINT nIDMoveCommand);

Parameterwaarden

nIDMoveCommand
Een van de volgende standaardopdracht-id-waarden:

  • ID_RECORD_FIRST naar de eerste record in de recordset gaan.

  • ID_RECORD_LAST naar de laatste record in de recordset gaan.

  • ID_RECORD_NEXT naar de volgende record in de recordset gaan.

  • ID_RECORD_PREV naar de vorige record in de recordset gaan.

Retourwaarde

Niet-nul als de verplaatsing is geslaagd; anders 0 als de verplaatsingsaanvraag is geweigerd.

Opmerkingen

De standaard implementatie roept de juiste Move lidfunctie aan van het CRecordset object dat is gekoppeld aan de recordweergave.

De huidige record op de gegevensbron wordt standaard OnMove bijgewerkt als de gebruiker deze heeft gewijzigd in de recordweergave.

De wizard Toepassing maakt een menuresource met menu-items First Record, Last Record, Next Record en Previous Record. Als u de optie Dockable Toolbar selecteert, maakt de wizard Toepassing ook een werkbalk met knoppen die overeenkomen met deze opdrachten.

Als u voorbij de laatste record in de recordset navigeert, blijft de recordweergave de laatste record weergeven. Als u achteruitgaat naar de eerste record, blijft de recordweergave de eerste record weergeven.

Waarschuwing

Aanroepen OnMove genereert een uitzondering als de recordset geen records heeft. Roep vóór de bijbehorende verplaatsingsbewerking de juiste handlerfunctie voor de gebruikersinterface aan om OnUpdateRecordFirstOnUpdateRecordLastOnUpdateRecordNextOnUpdateRecordPrev te bepalen of de recordset records bevat.

Zie ook

CFormView-klasse
Hiërarchiegrafiek
CRecordset-klasse
CFormView-klasse