Kelas CRecordView
Tampilan yang menampilkan rekaman database dalam kontrol.
Sintaks
class AFX_NOVTABLE CRecordView : public CFormView
Anggota
Konstruktor yang Dilindungi
Nama | Deskripsi |
---|---|
CRecordView::CRecordView | Membuat CRecordView objek. |
Metode Publik
Nama | Deskripsi |
---|---|
CRecordView::IsOnFirstRecord | Mengembalikan bukan nol jika rekaman saat ini adalah rekaman pertama dalam kumpulan rekaman terkait. |
CRecordView::IsOnLastRecord | Mengembalikan bukan nol jika rekaman saat ini adalah rekaman terakhir dalam kumpulan rekaman terkait. |
CRecordView::OnGetRecordset | Mengembalikan penunjuk ke objek kelas yang berasal dari CRecordset . ClassWizard mengambil alih fungsi ini untuk Anda dan membuat recordset jika perlu. |
CRecordView::OnMove |
Metode yang Dilindungi
Nama | Deskripsi |
---|---|
CRecordView::OnMove | Jika rekaman saat ini telah berubah, perbarui pada sumber data, lalu berpindah ke rekaman yang ditentukan (berikutnya, sebelumnya, pertama, atau terakhir). |
Keterangan
Tampilan adalah tampilan formulir yang terhubung langsung ke CRecordset
objek. Tampilan dibuat dari sumber daya templat dialog dan menampilkan bidang CRecordset
objek dalam kontrol templat dialog. Objek CRecordView
menggunakan pertukaran data dialog (DDX) dan pertukaran bidang rekaman (RFX) untuk mengotomatiskan pergerakan data antara kontrol pada formulir dan bidang kumpulan rekaman. CRecordView
juga menyediakan implementasi default untuk pindah ke rekaman pertama, berikutnya, sebelumnya, atau terakhir dan antarmuka untuk memperbarui rekaman yang saat ini sedang dilihat.
Catatan
Jika Anda bekerja dengan kelas Objek Akses Data (DAO) daripada kelas Open Database Connectivity (ODBC), gunakan kelas CDaoRecordView sebagai gantinya. Untuk informasi selengkapnya, lihat artikel Gambaran Umum: Pemrograman Database.
Cara paling umum untuk membuat tampilan catatan Anda adalah dengan Panduan Aplikasi. Application Wizard membuat kelas tampilan rekaman dan kelas recordset terkait sebagai bagian dari aplikasi pemula kerangka Anda. Jika Anda tidak membuat kelas tampilan rekaman dengan Panduan Aplikasi, Anda bisa membuatnya nanti dengan ClassWizard. Jika Anda hanya memerlukan satu formulir, pendekatan Application Wizard lebih mudah. ClassWizard memungkinkan Anda memutuskan untuk menggunakan tampilan rekaman nanti dalam proses pengembangan. Menggunakan ClassWizard untuk membuat tampilan rekaman dan recordset secara terpisah dan kemudian menghubungkannya adalah pendekatan yang paling fleksibel karena memberi Anda lebih banyak kontrol dalam menamai kelas recordset dan . H/. File CPP. Pendekatan ini juga memungkinkan Anda memiliki beberapa tampilan rekaman pada kelas recordset yang sama.
Untuk memudahkan pengguna akhir berpindah dari rekaman ke rekaman dalam tampilan rekaman, Panduan Aplikasi membuat sumber daya menu (dan toolbar opsional) untuk berpindah ke rekaman pertama, berikutnya, sebelumnya, atau terakhir. Jika Anda membuat kelas tampilan rekaman dengan ClassWizard, Anda perlu membuat sumber daya ini sendiri dengan editor menu dan bitmap.
Untuk informasi tentang implementasi default untuk berpindah dari rekaman ke rekaman, lihat IsOnFirstRecord
dan IsOnLastRecord
artikel Menggunakan Tampilan Rekaman.
CRecordView
melacak posisi pengguna di kumpulan rekaman sehingga tampilan rekaman dapat memperbarui antarmuka pengguna. Saat pengguna berpindah ke salah satu akhir kumpulan rekaman, tampilan rekaman menonaktifkan objek antarmuka pengguna — seperti item menu atau tombol toolbar — untuk bergerak lebih jauh ke arah yang sama.
Untuk informasi selengkapnya tentang mendeklarasikan dan menggunakan tampilan rekaman dan kelas recordset Anda, lihat "Mendesain dan Membuat Tampilan Rekaman" dalam artikel Tampilan Rekaman. Untuk informasi selengkapnya tentang cara kerja tampilan rekaman dan cara menggunakannya, lihat artikel Menggunakan Tampilan Catatan.
Hierarki Warisan
CRecordView
Persyaratan
Header: afxdb.h
CRecordView::CRecordView
Saat Anda membuat objek jenis yang berasal dari CRecordView
, panggil salah satu bentuk konstruktor untuk menginisialisasi objek tampilan dan mengidentifikasi sumber daya dialog tempat tampilan berada.
explicit CRecordView(LPCTSTR lpszTemplateName);
explicit CRecordView(UINT nIDTemplate);
Parameter
lpszTemplateName
Berisi string yang dihentikan null yang merupakan nama sumber daya templat dialog.
nIDTemplate
Berisi nomor ID sumber daya templat dialog.
Keterangan
Anda dapat mengidentifikasi sumber daya berdasarkan nama (meneruskan string sebagai argumen ke konstruktor) atau dengan ID-nya (meneruskan bilangan bulat yang tidak ditandatangani sebagai argumen). Sebaiknya gunakan ID sumber daya.
Catatan
Kelas turunan Anda harus menyediakan konstruktornya sendiri. Di konstruktor kelas turunan Anda, panggil konstruktor CRecordView::CRecordView
dengan nama sumber daya atau ID sebagai argumen, seperti yang ditunjukkan pada contoh di bawah ini.
CRecordView::OnInitialUpdate
UpdateData
memanggil , yang memanggil DoDataExchange
. Panggilan awal ini untuk DoDataExchange
menyambungkan CRecordView
kontrol (secara tidak langsung) ke CRecordset
anggota data bidang yang dibuat oleh ClassWizard. Anggota data ini tidak dapat digunakan sampai setelah Anda memanggil fungsi anggota kelas CFormView::OnInitialUpdate
dasar.
Catatan
Jika Anda menggunakan ClassWizard, wizard menentukan enum
nilai CRecordView::IDD
, menentukannya dalam deklarasi kelas, dan menggunakannya dalam daftar inisialisasi anggota untuk konstruktor.
Contoh
CMyRecordView::CMyRecordView()
: CRecordView(CMyRecordView::IDD)
{
m_pSet = NULL;
// TODO: add construction code here
}
CRecordView::IsOnFirstRecord
Panggil fungsi anggota ini untuk menentukan apakah rekaman saat ini adalah rekaman pertama dalam objek kumpulan rekaman yang terkait dengan tampilan rekaman ini.
BOOL IsOnFirstRecord();
Tampilkan Nilai
Bukan nol jika rekaman saat ini adalah rekaman pertama dalam kumpulan rekaman; jika tidak, 0.
Keterangan
Fungsi ini berguna untuk menulis implementasi handler pembaruan perintah default Anda sendiri yang ditulis oleh ClassWizard.
Jika pengguna berpindah ke rekaman pertama, kerangka kerja menonaktifkan objek antarmuka pengguna apa pun yang Anda miliki untuk pindah ke rekaman pertama atau sebelumnya.
CRecordView::IsOnLastRecord
Panggil fungsi anggota ini untuk menentukan apakah rekaman saat ini adalah rekaman terakhir dalam objek kumpulan rekaman yang terkait dengan tampilan rekaman ini.
BOOL IsOnLastRecord();
Tampilkan Nilai
Bukan nol jika rekaman saat ini adalah rekaman terakhir dalam kumpulan rekaman; jika tidak, 0.
Keterangan
Fungsi ini berguna untuk menulis implementasi Anda sendiri dari handler pembaruan perintah default yang ditulis ClassWizard untuk mendukung antarmuka pengguna untuk berpindah dari rekaman ke rekaman.
Perhatian
Hasil dari fungsi ini dapat diandalkan kecuali bahwa tampilan tidak dapat mendeteksi akhir kumpulan rekaman sampai pengguna telah melewatinya. Pengguna harus bergerak melampaui rekaman terakhir sebelum tampilan rekaman dapat mengetahui bahwa pengguna harus menonaktifkan objek antarmuka pengguna apa pun untuk pindah ke rekaman berikutnya atau terakhir. Jika pengguna bergerak melewati rekaman terakhir lalu berpindah kembali ke rekaman terakhir (atau sebelum itu), tampilan rekaman dapat melacak posisi pengguna di kumpulan rekaman dan menonaktifkan objek antarmuka pengguna dengan benar. IsOnLastRecord
juga tidak dapat diandalkan setelah panggilan ke fungsi OnRecordLast
implementasi , yang menangani perintah ID_RECORD_LAST, atau CRecordset::MoveLast
.
CRecordView::OnGetRecordset
Mengembalikan penunjuk ke CRecordset
objek -turunan yang terkait dengan tampilan rekaman.
virtual CRecordset* OnGetRecordset() = 0;
Tampilkan Nilai
Penunjuk ke CRecordset
objek -turunan jika objek berhasil dibuat; jika tidak, penunjuk NULL.
Keterangan
Anda harus mengambil alih fungsi anggota ini untuk membangun atau mendapatkan objek recordset dan mengembalikan penunjuk ke dalamnya. Jika Anda mendeklarasikan kelas tampilan rekaman Anda dengan ClassWizard, wizard akan menulis penimpaan default untuk Anda. Implementasi default ClassWizard mengembalikan penunjuk recordset yang disimpan dalam tampilan rekaman jika ada. Jika tidak, ini membangun objek kumpulan rekaman dari jenis yang Anda tentukan dengan ClassWizard dan memanggil fungsi anggotanya Open
untuk membuka tabel atau menjalankan kueri, lalu mengembalikan penunjuk ke objek.
Untuk informasi dan contoh selengkapnya, lihat artikel Tampilan Rekaman: Menggunakan Tampilan Rekaman.
CRecordView::OnMove
Panggil fungsi anggota ini untuk berpindah ke rekaman lain di kumpulan rekaman dan tampilkan bidangnya di kontrol tampilan rekaman.
virtual BOOL OnMove(UINT nIDMoveCommand);
Parameter
nIDMoveCommand
Salah satu nilai ID perintah standar berikut:
ID_RECORD_FIRST Pindah ke rekaman pertama dalam kumpulan rekaman.
ID_RECORD_LAST Pindahkan ke rekaman terakhir dalam kumpulan rekaman.
ID_RECORD_NEXT Pindah ke rekaman berikutnya di kumpulan rekaman.
ID_RECORD_PREV Pindah ke rekaman sebelumnya di kumpulan rekaman.
Tampilkan Nilai
Bukan nol jika pemindahan berhasil; jika tidak, 0 jika permintaan pemindahan ditolak.
Keterangan
Implementasi default memanggil fungsi anggota objek yang sesuai Move
yang CRecordset
terkait dengan tampilan rekaman.
Secara default, OnMove
memperbarui rekaman saat ini pada sumber data jika pengguna telah mengubahnya dalam tampilan rekaman.
Panduan Aplikasi membuat sumber daya menu dengan item menu Rekaman Pertama, Rekaman Terakhir, Rekaman Berikutnya, dan Rekaman Sebelumnya. Jika Anda memilih opsi Bilah Alat yang Dapat Ditampung, Wizard Aplikasi juga membuat toolbar dengan tombol yang sesuai dengan perintah ini.
Jika Anda memindahkan rekaman terakhir di kumpulan rekaman, tampilan rekaman akan terus menampilkan rekaman terakhir. Jika Anda bergerak mundur melewati rekaman pertama, tampilan rekaman akan terus menampilkan rekaman pertama.
Perhatian
OnMove
Panggilan melemparkan pengecualian jika kumpulan rekaman tidak memiliki rekaman. Panggil fungsi handler pembaruan antarmuka pengguna yang sesuai — OnUpdateRecordFirst
, , OnUpdateRecordNext
OnUpdateRecordLast
, atau OnUpdateRecordPrev
— sebelum operasi pemindahan yang sesuai untuk menentukan apakah set rekaman memiliki rekaman apa pun.
Lihat juga
Kelas CFormView
Bagan Hierarki
Kelas CRecordset
Kelas CFormView