*!* Below example is for Excel8. *!* xlConstants can be found by : *!* -Open Excel *!* -Select tools\macro\VB editor *!* -Press F2 to bring up "Object browser" *!* -Find needed xlConstant type ie:xlChartType *!* -On right window click needed Constant ie: xl3DArea *!* -Below the window constant value is displayed *!* -Rather kludgy but currently the only way I know to find them *!* cetin@neptune.imst.deu.edu.tr ****************************************** * xlChartType constants * Extracted from Object browser * 05/21/1998 * cetin@neptune.imst.deu.edu.tr #define xl3DArea -4098 #define xl3DAreaStacked 78 #define xl3DAreaStacked100 79 #define xl3DBarClustered 60 #define xl3DBarStacked 61 #define xl3DBarStacked100 62 #define xl3DColumn -4100 #define xl3DColumnClustered 54 #define xl3DColumnStacked 55 #define xl3DColumnStacked100 56 #define xl3DLine -4101 #define xl3DPie -4102 #define xl3DPieExploded 70 #define xlArea 1 #define xlAreaStacked 76 #define xlAreaStacked100 77 #define xlBarClustered 57 #define xlBarOfPie 71 #define xlBarStacked 58 #define xlBarStacked100 59 #define xlBubble 15 #define xlBubble3DEffect 87 #define xlColumnClustered 51 #define xlColumnStacked 52 #define xlColumnStacked100 53 #define xlConeBarClustered 102 #define xlConeBarStacked 103 #define xlConeBarStacked100 104 #define xlConeCol 105 #define xlConeColClustered 99 #define xlConeColStacked 100 #define xlConeColStacked100 101 #define xlCylinderBarClustered 95 #define xlCylinderBarStacked 96 #define xlCylinderBarStacked100 97 #define xlCylinderCol 98 #define xlCylinderColClustered 92 #define xlCylinderColStacked 93 #define xlCylinderColStacked100 94 #define xlDoughnut -4120 #define xlDoughnutExploded 80 #define xlLine 4 #define xlLineMarkers 65 #define xlLineMarkersStacked 66 #define xlLineMarkersStacked100 67 #define xlLineStacked 63 #define xlLineStacked100 64 #define xlPie 5 #define xlPieExploded 69 #define xlPieOfPie 68 #define xlPyramidBarClustered 109 #define xlPyramidBarStacked 110 #define xlPyramidBarStacked100 111 #define xlPyramidCol 112 #define xlPyramidColClustered 106 #define xlPyramidColStacked 107 #define xlPyramidColStacked100 108 #define xlRadar -4151 #define xlRadarFilled 82 #define xlRadarMarkers 81 #define xlStockHLC 88 #define xlStockOHLC 89 #define xlStockVHLC 90 #define xlStockVOHLC 91 #define xlSurface 83 #define xlSurfaceTopView 85 #define xlSurfaceTopViewWireframe 86 #define xlSurfaceWireframe 84 #define xlXYScatter -4169 #define xlXYScatterLines 74 #define xlXYScatterLinesNoMarkers 75 #define xlXYScatterSmooth 72 #define xlXYScatterSmoothNoMarkers 73 ******************************* create cursor test (degree i, sine n(8,4) NULL, cosine n(8,4)) for ix = 1 to 90 insert into test ; values ; (ix,cos(ix)*ix,sin(ix)*ix) endfor 45 scan next 30 && Nullify 30 degrees replace sine with .null. && Nullify some values to see effect endscan go top create cursor testgen (genfld1 g) append blank append general genfld1 class "excel.chart" *** * Now we have Excel object in gen field. * Play with it *** select test oForm = createobject("Form") with oForm .height = 400 .width = 600 .show .addobject("myGraph","OleBoundControl") .addobject("myQuit1","myQuit") with .myGraph .height = oForm.height - 20 .width = oForm.width .left = 0 .top = 0 .ControlSource = "testgen.Genfld1" wait window nowait "Filling cell values..." with .Sheets("Sheet1") nRows = reccount()+1 nCols = fcount() for ix = 1 to nCols .Cells(1,ix).Value = field(ix) endfor scan for ix = 1 to nCols .Cells(recno()+1,ix).Value = evaluate(field(ix)) endfor endscan wait window nowait "Plotting..." *!* oForm.myGraph.ActiveChart.SetSourceData(.Range(.cells(1,2), .cells(nRows,nCols)), 2) *!* Instead setall with chartwizard *!* Syntax *!* ChartWizard(Source, Gallery, Format, ; *!* PlotBy, CategoryLabels, SeriesLabels, ; *!* HasLegend, Title, CategoryTitle, ValueTitle, ExtraTitle) oForm.myGraph.ActiveChart.ChartWizard(.Range(.cells(1,2), .cells(nRows,nCols)), ; xl3DArea,5,2,0,1,.t.,"My chart example in general field","Category title","Value title","Extra title") * .t. or 1 - .f. or 0 may be used for logicals wait clear endwith .visible=.T. endwith .myQuit1.visible = .t. endwith read events define class myquit as commandbutton left=1 top=1 Caption="Close" procedure click release all clear events endproc enddefineCetin