分享

VFP 圖表使用方式

 Alkaid2015 2012-07-10

*1.Create New Form
*2.Add ole (graph)
*3.Add Combox
*Ctreate table tb (graph(g))
*Form.show
*********************************************************
LPARAMETERS nStyle
*--------------------------------------------------------------
*- pnType : 圖表類型
*- pcTable : 資料表
*- pcTitle : 標題
*--------------------------------------------------------------

&&設定圖表類型
*
二維面積圖 bartype=1 二維條型圖 bartype=2 二維柱形圖 bartype=3 二維折線圖 bartype=4
*
二維餅圖 bartype=5 二維圓環圖 bartype=-4120 二維雷達圖 bartype=-4151
*
二維散點圖 bartype=-4169 柱形折線圖(股票圖) bartype=-4111
*
三維面積圖 bartype=-4098 三維條型圖 bartype=-4099 三維柱型圖 bartype=-4100
*
三維折線圖 bartype=-4101 三維餅圖 bartype=-4102 三維曲面圖 -4103


*--------------------------------------------------------------
THISFORM.CAPTION = pcTitle

#DEFINE CRLF CHR(13)+CHR(10)
#DEFINE TAB CHR(9)
m.cOleData = ""
m.cLineData = ""

Select(pcTable) &&要處理的圖表數據
FOR i = 1 TO FCOUNT() &&把所有數值轉為字串
IF i>1
cLinedata=allt(field(I))
Else
cLinedata=""
EndIF
Scan
m.nfieldvalue = EVAL(field(i))
IF i=1 &&第一個為橫座標
cLinedata = m.cLinedata + TAB + allt(m.nfieldvalue)
Else
Do CASE
CASE ISNULL(m.nfieldvalue)
cLinedata = m.cLinedata + TAB + ""
CASE INT(m.nfieldvalue) = m.nfieldvalue && no decimals
cLinedata = m.cLinedata + TAB + ALLTRIM(STR(m.nfieldvalue))
CASE TYPE(Fields[i])='Y'
cLinedata = m.cLinedata + TAB + ALLTRIM(STR(m.nfieldvalue,16,4))
OTHERWISE
cLinedata = m.cLinedata + TAB + ALLTRIM(STR(m.nfieldvalue,16,8))
ENDCASE
ENDif
Endscan

m.cOleData=m.cOleData+cLinedata+CRLF
ENDFOR &&FOR i = 1 TO FCOUNT()

IF NOT USED("t_graph")
USE tb IN Select(1) ALIAS t_graph
ENDIF
Select t_graph


&& 使用office 97 版本
APPEND GENERAL graph class "msgraph.chart.8" DATA m.cOleData

&&刷新Ole控件
THISFORM.OleBoundControl1.ControlSource = "graph"
THISFORM.OleBoundControl1.HasLegend = .t. &&是否有文字說明
THISFORM.OleBoundControl1.HastITLE=.t. &&是否有標題

&&THISform.OleBoundControl1.autoformat(1,1)
THISform.OleBoundControl1.autoformat(pnType ,1 )
&&最後標題
THISFORM.OleBoundControl1.ChartTitle.Caption = pcTitle

**************************

以下為設定X軸 Y軸 之字形大小

myChart = thisform.OLE_GRAPH
myChart.Axes(1, 1).TickLabels.font.size=16 &&設定 X軸
myChart.Axes(2, 1).TickLabels.font.size=8

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多