一 簡(jiǎn)介
自從ColdFusion(以下簡(jiǎn)稱CF)被Macromedia公司收購(gòu)了以后,MM公司將CF在FLASH應(yīng)用又提升了一個(gè)層次,利用CF可以動(dòng)態(tài)的和FLASH集成。其中最長(zhǎng)用的是HARPOON,但是CF在FLASH圖表方面的作用卻很少有人知道。今天我要講的就是FLASH在CF中最被看好的特性之一,內(nèi)建圖表。
首先我們需要工具,動(dòng)態(tài)的生成FLASH圖表全靠Macromedia Generator,Generator是FLASH輸出服務(wù)器用來(lái)發(fā)動(dòng)CF制圖的引擎。Generator制圖一般的過(guò)程就是:
1)CF將數(shù)據(jù)傳遞給Generator
2)Generator將該數(shù)據(jù)變成圖表并返回給CF
3)輸出到瀏覽器
當(dāng)然,你不要特意的去安裝Generator,這在你安裝ColdFusion的時(shí)候自動(dòng)安裝好了。如果你安裝了COLDFUSION,可以下載本教程,里面包含了本文章中將要用到的數(shù)據(jù)庫(kù)和腳本文件。
二 熟悉標(biāo)記
CF用來(lái)制圖的標(biāo)記有兩個(gè),即CFGRAPH>和CFGRAPHDATA>,其中CFGRAPH>用的最多,而CFGRAPHDATA>使用頻率幾乎不到1%,所以我們只要熟悉CFGRAPH>就行了。首先介紹一下CFGRAPH>幾個(gè)基本屬性字段。
CFGRAPH>輸出以下參數(shù)是必須的。
1.TYPE:圖表的類型,有5種,餅圖,柱形圖,折線圖,條形圖,面積圖。
2.QUERY:用來(lái)接受CF傳遞數(shù)據(jù)
3.VALUECOLUMN:用來(lái)制圖的數(shù)據(jù)查詢列,例如,一類文章的總數(shù)
4.FILEFORMAT:在瀏覽器輸出的格式,有兩種,F(xiàn)LASH的SWF和JPG格式。
還有些參數(shù),因?yàn)椴皇呛苤匾?,我們將在后面?shí)際應(yīng)用中再一一介紹。
三 示范
這是重點(diǎn),最好親手操作一下,你可以下載本教程中的數(shù)據(jù)庫(kù)使用,不要另外建立一個(gè)數(shù)據(jù)庫(kù)了,另外本數(shù)據(jù)庫(kù)的在CF設(shè)置的數(shù)據(jù)源為CFLASH。
我的數(shù)據(jù)庫(kù)設(shè)計(jì)比較簡(jiǎn)單,完全是為了這篇文章做的,一共有兩個(gè)表:FILE和SORTFILE表存儲(chǔ)文章的標(biāo)題TITLE,詳細(xì)信息detail,文章類型SORT,當(dāng)然還有個(gè)IDSORT包含文章的類型SORTID和名稱SORTNAME。
這兩個(gè)表的關(guān)系是:FILE中的SORT連接到SORT查詢。
我們下面就開始了。
1.首先我們?cè)贑F建立一個(gè)查詢,然后分組、排序。當(dāng)然排序你可以免了的。
內(nèi)容如下:
CFQUERY NAME="wait" DATASOURCE="cflash">
SELECT sortname, COUNT(*) AS Count
FROM sort,file
WHERE file.sort = sort.sortID
GROUP BY sortname
ORDER BY sortname
/CFQUERY>
上面這個(gè)QUERY是查詢每個(gè)類型里面有多少篇文章。
2.做好了查詢以后就有開始制作圖表了。
如果對(duì)CFGRAPH>還不熟悉的話,請(qǐng)?jiān)倏纯辞懊娼榻B的基本類型。
CFGRAPH
TYPE="Pie"
QUERY="wait"
VALUECOLUMN="Count"
ITEMCOLUMN="sortname"
FILEFORMAT="Flash"
TITLE="The Pie"
borderwidth="0"
depth="10">
/CFGRAPH>
我來(lái)介紹一下,TYPE是類型PIE是餅圖,QUERY就是接受先前在CF里面查詢名。VALUECOLUMN是查詢列的數(shù)據(jù),我的目的是統(tǒng)計(jì)每個(gè)類型里面有多少篇文章。ITEMCOLUMN是顯示標(biāo)簽,我這里設(shè)置顯示SORTNAME,類型名稱。 FILEFORMAT是輸出類型。我這里選擇的是FLASH,如果要用圖片顯示,你可以改為JPG。borderwidth:這是圖表邊框,0就是不顯示邊框。DEPTH,為縱深度,你不想 讓你的圖表就是一個(gè)死板的平面圖吧?設(shè)置這里可以更有立體感。
好了?,F(xiàn)在把上面組合成一個(gè)文件,源文件如下:
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
!---
title:讓ColdFusion來(lái)做FLASH1>
author:wait(parole@163.net)
description:CFGGRAPH應(yīng)用
date:November,11 2002
--->
!--- 查詢數(shù)據(jù)庫(kù) --->
CFQUERY NAME="wait" DATASOURCE="cflash">
SELECT sortname, COUNT(*) AS Count
FROM sort,file
WHERE file.sort = sort.sortID
GROUP BY sortname
ORDER BY sortname
/CFQUERY>
html>
head>
title>讓ColdFusion來(lái)做FLASH/title>
/head>
body>
center>h3>CFGRAPH的TYPE4種屬性/h3>/center>
hr>
center>
!--- 下面分別列出了各種屬性的應(yīng)用 --->
CFGRAPH
TYPE="Pie"
QUERY="wait"
VALUECOLUMN="Count"
ITEMCOLUMN="sortname"
FILEFORMAT="Flash"
TITLE="The Pie"
borderwidth="0"
depth="10">
/CFGRAPH>
HR>
center>b>Power by ColdFusion/b>br>fontsize="-1">COPYRIGHT(C)2002 A HREF="MAILTParole@163.net">wait/A>.All Rights Reserved./font>/center>
/body>
/html>
代碼拷貝框
以下是引用片段:
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> !--- title:讓ColdFusion來(lái)做FLASH1> author:wait(parole@163.net) description:CFGGRAPH應(yīng)用 date:November,11 2002 ---> !--- 查詢數(shù)據(jù)庫(kù) ---> CFQUERY NAME="wait" DATASOURCE="cflash"> SELECT sortname, COUNT(*) AS Count FROM sort,file WHERE file.sort = sort.sortID GROUP BY sortname ORDER BY sortname /CFQUERY>
html> head> title>讓ColdFusion來(lái)做FLASH/title> /head> body> center>h3>CFGRAPH的TYPE4種屬性/h3>/center> hr> center> !--- 下面分別列出了各種屬性的應(yīng)用 ---> CFGRAPH TYPE="Pie" QUERY="wait" VALUECOLUMN="Count" ITEMCOLUMN="sortname" FILEFORMAT="Flash" TITLE="The Pie" borderwidth="0" depth="10"> /CFGRAPH> HR> center>b>Power by ColdFusion/b>br>fontsize="-1">COPYRIGHT(C)2002 A HREF="MAILTParole@163.net">wait/A>.All Rights Reserved./font>/center> /body> /html>
|
顯示圖片如下:
每個(gè)類型的都會(huì)按比例來(lái)顯示,這就是餅圖
當(dāng)然,你只要一下TYPE類型,就可以變成其他的了圖形了,例如我一直想要的折線圖
下面是4種常用的效果圖。
是不是很有趣呢?圖表的比例按照我們數(shù)據(jù)庫(kù)的真實(shí)比例而動(dòng)態(tài)構(gòu)成,是不是你想要的效果呢?你可以根據(jù)自己的需要而改變,例如背景色,字體,說(shuō)到字體,需要提醒一點(diǎn)的是,不支持中文[也許是我孤陋寡聞吧]。如果不是你想要的效果,請(qǐng)明天接著看吧,明天,我們將會(huì)在餅圖上做鏈接,真正做到動(dòng)態(tài)的圖表。注意,今天下載的源代碼和教程不包含明天將要說(shuō)到的(還沒(méi)開始寫),但是數(shù)據(jù)庫(kù)不會(huì)改變。
版權(quán)所有,轉(zhuǎn)載請(qǐng)事先通知我。
parole@163.net
123下一頁(yè)閱讀全文