1. 程式人生 > >用ASP及VML實現股票走勢圖

用ASP及VML實現股票走勢圖

作者:NB聯盟-小竹   
<HTML xmlns:v>
<HEAD>
<STYLE>
v/:*{behavior:url(#default#VML);}
*{font-size:12px}
</STYLE>
</HEAD>
<BODY topmargin=0 leftmargin=0 bgcolor=#D7EEFF>

<DIV id=showdiv style="font-size:12px; Color:RED; DISPLAY: none; LEFT: 0px; PADDING-BOTTOM: 2px; PADDING-LEFT: 2px; PADDING-RIGHT: 2px; PADDING-TOP: 2px; POSITION: absolute; TABLE-LAYOUT: fixed; TOP: 0px; WHITE-SPACE: nowrap; Z-INDEX: 500"></DIV>
<script language="j

avascript">
<!--
//加速alt,title的顯示
var oldtext="abc";

function window.onload(){
try{myid2.height=window.document.body.scrollHeight}
catch(e){}
}

function document.onmousemove(){
try{
if(event.srcElement.getAttribute('onMOver')){
showdiv.style.left=event.x-3;showdiv.style.top=event.y+document.body.scrollTop+18;if(event.srcElement.onMOver!=oldtext){oldtext=event.srcElement.onMOver;showdiv.innerText=oldtext;showdiv.style.backgroundColor='#FFF6FF'};if(showdiv.style.display=='none')showdiv.style.display=''
if(showdiv.style.posLeft+300>screen.width){showdiv.style.posLeft=520}
}
else{
if(showdiv.style.display=='')showdiv.style.display='none';}
}
catch(e){}
}
//-->
</SCRIPT>

<?xml:namespace prefix=v />
<%
'連線資料庫
set conn=Server.CreateObject("Adodb.Connection")
connStr="Provider=SQLOLEDB;Data Source=(local);database=DBName;uid=user;pwd=pass;"
conn.Open connStr

'初始化,定義變數
BoardID=int(Request("BoardID"))
if Request("BoardID")="" then BoardID=1
PicWidth=720
PicHeight=300

'顯示股票列表下拉選單
sql="Select * from Board where BoardID in (Select BoardID From Stocks)"
set RsBoard=conn.execute(sql)
StockStr="<select onchange=""l

ocation.replace('Trend.asp?BoardID='+this.value)"">"
do while not RsBoard.eof
if RsBoard("BoardID")=BoardID then
ChkStr=" selected"
else
ChkStr=""
end if
StockStr=StockStr&"<option value="&RsBoard("BoardID")&ChkStr&">"&RsBoard("BoardName")&"</option>"
RsBoard.movenext
loop
set RsBoard=nothing
StockStr=StockStr&"<select>"
response.write StockStr

'開啟股票走勢表
sql="Select * from StocksTrend where BoardID="&BoardID&" and CalTime>getDate()-1 and Day(CalTime)=Day(getDate()) order by ID"
set rs=Server.CreateObject("Adodb.Recordset")
rs.Open sql,conn,1,1

'獲取股票價格列表至陣列,並計算最高最低價
Rec=rs.RecordCount
redim Price(Rec)
Highest=0
Lowest=9999
for i=1 to Rec
Price(i)=rs("Price")
if Price(i)>Highest then Highest=Price(i)
if Price(i)<Lowest then Lowest=Price(i)
rs.movenext
next
set rs=nothing

'畫時間點,間隔6小時
for i=0 to 24 step 6
X=Round(i/24*PicWidth)
DrawLine X,PicHeight,X,PicHeight+5,"#808080"
PrintWord X,PicHeight+15,i&":00"
next

'畫走勢圖邊框
DrawLine 0,0,PicWidth,0,"#000000"
DrawLine 0,0,0,PicHeight,"#000000"
DrawLine PicWidth,0,PicWidth,PicHeight,"#000000"
DrawLine 0,PicHeight,PicWidth,PicHeight,"#000000"

'畫四等分線
DrawLine 0,PicHeight*1/4,PicWidth,PicHeight*1/4,"#AAAAAA"
DrawLine 0,PicHeight*2/4,PicWidth,PicHeight*2/4,"#AAAAAA"
DrawLine 0,PicHeight*3/4,PicWidth,PicHeight*3/4,"#AAAAAA"

'標明四等分線價格
PrintWord PicWidth+15, 0/4*PicHeight, FormatNumber(Highest-(Highest-Lowest)*0/4,2,-1,0,0)
PrintWord PicWidth+15, 1/4*PicHeight, FormatNumber(Highest-(Highest-Lowest)*1/4,2,-1,0,0)
PrintWord PicWidth+15, 2/4*PicHeight, FormatNumber(Highest-(Highest-Lowest)*2/4,2,-1,0,0)
PrintWord PicWidth+15, 3/4*PicHeight, FormatNumber(Highest-(Highest-Lowest)*3/4,2,-1,0,0)
PrintWord PicWidth+15, 4/4*PicHeight, FormatNumber(Highest-(Highest-Lowest)*4/4,2,-1,0,0)

'畫走勢圖
for i=1 to Rec
if i=1 then
SX=0
SY=0
else
SX=X
SY=Y
end if
Y=PicHeight-Round((Price(i)-Lowest)/(Highest-Lowest)*PicHeight)
X=Round((i-1)*5)
DrawPrice SX,SY,X,Y,Price(i),"#000000"
next

'自定義函式:畫線
function DrawLine(SX,SY,X,Y,C)
%><v:line style="POSITION:absolute;LEFT:10;TOP:10" from="<%=SX%>,<%=SY%>" to="<%=X%>,<%=Y%>" strokecolor="<%=C%>" strokeweight="1pt"></v:line><%
response.write vbcrlf
end function

'自定義函式:畫線(帶alt提示功能)
function DrawPrice(SX,SY,X,Y,Price,C)
%><v:line onMOver="<%=Price%>" style="POSITION:absolute;LEFT:10;TOP:10" from="<%=SX%>,<%=SY%>" to="<%=X%>,<%=Y%>" strokecolor="<%=C%>" strokeweight="1pt"></v:line><%
response.write vbcrlf
end function

'顯示文字(預設紅色)
function PrintWord(X,Y,Word)
%><SPAN style="LEFT:<%=X%>;TOP:<%=Y%>;COLOR:RED;FONT-FAMILY:宋體;POSITION:absolute"><%=Word%></SPAN><%
response.write vbcrlf
end function
%>

相關推薦

ASPVML實現股票走勢

作者:NB聯盟-小竹   <HTML xmlns:v><HEAD><STYLE>v/:*{behavior:url(#default#VML);}*{font-size:12px}</STYLE></HEAD><

一步一步教你寫股票走勢——K線二(圖表聯動)

K線圖越做發現坑越多,跟之前做的分時圖完全不是一個重量級的啊,分時圖不需要滾動,少走了很多彎路,K線圖因為滾動的問題,會導致很多其他問題,比如: 多個圖表之間滾動時怎麼聯動 高亮滾動衝突 放縮聯動 … 表對齊 下面我們就開始介紹本

一步一步教你寫股票走勢——分時五(自定義標記)

分時圖開發到現在,基本已經完成了,這部分開發完,就會開始著手k線圖部分的開發。於是我們做了最後的對比,看下還有什麼地方需要增加修改,最後發現,還有標記檢視沒有,先看下什麼是標記檢視(博主不知道這個名字叫啥,自己起的): 我們可以看到高亮

一步一步教你寫股票走勢——分時四(高亮聯動)

前一節我們學習了有關柱狀圖的高亮自定義,那麼這一節我們來搞一搞兩張圖表的聯動效果,先看一下我們要實現的效果。 我們要實現兩張圖表之間建立了連線,我們滾動高亮第一張圖,第二張圖表的高亮也會跟著動,滾動第二張圖表第一張要跟著動。 分析原始

一步一步教你寫股票走勢——K線三(新增均線)

在開篇之前,給大家出個小演算法題,一定要做哦,因為既然你打算看本章節內容了,那麼這個小演算法必須得會的喲! 有一組數,1、2、3……99、100,一共一百個數,假設是ListA,現在將 ListA索引為0、1、2、3、4的數相加

vue-awesome-swiper實現輪播, 點選事件不生效

在專案裡使用swiper實現輪播圖效果 把點選事件掛到圖片或者swiper上在切頁之後, 或者輪播到次輪之後, 有的圖片無法點選 原因是開啟了(loop:true) 開啟loop, 在DOM結構上,s

一步一步教你寫股票走勢——K線四(高亮聯動一)

k線圖的第二節末尾,已經初步講解了高亮聯動,但是效果沒有達到我們的預期,因為k線圖本身就支援左右滾動,所以在滾動高亮的時候就出現了衝突,我們那會只實現了點選圖表,實現高亮的展示,但是效果還是太差,所以才有了我們今天這節的內容,將會優化體驗效果

天氣預報小應用之canvas實現溫度走勢

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <style> p,ul{margin: 0;

基於AChartEngine繪製股票走勢----K線一(繪製陰線陽線)

K線圖,繪製陰陽線 繪製上陽線,基於基礎的react圖形,cancas繪製時限定react的top和bottom,資料點處理時,一個點傳遞五個資料,對應開盤,收盤,最高最低,上陽線是上漲顯示紅色,此時收盤大於開盤,當開收低高全部相等時,判斷依據和上一個交易日的

一步一步教你寫股票走勢——K線五(高亮聯動二)

Bug分析: 之前我們長按移動上面圖表的高亮時,下面柱狀圖的高亮顯示是正常的,但是,我們長按柱狀圖高亮時,bug就來了,上面的圖表很傲嬌啊,高亮壓根不顯示,我們還是看一下之前的效果圖: Bug解決: 還好這位chenguang79的

asp微信掃一掃代碼,asp寫的實現調微信掃一掃功能

code bar lis desc java scan 二維碼 卡號 open 最近一個客戶要求想在他的微信會員卡系統中實現調用微信掃一掃功能,掃描他的會員卡上的條形碼,讀出會員卡號來,研究了一會,發現並不難,下面上代碼: <div id="result"&g

asp.net -mvc框架復習(9)-實現戶登錄控制器和視的編寫並調試

分享圖片 null admin img pac http tro .com sum 1.編寫控制器 三個步驟: 【1】獲取數據 【2】業務處理 【3】返回數據 using System;using System.Collections.Generic;using Syst

通過機器學習的線性迴歸演算法預測股票走勢Python實現

    在本人的新書裡,將通過股票案例講述Python知識點,讓大家在學習Python的同時還能掌握相關的股票知識,所謂一舉兩得。這裡給出以線性迴歸演算法預測股票的案例,以此講述通過Python的sklearn庫實現線性迴歸預測的技巧。     本文先講以波士頓房價資

標插件--jqplot實現柱狀,表盤演示樣例

itl nbsp left 柱狀圖 draw ted ner ann name 柱狀圖 在jqPlot圖表插件使用說明(一)中,我們已經能夠通過jqPlot繪制出比較簡單的線形圖。通過查看源碼。我們也能夠看出,線形圖是jqPlot默認的圖表類型:

(轉)Spring事務處理時自我調的解決方案一些實現方式的風險

上下 喜歡 wire print type service() str bug 銷毀 轉:http://www.iteye.com/topic/1122740 預備知識 測試代碼準備 問題 解決方案 1通過ThreadLocal暴露Aop代理對象 2通過初始化方法在目標對

關於AJAX跨域調ASP.NET MVC或者WebAPI服務的問題解決方案

-h protocol silver 我們 rem 做了 mode edm run 問題描述 當跨域(cross domain)調用ASP.NET MVC或者ASP.NET Web API編寫的服務時,會發生無法訪問的情況。 重現方式

C#中實現QQ截的功能相關問題

runt blog 圖片 finished 觀察 button oid sha basemap 對於QQ截圖,肯定是早就有認識了,只是一直沒有去認真觀察這個操作的具體實現步驟。所以這裏將自己的記憶中的步驟簡單的寫一下: 習慣性用QQ或者TIM的人,一般是使用Ctrl+Alt

php 實現一個視組件和模板引擎——基礎

view content 如何實現 目前 內容 復用 tty 結構 有效 只要不是做後端接口開發和一些作為守護進程之類的服務器腳本,大多數時候都是在和瀏覽器打交道,因此合理組織並展現 html 標簽是最為常見的工作。一般大家使用框架時,都會自帶有一套視圖組件和模板引擎。

Django中間件 form 實現戶登陸

mon bubuko 類型 end utils pda 返回 xxx elf Django中間件 及 form 實現用戶登陸 Form 驗證 密碼調用md5 加密存儲 form.add_error("字段名", "錯誤信息") 自

Voronoimatlab實現

定義 dst color center bsp cdb size target tps [題外話:想一想真是...美賽時我預測求愛爾蘭的充電站位置分布,畫Voronoi圖,程序跑了一個小時...] Voronoi圖,又叫泰森多邊形或Dirichlet圖,它是由一組由