Exemplo de Uso:
Sub Initialize()
Dim pie As New Pie(500, 200)
Dim pieSlice As New PieSlice("Felipe","100")
Call pie.addSlice(pieSlice)
Set pieSlice = New PieSlice("Rotilho","200")
Call pie.addSlice(pieSlice)
Set pieSlice = New PieSlice("FelipeRotilho","150")
Call pie.addSlice(pieSlice)
Call pie.setChartType("p3")
Print pie.getURL()
End Sub
Source Code:
Const errNotImplemented = 13001 Const googleChartURL = "http://chart.apis.google.com/chart?" %REM Class Chart Description: Chart class monta um link do Google Chart Atualizado no dia 2, de Agosto de 2010. %END REM Class Chart Private chartType As String %REM Sub setChartType Description: Types: p, p3 e pc %END REM Public Sub setChartType(strType As String) chartType = "cht=" + strType + |&| End Sub %REM Function getChartType Description: Comments for Function %END REM Public Function getChartType As String getChartType = chartType End Function %REM Function getURL Description: Retorna URL do Google Chart %END REM Public Function getURL As String Error errNotImplemented, "Function não implementada" End Function End Class
%REM
Class Pie
Description: Comments for Class
%END REM
Class Pie As Chart
Private x As String
Private y As String
Private index As Integer
Private slices() As PieSlice
%REM
Sub New
Description: Constructor
%END REM
Public Sub New(x As Double, y As Double)
Me.x = CStr(x)
Me.y = CStr(y)
Call Me.setChartType("p3")
End Sub
%REM
Function getURL
Description: Comments for Function
%END REM
Public Function getURL As String
Dim link As String
link = googleChartURL
link = link + Me.getChartType()
link = link + Me.getChartSize()
link = link + Me.getValues()
link = link + Me.getLabels()
getURL = link
End Function
%REM
Sub addSlice
Description: Comments for Sub
%END REM
Public Sub addSlice(pieSlice As PieSlice)
Set slices(nextPosition) = pieSlice
End Sub
%REM
Function getValues
Description: Comments for Function
%END REM
Public Function getValues As String
Dim values As String
values = "chd=t:"
Dim i As Integer
For i = 0 To index - 1
values = values + slices(i).getValue()
If i < (index - 1) Then
values = values + ","
End If
Next
getValues = values + |&|
End Function
%REM
Function getLabels
Description: Comments for Function
%END REM
Public Function getLabels As String
Dim labels As String
labels = |chl=|
Dim i As Integer
For i = 0 To index - 1
labels = labels + slices(i).getLabel()
If i < (index - 1) Then
labels = labels + "|"
End If
Next
getLabels = labels + |&|
End Function
%REM
Function nextPosition
Description: Comments for Function
%END REM
Private Function nextPosition As Integer
ReDim Preserve slices(index)
nextPosition = index
index = index + 1
End Function
%REM
Function getChartSize
Description: Comments for Function
%END REM
Private Function getChartSize As String
getChartSize = |chs=| +CStr(x) + |x| + CStr(y) + |&|
End Function
End Class
%REM Class PieSlice Description: Slice of Pie %END REM Class PieSlice Private label As String Private value As String %REM Sub New Description: Comments for Sub %END REM Public Sub New(label As String, value As String) Me.label = label Me.value = value End Sub %REM Function getLabel Description: Comments for Function %END REM Public Function getLabel As String getLabel = label End Function %REM Function getValue Description: Comments for Function %END REM Public Function getValue As String getValue = value End Function End Class