Fungsi tampilan database secara umum Persyaratannya adalah sebagai berikut:
1. Dapat menampilkan field tertentu Tentu saja nama field dan teks yang ditampilkan bisa berbeda.
2. Dapat melakukan kueri beberapa bidang secara bersamaan, mendukung metode kueri fuzzy dan presisi.
3. Ada dua mode tampilan: susunan bidang horizontal dan susunan bidang vertikal.
4. Dapat membuat halaman secara otomatis.
5. Bisa mengatur berapa banyak record yang akan ditampilkan pada setiap halamannya. Nah itu saja untuk kebutuhan besarnya, Ayu menuliskan fungsinya sebagai berikut.
Faktanya, Ayu menulis dua fungsi di sini. Salah satunya adalah TABDISP(), yang digunakan untuk menampilkan konten tabel tertentu. Yang lainnya adalah ER(), fungsi penanganan kesalahan kecil.
Fungsi ini memiliki 5 parameter (banyak sekali). Setiap parameter harus diisi dengan data dan tidak boleh kosong, jika tidak maka akan terjadi error.
1(TAB), nama tabel yang akan dipanggil.
2 (DISPFILD), field mana dalam tabel yang harus ditampilkan, jika nama field berbeda dengan karakter yang akan ditampilkan, pisahkan dengan <. Gambar di halaman, lalu tulis saja Untuk IMG<gambar, jika ada beberapa bidang, gunakan "," untuk memisahkan setiap bidang. Sayangnya, ceritanya panjang.
3(FINDFILD), bidang mana yang akan ditanyakan, dan nama bidang serta karakter yang akan ditampilkan dipisahkan oleh <.
4(PAGEN), berapa banyak record yang ditampilkan pada setiap halaman.
5 (FH), arah tampilan. Jika S, ditampilkan secara vertikal. Jika H, ditampilkan secara horizontal.
Nilai yang dikembalikan dari fungsi tersebut adalah benar jika tidak ada kesalahan, jika tidak maka akan salah.
Fungsi ini tidak termasuk bagian koneksi ke database, jadi Anda harus terhubung sendiri ke perpustakaan. Selain itu, untuk aplikasi berulang, Anda dapat menyimpan fungsi ini dalam file dan kemudian menyertakan file ini bila diperlukan.
Perhatikan fungsinya berikut ini: (Jangan sampai ketinggalan membacanya, saya akan memberikan contoh aplikasinya di akhir)
<%
'Berikut ini mendefinisikan fungsi TABDISP() untuk menampilkan tabel, parameter TAB, nama tabel yang akan ditampilkan, DISPFILD, bidang yang akan ditampilkan, FINDFILD, bidang kueri, PAGEN, nomor yang ditampilkan per halaman, fh, the arah tampilan
'Jika tampilan berhasil, nilai yang dikembalikan adalah benar; jika tidak berhasil, nilai yang dikembalikan adalah salah.
'Gunakan, untuk memisahkan beberapa bidang
'Bidang kueri harus disertakan dalam bidang tampilan.
'Jika nama field berbeda dengan nama yang akan ditampilkan, gunakan < untuk memisahkan nama field dan nama yang ditampilkan. Nama field dan karakter tampilan harus dipisahkan dengan < agar field yang akan dicari.
'Arah tampilan FH adalah "H" untuk tampilan horizontal, "S" untuk tampilan vertikal, peka huruf besar-kecil
FUNGSI TABDISP(TAB,DISPFILD,FINDFILD,PAGEN,FH)
Pada Kesalahan Lanjutkan Berikutnya
JIKA DISPFILD="" MAKA DISPFILD="*"
JIKA HALAMAN="" MAKA HALAMAN=15
TAMPILKAN1=TAMPILKAN&","
findfild1=findfild&","
redup temukanl(10),findr(10)
i1=1
lakukan sambil instr(findfild1,","")<>0
bintang=instr(findfild1,",")
temukanl(i1)=kiri(temukanfild1,bintang-1)
temukanr(i1)=temukanl(i1)
fildbak=temukanl(i1)
temukanl(i1)=kiri(fildbak,instr(fildbak,"<")-1)
findr(i1)=kanan(fildbak,len(fildbak)-instr(fildbak,"<"))
findfild1=kanan(findfild1,len(findfild1)-bintang)
i1=i1+1
lingkaran
Respon.Tulis "<tabel border='0' width='100%' Cellspacing='0'><tr><form method='GET'>"
Respon.Tulis "<TD > " 'width='50%'
JIKA SESI("FLMENULBUP")<>"" LALU
Response.Tulis "Kolom saat ini: <A HREF='FLMEN.ASP?MENULB="&SESSION("FLMENULBUP")&"'>"&MID(SESSION("FLMENULBUP"),4,200)&"</A>"
AKHIR JIKA
JIKA SESI("flmenulb")<> SESI("FLMENULBUP") MAKA
Respon.Tulis " >> <A HREF='FLMEN.ASP?menulb="&SESSION("FLMENULBUP")&"&LB="&SESSION("flmenulb")&"'>"&MID(SESSION("flmenulb"),4,200 )&"</A>"
AKHIR JIKA
Respons.Tulis "</TD><td align='right' ></td><td align='right'><table border='0' Cellspacing='0' cellpadding='0'> "
Respon.Tulis "<tr><td rowpan='2'><img src='img/SEARCH.GIF' width='50'> </td>"
untuk i3=1 hingga i1-1
Respons.Tulis "<td>"&findr(i3)&":</td>"
Berikutnya
Respon.Tulis "</tr><tr>" '<td></td>
untuk i2=1 hingga i1-1
Respon.Tulis "<td><input type='text' name='key_word"&i2&"' size='8' value=''></td>"
selanjutnya.Tulis
"<tr></table></td><td width='20%'> <input type='checkbox' name='find_fr' value='yes'>Akurat<input type='submit ' nilai='Mulai' nama='B_FIND'></td>"
Respon.Tulis "</form> </tr></table>"
temukan_fr=permintaan("temukan_fr")
TJ = ""
urlllr="&find_fr="&find_fr
temukanlrdisp=""
UNTUK I3=1 SAMPAI I1-1
TJ1=permintaan("KEY_WORD"&I3)
urllr=urllr&"&kata_kunci"&i3&"="&tj1
JIKA TJ1=TEMUKAN(I3) ATAU TJ1="" MAKA
TJ1=""
KALAU TIDAK
jika find_fr<>"ya" maka
findlrdisp=findlrdisp&findr(i3)&"Berisi ""&TJ1&"" "
tj1=" DAN "&findL(I3)&" seperti '%"&TRIM(TJ1)&"%' "
kalau tidak
findlrdisp=findlrdisp&findr(i3)&"是""&TJ1&""
tj1=" DAN "&FINDL(I3)&" = '"&TRIM(TJ1)&"' "
berakhir jika
AKHIR JIKA
TJ=TJ&TJ1
JIKA TJ="" LALU
TOPSN="300 TERATAS"
KALAU TIDAK
TOPSN=""
AKHIR JIKA
BERIKUTNYA
bidang redup(35),dispfil(35),dispfildlr
tampilanfildlr=""
saya=1
dispfild1=dispfild1
lakukan sambil instr(dispfild1,","")<>0
bintang=instr(dispfild1,",")
fild(i)=kiri(dispfild1,bintang-1)
dispfil(i)=fild(i)
jika instr(fild(i),"<")<>0 maka
fildbak=fild(i)
fild(i)=kiri(fildbak,instr(fildbak,"<")-1)
dispfil(i)=kanan(fildbak,len(fildbak)-instr(fildbak,"<"))
berakhir jika
dispfildlr=dispfildlr&fild(i)&","
dispfild1=kanan(dispfild1,len(dispfild1)-bintang)
saya=saya+1
lingkaran
dispfildlr=kiri(dispfildlr,len(dispfildlr)-1)
SQL="PILIH "&topsn&" id,"&DISPFILDlr&" DARI "&TAB&" DI MANA ID<>-1 "&tj&" diurutkan berdasarkan -ID"
'Respon.Tulis sql
sesi("tabsql")=sql
Setel rs=Server.CreateObject("ADODB.RecordSet")
rs.Buka sql, samb., 1,3
jika bukan rs.eof maka
halamann=permintaan("halaman")
jika halamann<=0 atau halamann="" maka halamann=1
rs.pagesize=halaman
pagezs=rs.jumlah halaman
JIKA cint(PAGESN)>pagezs MAKA halamann=PAGEZS
zs=rs.jumlah catatan
halaman=(halaman-1)*halaman
rs.pindah halaman,1
if findlrdisp<>"" lalu Response.Write "Setelah mencari, catatan "&findlrdisp&" adalah sebagai berikut:"
Respon.Tulis "<batas tabel='0' lebar='90%'>"
jika zs>=300 dan topsn<>"" maka
Response.Write "<tr> <form method='POST' action='?"&urllr&"'><td width='54%'>Jumlah totalnya sangat besar. Item "&ZS&" pertama saat ini ditampilkan, dibagi ke dalam halaman "&PAGEZS&". Sekarang Ini adalah halaman "&PAGESN&"</td>"
kalau tidak
Response.Write "<tr> <form method='POST' action='?"&urllr&"'><td width='54%'>Ada total item "&ZS&", dibagi menjadi halaman "&PAGEZS&". Saat ini halamannya adalah "&PAGESN&" halaman</td>"
berakhir jika
Response.Tulis "<td width='11%' align='center'><a href='?PAGESN="&PAGESN-1&urllr&"'>Halaman sebelumnya</A></td>"
Respon.Tulis "<td width='11%' align='center'><a href='?PAGESN="&PAGESN+1&urllr&"'>Halaman berikutnya</A></td>"
Response.Tulis "<td width='24%' ALIGN='RIGHT'>Langsung ke halaman"
Respon.Tulis "<input type='text' name='PAGESN' size='2'>Halaman<input type='submit' value='GO' name='B1'></td></form> "
Respon.Tulis "</tr></table> "
jika fh = "H" MAKA
Respon.Tulis " <tabel border='0' width='100%' Cellspacing='1' cellpadding='0'>"
Respon.Tulis " <tr bgcolor='#EDBAA5' align='center'> "
untuk ii=1 sampai i-1
Respons.Tulis "<td>"&dispFIL(ii)&"</td>"
Berikutnya
Respon.Tulis "</tr>"
untuk iii=1 ke halaman
Respon.Tulis "<tr bgcolor='#FFFAEE'>"
UNTUK II=1 SAMPAI I-1
Respon.Tulis "<td>"&RS(fild(II))&"</td>"
BERIKUTNYA
Respon.Tulis "</tr>"
RS.MOVENEXT
jika rs.eof lalu keluar untuk
Berikutnya
Respon.Tulis "</table>"
KALAU TIDAK
Respon.Tulis " <tabel border='0' width='100%' Cellspacing='1' cellpadding='0'>"
untuk iii=1 ke halaman
UNTUK II=1 SAMPAI I-1
Respons.Tulis "<tr><td bgcolor='#EDBAA5' ALIGN='RIGHT' WIDTH='20%'>"&dispFIL(ii)&":</td><td bgcolor='#FFFAEE'>"&RS (fild(II))&"</td></tr>"
BERIKUTNYA
Respons.Tulis "<tr height='1'><td bgcolor='#CFBA9E' colspan='2' ALIGN='RIGHT' WIDTH='20%'> </td></tr>"
RS.MOVENEXT
jika rs.eof lalu keluar untuk
Berikutnya
Respon.Tulis "</table>"
AKHIR JIKA
rs.tutup
Respon.Tulis "<batas tabel='0' lebar='90%'>"
jika zs>=300 dan topsn<>"" maka
Response.Write "<tr> <form method='POST' action='?"&urllr&"'><td width='54%'>Jumlah totalnya sangat besar. Item "&ZS&" pertama saat ini ditampilkan, dibagi ke dalam halaman "&PAGEZS&". Sekarang Ini adalah halaman "&PAGESN&"</td>"
kalau tidak
Response.Write "<tr> <form method='POST' action='?"&urllr&"'><td width='54%'>Ada total item "&ZS&", dibagi menjadi halaman "&PAGEZS&". Saat ini halamannya adalah "&PAGESN&" halaman</td>"
berakhir jika
Response.Tulis "<td width='11%' align='center'><a href='?PAGESN="&PAGESN-1&urllr&"'>Halaman sebelumnya</A></td>"
Respon.Tulis "<td width='11%' align='center'><a href='?PAGESN="&PAGESN+1&urllr&"'>Halaman selanjutnya</A></td>"
Response.Tulis "<td width='24%' ALIGN='RIGHT'>Langsung ke halaman"
Respon.Tulis "<input type='text' name='PAGESN' size='2'>Halaman<input type='submit' value='GO' name='B1'></td></form> "
Respon.Tulis "</tr></table> "
kalau tidak
Response.Tulis "Tidak ditemukan catatan yang sesuai"
berakhir jika
jika er() maka
tabdisp=Salah
kalau tidak
tabdisp=Benar
berakhir jika
FUNGSI AKHIR
Fungsi Er() 'Fungsi penanganan kesalahan
Jika Err.Number = 0 Maka
Er=Salah
Kalau tidak
Err. Jelas
Er=Benar
Akhiri Jika
Fungsi Akhir
%>
Akhirnya selesai membaca fungsinya...
Anda sedikit lelah, tapi tidak masalah jika Anda perhatikan baik-baik atau tidak. Pokoknya sesuaikan saja.
Pertama, kita simpan fungsi sebelumnya, yaitu bagian antara <% dan %>, ke dalam file bernama TABDISP.ASP.
Kodenya adalah sebagai berikut:
Menampilkan tabel daftar pekerjaan, nama tabel: ZG
Terdapat beberapa field antara lain ID, Nama, Jabatan, TEL BP, DZ (alamat)
.
. . . . . .
Menghubungkan ke database dilewati di sini dan tidak akan ditulis.
%>
<!--#include file="TABDISP.asp"-->
<%
DISP="nama,posisi,judul,TEL<telepon,BP<paging,DZ<alamat"
FIND="Nama<Nama, Jabatan<Judul, DZ<Alamat"
HALAMAN="15"
FH = "H"
TAB="ZG"
JIKA BUKAN TABDISP(TAB,DISP,TEMUKAN,PAGEN,FH) MAKA
respon.tulis "Terjadi kesalahan,"
AKHIR JIKA
SETEL KONN=TIDAK ADA
%>
Berikan saja konten di atas nama file dan semuanya akan baik-baik saja.