Partager via


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 Open Database Connecter ivity (ODBC), 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

CObject

CCmdTarget

CWnd

CView

CScrollView

CFormView

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 OnRecordLastd’implémentation, qui gère la commande ID_RECORD_LAST ou CRecordset::MoveLast.

CRecordView ::OnGetRecordset

Retourne un pointeur vers l’objet CRecordsetdérivé associé à la vue d’enregistrement.

virtual CRecordset* OnGetRecordset() = 0;

Valeur de retour

Pointeur vers un CRecordsetobjet 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, , OnUpdateRecordLastOnUpdateRecordNextou 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