You are correct, the query was taken from the sample code and is intended
for demonstrating how to get the correct data for the chart.
Since you're not using a standard column definition, you'll have to select
according to the column, meaning something like "select A,B,C" etc....
although, from looking at your CSV data it looks quite messy.
If I got you correctly in your previous post, you want to create an
organization chart. Thus, your data should be arranged in the form of three
columns: Name, Manager name, and Tooltip. You can use the dataview model to
rearrange your data prior to drawing.



On Thu, Dec 8, 2011 at 5:21 PM, paulmo <[email protected]> wrote:

> thanks so much roni for getting me started! here is a sample
> from .csv.:
>
> "D","Additional Capacity Available from OP 4 Actions:","0"
> "H","DESCRIPTION","TRANSFER LIMIT IN","TRANSFER LIMIT OUT","SCHEDULED
> CONTRACT"
> "H","(MW)","(MW)","(MW)"
> "G","7. Interchange Summary"
> "D","NYISO AC Ties",-300,1200,286
> "D","NYISO NNC",-200,200,200
> "D","NYISO CSC",-346,330,330
> "D","NB",-800,550,-119
> "D","Phase 2",-2000,1200,-1424
> "D","Highgate",-218,0,-218
>
> with your script and correct .csv link, my page is not rendering. I'm
> guessing it has to do with this section?:
> query.setQuery('select dept, sum(salary) group by dept');
>
> paul
>
> On Dec 8, 3:14 am, Roni Biran <[email protected]> wrote:
> > Hi paulmo,
> >
> > Sadly you did not follow the exact instructions :-(
> >
> > 1. The code you copied is a servlet code (i.e. runs on the server. this
> is
> > not a client side JavaScript).
> > 2. Your script should hold a function named "drawChart" that will be
> called
> > after the page load is completed (google.setOnLoadCallback). That
> function
> > will call another function with the data that will eventually draw the
> > chart.
> > 3. Your CSV in inaccessible here. Can you send a sample from the CSV
> > itself. If I were you, I would use the Google spreadsheet as an example.
> >
> > After saying all that (and assuming that your CSV works), your script
> > should look something like this:
> >
> > <script type="text/javascript">
> > google.load('visualization', '1', {'packages':['corechart']});
> > google.setOnLoadCallback(drawChart);
> >
> > function drawChart() {
> > var query = new google.visualization.Query('csv?url=
> http://www.iso-ne.com/sys_ops/csvdocs/morning_report2011-12-07-08-18....
> > query.setQuery('select dept, sum(salary) group by dept');
> > query.send(handleQueryResponse);
> >
> > }
> >
> > function handleQueryResponse(response) {
> > if (response.isError()) {
> > alert('Error in query: ' + response.getMessage() + ' ' +
> > response.getDetailedMessage());
> > return;
> >
> > }
> >
> > var data = response.getDataTable();
> >  var chart = new
> > google.visualization.OrgChart(document.getElementById('csv_div'));
> > chart.draw(data);}
> >
> > </script>
> >
> > Best of luck,
> >
> >
> >
> >
> >
> >
> >
> > On Thu, Dec 8, 2011 at 2:55 AM, paulmo <[email protected]> wrote:
> > > Have implemented according to instructions. CSV contains text and
> > > numbers. My page is below, but first, if it helps, this is how
> > > the .csv renders into JSON (but I'm not using JSON in external csv
> > > file example). Thanks in advance for help.
> > > [{"C":"C","Morning Report":"Report for 12\/7\/2011"},{"C":"C","Morning
> > > Report":"Report Generated 12\/07\/2011 13:18:10 GMT"},
> > > {"C":"H","Morning Report":"DESCRIPTION"},{"C":"H","Morning Report":""},
> > > {"C":"G","Morning Report":"Report Type"},{"C":"D","Morning
> > > Report":"Morning Report"},{"C":"H","Morning Report":"DATE","":"TIME"},
> > > {"C":"H","Morning Report":"","":""},{"C":"G","Morning Report":"1.
> > > Report Date"},{"C":"D","Morning Report":"Wednesday, Dec 7
> > > 2011","":"08:18:10 EST"},{"C":"H","Morning
> > > Report":"DESCRIPTION","":"VALUE"},{"C":"H","Morning
> > > Report":"","":"(MW)"},{"C":"G","Morning Report":"2. Peak Load"},
> > > {"C":"D","Morning Report":"Tuesday, Dec 6 2011 hour ending
> > > 18","":"17755"},{"C":"G","Morning Report":"3. Operable Capacity
> > > Analysis"},{"C":"D","Morning Report":"A. Capacity Supply Obligation
> > > (CSO)","":"30957"},{"C":"D","Morning Report":"B. Capacity Additions
> > > EcoMax Bid > CSO","":"2272"},{"C":"D","Morning Report":"C. Pre-OP4
> > > Dispatchable Loads","":"0"},{"C":"D","Morning Report":"D. Generation
> > > Outages and Reductions","":"4474"},{"C":"D","Morning Report":"E.
> > > Uncommitted Available Generation (non fast start)","":"9070"},
> > > {"C":"G","Morning Report":"F. Capacity Deliveries: Net Purchases = (-)
> > > Net Sales = (+)"},{"C":"D","Morning Report":"NYISO AC Ties","":"167"},
> > > {"C":"D","Morning Report":"NYISO NNC","":"200"},{"C":"D","Morning
> > > Report":"NYISO CSC","":"330"},{"C":"D","Morning Report":"NB","":"222"},
> > > {"C":"D","Morning Report":"Phase 2","":"-1225"},{"C":"D","Morning
> > > Report":"Highgate","":"-218"},{"C":"D","Morning Report":"Net
> > > Deliveries","":"-524"},{"C":"D","Morning Report":"G. Total Available
> > > Capacity (A+B+C-D-E-F)","":"20209"},{"C":"D","Morning Report":"H. Peak
> > > Load Forecast For Hour 18","":"17900"},{"C":"D","Morning Report":"I.
> > > Total Operating Reserve Requirement","":"1863"},{"C":"D","Morning
> > > Report":"J. Capacity Required","":"19763"},{"C":"D","Morning
> > > Report":"K. Surplus = (+) Deficiency = (-) (G - J)","":"446"},
> > > {"C":"D","Morning Report":"L. Replacement Reserve Requirement","":"0"},
> > > {"C":"D","Morning Report":"M. Excess Commitment Surplus = (+)
> > > Deficiency = (-) (K - L)","":"446"},{"C":"G","Morning Report":"4.
> > > Largest First Contingency"},{"C":"D","Morning
> > > Report":"____","":"1245"},{"C":"G","Morning Report":"5. Annual
> > > Maintenance Schedule (A.M.S)"},{"C":"D","Morning Report":"Peak Load
> > > Exposure","":"20393"},{"C":"G","Morning Report":"6. Reserve Summary"},
> > > {"C":"D","Morning Report":"Ten Minute Reserve Requirement:","":"1245"},
> > > {"C":"D","Morning Report":"Ten Minute Reserve Estimate:","":"1245"},
> > > {"C":"D","Morning Report":"Thirty Minute Reserve
> > > Requirement:","":"618"},{"C":"D","Morning Report":"Thirty Minute
> > > Reserve Estimate:","":"1064"},{"C":"D","Morning Report":"Expected ICU
> > > Operation","":"0"},{"C":"D","Morning Report":"Expected Actions of OP
> > > 4:","":"0"},{"C":"D","Morning Report":"Additional Capacity Available
> > > from OP 4 Actions:","":"0"},{"C":"H","Morning
> > > Report":"DESCRIPTION","":"SCHEDULED CONTRACT"},{"C":"H","Morning
> > > Report":"(MW)","":"(MW)"},{"C":"G","Morning Report":"7. Interchange
> > > Summary"},{"C":"D","Morning Report":"NYISO AC Ties","":"167"},
> > > {"C":"D","Morning Report":"NYISO NNC","":"200"},{"C":"D","Morning
> > > Report":"NYISO CSC","":"330"},{"C":"D","Morning Report":"NB","":"222"},
> > > {"C":"D","Morning Report":"Phase 2","":"-1225"},{"C":"D","Morning
> > > Report":"Highgate","":"-218"},{"C":"H","Morning
> > > Report":"CITY","":"HIGH TEMP"},{"C":"H","Morning Report":"","":"(F)"},
> > > {"C":"G","Morning Report":"8. Weather Forecast Summary for the Peak
> > > Hour"},{"C":"D","Morning Report":"Boston","":"45"},{"C":"D","Morning
> > > Report":"Hartford","":"46"},{"C":"H","Morning
> > > Report":"DESCRIPTION","":"VALUE"},{"C":"H","Morning Report":"","":""},
> > > {"C":"G","Morning Report":"9. SAR Available"},{"C":"D","Morning
> > > Report":"NYISO","":"Yes"},{"C":"H","Morning
> > > Report":"DESCRIPTION","":"VALUE"},{"C":"H","Morning
> > > Report":"","":"(MW)"},{"C":"G","Morning Report":"10. Capacity of Non-
> > > Commercial Units"},{"C":"D","Morning Report":"Total Available","":"0"},
> > > {"C":"G","Morning Report":"11. Units Committed to Meet Minimum
> > > Operating Reserve and Replacement Reserve Requirements"},
> > > {"C":"D","Morning Report":"0 Units","":"0"},{"C":"H","Morning
> > > Report":"DESCRIPTION","":"VALUE"},{"C":"H","Morning Report":"","":""},
> > > {"C":"G","Morning Report":"12. Solar Magnetic Disturbance Activity"},
> > > {"C":"D","Morning Report":"Forecast:","":""},{"C":"D","Morning
> > > Report":"Alert:","":""},{"C":"D","Morning Report":"Intensity:","":""},
> > > {"C":"D","Morning Report":"Observed Activity:","":""},
> > > {"C":"D","Morning Report":"Actions Taken or Planned by ISO-NE:","":""},
> > > {"C":"D","Morning Report":"Actions Taken or Planned by Other Control
> > > Areas:","":""},{"C":"T","Morning Report":"44 Lines"}]
> >
> > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
> > > <head>
> > > <!--Load the AJAX API-->
> > >    <script type="text/javascript" src="https://www.google.com/
> > > jsapi"></script>
> > >    <script type="text/javascript" src="jquery-1.7.1.min.js"></script>
> > >    <script type="text/javascript">
> >
> > >    // Load the Visualization API and the piechart package.
> > >    google.load('visualization', '1', {'packages':['corechart']});
> >
> > >    // Set a callback to run when the Google Visualization API is
> > > loaded.
> > >    google.setOnLoadCallback(drawChart);
> >
> > > query = new google.visualization.Query('csv?url=http://www.iso-ne.com/
> > > sys_ops/csvdocs/morning_report2011-12-07-08-18.csv');
> >
> > > var chart = new
> > > google.visualization.OrgChart(document.getElementById('csv_div'));
> >
> > >        </script>
> > > </head>
> >
> > > <body>
> >
> > > <script type="text/javascript">
> > > public class CsvDataSourceServlet extends DataSourceServlet {
> >
> > >  /**
> > >   * Log.
> > >   */
> > >  private static final Log log =
> > > LogFactory.getLog(CsvDataSourceServlet.class.getName());
> >
> > >  /**
> > >   * The name of the parameter that contains the url of the CSV to
> > > load.
> > >   */
> > >  private static final String URL_PARAM_NAME = "http://www.iso-ne.com/
> > > sys_ops/csvdocs/morning_report2011-12-07-08-18.csv";
> >
> > >  /**
> > >   * Generates the data table.
> > >   * This servlet assumes a special parameter that contains the CSV
> > > URL from which to load
> > >   * the data.
> > >   */
> > >  @Override
> > >  public DataTable generateDataTable(Query query, HttpServletRequest
> > > request)
> > >      throws DataSourceException {
> > >    String url = request.getParameter(URL_PARAM_NAME);
> > >    if (StringUtils.isEmpty(url)) {
> > >      log.error("url parameter not provided.");
> > >      throw new DataSourceException(ReasonType.INVALID_REQUEST, "url
> > > parameter not provided");
> > >    }
> >
> > >    Reader reader;
> > >    try {
> > >      reader = new BufferedReader(new InputStreamReader(new
> > > URL(url).openStream()));
> > >    } catch (MalformedURLException e) {
> > >      log.error("url is malformed: " + url);
> > >      throw new DataSourceException(ReasonType.INVALID_REQUEST, "url
> > > is malformed: " + url);
> > >    } catch (IOException e) {
> > >      log.error("Couldn't read from url: " + url, e);
> > >      throw new DataSourceException(ReasonType.INVALID_REQUEST,
> > > "Couldn't read from url: " + url);
> > >    }
> > >    DataTable dataTable = null;
> > >    ULocale requestLocale =
> > > DataSourceHelper.getLocaleFromRequest(request);
> > >    try {
> > >      // Note: We assume that all the columns in the CSV file are text
> > > columns. In cases where the
> > >      // column types are known in advance, this behavior can be
> > > overridden by passing a list of
> > >      // ColumnDescription objects specifying the column types. See
> > > CsvDataSourceHelper.read() for
> > >      // more details.
> > >      dataTable = CsvDataSourceHelper.read(reader, null, true,
> > > requestLocale);
> > >    } catch (IOException e) {
> > >      log.error("Couldn't read from url: " + url, e);
> > >      throw new DataSourceException(ReasonType.INVALID_REQUEST,
> > > "Couldn't read from url: " + url);
> > >    }
> > >    return dataTable;
> > >  }
> > > }
> >
> > > </script>
> >
> > > <!--Div that will hold the pie chart-->
> > >    <div id="csv_div"></div>
> >
> > > </body>
> > > </html>
> >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups
> > > "Google Visualization API" group.
> > > To post to this group, send email to
> > > [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected].
> > > For more options, visit
> >
> > ...
> >
> > read more ยป
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google Visualization API" group.
> 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.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
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