Sdílet prostřednictvím


CRecordView – třída

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

Syntaxe

class AFX_NOVTABLE CRecordView : public CFormView

Členové

Chráněné konstruktory

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

Veřejné metody

Název Popis
CRecordView::IsOnFirstRecord Vrátí nenulové hodnoty, pokud je aktuální záznam prvním záznamem v přidružené sadě záznamů.
CRecordView::IsOnLastRecord Vrátí nenulové hodnoty, pokud je aktuální záznam posledním záznamem v přidružené sadě záznamů.
CRecordView::OnGetRecordset Vrátí ukazatel na objekt třídy odvozený z CRecordset. TřídaWizard přepíše tuto funkci za vás a v případě potřeby vytvoří sadu záznamů.
CRecordView::Onmove

Chráněné metody

Název Popis
CRecordView::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 CRecordset . Zobrazení se vytvoří z prostředku šablony dialogového okna a zobrazí pole objektu CRecordset v ovládacích prvcích šablony dialogového okna. Objekt CRecordView používá výměnu dat dialogového okna (DDX) a výměnu polí záznamů (RFX) k automatizaci přesunu dat mezi ovládacími prvky ve formuláři a poli sady záznamů. CRecordView 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ě v zobrazení.

Poznámka:

Pokud pracujete s třídami DAO (Data Access Objects) místo tříd ODBC (Open Database Connectivity), použijte místo toho třídu CDaoRecordView . Další informace naleznete v článku Přehled: Programování databáze.

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 třídu zobrazení záznamů nevytvoříte pomocí Průvodce aplikací, můžete ji vytvořit později pomocí třídy ClassWizard. 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. 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 najdete IsOnFirstRecord a IsOnLastRecord v článku Použití zobrazení záznamu.

CRecordView 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ů.

Hierarchie dědičnosti

Objekt CObject

CCmdTarget

CWnd

CView

CScrollView

CFormView

CRecordView

Požadavky

Hlavička: afxdb.h

CRecordView::CRecordView

Při vytváření objektu typu odvozeného z CRecordView, 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 CRecordView(LPCTSTR lpszTemplateName);
explicit CRecordView(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 CRecordView::CRecordView s názvem prostředku nebo ID jako argument, jak je znázorněno v příkladu níže.

CRecordView::OnInitialUpdate volání UpdateData, která volání DoDataExchange. Toto počáteční volání DoDataExchange pro připojení CRecordView ovládacích prvků (nepřímo) k CRecordset 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žíváte ClassWizard, průvodce definuje enum hodnotu CRecordView::IDD, určuje ji v deklaraci třídy a používá ji v seznamu inicializace členů pro konstruktor.

Příklad

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

}

CRecordView::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í, které máte pro přesunutí na první nebo předchozí záznam.

CRecordView::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 tím rozdílem, že zobrazení nemůže rozpoznat konec sady záznamů, dokud se uživatel nepřesune za ni. Uživatel se musí 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í. IsOnLastRecord je také nespolehlivý po volání implementační funkce OnRecordLast, která zpracovává ID_RECORD_LAST příkaz, nebo CRecordset::MoveLast.

CRecordView::OnGetRecordset

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

virtual CRecordset* OnGetRecordset() = 0;

Návratová hodnota

Ukazatel na -odvozený CRecordsetobjekt, 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ů.

CRecordView::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 Move členovou funkci objektu CRecordset 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 Dockable Toolbar, Průvodce aplikací také vytvoří 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
CRecordset – třída
CFormView – třída