Sdílet prostřednictvím


CDaoRecordView – třída

Zobrazení, které zobrazuje záznamy databáze v ovládacích prvcích.

Poznámka:

Rozhraní DAO se podporuje prostřednictvím Office 2013. DAO 3.6 je konečná verze a je považována za za zastaralou.

Syntaxe

class AFX_NOVTABLE CDaoRecordView : public CFormView

Členové

Chráněné konstruktory

Název Popis
CDaoRecordView::CDaoRecordView CDaoRecordView Vytvoří objekt.

Veřejné metody

Název Popis
CDaoRecordView::IsOnFirstRecord Vrátí nenulové hodnoty, pokud je aktuální záznam prvním záznamem v přidružené sadě záznamů.
CDaoRecordView::IsOnLastRecord Vrátí nenulové hodnoty, pokud je aktuální záznam posledním záznamem v přidružené sadě záznamů.
CDaoRecordView::OnGetRecordset Vrátí ukazatel na objekt třídy odvozený z CDaoRecordset. TřídaWizard přepíše tuto funkci za vás a v případě potřeby vytvoří sadu záznamů.
CDaoRecordView::OnMove Pokud se aktuální záznam změnil, aktualizuje ho ve zdroji dat a pak se přesune na zadaný záznam (další, předchozí, první nebo poslední).

Poznámky

Zobrazení je zobrazení formuláře přímo připojené k objektu CDaoRecordset . Zobrazení se vytvoří z prostředku šablony dialogového okna a zobrazí pole objektu CDaoRecordset v ovládacích prvcích šablony dialogového okna. Objekt CDaoRecordView používá výměnu dat dialogových oken (DDX) a výměnu polí záznamu DAO (DFX) k automatizaci přesunu dat mezi ovládacími prvky ve formuláři a poli sady záznamů. CDaoRecordView také poskytuje výchozí implementaci pro přechod na první, další, předchozí nebo poslední záznam a rozhraní pro aktualizaci záznamu aktuálně zobrazeného.

Poznámka:

Databázové třídy DAO se liší od databázových tříd MFC založených na rozhraní ODBC (Open Database Connectivity). Všechny názvy databázových tříd DAO mají předponu CDao. Stále máte přístup ke zdrojům dat ODBC pomocí tříd DAO; třídy DAO obecně nabízejí vynikající funkce, protože používají databázový stroj Microsoft Jet.

Nejběžnější způsob, jak vytvořit zobrazení záznamů, je Průvodce aplikací. Průvodce aplikací vytvoří třídu zobrazení záznamů i její přidruženou třídu sady záznamů jako součást základní aplikace kostry.

Pokud jednoduše potřebujete jeden formulář, je jednodušší přístup Průvodce aplikací. ClassWizard umožňuje rozhodnout se použít zobrazení záznamů později v procesu vývoje. Pokud třídu zobrazení záznamů nevytvoříte pomocí Průvodce aplikací, můžete ji vytvořit později pomocí třídy ClassWizard. Použití ClassWizard k vytvoření zobrazení záznamů a sady záznamů samostatně a jejich následné propojení je nejflexibilnější přístup, protože vám dává větší kontrolu nad pojmenováním třídy sady záznamů a jeho . H/. Soubory CPP. Tento přístup také umožňuje mít více zobrazení záznamů ve stejné třídě sady záznamů.

Aby se koncoví uživatelé mohli v zobrazení záznamů snadno přesouvat ze záznamu na záznam, vytvoří Průvodce aplikací prostředky nabídky (a volitelně panel nástrojů) pro přechod na první, další, předchozí nebo poslední záznam. Pokud vytvoříte třídu zobrazení záznamů pomocí třídy ClassWizard, musíte tyto prostředky vytvořit sami pomocí nabídky a rastrových editorů.

Informace o výchozí implementaci pro přesun ze záznamu do záznamu naleznete IsOnFirstRecord a IsOnLastRecord v článku Použití zobrazení záznamu, které platí pro obě CRecordView a CDaoRecordView.

CDaoRecordView sleduje pozici uživatele v sadě záznamů, aby zobrazení záznamů bylo možné aktualizovat uživatelské rozhraní. Když se uživatel přesune na konec sady záznamů, zobrazení záznamů zakáže objekty uživatelského rozhraní ( například položky nabídky nebo tlačítka panelu nástrojů) pro další pohyb ve stejném směru.

Další informace o deklarování a používání zobrazení záznamů a tříd sady záznamů naleznete v tématu Návrh a vytvoření zobrazení záznamů v článku Zobrazení záznamů. Další informace o tom, jak fungují zobrazení záznamů a jak je používat, najdete v článku Použití zobrazení záznamů. Všechny výše uvedené články platí pro oba CRecordView i CDaoRecordView.

Hierarchie dědičnosti

Objekt CObject

CCmdTarget

CWnd

CView

CScrollView

CFormView

CDaoRecordView

Požadavky

Záhlaví: afxdao.h

CDaoRecordView::CDaoRecordView

Při vytváření objektu typu odvozeného z CDaoRecordView, voláním některé formy konstruktoru inicializovat objekt zobrazení a identifikovat prostředek dialogového okna, na kterém je zobrazení založeno.

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

Parametry

lpszTemplateName
Obsahuje řetězec ukončený hodnotou null, který je názvem prostředku šablony dialogového okna.

nIDTemplate
Obsahuje číslo ID prostředku šablony dialogového okna.

Poznámky

Prostředek můžete buď identifikovat podle názvu (předat řetězec jako argument konstruktoru), nebo jeho ID (předat celé číslo bez znaménka jako argument). Doporučuje se použít ID prostředku.

Poznámka:

Vaše odvozená třída musí zadat svůj vlastní konstruktor. V konstruktoru odvozené třídy zavolejte konstruktor CDaoRecordView::CDaoRecordView s názvem prostředku nebo ID jako argument.

CDaoRecordView::OnInitialUpdate volání CWnd::UpdateData, která volání CWnd::DoDataExchange. Toto počáteční volání DoDataExchange pro připojení CDaoRecordView ovládacích prvků (nepřímo) k CDaoRecordset datovým členům polí vytvořeným classWizard. Tyto datové členy nelze použít, dokud nevoláte členskou funkci základní třídy CFormView::OnInitialUpdate .

Poznámka:

Pokud použijete ClassWizard, průvodce definuje enum hodnotu CDaoRecordView::IDD v deklaraci třídy a použije ji v seznamu inicializace členů pro konstruktor.

CMyDaoRecordView::CMyDaoRecordView()
    : CDaoRecordView(CMyDaoRecordView::IDD)
{
   m_pSet = NULL;
   // TODO: add construction code here
}

CDaoRecordView::IsOnFirstRecord

Voláním této členské funkce určíte, zda je aktuální záznam prvním záznamem v objektu sady záznamů přidruženém k tomuto zobrazení záznamu.

BOOL IsOnFirstRecord();

Návratová hodnota

Nenulové, pokud je aktuálním záznamem první záznam v sadě záznamů; jinak 0.

Poznámky

Tato funkce je užitečná pro psaní vlastních implementací výchozích obslužných rutin aktualizace příkazů napsaných pomocí TřídyWizard.

Pokud se uživatel přesune na první záznam, architektura zakáže všechny objekty uživatelského rozhraní (například položky nabídky nebo tlačítka panelu nástrojů), které máte pro přechod na první nebo předchozí záznam.

CDaoRecordView::IsOnLastRecord

Voláním této členské funkce určíte, jestli je aktuální záznam posledním záznamem v objektu sady záznamů přidruženém k tomuto zobrazení záznamu.

BOOL IsOnLastRecord();

Návratová hodnota

Nenulové, pokud je aktuálním záznamem poslední záznam v sadě záznamů; jinak 0.

Poznámky

Tato funkce je užitečná pro psaní vlastních implementací výchozích obslužných rutin aktualizace příkazů, které ClassWizard zapisuje, aby podporovalo uživatelské rozhraní pro přesun ze záznamu do záznamu.

Upozornění

Výsledek této funkce je spolehlivý s výjimkou toho, že zobrazení nemusí být schopno rozpoznat konec sady záznamů, dokud se uživatel nepřesune. Uživatel se možná bude muset přesunout nad poslední záznam před zobrazením záznamu, že musí zakázat všechny objekty uživatelského rozhraní pro přechod na další nebo poslední záznam. Pokud se uživatel přesune za poslední záznam a pak se vrátí k poslednímu záznamu (nebo před ním), může zobrazení záznamů sledovat pozici uživatele v sadě záznamů a správně zakázat objekty uživatelského rozhraní.

CDaoRecordView::OnGetRecordset

Vrátí ukazatel na CDaoRecordsetodvozený objekt přidružený k zobrazení záznamu.

virtual CDaoRecordset* OnGetRecordset() = 0;

Návratová hodnota

Ukazatel na -odvozený CDaoRecordsetobjekt, pokud byl objekt úspěšně vytvořen; jinak null ukazatel.

Poznámky

Chcete-li vytvořit nebo získat objekt sady záznamů a vrátit ukazatel na tuto členovou funkci, je nutné přepsat tuto členovou funkci. Pokud deklarujete třídu zobrazení záznamů pomocí třídy ClassWizard, průvodce zapíše výchozí přepsání za vás. Výchozí implementace TřídyWizard vrátí ukazatel sady záznamů uložený v zobrazení záznamů, pokud existuje. Pokud ne, vytvoří objekt sady záznamů typu, který jste zadali pomocí TřídyWizard, a zavolá jeho Open členskou funkci pro otevření tabulky nebo spuštění dotazu a poté vrátí ukazatel na objekt.

Další informace a příklady najdete v článku Zobrazení záznamů: Použití zobrazení záznamů.

CDaoRecordView::OnMove

Voláním této členské funkce přejdete na jiný záznam v sadě záznamů a zobrazíte jeho pole v ovládacích prvcích zobrazení záznamu.

virtual BOOL OnMove(UINT nIDMoveCommand);

Parametry

nIDMoveCommand
Jedna z následujících standardních hodnot ID příkazu:

  • ID_RECORD_FIRST Přesunout na první záznam v sadě záznamů.

  • ID_RECORD_LAST Přesunout na poslední záznam v sadě záznamů.

  • ID_RECORD_NEXT Přesunout na další záznam v sadě záznamů.

  • ID_RECORD_PREV Přesunout na předchozí záznam v sadě záznamů.

Návratová hodnota

Nenulové, pokud byl přesun úspěšný; jinak 0, pokud byla žádost o přesunutí zamítnuta.

Poznámky

Výchozí implementace volá příslušnou členovou CDaoRecordset funkci Move objektu přidruženého k zobrazení záznamu.

Ve výchozím nastavení aktualizuje aktuální záznam ve zdroji dat, OnMove pokud ho uživatel změnil v zobrazení záznamů.

Průvodce aplikací vytvoří prostředek nabídky s položkami nabídky První záznam, Poslední záznam, Další záznam a Předchozí záznam. Pokud vyberete možnost Počáteční panel nástrojů, Průvodce aplikací vytvoří také panel nástrojů s tlačítky odpovídajícími těmto příkazům.

Pokud přesunete poslední záznam v sadě záznamů, bude zobrazení záznamů nadále zobrazovat poslední záznam. Pokud se posunete zpět za první záznam, bude zobrazení záznamů nadále zobrazovat první záznam.

Upozornění

Volání OnMove vyvolá výjimku, pokud sada záznamů neobsahuje žádné záznamy. Před odpovídající operací přesunutí volejte odpovídající funkci obslužné rutiny aktualizace uživatelského rozhraní – OnUpdateRecordFirst, OnUpdateRecordLastOnUpdateRecordNext, nebo OnUpdateRecordPrev – a určete, zda sada záznamů obsahuje nějaké záznamy.

Viz také

CFormView – třída
Graf hierarchie
CDaoRecordset – třída
CDaoTableDef – třída
CDaoQueryDef – třída
CDaoDatabase – třída
CDaoWorkspace – třída
CFormView – třída