CRecordView, classe
Vue qui affiche des enregistrements de base de données dans des contrôles.
Syntaxe
class AFX_NOVTABLE CRecordView : public CFormView
Membres
Constructeurs protégés
Nom | Description |
---|---|
CRecordView ::CRecordView | Construit un objet CRecordView . |
Méthodes publiques
Nom | Description |
---|---|
CRecordView ::IsOnFirstRecord | Retourne une valeur différente de zéro si l’enregistrement actif est le premier enregistrement du jeu d’enregistrements associé. |
CRecordView ::IsOnLastRecord | Retourne une valeur différente de zéro si l’enregistrement actif est le dernier enregistrement dans le jeu d’enregistrements associé. |
CRecordView ::OnGetRecordset | Retourne un pointeur vers un objet d’une classe dérivée de CRecordset . ClassWizard remplace cette fonction pour vous et crée le jeu d’enregistrements si nécessaire. |
CRecordView ::OnMove |
Méthodes protégées
Nom | Description |
---|---|
CRecordView ::OnMove | Si l’enregistrement actif a changé, le met à jour sur la source de données, puis passe à l’enregistrement spécifié (suivant, précédent, premier ou dernier). |
Notes
La vue est une vue de formulaire directement connectée à un CRecordset
objet. La vue est créée à partir d’une ressource de modèle de dialogue et affiche les champs de l’objet CRecordset
dans les contrôles du modèle de dialogue. L’objet CRecordView
utilise l’échange de données de boîte de dialogue (DDX) et l’échange de champs d’enregistrement (RFX) pour automatiser le déplacement des données entre les contrôles du formulaire et les champs du jeu d’enregistrements. CRecordView
fournit également une implémentation par défaut pour passer au premier, suivant, précédent ou dernier enregistrement et une interface permettant de mettre à jour l’enregistrement actuellement en mode affichage.
Remarque
Si vous utilisez les classes DAO (Data Access Objects) plutôt que les classes ODBC (Open Database Connectivity), utilisez la classe CDaoRecordView à la place. Pour plus d’informations, consultez l’article Vue d’ensemble : Programmation de base de données.
La façon la plus courante de créer votre vue d’enregistrement consiste à utiliser l’Assistant Application. L’Assistant Application crée à la fois la classe d’affichage d’enregistrements et sa classe recordset associée dans le cadre de votre application de démarrage squelette. Si vous ne créez pas la classe d’affichage d’enregistrement avec l’Assistant Application, vous pouvez la créer ultérieurement avec ClassWizard. Si vous avez simplement besoin d’un formulaire unique, l’approche de l’Assistant Application est plus facile. ClassWizard vous permet de décider d’utiliser une vue d’enregistrement ultérieurement dans le processus de développement. L’utilisation de ClassWizard pour créer une vue d’enregistrement et un jeu d’enregistrements séparément, puis les connecter est l’approche la plus flexible, car elle vous donne plus de contrôle pour nommer la classe recordset et son . H/. Fichiers CPP. Cette approche vous permet également d’avoir plusieurs vues d’enregistrement sur la même classe d’ensemble d’enregistrements.
Pour faciliter le passage de l’enregistrement à l’enregistrement des utilisateurs finaux dans l’affichage des enregistrements, l’Assistant Application crée des ressources de menu (et éventuellement de barre d’outils) pour passer au premier enregistrement, suivant, précédent ou dernier enregistrement. Si vous créez une classe d’affichage d’enregistrements avec ClassWizard, vous devez créer ces ressources vous-même avec les éditeurs de menu et bitmap.
Pour plus d’informations sur l’implémentation par défaut pour passer de l’enregistrement à l’enregistrement, consultez IsOnFirstRecord
et IsOnLastRecord
l’article Utilisation d’une vue d’enregistrement.
CRecordView
effectue le suivi de la position de l’utilisateur dans le jeu d’enregistrements afin que la vue des enregistrements puisse mettre à jour l’interface utilisateur. Lorsque l’utilisateur passe à la fin du jeu d’enregistrements, la vue d’enregistrement désactive les objets d’interface utilisateur ( tels que les éléments de menu ou les boutons de barre d’outils) pour se déplacer plus loin dans la même direction.
Pour plus d’informations sur la déclaration et l’utilisation des classes d’enregistrement et d’ensemble d’enregistrements, consultez « Conception et création d’un affichage d’enregistrement » dans l’article Vues d’enregistrement. Pour plus d’informations sur le fonctionnement des vues d’enregistrement et leur utilisation, consultez l’article Using a Record View.
Hiérarchie d'héritage
CRecordView
Spécifications
En-tête : afxdb.h
CRecordView ::CRecordView
Lorsque vous créez un objet d’un type dérivé de CRecordView
, appelez l’une ou l’autre forme du constructeur pour initialiser l’objet d’affichage et identifier la ressource de boîte de dialogue sur laquelle la vue est basée.
explicit CRecordView(LPCTSTR lpszTemplateName);
explicit CRecordView(UINT nIDTemplate);
Paramètres
lpszTemplateName
Contient une chaîne terminée par null qui est le nom d’une ressource de modèle de boîte de dialogue.
nIDTemplate
Contient le numéro d’ID d’une ressource de modèle de boîte de dialogue.
Notes
Vous pouvez identifier la ressource par nom (passer une chaîne en tant qu’argument au constructeur) ou par son ID (passer un entier non signé comme argument). L’utilisation d’un ID de ressource est recommandée.
Remarque
Votre classe dérivée doit fournir son propre constructeur. Dans le constructeur de votre classe dérivée, appelez le constructeur CRecordView::CRecordView
avec le nom de la ressource ou l’ID comme argument, comme illustré dans l’exemple ci-dessous.
CRecordView::OnInitialUpdate
appels UpdateData
, qui appellent DoDataExchange
. Cet appel initial pour DoDataExchange
connecter CRecordView
des contrôles (indirectement) aux CRecordset
membres de données de champ créés par ClassWizard. Ces membres de données ne peuvent pas être utilisés tant que vous n’avez pas appelé la fonction membre de classe CFormView::OnInitialUpdate
de base.
Remarque
Si vous utilisez ClassWizard, l’Assistant définit une enum
valeur CRecordView::IDD
, la spécifie dans la déclaration de classe et l’utilise dans la liste d’initialisation des membres pour le constructeur.
Exemple
CMyRecordView::CMyRecordView()
: CRecordView(CMyRecordView::IDD)
{
m_pSet = NULL;
// TODO: add construction code here
}
CRecordView ::IsOnFirstRecord
Appelez cette fonction membre pour déterminer si l’enregistrement actif est le premier enregistrement de l’objet recordset associé à cette vue d’enregistrement.
BOOL IsOnFirstRecord();
Valeur de retour
Différent de zéro si l’enregistrement actif est le premier enregistrement dans le jeu d’enregistrements ; sinon 0.
Notes
Cette fonction est utile pour écrire vos propres implémentations des gestionnaires de mise à jour de commande par défaut écrits par ClassWizard.
Si l’utilisateur passe au premier enregistrement, l’infrastructure désactive tous les objets d’interface utilisateur dont vous avez besoin pour passer au premier ou à l’enregistrement précédent.
CRecordView ::IsOnLastRecord
Appelez cette fonction membre pour déterminer si l’enregistrement actif est le dernier enregistrement de l’objet recordset associé à cette vue d’enregistrement.
BOOL IsOnLastRecord();
Valeur de retour
Différent de zéro si l’enregistrement actif est le dernier enregistrement dans le jeu d’enregistrements ; sinon 0.
Notes
Cette fonction est utile pour écrire vos propres implémentations des gestionnaires de mise à jour de commande par défaut que ClassWizard écrit pour prendre en charge une interface utilisateur pour passer de l’enregistrement à l’enregistrement.
Attention
Le résultat de cette fonction est fiable, sauf que la vue ne peut pas détecter la fin du jeu d’enregistrements tant que l’utilisateur ne l’a pas déplacé. L’utilisateur doit se déplacer au-delà du dernier enregistrement avant que l’affichage d’enregistrement puisse indiquer qu’il doit désactiver tous les objets d’interface utilisateur pour passer au dernier enregistrement ou suivant. Si l’utilisateur passe le dernier enregistrement, puis revient au dernier enregistrement (ou avant), la vue d’enregistrement peut suivre la position de l’utilisateur dans le jeu d’enregistrements et désactiver correctement les objets d’interface utilisateur. IsOnLastRecord
est également peu fiable après un appel à la fonction OnRecordLast
d’implémentation, qui gère la commande ID_RECORD_LAST ou CRecordset::MoveLast
.
CRecordView ::OnGetRecordset
Retourne un pointeur vers l’objet CRecordset
dérivé associé à la vue d’enregistrement.
virtual CRecordset* OnGetRecordset() = 0;
Valeur de retour
Pointeur vers un CRecordset
objet dérivé si l’objet a été créé avec succès ; sinon, un pointeur NULL.
Notes
Vous devez remplacer cette fonction membre pour construire ou obtenir un objet recordset et renvoyer un pointeur vers celui-ci. Si vous déclarez votre classe d’affichage d’enregistrement avec ClassWizard, l’Assistant écrit un remplacement par défaut pour vous. L’implémentation par défaut de ClassWizard retourne le pointeur de jeu d’enregistrements stocké dans la vue d’enregistrement s’il en existe un. Si ce n’est pas le cas, il construit un objet recordset du type que vous avez spécifié avec ClassWizard et appelle sa Open
fonction membre pour ouvrir la table ou exécuter la requête, puis retourne un pointeur vers l’objet.
Pour plus d’informations et d’exemples, consultez l’article Vues d’enregistrement : Utilisation d’un affichage d’enregistrement.
CRecordView ::OnMove
Appelez cette fonction membre pour passer à un autre enregistrement dans le jeu d’enregistrements et afficher ses champs dans les contrôles de la vue d’enregistrement.
virtual BOOL OnMove(UINT nIDMoveCommand);
Paramètres
nIDMoveCommand
Une des valeurs d’ID de commande standard suivantes :
ID_RECORD_FIRST Passer au premier enregistrement du jeu d’enregistrements.
ID_RECORD_LAST Passer au dernier enregistrement dans le jeu d’enregistrements.
ID_RECORD_NEXT Passer à l’enregistrement suivant dans le jeu d’enregistrements.
ID_RECORD_PREV Déplacer vers l’enregistrement précédent dans le jeu d’enregistrements.
Valeur de retour
Différent de zéro si le déplacement a réussi ; sinon, 0 si la demande de déplacement a été refusée.
Notes
L’implémentation par défaut appelle la fonction membre appropriée Move
de l’objet CRecordset
associé à la vue d’enregistrement.
Par défaut, OnMove
met à jour l’enregistrement actif sur la source de données si l’utilisateur l’a modifié dans la vue d’enregistrement.
L’Assistant Application crée une ressource de menu avec les éléments de menu First Record, Last Record, Next Record et Previous Record. Si vous sélectionnez l’option Barre d’outils ancreable, l’Assistant Application crée également une barre d’outils avec des boutons correspondant à ces commandes.
Si vous passez au-delà du dernier enregistrement dans le jeu d’enregistrements, la vue d’enregistrement continue d’afficher le dernier enregistrement. Si vous passez en arrière au-delà du premier enregistrement, la vue d’enregistrement continue d’afficher le premier enregistrement.
Attention
L’appel OnMove
lève une exception si le jeu d’enregistrements n’a pas d’enregistrements. Appelez la fonction de gestionnaire de mise à jour de l’interface utilisateur appropriée ( OnUpdateRecordFirst
, , OnUpdateRecordLast
OnUpdateRecordNext
ou OnUpdateRecordPrev
) avant l’opération de déplacement correspondante pour déterminer si le jeu d’enregistrements a des enregistrements.
Voir aussi
CFormView, classe
Graphique hiérarchique
CRecordset, classe
CFormView, classe