CRecordView (clase)

Una vista que muestra registros de una base de datos en controles.

Sintaxis

class AFX_NOVTABLE CRecordView : public CFormView

Miembros

Constructores protegidos

Nombre Descripción
CRecordView::CRecordView Construye un objeto CRecordView.

Métodos públicos

Nombre Descripción
CRecordView::IsOnFirstRecord Devuelve un valor distinto de cero si el registro actual es el primero del conjunto de registros asociado.
CRecordView::IsOnLastRecord Devuelve un valor distinto de cero si el registro actual es el último del conjunto de registros asociado.
CRecordView::OnGetRecordset Se usa para devolver un puntero a un objeto de una clase derivada de CRecordset. ClassWizard invalida esta función de forma automática y crea el conjunto de registros si es necesario.
CRecordView::OnMove

Métodos protegidos

Nombre Descripción
CRecordView::OnMove Si se ha cambiado el registro actual, lo actualiza en el origen de datos y, a continuación, se mueve al registro especificado (siguiente, anterior, primero o último).

Comentarios

La vista es una vista de formulario conectada directamente a un objeto CRecordset. La vista se crea a partir de un recurso de plantilla de diálogo y muestra los campos del objeto CRecordset en los controles de la plantilla de diálogo. El objeto CRecordView emplea el intercambio de datos de diálogo (DDX) y el intercambio de campos de registros (RFX) para automatizar el movimiento de datos entre los controles del formulario y los campos del conjunto de registros. CRecordView también proporciona una implementación predeterminada para pasar al primer, siguiente, anterior o último registro y una interfaz para actualizar el registro actualmente en la vista.

Nota:

Si trabaja con las clases de Objetos de acceso a datos (DAO) en lugar de las clases de Conectividad abierta de bases de datos (ODBC), use la clase CDaoRecordView. Para más información, consulte el artículo Información general: programación de bases de datos.

El Asistente para aplicaciones es el medio más habitual para crear vistas de registros. El Asistente para aplicaciones crea la clase de vista de registros y su clase de conjunto de registros asociada como parte de la aplicación de inicio del esqueleto. Si no se crea la clase de vista de registros con el Asistente para aplicaciones, puede hacerse más tarde con ClassWizard. El enfoque del Asistente para aplicaciones resultará más sencillo si solo necesita un único formulario. Con ClassWizard se puede decidir usar una vista de registros más adelante en el proceso de desarrollo. Usar ClassWizard para crear una vista de registro y un conjunto de registros por separado y conectarlos a continuación es el enfoque más flexible, ya que ofrece más control al dar nombre a la clase de conjunto de registros y sus archivos .H/.CPP. Mediante este enfoque también es posible tener varias vistas de registro en la misma clase de conjunto de registros.

Para que los usuarios finales se desplacen con más facilidad de registro a registro en la vista de registros, el Asistente para aplicaciones crea recursos de menú, y de forma opcional una barra de herramientas, para moverse al primer, siguiente, anterior o último registro. Si creas una clase de vista de registros con ClassWizard, necesitas crear estos recursos usted mismo con el menú y los editores de mapa de bits.

Si desea más información sobre la implementación predeterminada para desplazarse de registro a registro, vea IsOnFirstRecord, IsOnLastRecord y el artículo Using a Record View, (Uso de una vista de registros).

CRecordView hace un seguimiento de la posición del usuario en el conjunto de registros para que la vista de registros pueda actualizar la interfaz de usuario. Cuando el usuario se mueve al final del conjunto de registros, la vista de registros deshabilita los objetos de la interfaz de usuario (como los elementos de menú o los botones de la barra de herramientas) para moverse más lejos en la misma dirección.

Para obtener más información sobre cómo declarar y usar las clases de la vista de registros y los conjuntos de registros, consulte «Designing and Creating a Record View», (Diseño y creación de una vista de registros) en el artículo Record Views, (Vistas de registros). Para obtener más información sobre cómo funcionan las vistas de registros y cómo usarlas, consulta el artículo Uso de una vista de registros.

Jerarquía de herencia

CObject

CCmdTarget

CWnd

CView

CScrollView

CFormView

CRecordView

Requisitos

Encabezado: afxdb.h

CRecordView::CRecordView

Al crear un objeto de un tipo derivado de CRecordView, llame a cualquier tipo de constructor para inicializar objeto de vista e identificar el recurso de diálogo en el que se basa la vista.

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

Parámetros

lpszTemplateName
Contiene una cadena terminada en null que es el nombre de un recurso de plantilla de diálogo.

nIDTemplate
Contiene el número de id. de un recurso de plantilla de diálogo.

Comentarios

Se puede identificar el recurso por nombre, (pasar una cadena como argumento al constructor), o por su id., (pasar un entero sin signo como argumento). Se recomienda usar un identificador de recurso.

Nota:

La clase derivada debe proporcionar su propio constructor. En el constructor de la clase derivada, llame al constructor CRecordView::CRecordView con el nombre del recurso o el id. como argumento, como se muestra en el ejemplo siguiente.

CRecordView::OnInitialUpdate llama a UpdateData, que llama a DoDataExchange. Esta llamada inicial a DoDataExchange conecta los controles CRecordView (indirectamente) a los miembros CRecordset de datos de campo creados por ClassWizard. Estos miembros de datos no se pueden usar hasta después de llamar a la función miembro de clase CFormView::OnInitialUpdate base.

Nota:

Si se usa ClassWizard, el asistente define un enum valor CRecordView::IDD, lo especifica en la declaración de clase y lo usa en la lista de inicialización de miembros para el constructor.

Ejemplo

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

}

CRecordView::IsOnFirstRecord

Llame a esta función miembro para determinar si el registro actual es el primero de los objetos del conjunto de registros asociados a esta vista de registro.

BOOL IsOnFirstRecord();

Valor devuelto

El valor es distinto a cero si el registro actual es el primero del conjunto de registros, de lo contario 0.

Comentarios

Esta función resulta útil para escribir sus propias implementaciones de controladores de actualización de comandos predeterminados que escribe ClassWizard.

Si se desplaza al primer registro, el marco deshabilita los objetos de interfaz de usuario que tenga para pasar al primer registro o al anterior.

CRecordView::IsOnLastRecord

Llame a esta función miembro para determinar si el registro actual es el último de los objetos del conjunto de registros asociados a esta vista de registro.

BOOL IsOnLastRecord();

Valor devuelto

Es un valor distinto a cero si el registro actual es el último del conjunto de registros; de lo contario, 0.

Comentarios

Esta función resulta útil para escribir sus propias implementaciones de los controladores de actualización de comandos predeterminados que ClassWizard escribe para admitir una interfaz de usuario para pasar de registro a registro.

Precaución

Esta función ofrece resultados seguros, salvo que la vista no se puede detectar al final del conjunto de registros hasta que el usuario lo haya sobrepasado. El usuario debe ir más allá del último registro antes de que la vista de registro pueda indicar que deben deshabilitarse los objetos de la interfaz de usuario para pasar al siguiente registro o al último. Si el usuario va más allá del último registro y, a continuación, vuelve al último (o antes), la vista de registro puede seguir la posición del usuario en un conjunto de registros y deshabilitar los objetos de la interfaz de usuario correctamente. IsOnLastRecord tampoco es seguro después de una llamada a la función de implementación OnRecordLast, que controla el comando ID_RECORD_LAST o CRecordset::MoveLast.

CRecordView::OnGetRecordset

Devuelve un puntero al objeto derivado de CRecordset asociado a la vista de registro.

virtual CRecordset* OnGetRecordset() = 0;

Valor devuelto

Es un puntero a un objeto derivado de CRecordset si el objeto pudo crearse correctamente, en caso contrario un puntero nulo.

Comentarios

Debes invalidar esta función miembro para construir u obtener un objeto de conjunto de registros y devolverle un puntero. Si declara la clase de vista de registros con ClassWizard, el asistente escribe una invalidación predeterminada. La implementación predeterminada de ClassWizard devuelve el puntero de conjunto de registros almacenado en la vista de registros si existe uno. Si no es así, construye un objeto de conjunto de registros del tipo especificado con ClassWizard y llama a su función miembro Open para abrir la tabla o ejecutar la consulta y, a continuación, devuelve un puntero al objeto.

Para obtener más información y ejemplos, vea el artículo Vistas de registro: Uso de una vista de registros.

CRecordView::OnMove

Llame a esta función para desplazarse a un registro distinto en el conjunto de registros y mostrar sus campos en los controles de la vista de registro.

virtual BOOL OnMove(UINT nIDMoveCommand);

Parámetros

nIDMoveCommand
Uno de los siguientes valores de identificador de comando estándar:

  • ID_RECORD_FIRST: vaya al primer registro del conjunto de registros.

  • ID_RECORD_LAST: vaya al último registro del conjunto de registros.

  • ID_RECORD_NEXT: vaya al siguiente registro del conjunto de registros.

  • ID_RECORD_PREV: vaya al registro anterior del conjunto de registros.

Valor devuelto

Distinto de cero si el movimiento se realizó correctamente; de lo contrario, 0 si se denegó la solicitud de traslado.

Comentarios

La implementación predeterminada llama a la función miembro Move adecuada del objeto CRecordset asociado a la vista de registros.

De forma predeterminada, OnMove actualiza el registro actual en el origen de datos si el usuario lo ha cambiado en la vista de registros.

El Asistente para aplicaciones crea un recurso de menú con los elementos de menú Primer registro, Último registro, Registro siguiente y Registro anterior. Si selecciona la opción Barra de herramientas acoplable, el Asistente para aplicaciones también crea una barra de herramientas con botones correspondientes a estos comandos.

Si se mueve más allá del último registro del conjunto de registros, la vista de registros continúa mostrando el último registro. Si se desplaza hacia atrás después del primer registro, la vista de registro continúa mostrando el primer registro.

Precaución

Al llamar a OnMove se produce una excepción si el conjunto de registros no tiene registros. Llama a la función del controlador de actualización de la interfaz de usuario apropiada (OnUpdateRecordFirst, OnUpdateRecordLast, OnUpdateRecordNext o OnUpdateRecordPrev), antes de la operación de movimiento correspondiente para determinar si el controlador tiene registros.

Consulte también

CFormView (clase)
Gráfico de jerarquías
CRecordset (clase)
CFormView (clase)