Partilhar via


Classe CRecordView

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Um modo de exibição que exibe registros de banco de dados em controles.

Sintaxe

class AFX_NOVTABLE CRecordView : public CFormView

Membros

Construtores Protegidos

Nome Description
CRecordView::CRecordView Constrói um CRecordView objeto.

Métodos Públicos

Nome Description
CRecordView::IsOnFirstRecord Retorna diferente de zero se o registo atual for o primeiro registo no conjunto de registos associado.
CRecordView::IsOnLastRecord Retorna diferente de zero se o registo atual for o último registo no conjunto de registos associado.
CRecordView::OnGetRecordset Devolve um ponteiro para um objeto de uma classe derivada de CRecordset. O ClassWizard sobrepõe esta função por si e cria o conjunto de registos se necessário.
CRecordView::OnMove

Métodos Protegidos

Nome Description
CRecordView::OnMove Se o registo atual mudou, atualiza-o na fonte de dados e depois passa para o registo especificado (próximo, anterior, primeiro ou último).

Observações

A vista é uma vista de forma diretamente ligada a um CRecordset objeto. A vista é criada a partir de um recurso de template de diálogo e apresenta os campos do CRecordset objeto nos controlos do template de diálogo. O CRecordView objeto utiliza a troca de dados de diálogo (DDX) e a troca de campos de registo (RFX) para automatizar o movimento de dados entre os controlos do formulário e os campos do conjunto de registos. CRecordView também fornece uma implementação padrão para mover para o primeiro, próximo, anterior ou último registo e uma interface para atualizar o registo atualmente em visualização.

Observação

Se estiver a trabalhar com as classes Data Access Objects (DAO) em vez das classes Open Database Connectivity (ODBC), use a classe CDaoRecordView em vez disso. Para mais informações, consulte o artigo Visão Geral: Programação de Bases de Dados.

A forma mais comum de criar a sua visualização de registos é através do Application Wizard. O Assistente de Aplicação cria tanto a classe de visualização de registos como a sua classe de conjunto de registos associada como parte da sua aplicação inicial esqueleto. Se não criar a classe de visualização de registos com o Application Wizard, pode criá-la mais tarde com o ClassWizard. Se precisares apenas de um único formulário, a abordagem do Application Wizard é mais fácil. O ClassWizard permite-te decidir usar uma vista de registo mais tarde no processo de desenvolvimento. Usar o ClassWizard para criar uma visualização de registos e um conjunto de registos separadamente e depois ligá-los é a abordagem mais flexível porque dá-te mais controlo na nomeação da classe do conjunto de registos e do seu conjunto. H/. Ficheiros CPP. Esta abordagem também permite ter múltiplas vistas de registo na mesma classe de registos.

Para facilitar a passagem dos utilizadores finais de registo em registo na vista de registo, o Assistente de Aplicação cria recursos de menu (e opcionalmente barra de ferramentas) para mover para o primeiro, próximo, anterior ou último registo. Se criares uma classe de visualização de registos com o ClassWizard, tens de criar esses recursos tu próprio com o menu e os editores de bitmap.

Para informações sobre a implementação padrão para passar de registo em registo, veja IsOnFirstRecord e IsOnLastRecord e o artigo Using a Record View.

CRecordView mantém o acompanhamento da posição do utilizador no conjunto de registos para que a vista de registos possa atualizar a interface do utilizador. Quando o utilizador se move para qualquer uma das extremidades do conjunto de registos, a vista de registo desativa objetos da interface do utilizador — como itens do menu ou botões da barra de ferramentas — para que se movam mais longe na mesma direção.

Para mais informações sobre como declarar e utilizar as suas classes de visualização de registos e conjuntos de registos, consulte "Desenhar e Criar uma Vista de Registo" no artigo Visualizações de Registo. Para mais informações sobre como funcionam as visualizações de registo e como as utilizar, consulte o artigo Utilização de uma Visualização de Registo.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CView

CScrollView

CFormView

CRecordView

Requerimentos

Cabeçalho: afxdb.h

CRecordView::CRecordView

Quando crias um objeto de um tipo derivado de CRecordView, chama qualquer uma das formas do construtor para inicializar o objeto da vista e identificar o recurso de diálogo em que a vista se baseia.

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

Parâmetros

lpszTemplateName
Contém uma cadeia terminada por null que é o nome de um recurso template de diálogo.

nIDTemplate
Contém o número de ID de um recurso de template de diálogo.

Observações

Pode identificar o recurso pelo nome (passar uma cadeia como argumento ao construtor) ou pelo seu ID (passar um inteiro sem sinal como argumento). Recomenda-se usar um ID de recurso.

Observação

A sua classe derivada deve fornecer o seu próprio construtor. No construtor da sua classe derivada, chame o construtor CRecordView::CRecordView com o nome ou ID do recurso como argumento, como mostrado no exemplo abaixo.

CRecordView::OnInitialUpdate chama UpdateData, que chama DoDataExchange. Esta chamada inicial liga DoDataExchangeCRecordView controlos (indiretamente) a CRecordset membros de dados de campo criados pelo ClassWizard. Estes membros de dados não podem ser usados até depois de chamar a função membro da classe CFormView::OnInitialUpdate base.

Observação

Se usar o ClassWizard, o assistente define um enum valor CRecordView::IDD, especifica-o na declaração de classe e usa-o na lista de inicialização de membros para o construtor.

Example

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

}

CRecordView::IsOnFirstRecord

Chame esta função membro para determinar se o registo atual é o primeiro registo no objeto de registos associado a esta vista de registo.

BOOL IsOnFirstRecord();

Valor de retorno

Não nulo se o registo atual for o primeiro registo no conjunto de registos; caso contrário, 0.

Observações

Esta função é útil para escrever as suas próprias implementações de manipuladores de atualização de comandos predefinidos escritos pelo ClassWizard.

Se o utilizador se mover para o primeiro registo, o framework desativa quaisquer objetos da interface de utilizador que tenhas para se moverem para o primeiro ou para o registo anterior.

CRecordView::IsOnLastRecord

Chame esta função membro para determinar se o registo atual é o último registo no objeto de registos associado a esta vista de registo.

BOOL IsOnLastRecord();

Valor de retorno

Diferente de zero se o registo atual for o último registo no conjunto de registos; caso contrário, 0.

Observações

Esta função é útil para escrever as suas próprias implementações dos manipuladores de atualização de comandos predefinidos que o ClassWizard escreve para suportar uma interface de utilizador para passar de registo em registo.

Atenção

O resultado desta função é fiável, exceto que a vista não pode detetar o fim do conjunto de registos até que o utilizador o ultrapasse. O utilizador deve ultrapassar o último registo antes que a visualização do registo possa perceber que deve desativar quaisquer objetos da interface de utilizador para passar para o registo seguinte ou último. Se o utilizador ultrapassar o último registo e depois voltar ao último registo (ou antes dele), a vista de registo pode rastrear a posição do utilizador no conjunto de registos e desativar corretamente os objetos da interface do utilizador. IsOnLastRecord é também pouco fiável após uma chamada à função OnRecordLastde implementação , que gere o comando ID_RECORD_LAST, ou CRecordset::MoveLast.

CRecordView::OnGetRecordset

Devolve um ponteiro para o CRecordsetobjeto derivado em associado à vista de registo.

virtual CRecordset* OnGetRecordset() = 0;

Valor de retorno

Um ponteiro para um CRecordsetobjeto derivado em se o objeto foi criado com sucesso; caso contrário, um ponteiro NULL.

Observações

Deve sobrescrever esta função membro para construir ou obter um objeto de recordet e devolver um ponteiro para ele. Se declarares a tua classe de visualização de registos com o ClassWizard, o assistente escreve um override por defeito para ti. A implementação por defeito do ClassWizard devolve o ponteiro do conjunto de registos armazenado na vista de registo, caso exista. Caso contrário, constrói um objeto de recordet do tipo que especificaste com o ClassWizard e chama a sua Open função membro para abrir a tabela ou executar a consulta, devolvendo depois um ponteiro para o objeto.

Para mais informações e exemplos, consulte o artigo Visualizações de Registo: Utilização de uma Visualização de Registo.

CRecordView::OnMove

Chame esta função membro para mover para um registo diferente no conjunto de registos e mostrar os seus campos nos controlos da vista de registo.

virtual BOOL OnMove(UINT nIDMoveCommand);

Parâmetros

nIDMoveCommand
Um dos seguintes valores padrão de ID de comando:

  • ID_RECORD_FIRST Avançar para o primeiro registo do conjunto de registos.

  • ID_RECORD_LAST Avançar para o último registo do conjunto de registos.

  • ID_RECORD_NEXT Passar para o próximo registo no conjunto de registos.

  • ID_RECORD_PREV Avançar para o registo anterior no conjunto de registos.

Valor de retorno

Não zero se a jogada fosse bem-sucedida; caso contrário, 0 se o pedido de mudança for recusado.

Observações

A implementação padrão chama a função membro apropriada Move do CRecordset objeto associada à vista de registo.

Por defeito, OnMove atualiza o registo atual na fonte de dados se o utilizador o tiver alterado na vista de registo.

O Assistente de Aplicação cria um recurso de menu com os itens do menu Primeiro Registo, Último Registo, Próximo Registo e Registo Anterior. Se selecionar a opção Barra de Ferramentas Acoplável, o Assistente de Aplicações também cria uma barra de ferramentas com botões correspondentes a estes comandos.

Se ultrapassar o último registo no conjunto de registos, a vista de registo continua a mostrar o último registo. Se recuar para além do primeiro registo, a visualização de registo continua a mostrar o primeiro registo.

Atenção

A chamada OnMove lança uma exceção se o conjunto de registros não tiver registros. Chame a função responsável pela atualização da interface de utilizador apropriada — OnUpdateRecordFirst, OnUpdateRecordLast, OnUpdateRecordNext, ou OnUpdateRecordPrev — antes da operação de transferência correspondente para determinar se o conjunto de registos tem algum registo.

Consulte também

Classe CFormView
Gráfico de Hierarquia
Classe CRecordset
Classe CFormView