关于ASP下创建XML文件并调用amcharts 画图的实例

来源:互联网 发布:叮叮软件官方下载 编辑:程序博客网 时间:2024/05/22 10:42

 

文章中包含二个部分,生成文件名称和文件内容;调用画图显示图表;

 

做好后的实例在下载栏中可以找到:

 

http://download.csdn.net/source/2831164

 

下面是如何生成文件的代码,做好的实例的路径有小小修改已便符合实际情况。

 

<!--#include file="conn.asp"-->

<!--#include file="mycss.asp"-->

<%

 

Set fs=server.CreateObject("scripting.filesystemobject") 

mainkey=request("mainkey")

modkey=request("modkey")

srs=request("srs")

filerorw=request("rorw")

select case modkey

case "year"

mytitle="Machine Breakdown Type Reason Frequency "&srs& " of "&year(mainkey)&"Y"

filename="BreakdownTypeReason"&year(mainkey)&"Y.xml"

wherestr=wherestr&" and year(BreakdownTime)="&year(cdate(mainkey))

case "month"

mytitle="Machine Breakdown Type Reason Frequency "&srs& " of "&year(mainkey)&"Y-"&month(mainkey)&"M"

filename="BreakdownTypeReason"&year(mainkey)&"-"&month(mainkey)&"M.xml"

wherestr=wherestr&" and year(BreakdownTime)="&year(cdate(mainkey))&" and month(BreakdownTime)="&month(cdate(mainkey)) 

case "week"

se=cdate(year(date)&"-01-01") 

weeks=datediff( "ww",se,mainkey) 

mytitle="Machine Breakdown Type Reason Frequency "&srs& " of "&year(mainkey)&"Y-"&weeks&"Week"

filename="BreakdownTypeReason"&year(mainkey)&"-"&weeks&"W.xml"

tempdate1=dateadd("d",1-weekday(cdate(mainkey)),mainkey)

tempdate2=dateadd("d",7-weekday(cdate(mainkey)),mainkey)

wherestr=wherestr&" and BreakdownTime>='"&tempdate1&"' and BreakdownTime<='"&tempdate2&"'"

case else

se=cdate(year(date)&"-01-01") 

weeks=datediff( "ww",se,mainkey) 

mytitle="Machine Breakdown Type Reason Frequency "&srs& " of "&year(mainkey)&"Y-"&weeks&"Week"

filename="BreakdownTypeReason"&year(mainkey)&"-"&weeks&"W.xml"

tempdate1=dateadd("d",1-weekday(cdate(mainkey)),mainkey)

tempdate2=dateadd("d",7-weekday(cdate(mainkey)),mainkey)

wherestr=wherestr&" and BreakdownTime>='"&tempdate1&"' and BreakdownTime<='"&tempdate2&"'"

end select

filepath="xml/"&filename

fileallname=Server.MapPath(filepath) 

wherestr=wherestr&" and BreakdownCode='"&srs&"' " 

sqlstr="select breakdowncodedescription,count(codeid)as countcode from BreakdownView where breakdownid>0 "&wherestr&" group by breakdowncodedescription,CodeID order by countcode desc"

 

if not fs.FileExists(fileallname) or filerorw="write" then

'sqlstr="select codeid as breakdowncodedescription,count(codeid)as countcode from BreakdownView where breakdownid>0 "&wherestr&" group by CodeID order by countcode desc"

 

 

 

 

dim childNode,CreateCDATASection

set xmldoc=Server.createobject("Msxml2.DOMDocument.4.0")

Set version = xmldoc.createProcessingInstruction("xml","version='1.0' encoding='utf-8'")

xmldoc.appendchild(version)

Set root = xmldoc.CreateNode(1,"pie","")

xmldoc.appendChild(root)

 

set rs=conn.execute (sqlstr,0,1)

i=0

do while not rs.eof 

if i=0 then

set childNode=xmldoc.CreateNode(1,"slice","")

childNode.SetAttribute "title",rs("breakdowncodedescription")

childNode.SetAttribute "pull_out","true"

childnode.text=rs("countcode")

'Set CreateCDATASection = xmldoc.createCDATASection(rs("countcode"))

'childNode.appendChild(createCDATASection)

 

else

set childNode=xmldoc.CreateNode(1,"slice","")

childNode.SetAttribute "title",rs("breakdowncodedescription")

childnode.text=rs("countcode")

'Set CreateCDATASection = xmldoc.createCDATASection(rs("countcode"))

'childNode.appendChild(createCDATASection)

end if

rs.movenext

i=i+1

root.appendChild childNode

response.write err.description

loop

xmldoc.save(Server.Mappath(filepath))

set rs=nothing

end if

 

 

set fs=nothing

xmldoc.close

set xmldoc=nothing

 

%>

 

//以下是调用XML文件画图表。

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>Machine Breakdown Type Reason Frequency of <%=filename%></title>

</head>

 

<body>

<% response.write "<strong>"&mytitle&"</strong>" %>

<!-- saved from url=(0013)about:internet -->

<!-- ampie script-->

  <script type="text/javascript" src="../chart/dup/ampie/swfobject.js"></script>

<div id="flashcontent">

<strong>You need to upgrade your Flash Player</strong>

</div>

 

<script type="text/javascript">

// <![CDATA[

var so = new SWFObject("../chart/dup/ampie/ampie.swf", "ampie", "800", "680", "8", "#FFFFFF");

so.addVariable("path", "../chart/dup/ampie/");

so.addVariable("settings_file", encodeURIComponent("../chart/dup/ampie/ampie_settings.xml"));                // you can set two or more different settings files here (separated by commas)

<% response.write "var filename="""&filename&""";" %>

so.addVariable("data_file", encodeURIComponent("../tpm/xml/"+filename));

 //这里的文件名称和路径是符合服务器上的,请自行修改。

// so.addVariable("chart_data", encodeURIComponent("<settings>...</settings>"));                   // you can pass chart data as a string directly from this file

// so.addVariable("chart_settings", encodeURIComponent("data in CSV or XML format"));              // you can pass chart settings as a string directly from this file

// so.addVariable("additional_chart_settings", encodeURIComponent("<settings>...</settings>"));    // you can append some chart settings to the loaded ones

//  so.addVariable("loading_settings", "LOADING SETTINGS");                                         // you can set custom "loading settings" text here

//  so.addVariable("loading_data", "LOADING DATA");                                                 // you can set custom "loading data" text here

//  so.addVariable("preloader_color", "#999999");

//  so.addVariable("error_loading_file", "ERROR LOADING FILE");                                     // you can set custom "error loading file" text here

so.write("flashcontent");

// ]]>

</script>

<!-- end of ampie script -->

<%

 

response.write "<div id='scrollDiv' style='width:100%; overflow: auto;position: absolute; left:850px; top:25px;height: 80%;'>"

response.write "<table id='accountTable' border='0' cellpadding='0' cellspacing='0' width='200'><thead class='fixedHeader'>"

response.write "<tr class='FixedTitleRow'><th>BreakdownType</th><th>Count</th></tr></thead>"

set rs=conn.execute (sqlstr,0,1)

do while not rs.eof

response.write "<tr>"

response.write "<td>"&rs.fields(0).value&"</td>"

response.write "<td>"&rs.fields(1).value&"</td>"

response.write "</tr>"

rs.movenext

loop

set rs=nothing

response.write "</tbody></table></div>"

%>

</body>

</html>