وظيفة عرض قاعدة البيانات العامة هي كما يلي:
1. يمكن عرض الحقول المحددة بالطبع، يمكن أن تكون أسماء الحقول والنص المعروض مختلفة.
2. يمكن الاستعلام عن حقول متعددة في نفس الوقت، مما يدعم طرق الاستعلام الغامضة والدقيقة.
3. هناك وضعان للعرض: الترتيب الأفقي والترتيب الرأسي للحقول.
4. يمكن ترقيم الصفحات تلقائيًا.
5. يمكن تعيين عدد السجلات التي سيتم عرضها في كل صفحة. حسنًا، هذا هو المتطلبات الكبيرة، وفقًا لهذا المطلب، كتب Ayu الوظيفة التالية.
في الواقع، كتب Ayu وظيفتين هنا: إحداهما TABDISP()، والتي تُستخدم لعرض محتويات جدول محدد، والأخرى هي ER()، وهي وظيفة معالجة أخطاء صغيرة.
تحتوي هذه الدالة على 5 معلمات (وهذا عدد كبير) ويجب إدخال كل معلمة مع البيانات ولا يمكن أن تكون فارغة، وإلا سيحدث خطأ.
1(TAB)، اسم الجدول الذي سيتم استدعاؤه.
2 (DISPFILD)، ما هي الحقول التي يجب عرضها في الجدول، إذا كانت أسماء الحقول مختلفة عن الأحرف المراد عرضها، فافصل بينها بـ <. على سبيل المثال، اسم حقل معين هو: IMG، ولكن يجب عرضه على النحو التالي: الصورة على الصفحة، فقط اكتب لـ IMG<pictures، إذا كان هناك حقول متعددة، استخدم "،" لفصل كل حقل، للأسف، إنها قصة طويلة.
3(FINDFILD)، ما هي الحقول التي سيتم الاستعلام عنها، ويتم فصل أسماء الحقول والأحرف التي سيتم عرضها بـ <.
4(صفحة)، كم عدد السجلات التي يتم عرضها في كل صفحة.
5(FH)، اتجاه العرض عندما يكون S، يتم عرضه عموديًا. عندما يكون H، يتم عرضه أفقيًا.
تكون القيمة المرجعة للدالة صحيحة في حالة عدم وجود خطأ، وإلا فهي خاطئة.
هذه الوظيفة لا تشمل الجزء الخاص بالاتصال بقاعدة البيانات، لذلك عليك الاتصال بالمكتبة بنفسك، بالإضافة إلى ذلك، بالنسبة للتطبيقات المتكررة، يمكنك حفظ هذه الوظيفة في ملف ثم تضمين هذا الملف عند الحاجة.
ألقِ نظرة على الدالة التالية: (لا تفوت قراءتها، سأعطيك مثالاً للتطبيق في النهاية)
<%
'يحدد ما يلي وظيفة TABDISP() لعرض الجداول، والمعلمات TAB، واسم الجدول الذي سيتم عرضه، وDISPFILD، والحقول التي سيتم عرضها، وFINDFILD، وحقل الاستعلام، وPAGEN، والرقم المعروض في كل صفحة، وfh، و اتجاه العرض
'إذا كان العرض ناجحًا، تكون القيمة المرجعة صحيحة؛ وإذا لم تكن ناجحة، تكون القيمة المرجعة خاطئة.
'استخدم، لفصل حقول متعددة
'يجب تضمين حقل الاستعلام في حقل العرض.
'إذا كان اسم الحقل مختلفًا عن الاسم الذي سيتم عرضه، فاستخدم < للفصل بين اسم الحقل والاسم المعروض، ويجب فصل اسم الحقل وحرف العرض بواسطة < حتى يتم البحث في الحقل.
'اتجاه عرض FH هو "H" للعرض الأفقي، و"S" للعرض الرأسي، وهو حساس لحالة الأحرف
وظيفة TABDISP (TAB، DISPFILD، FINDFILD، PAGEN، FH)
على خطأ استئناف التالي
إذا تم DISPFILD = "" ثم DISPFILD = "*"
إذا كانت الصفحة = "" ثم الصفحة = 15
DISPFILD1=DISPFILD&"،"
findfild1=findfild&"،
خافت findl(10)،findr(10)
ط1=1
افعل ذلك أثناء instr(findfild1,")<>0
نجمة = instr (findfild1، "،")
findl(i1)=left(findfild1,star-1)
مكتشف (i1) = مكتشف (i1)
فيلدباك = Findl (i1)
findl(i1)=left(fildbak,instr(fildbak,"<")-1)
findr(i1)=right(fildbak,len(fildbak)-instr(fildbak,"<"))
findfild1=يمين(findfild1,len(findfild1)-star)
ط1=ط1+1
حلقة
Response.Write "<حدود الجدول='0' العرض='100%' تباعد الخلايا='0'><tr><طريقة النموذج='GET'>"
الاستجابة.اكتب "<TD > " 'width='50%'
إذا كانت الجلسة ("FLMENULBUP")<>"" إذن
Response.اكتب "العمود الحالي: <A HREF='FLMENULBUP"),MENULB="&SESSION("FLMENULBUP")&"'>"&MID(SESSION("FLMENULBUP"),4,200)&"</A>"
نهاية إذا
إذا كانت الجلسة ("flmenulb")<> الجلسة ("FLMENULBUP") إذن
Response.Write " >> <A HREF='FLMEN.ASP?menulb="&SESSION("FLMENULBUP")&"&LB="&SESSION("flmenulb")&"'>"&MID(SESSION("flmenulb"),4,200 )&"</A>"
نهاية إذا
Response.Write "</TD><td align='right' ></td><td align='right'><table border='0' cellpacing='0' cellpadding='0'> "
Response.Write "<tr><tdrowspan='2'><img src='img/SEARCH.GIF' width='50'> </td>"
لـ i3=1 إلى i1-1
Response.اكتب "<td>"&findr(i3)&":</td>"
التالي
Response.اكتب "</tr><tr>" '<td></td>
لـ i2=1 إلى i1-1
Response.Write "<td><input type='text' name='key_word"&i2&"' size='8' value=''></td>"
التالية.اكتب
"<tr></table></td><td width='20%'> <input type='checkbox' name='find_fr' value='yes'>دقيق<input type='submit ' value='ابدأ' name='B_FIND'></td>"
الاستجابة.اكتب "</form> </tr></table>"
find_fr=request("find_fr")
تي جيه =""
urllr='&find_fr='&find_fr
فيندلرديسب = ""
لـ I3=1 إلى I1-1
TJ1=طلب("KEY_WORD"&I3)
urllr=urllr&"&key_word"&i3&"="&tj1
إذا كان TJ1 = FINDR (I3) أو TJ1 = "" إذن
TJ1 = ""
آخر
إذا find_fr<>"نعم" إذن
findlrdisp=findlrdisp&findr(i3)&"يحتوي على ""&TJ1&"" "
tj1=" و"&findL(I3)&" مثل '%"&TRIM(TJ1)&"%' "
آخر
findlrdisp=findlrdisp&findr(i3)&"是""&TJ1&""
tj1=" AND "&FINDL(I3)&" = '"&TRIM(TJ1)&"' "
نهاية إذا
نهاية إذا
TJ=TJ&TJ1
إذا TJ = "" ثم
توبسن = "أعلى 300"
آخر
توبسن =""
نهاية إذا
التالي
dim fild(35)،dispfil(35)،dispfildlr
ديسفيلدلر = ""
أنا = 1
dispfild1=dispfild1
افعل ذلك أثناء instr(dispfild1,")<>0
نجمة = instr (dispfild1، "،")
fild(i)=left(dispfild1,star-1)
dispfil(i)=fild(i)
إذا instr(fild(i),"<")<>0 إذن
fildbak = الحقل (ط)
fild(i)=left(fildbak,instr(fildbak,"<")-1)
dispfil(i)=right(fildbak,len(fildbak)-instr(fildbak,"<"))
نهاية إذا
dispfildlr=dispfildlr&fild(i)&"،
dispfild1=يمين(dispfild1,لين(dispfild1)-نجمة)
ط=ط+1
حلقة
dispfildlr=left(dispfildlr,len(dispfildlr)-1)
SQL = "SELECT "&topsn&" id،"&DISPFILDlr&" من "&TAB&" حيث المعرف<>-1 "&tj&" بترتيب -ID"
'الاستجابة.اكتب SQL
جلسة("tabsql")=sql
تعيين rs=Server.CreateObject("ADODB.RecordSet")
rs.Open SQL، كون، 1،3
إن لم يكن rs.eof ثم
صفحات=طلب("صفحات")
إذا كانت الصفحات <=0 أو الصفحات = "" فإن الصفحات = 1
rs.pagesize=pagen
pagezs=rs.pagecount
IF cint(PAGESN)>pagezs ثم pagesn=PAGEZS
zs=rs.recordcount
page=(pagesn-1)*pagen
صفحة rs.move,1
إذا findlrdisp<>"" ثم Response.اكتب "بعد البحث، تكون سجلات "&findlrdisp&" كما يلي:"
Response.Write "<table border='0' width='90%'>"
إذا zs>=300 وtopsn<>"" إذن
Response.Write "<tr> <form Method='POST' action='؟"&urllr&"'><td width='54%'>العدد الإجمالي كبير جدًا. يتم حاليًا عرض عناصر "&ZS&" الأولى، مقسمة في صفحات "&PAGEZS&" الآن هذه هي الصفحة "&PAGESN&"</td>"
آخر
Response.Write "<tr> <form Method='POST' action='؟"&urllr&"'><td width='54%'>هناك عناصر "&ZS&" إجمالاً، مقسمة إلى صفحات "&PAGEZS&". الصفحة هي صفحة "&PAGESN&"</td>"
نهاية إذا
Response.Write "<td width='11%' align='center'><a href='?PAGESN="&PAGESN-1&urllr&"'>الصفحة السابقة</A></td>"
Response.Write "<td width='11%' align='center'><a href='?PAGESN="&PAGESN+1&urllr&"'>الصفحة التالية</A></td>"
Response.Write "<td width='24%' ALIGN='RIGHT'>انتقل إلى الصفحة"
Response.Write "<نوع الإدخال='text' name='PAGESN' size='2'>الصفحة<نوع الإدخال='submit' value='GO' name='B1'></td></form> "
الاستجابة.اكتب "</tr></table> "
إذا fh = "H" ثم
Response.Write "<table border='0' width='100%' cellpacing='1' cellpadding='0'>"
Response.Write " <tr bgcolor='#EDBAA5' align='center'> "
لثاني = 1 إلى ط -1
Response.اكتب "<td>"&dispFIL(ii)&"</td>"
التالي
الاستجابة.اكتب "</tr>"
لـ iii=1 إلى الصفحة
Response.Write "<tr bgcolor='#FFFAEE'>"
لـ II=1 إلى I-1
Response.اكتب "<td>"&RS(fild(II))&"</td>"
التالي
الاستجابة.اكتب "</tr>"
آر إس موفينيكست
إذا rs.eof ثم الخروج ل
التالي
الاستجابة.اكتب "</table>"
آخر
Response.Write "<table border='0' width='100%' cellpacing='1' cellpadding='0'>"
لـ iii=1 إلى الصفحة
لـ II=1 إلى I-1
Response.Write "<tr><td bgcolor='#EDBAA5' ALIGN='RIGHT' WIDTH='20%'>"&dispFIL(ii)&":</td><td bgcolor='#FFFAEE'>"&RS (fild(II))&"</td></tr>"
التالي
Response.Write "<tr height='1'><td bgcolor='#CFBA9E' colspan='2' ALIGN='RIGHT' WIDTH='20%'> </td></tr>"
آر إس موفينيكست
إذا rs.eof ثم الخروج ل
التالي
الاستجابة.اكتب "</table>"
نهاية إذا
rs. Close
Response.Write "<table border='0' width='90%'>"
إذا zs>=300 وtopsn<>"" إذن
Response.Write "<tr> <form Method='POST' action='؟"&urllr&"'><td width='54%'>العدد الإجمالي كبير جدًا. يتم حاليًا عرض عناصر "&ZS&" الأولى، مقسمة في صفحات "&PAGEZS&" الآن هذه هي الصفحة "&PAGESN&"</td>"
آخر
Response.Write "<tr> <form Method='POST' action='؟"&urllr&"'><td width='54%'>هناك عناصر "&ZS&" إجمالاً، مقسمة إلى صفحات "&PAGEZS&". الصفحة هي صفحة "&PAGESN&"</td>"
نهاية إذا
Response.Write "<td width='11%' align='center'><a href='?PAGESN="&PAGESN-1&urllr&"'>الصفحة السابقة</A></td>"
Response.Write "<td width='11%' align='center'><a href='?PAGESN="&PAGESN+1&urllr&"'>الصفحة التالية</A></td>"
Response.Write "<td width='24%' ALIGN='RIGHT'>انتقل إلى الصفحة"
Response.Write "<نوع الإدخال='text' name='PAGESN' size='2'>الصفحة<نوع الإدخال='submit' value='GO' name='B1'></td></form> "
الاستجابة.اكتب "</tr></table> "
آخر
الاستجابة.اكتب "لم يتم العثور على سجل مناسب"
نهاية إذا
إذا إيه () ثم
tabdisp=خطأ
آخر
tabdisp=صحيح
نهاية إذا
النهاية
وظيفة Er() 'وظيفة معالجة الأخطاء
إذا Err.Number = 0 ثم
ع = خطأ
آخر
خطأ.واضح
ع = صحيح
نهاية إذا
وظيفة النهاية
%>
واخيرا انتهيت من قراءة الدالة...
أنت متعب قليلاً، ولكن لا يهم إذا نظرت بعناية أم لا، فقط قم بتعديله هنا.
أولاً، نقوم بحفظ الوظيفة السابقة، وهي الجزء الموجود بين <% و%>، في ملف يسمى TABDISP.ASP.
الرمز هو كما يلي:
عرض جدول قائمة الوظائف، اسم الجدول: ZG
هناك العديد من الحقول بما في ذلك المعرف والاسم والمسمى الوظيفي وTEL BP وDZ (العنوان
<%
).
. . . . . .
تم تخطي الاتصال بقاعدة البيانات هنا ولن تتم كتابته.
%>
<!--#include file="TABDISP.asp"-->
<%
DISP = "الاسم، الموضع، العنوان، TEL<الهاتف، BP<ترحيل الصفحات،DZ<العنوان"
FIND = "الاسم<الاسم، المنصب<العنوان، DZ<العنوان"
الصفحة = "15"
فه = "ح"
TAB = "ZG"
إذا لم يكن TABDISP (TAB، DISP، FIND، PAGEN، FH) ثم
Response.write "حدث خطأ"،
نهاية إذا
ضبط الاتصال = لا شيء
%>
ما عليك سوى إعطاء المحتوى أعلاه اسم ملف وسيكون كل شيء على ما يرام.