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
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 CRecordset
odvozený objekt přidružený k zobrazení záznamu.
virtual CRecordset* OnGetRecordset() = 0;
Návratová hodnota
Ukazatel na -odvozený CRecordset
objekt, 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
, OnUpdateRecordLast
OnUpdateRecordNext
, 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