I modify server program. Server send:
{
    "cols": [
        {
            "label": "Date",
            "type": "date"
        },
        {
            "label": "Buy",
            "type": "number"
        },
        {
            "label": "Sell",
            "type": "number"
        }
    ],
    "rows": [
        [
            "Date(2012,10,28)",
            15.41,
            14.08
        ],
        [
            "Date(2012,10,29)",
            55.88,
            51.3
        ],
        [
            "Date(2012,10,30)",
            53.72,
            49.21
        ],
        [
            "Date(2012,10,31)",
            0,
            0
        ]
    ]
}

I receive follow error:
Timestamp: 28.11.2012 11:31:01
Error: TypeError: e[m].c is undefined
Source File: 
https://www.google.com/uds/api/visualization/1.0/351cbc565e06280bb093b00ce39323d9/format+en,default,controls.I.js
Line: 143


28 ноември 2012, сряда, 02:24:25 UTC+2, asgallant написа:
>
> If you modify your server code to send the data like this:
>
> {
>     "cols": [
>         {"label": "Date", "type": "date"},
>         {"label": "Buy", "type": "number"},
>         {"label": "Sell", "type": "number"},
>     ],
>     "rows": [
>         ["Date(2012,10,28)",15,14],
>         ["Date(2012,10,29)",55,51],
>         ["Date(2012,10,30)",53,49]
>     ]
> }
>
> and then create the DataTable like this:
>
> var data = new google.visualization.DataTable(obj);
>
> You don't have to worry about converting the dates from strings to Date 
> objects.
>
> On Tuesday, November 27, 2012 6:32:57 PM UTC-5, Dragomir Haralambiev wrote:
>>
>> I modify the server-side code. Here is new code:
>>             var jsonData = $.ajax({
>>                 url: "js/chart.pl",
>>                 dataType: "json",
>> contentType: "application/json",
>>                 async: false
>>             }).responseText;
>>
>>             var obj = jQuery.parseJSON(jsonData);
>> var data = new google.visualization.DataTable();
>> data.addColumn('date', 'Date');
>> data.addColumn('number', 'Buy');
>> data.addColumn('number', 'Sell');
>> data.addRows(obj); 
>> Server send:
>>
>> [["Date(2012,10,28)",15,14],["Date(2012,10,29)",55,51],["Date(2012,10,30)",53,49]]
>>
>>
>> I receive follow Error:
>> Type mismatch. Value Date(2012,10,28) does not match type date in column 
>> index 0
>>
>> How to convert Date(2012,10,28) to date type?
>>
>> Best regards,
>> Dragomir
>>
>>
>>
>> 27 ноември 2012, вторник, 23:17:04 UTC+2, asgallant написа:
>>>
>>> Can you modify the server-side code?  If so, then the best method might 
>>> be to build the DataTable as a JSON object (structure linked to in the post 
>>> above), which you can feed directly to the DataTable constructor.  There 
>>> are examples of this in PHP on the forum here; doing it in perl would 
>>> probably be similar.
>>>
>>> On Tuesday, November 27, 2012 2:37:10 PM UTC-5, Dragomir Haralambiev 
>>> wrote:
>>>>
>>>> Hi.
>>>> Thanks for your replay.
>>>> You right if obj is generate from javascript.
>>>> What I do if obj is generate from AJAX like this:
>>>>             var jsonData = $.ajax({
>>>>                 url: "js/chart.pl",
>>>>                 dataType: "json",
>>>> contentType: "application/json",
>>>>                 async: false
>>>>             }).responseText;
>>>>
>>>>             var obj = jQuery.parseJSON(jsonData);
>>>>
>>>>
>>>> Best regards,
>>>> Fragomir
>>>> 27 ноември 2012, вторник, 18:55:07 UTC+2, asgallant написа:
>>>>>
>>>>> The 
>>>>> arrayToDataTable<https://developers.google.com/chart/interactive/docs/reference#google.visualization.arraytodatatable>method
>>>>>  doesn't handle dates properly; your dates are being input as 
>>>>> strings.  To fix this, you will have to manually construct the DataTable 
>>>>> (or use the 
>>>>> json<https://developers.google.com/chart/interactive/docs/reference#dataparam>format).
>>>>>
>>>>> Here's one way you could do it manually:
>>>>>
>>>>> var obj = [
>>>>>     [new Date(2012,10,2),15,14],
>>>>>     //....
>>>>> ];
>>>>> var data = new google.visualization.DataTable();
>>>>> data.addColumn('date', 'Date');
>>>>> data.addColumn('number', 'Buy');
>>>>> data.addColumn('number', 'Sell');
>>>>> data.addRows(obj);
>>>>>
>>>>> Note that the format for the date is as a Date object and not a string 
>>>>> when using this method.
>>>>>
>>>>> On Tuesday, November 27, 2012 5:37:44 AM UTC-5, Dragomir Haralambiev 
>>>>> wrote:
>>>>>>
>>>>>> I'm trying to test the Google Chart, but I receive follow error:
>>>>>> "One or more participants failed to draw().
>>>>>> The filter cannot operate on a column of type string. Column type 
>>>>>> must be one of: number, date, datetime or timeofday. Column role must be 
>>>>>> domain, and correlate to a continuous axis."
>>>>>>
>>>>>> What am I doing wrong?
>>>>>>  
>>>>>>
>>>>>>
>>>>>> <script type="text/javascript" src="
>>>>>> https://www.google.com/jsapi";></script>
>>>>>>     <script type="text/javascript">
>>>>>>
>>>>>>          google.load('visualization', '1.0', 
>>>>>> {'packages':['controls']});
>>>>>>         google.setOnLoadCallback(drawDashboard);
>>>>>>     
>>>>>>       function drawDashboard() {
>>>>>>  var obj = 
>>>>>> [["Date","buy","sell"],["Date(2012,10,2)",15,14],["Date(2012,10,3)",55,51],["Date(2012,10,4)",53,49]];
>>>>>>         var dataa = google.visualization.arrayToDataTable(obj);
>>>>>>         var dashboard = new 
>>>>>> google.visualization.Dashboard(document.getElementById('dashboard_div'));
>>>>>>
>>>>>>         var donutRangeSlider = new 
>>>>>> google.visualization.ControlWrapper({
>>>>>>           'controlType': 'ChartRangeFilter',
>>>>>>           'containerId': 'filter_div',
>>>>>>           'options': {
>>>>>>      'filterColumnIndex': 0,
>>>>>>      'ui': {
>>>>>>       'chartType': 'LineChart',
>>>>>>       'chartOptions': {
>>>>>>         'chartArea': {'width': '90%'},
>>>>>>         'hAxis': {'baselineColor': 'none'}
>>>>>>       },
>>>>>>       'chartView': { 'columns': [0, 1] },
>>>>>>       'minRangeSize': 86400000
>>>>>>     }
>>>>>>           },
>>>>>>         });
>>>>>>
>>>>>>         var lineChart = new google.visualization.ChartWrapper({
>>>>>>           'chartType': 'LineChart',
>>>>>>           'containerId': 'chart_div',
>>>>>>           'options': {
>>>>>>                 title: 'Title',
>>>>>>           }
>>>>>>         });
>>>>>>
>>>>>>         dashboard.bind(donutRangeSlider, lineChart);
>>>>>>         dashboard.draw(dataa);
>>>>>>       }    
>>>>>> </script>
>>>>>>
>>>>>> Best regards,
>>>>>> Dragomir
>>>>>>
>>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-visualization-api/-/CSyTP_jaTRkJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-visualization-api?hl=en.

Reply via email to