logo
Documents & Forms
Microsoft 365 & SharePoint Tools
Classic SharePoint Tools

SharePoint List

The SharePoint List tab allows you to define a SharePoint list or library of any site or even site collection in the current web application as the data source of a chart. If you need to use an alternative data source e.g. an external web service or static data, you should clear the site URL by clicking the Remove link:

dd-data-source1-Remove

If you use SharePoint data as a data source, you should specify site URL, choose a list and its view:

dd-data-source2-View

Note: If you modify the selected view later, the chart will not change because the chart builder copies the CAML-query of the selected view.

Next, you should pick fields which you’re going to use in your chart:

dd-data-source3-Fields-e1511273454675

Note: To improve performance, pick only those fields that are required to build the chart.

The Root property is used to specify the server relative URL of a list folder from which results will be returned. Leave it empty to retrieve data from the root folder of the specified list.

dd-data-source4-Root

The Rows property is used to specify the number of list items which will be returned.

dd-data-source4-Rows

Note: Do not specify more than 5000 items to ensure optimal performance.

The CAML Query section allows you to modify CAML-query that will be used by the chart builder to retrieve data for a chart. Here you can filter data by the current user or date, combine multiple lists by using JOIN clauses, or specify tokens and replace them with dynamic values with JavaScript in requestInit handler.

Example:

<View>
    <Query>
        <OrderBy>
            <FieldRef Name="ID" />
        </OrderBy>
    </Query>
    <ViewFields>
        <FieldRef Name="LinkTitle" />
        <FieldRef Name="Amount" />
        <FieldRef Name="Product_x003a_Category" />
        <FieldRef Name="Country" />
    </ViewFields>
    <ProjectedFields>
        <Field Name="Country" Type="Lookup" List="Customers" ShowField="Country" />
    </ProjectedFields>
    <Joins>
        <Join Type="INNER" ListAlias="Orders">
            <Eq>
                <FieldRef Name="Order0" RefType="Id" />
                <FieldRef List="Orders" Name="ID" />
            </Eq>
        </Join>
        <Join Type="INNER" ListAlias="Customers">
            <Eq>
                <FieldRef List="Orders" Name="Customer" RefType="Id" />
                <FieldRef List="Customers" Name="ID" />
            </Eq>
        </Join>
    </Joins>
    <RowLimit Paged="TRUE">1000</RowLimit>
</View>

Note: If you retrieve data from joined lists, you should specify additional columns in init handler on the Advanced tab:

handlers.init = function(data, logger, processor, el, model) {
    // adding Category field to model
    model.fields.push('Country');
    
    return true;
}