WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

Web UDFs

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

Google Chart UDFs

 Keywords: Google Chart API UDF chart.apis.google.com 

Global_GoogleChartURLBase="http://chart.apis.google.com/"
;Data tab Separated values
;Labels tab Separated values
;UseDataInLabel Appends (data) at the end of each label
;Legend tab Separated values, use "" to specify no legend
;Size eg 250x100
;Title Title Of Chart
;ReturnHtml = Use 1 to return the URL wrapped in html tags
#DefineFunction MakePieChart(Data,Labels,UseDataInLabel,Legend,Size,Title,ReturnHtml,Global_GoogleChartURLBase)

If UseDataInLabel == 1
   NewLabels=""
   For x = 1 To ItemCount(Labels,@TAB)
      OneLabel=ItemExtract(x,Labels,@TAB)
      OneData=ItemExtract(x,Data,@TAB)
      NewLabels=ItemInsert(OneLabel : " (" : OneData : ")",-1,NewLabels,@TAB)
   Next
   Labels=NewLabels
EndIf
Data=StrReplace(Data,@TAB,",")
Labels=StrReplace(Labels,@TAB,"|")
Title=StrReplace(Title," ","+")
If Legend != ""
   Legend=StrReplace(Legend,@TAB,"|")
   Legend= "&chdl=" : Legend
EndIf

url=Global_GoogleChartURLBase : "chart?cht=p3" : "&chd=t:" : Data : "&chs=" : Size : "&chl=" : Labels : "&chtt=" : Title : Legend
If ReturnHtml == 1 Then url= "<img src='" : url : "' alt='" : Title : "' />"
Return url

#EndFunction


;NumData tab Separated Number values, use "" to display none
;DateData tab Separated values. This is for the access across the bottom. It does not really have to be dates.
;Size eg 250x100
;Title Title Of Chart
;TLData Highest Data point. Use a number or you can use Auto. Auto will set it to the highest Data point in your dataset.
;ShowMovementList Displays a number label above each date , use 1 to display
;LeftLabel tab Separated values. The is the vertical access on the left of the chart. You can specify your own numbers or use Auto|Increment. Example Auto|50 will put increments of 50 to accommodate your highest data point.
;ReturnHtml = Use 1 to return the url wrapped in html tags
#DefineFunction MakeLineChart(NumData,DateData,Size,Title,TLData,LeftLabel,ShowMovementList,ReturnHtml,Global_GoogleChartURLBase)

TLDataSetting=0
If TLData == "Auto"
   a=StrReplace(NumData,@TAB,",")
   TLData = Max(%a%);retarded use of percent sign...
   TLDataSetting=1
EndIf

If StrSub(LeftLabel,1,4) == "Auto"
   ;Message("","Yes")
   IncBy=ItemExtract(2,LeftLabel,"|")
   NumOfLabels = TLData / IncBy
   LeftLabel="0"
   Item="0"
   For i = 1 To NumOfLabels
      item=Item+IncBy
      LeftLabel=ItemInsert( item,-1,LeftLabel,@TAB)
   Next
   If Item < TLData
      If TLDataSetting == 1
         TopLabel=Item+IncBy
         LeftLabel=ItemInsert(TopLabel,-1,LeftLabel,@TAB)
         TLData=TopLabel
      Else
         LeftLabel=ItemInsert(TLData,-1,LeftLabel,@TAB)
      EndIf
   EndIf
EndIf


NumData=StrReplace(NumData,@TAB,",")
DateData=StrReplace(DateData,@TAB,"|")
LeftLabel=StrReplace(LeftLabel,@TAB,"|")
Title=StrReplace(Title," ","+")



  NumDataCount=ItemCount(NumData,",")
  MovementList=""
  For x = 1 To NumDataCount
    OneNum=ItemExtract(x,NumData,",")
    If MovementList == ""
       If ShowMovementList == 1 Then MovementList = "t0,000000,0," : x-1 : ",12,1"
       Else MovementList = "t" : OneNum  : ",000000,0," : x-1 : ",12,1"
    Else
       LastNum=ItemExtract(x -1,NumData,",")
       If OneNum < LastNum
          OneMoveNumber = LastNum - OneNum
          MoveSym="-"
       EndIf
       If OneNum > LastNum
          OneMoveNumber = OneNum - LastNum
          MoveSym="+"
       EndIf
       If OneNum == LastNum
          OneMoveNumber = "0"
          MoveSym=""
       EndIf
       If ShowMovementList == 1 Then LabList="t" : MoveSym : OneMoveNumber  : ","
       Else LabList="t" : OneNum  : ","
       MovementList = MovementList : "|" : LabList : "000000,0," : x-1 : ",12,1"
    EndIf
  Next
url=Global_GoogleChartURLBase : "chart?cht=lc" : "&chd=t:" : NumData : "&chs=" : Size : "&chtt=" : Title : "&chxt=x,y&chxl=1:|" : leftLabel :"|0:|" : DateData : "&chds=0," : TLData : "&chg=10&chm=o,0066FF,0,-1.0,4" : "|" : MovementList
If ReturnHtml == 1 Then url= "<img src='" : url : "' alt='" : Title : "' />"
Return url

#EndFunction


t=@TAB
;Test Pie Chart
Data="10" : t : "50" : t : "123"
Labels="Pigs" : t : "Cows" : t : "Sheep"
UseDataInLabel=1
Legend="Pigs" : t : "Cows" : t : "Sheep"
Size="350x100"
Title="My Barn Yard"
ReturnHtml=0
test1=MakePieChart(Data,Labels,UseDataInLabel,Legend,Size,Title,ReturnHtml,Global_GoogleChartURLBase)
ShellExecute(test1,"", "", @NORMAL, "")

;Test Line Chart
NumData="17" : t : "25" : t : "57" : t : "67"  : t : "51"  : t : "78"  : t : "109"   : t :  "103"  : t : "105"  : t : "105"
DateData="1/3" : t : "1/7" : t : "1/17" : t : "1/23"  : t : "2/3"  : t : "2/15"  : t : "2/23"   : t :  "2/25"  : t : "2/26"  : t : "2/28"
Size="500x200"
Title="Dolly's growth"
;TLData="131"
TLData="Auto"
LeftLabel="Auto|20"
ShowMovementList=1
ReturnHtml=0
test2=MakeLineChart(NumData,DateData,Size,Title,TLData,LeftLabel,ShowMovementList,ReturnHtml,Global_GoogleChartURLBase)
ShellExecute(test2,"", "", @NORMAL, "")

Article ID:   W18411
Filename:   Google Chart UDFs.txt
File Created: 2011:08:25:14:25:50
Last Updated: 2011:08:25:14:25:50