בולנט - דברים מיוחדים...     פרוטו - בניית אתרים

Israeli ASP Organization

ארגון ה-ASP הישראלי

מאמרים/דוגמאות קוד
קישורים
ספרות
חיפוש כללי:

חפש!
כלליHTMLASPASP.NETSQLמסדי נתוניםJavaScriptXML * XSLDHTML * CSSעיצוב וגרפיקהשרתיםComponentsפרסום ושיווקקידום אתריםקופירייטינגPHP
פרסומת
דף ראשי מדורים דרושים הרשמה למועדון אודותינו צור קשר
מיקום: מאמרים ודוגמאות קוד > ASP

פונקציית גרף טקסטואלי

מה זה?

פונקציה המקבלת שאילתת SQL ועוד משתנים, ויודעת להציג את התוצאה בצורת גרף טקסטואלי.

הסבר

הפונקציה פועלת בצורה יחסית פשוטה אך מתוחכמת. היא יודעת לעבור על כל הרשומות ב-RecordSet, לכתוב את הערך בשדה הראשון (rs(0)) ואז, בעזרת לולאת FOR מ-1 ועד הערך שבשדה השני (rs(1)) ולכתוב תו אותו ניתן לבחור.
התוצאה שנקבל היא בעצם גרף טקסטואלי פשוט!
יש לשים לב שהפוקנציה קוראת לשדות במספרים ולא בשמות שלהם כדי שלא ישנה השם של השדות בעת הקריאה לפונקציה. היא יודעת שבשדה הראשון אמור להיות ערך שיכתב ובשדה השני ערך מספרי המייצג את ערך העמודה לאותו ערך שבשדה הראשון.
מן הסתם, בדרך כלל נשלח לפונקציה משפטי SQL אשר משתמשים בפונקציות COUNT ו-SUM אשר יודעות לספור או לסכום ערכים מול עמודות מסויימות, למשל: מספר כניסות לאתר לפי תאריכים, מספר לחיצות לפי מאמרים, סכום רכישות לפי חודשים וכו...
רצוי גם לתחום את גבול התוצאות בעזרת TOP כדי שהתוצאה לא תהיה סתם ארוכה.

בתחילת הפונקציה יש בדיקה האם קיימים כבר אובייקטים המשמשים לקישור למסד הנתונים בשמות cn ו-rs.
אם הפונקציה מוצאת שאובייקט כבר קיים, היא משתמשת בו, אם לא, היא יוצרת אותו, משתמשת בו ומעלימה אותו בסוף הקריאה לפונקציה.
לכן רצוי שבדפים בהם יש קריאה לפונקציה, שתשתמשו באובייקט Connection בשם cn ואובייקט RecordSet בשם rs על מנת להגיע לביצועים אופטימלים של הפונקציה.

הפונקציה בנויה בצורתה הבסיסית ויש הרבה מקום לשיפורים. אני אמנה פה מספר שיפורים כהצעות:

  • שימוש בקובץ תמונה במקום בתו כדי לקבל גרף לא טקסטואלי - יפה יותר מבחינה ויזואלית
  • הכנסת התוצאות לטבלה וכך לאפשר יצירת גרך אנכי או אופקי, לפי בקשת המשתמש.

שימושים

הצגת תוצאות סקרים, מילות חיפוש נפוצות, מונה כניסות, לחיצות, הרשמות ובעצם כמעט כל טבלה שתהיה לנו במסד הנתונים.
הפונקציה גם שימושית מאוד למערכות ניהול (admin) בהן בדרך כלל רוצה בעל האתר לראות את נתוני האתר באופן ויזואלי.

קוד הפונקציה

Sub drawTextGraph(sign,color,size,chars,SQL) Dim removeRS,max removeRS = False if isObject(rs) and isObject(cn) Then 'rs+cn rs.Open SQL,cn,3,1 Else if isObject(rs) Then 'NO cn rs.Open SQL,DSN,3,1 Else 'NO rs, cn-? Set rs = Server.CreateObject("ADODB.RecordSet") removeRS = True if isObject(cn) Then rs.Open SQL,cn,3,1 Else rs.Open SQL,DSN,3,1 End if End if End if While NOT rs.EOF if rs(1) > max Then max = rs(1) rs.MoveNext Wend rs.MoveFirst While NOT rs.EOF Response.Write rs(0) & " - <font color=" & color & " size=" & size & ">" For i = 1 to Cint((Cint(rs(1))/max)*chars) Response.Write sign Next Response.Write "</font> (" & rs(1) & ")" Response.Write "<HR>" rs.MoveNext Wend if removeRS = True Then rs.Close Set rs = Nothing End if End sub

דוגמא לקריאה לפונקציה

SQL = "SELECT TOP 10 the_date, COUNT(0) " SQL = SQL & "FROM USERS " SQL = SQL & "GROUP BY the_date " SQL = SQL & "ORDER BY the_date DESC " drawTextGraph "/","orange","1",150,SQL

התוצאה

17/01/2002 - ///////////////// (18)


16/01/2002 - ///////////////////////////////////////////////////////////////////////////////////////////////////////////// (113)
15/01/2002 - ////////////////////////////////////////////////////////////////////////////////////////(91)
14/01/2002 - //////////////////////////////////////////////////////////////////////////////////////////// (96)
13/01/2002 - ///////////////////////////////////////////////////////////////////////////////////////////////////////// (109)
12/01/2002 - ///////////////////////////////////////////////////////////////////////////////////////////////// (101)
11/01/2002 - //////////////////////////////////////////////////////////////////////////////////////// (92)
10/01/2002 - ////////////////////////////////////////////////////////////////////////////////// (85)
09/01/2002 - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// (156)
08/01/2002 - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////(138)



התגובות שלכם

         
01. 13/07/2005  רותם
יפה מאוד!


מחבר: אדם ליבסקירמת קושי: 2  ||  עוד לא דורגכל הזכויות שמורות ל-IAO ©

חנות לסטלן  |   מתכונים  |   חגי ישראל  |   פורטל משחקים  |   חנויות מחשבים ו-ציוד הקפי  |   מגזין מסטול לסטלן המצוי  |   קליפרים  |   גידול צמחים פרחים  |   ספא פינוק מושלם