*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
|