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
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)