<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:clearspace="http://www.jivesoftware.com/xmlns/clearspace/rss" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Developer Network : All Content - Data Extraction</title>
    <link>http://developer.webtrends.com/community/dx</link>
    <description>All Content in Data Extraction</description>
    <language>en</language>
    <pubDate>Wed, 18 Nov 2009 16:00:17 GMT</pubDate>
    <generator>Clearspace 2.5.14 (http://jivesoftware.com/products/clearspace/)</generator>
    <dc:date>2009-11-18T16:00:17Z</dc:date>
    <dc:language>en</dc:language>
    <item>
      <title>Update to Excel/VBA Sample Application</title>
      <link>http://developer.webtrends.com/community/dx/blog/2009/11/18/update-to-excelvba-sample-application</link>
      <description>&lt;!-- [DocumentBodyStart:cfa55737-a45d-4920-bf11-894444bad67c] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p class="MsoNormal"&gt;I have seen a bit of an interest in the original sample application that I put together and since then there have been a number of changes to to DX API.&lt;span&gt;&amp;#160; &lt;/span&gt;With the latest release of the Webtrends Analytics Insight user interface we have now update this API to V2.&lt;span&gt;&amp;#160; &lt;/span&gt;Along with that I have had a chance to do additional testing of the Excel VBA application.&lt;span&gt;&amp;#160; &lt;/span&gt;These two events have now led to version v6 of the Sample Application.&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;So, what&amp;rsquo;s in this latest version?&lt;span&gt;&amp;#160; &lt;/span&gt;Well, first of all, there are bug fixes.&lt;span&gt;&amp;#160; &lt;/span&gt;I won&amp;rsquo;t detail them here, but there were a few and there are probably a few still in there. Next I have updated all of the REST calls to V2 of the API.&lt;span&gt;&amp;#160; &lt;/span&gt;And, finally, I have added new functionality that will allow you to see both the Profile and Report Meta data items for any selected report.&lt;span&gt;&amp;#160; &lt;/span&gt;It&amp;rsquo;s all in the documentation, so please read it for details.&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;One of the interesting updates in the V2 DX API is the inclusion of two new reports: an Account Key Metrics report and a Profile Key Metrics report.&lt;span&gt;&amp;#160; &lt;/span&gt;These have been added as new reports in this Sample Application as well.&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;So, as always, enjoy this new version of the application and any feedback you have is welcome.&lt;span&gt;&amp;#160; &lt;/span&gt;The new version can be found as an embedded object in the attached documentation.&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Michael Love&lt;/p&gt;&lt;p class="MsoNormal"&gt;Senior Solutions Engineer&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:cfa55737-a45d-4920-bf11-894444bad67c] --&gt;</description>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">api</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">sample</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">web</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">webtrends</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">data_extraction</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">update</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">webtrends_web_services</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">dx_api</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">how</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">rest_api</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">web_services</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">excel</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">rest</category>
      <pubDate>Wed, 18 Nov 2009 15:56:23 GMT</pubDate>
      <author>michael.love@webtrends.com</author>
      <guid>http://developer.webtrends.com/community/dx/blog/2009/11/18/update-to-excelvba-sample-application</guid>
      <dc:date>2009-11-18T15:56:23Z</dc:date>
      <clearspace:dateToText>2 days, 19 hours ago</clearspace:dateToText>
    </item>
    <item>
      <title>Does accessing the API from Flash/AIR need crossdomain.xml on server?</title>
      <link>http://developer.webtrends.com/thread/1347</link>
      <description>&lt;!-- [DocumentBodyStart:d8973d2f-3bba-4dfc-a085-ce7ff357f334] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Hi,&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I just had a discussion with a developer who currently works on a flash application which uses the API to pull data in.&lt;/p&gt;&lt;p&gt;It works fine in the developer verions, but does not get any data in a normal player. Due to the developer this is caused by the missing crossdomain.xml on the ws.webtrends.com server. Does anyone have the same experience and ideally a solution?&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;@Webtrends: Can you please verify that and place a crossdomain.xml on your server?&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:d8973d2f-3bba-4dfc-a085-ce7ff357f334] --&gt;</description>
      <pubDate>Thu, 08 Oct 2009 10:58:08 GMT</pubDate>
      <author>webtrends@webtrends-dev.sgaur.hosted.jivesoftware.com</author>
      <guid>http://developer.webtrends.com/thread/1347</guid>
      <dc:date>2009-10-08T10:58:08Z</dc:date>
      <clearspace:dateToText>3 weeks, 2 days ago</clearspace:dateToText>
    </item>
    <item>
      <title>Excel/VB App Question</title>
      <link>http://developer.webtrends.com/thread/1346</link>
      <description>&lt;!-- [DocumentBodyStart:9726391f-81f8-4255-9b53-26103089f07a] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;span&gt;Eric - I am using your Excel/VB tool (thanks for putting it together - save a ton of time).&amp;#160; Is there any way to place the results from multiple queries into the same worksheet?&amp;#160; I have to pull monthly data from 20+ profiles into a dashboard and would rather not have a separate worksheet for each profile and month....&lt;/span&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:9726391f-81f8-4255-9b53-26103089f07a] --&gt;</description>
      <pubDate>Wed, 30 Sep 2009 20:37:41 GMT</pubDate>
      <author>webtrends@webtrends-dev.sgaur.hosted.jivesoftware.com</author>
      <guid>http://developer.webtrends.com/thread/1346</guid>
      <dc:date>2009-09-30T20:37:41Z</dc:date>
      <clearspace:dateToText>3 weeks, 4 days ago</clearspace:dateToText>
    </item>
    <item>
      <title>SDK, ADO.NET DataTable/DataSet, and Code Bits</title>
      <link>http://developer.webtrends.com/community/dx/blog/2009/10/23/sdk-adonet-datatabledataset-and-code-bits</link>
      <description>&lt;!-- [DocumentBodyStart:f93b57a7-de97-4fba-8201-41eda56745a7] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Recently I have been working a lot with the Webtrends DX web services here internally.&amp;#160; Our consulting &amp;amp; services group has been working with various technologies to connect, retrieve data, and provide that data in informational reports to clients and partners.&amp;#160; In the course of working on these various projects I have added some functionality to the &lt;a class="jive-link-external-small" href="http://bit.ly/2blo5V"&gt;Webtrends DX web services SDK&lt;/a&gt; and also made some fairly solid in roads on the practices used to develop applications for Excel, Outlook, and other Microsoft Office Applications.&amp;#160; Here is a break down of the progress I have made over the last few weeks.&amp;#160; I hope it is helpful in everyone's efforts to extend, report, and provide analytics data &amp;amp; knowledge to their respective organizations!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-wiki-small" href="http://developer.webtrends.com/docs/DOC-1182"&gt;Webtrends DX SDK&lt;/a&gt; - The &lt;a class="jive-link-wiki-small" href="http://developer.webtrends.com/docs/DOC-1182"&gt;SDK&lt;/a&gt; provides dramatically simplified standard programmatic access to reports, profile listings, report listings, and a mapper object to provide the reports in various object formats.&amp;#160; Recently I have added the ability for the mapper object to take a standard dimensional report object and provide the report as a standard ADO.NET DataTable.&amp;#160; This dramatically simplifies a lot of the functions of sorting, finding, or specifying various parts of the report data or manipulating it for presentation.&amp;#160; In addition this is a more familiar object format for ETL using SSIS or even other ETL tools&amp;#160; out on the market.&amp;#160; The following is an example of the code used to retrieve a report with the &lt;a class="jive-link-external-small" href="http://bit.ly/2blo5V"&gt;SDK&lt;/a&gt; and then do a conversion into a standard DataTable Object.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:38ba4871-c3cd-47bc-bf25-61312e8b0920]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-java"&gt;User webtrendsUser =
&amp;#160;&amp;#160;&amp;#160; &lt;font color="navy"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; User
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="navy"&gt;{&lt;/font&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AccountName = Resources.Options.Default.Account,
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UserName = Resources.Options.Default.Password,
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Password = EncryptionHelper.Decrypt(Resources.Options.Default.Password)
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="navy"&gt;}&lt;/font&gt;;
&amp;nbsp;
var report = ReportFactory.CreateDimensionalReport(&lt;font color="red"&gt;"reportIdGoesHere"&lt;/font&gt;, &lt;font color="red"&gt;"profileIdGoesHere"&lt;/font&gt;, null, null, null,
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; null, null, true, webtrendsUser);
Mapper mapper = &lt;font color="navy"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; Mapper(report);
DataTable dataTable = mapper.MapReportDefinitionToDataTable();
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:38ba4871-c3cd-47bc-bf25-61312e8b0920]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;In the code above, I have created a Webtrends User object and assigned the appropriate parameters.&amp;#160; In this case I am using the Resources (Options.Settings) available to Windows Application to store and retrieve those settings.&amp;#160; This way the user will not have to enter them every time they want to run the report.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I then have the report object being pulled from the ReportFactory Object via the CreateDimensionalReport factory method.&amp;#160; The parameters that are actually needed are the report ID, the profile ID, and the Webtrends User Object.&amp;#160; The null values are other various parameters that can be set but do not particularly need to be set.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Then I create a Mapper Object and pass it the report object via the constructor.&amp;#160; This object requires a report object upon instantiation.&amp;#160; I setup the object this way since there always needs to be a report object before any manipulations or mappings can be made.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The last step is to declare the DataTable Object, then pull the data table from the builder method MapReportDefinitionToDataTable().&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;For the &lt;a class="jive-link-external-small" href="http://bit.ly/2blo5V"&gt;SDK assembly&lt;/a&gt; and code check out the Document Outlining the offering.&amp;#160; In addition over the next couple of weeks I will be posting more information regarding how to use the &lt;a class="jive-link-external-small" href="http://bit.ly/2blo5V"&gt;SDK&lt;/a&gt;, best practices, and code snippets for accessing the Webtrends DX Web Services.&amp;#160; There will be additional &lt;strong&gt;&lt;em&gt;blog entries &lt;/em&gt;&lt;/strong&gt;and definitely some &lt;strong&gt;&lt;em&gt;documentation&lt;/em&gt;&lt;/strong&gt; coming soon (I'm working on it!).&amp;#160; But in the meantime, if you have any questions, comments, or ideas on how we should extend or modify the &lt;a class="jive-link-external-small" href="http://bit.ly/2blo5V"&gt;SDK&lt;/a&gt; please let us know here on the &lt;a class="" href="http://developer.webtrends.com/community/dx?view=discussions"&gt;Webtrends Developer Forums&lt;/a&gt;!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I'll have some more entries real soon about best practices, how to code against Outlook or Excel, and more.&amp;#160; So subscribe and stay up to speed on everything Webtrends!&amp;#160; Thanks for reading.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:f93b57a7-de97-4fba-8201-41eda56745a7] --&gt;</description>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">dx_api</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">web_services</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">api</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">excel</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">rest_api</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">web</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">webtrends</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">best_practices</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">rest</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">webtrends_web_services</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">data_extraction</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">services</category>
      <pubDate>Tue, 20 Oct 2009 18:30:58 GMT</pubDate>
      <author>webtrends@webtrends-dev.sgaur.hosted.jivesoftware.com</author>
      <guid>http://developer.webtrends.com/community/dx/blog/2009/10/23/sdk-adonet-datatabledataset-and-code-bits</guid>
      <dc:date>2009-10-20T18:30:58Z</dc:date>
      <clearspace:dateToText>4 weeks, 22 hours ago</clearspace:dateToText>
    </item>
    <item>
      <title>Webtrends DX Web Services .NET Software Development Kit</title>
      <link>http://developer.webtrends.com/docs/DOC-1182</link>
      <description>&lt;!-- [DocumentBodyStart:430020b1-a9c3-44a7-abe6-1f1e41ae9999] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Primary Features of the Software Development Kit:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;ReportFactory Class&lt;/li&gt;&lt;/ul&gt;&lt;p style="padding-left: 60px;"&gt;Thes ReportFactory Class has numerous overloads to take various required parameters and return a DimensionalReport Object.&amp;#160; This object is the direct data &amp;amp; metadata derived from our underlying storage medium, which can sometimes be hard to work with.&amp;#160; To provide a simpler way to work with this derived data, use the Mapper Class provided in the SDK to map and export the DimensionalReport Object to a DataTable.&amp;#160; See Mapper notes below for more information.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;NavigationFactory Class&lt;/li&gt;&lt;/ul&gt;&lt;p style="padding-left: 60px;"&gt;The NavigationFactory Class provides ways to retrieve the profile &amp;amp; report listings that a particular user has access to.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Mapper Class&lt;/li&gt;&lt;/ul&gt;&lt;p style="padding-left: 60px;"&gt;The Mapper Class exists for the sole purpose of taking the DimensionalReport Object and piping the data into other formats.&amp;#160; The format currently available is piping the DimensionalReport Object into a standard ADO.NET DataTable.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;For examples and other material, subscribe to the &lt;a class="jive-link-blog-small" href="http://developer.webtrends.com/community/dx/blog"&gt;webtrends Developer Network Blog&lt;/a&gt;.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;In the attachments below you will need to include this version of the Newtonsoft.Json.dll Assembly also.&amp;#160; Currently it is used for all serialization and deserialization of the JSON data pulled from the web services.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The CSharp.zip is the full code solution for the SDK.&amp;#160; Please keep in mind that this code is NOT an official release.&amp;#160; It is primarily open and offered to assist with development against the DX Web Services.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:430020b1-a9c3-44a7-abe6-1f1e41ae9999] --&gt;</description>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">rest_api</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">rest</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">api</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">data_extraction</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">dx</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">webtrends</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">webtrends_web_services</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">authentication</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">web_services</category>
      <pubDate>Wed, 21 Oct 2009 16:35:20 GMT</pubDate>
      <author>webtrends@webtrends-dev.sgaur.hosted.jivesoftware.com</author>
      <guid>http://developer.webtrends.com/docs/DOC-1182</guid>
      <dc:date>2009-10-21T16:35:20Z</dc:date>
      <clearspace:dateToText>4 weeks, 1 day ago</clearspace:dateToText>
    </item>
    <item>
      <title>Dissecting the Sample Excel/VBA Application - Part 4</title>
      <link>http://developer.webtrends.com/community/dx/blog/2009/10/22/dissecting-the-sample-excelvba-application--part-4</link>
      <description>&lt;!-- [DocumentBodyStart:8e8417c3-e79f-4153-b4d7-c9355b977758] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;This is the final installment of the postings on the sample application.&lt;span&gt;&amp;#160; &lt;/span&gt;Up to this point we have dealt with the process of getting information about profiles and report definitions.&lt;span&gt;&amp;#160; &lt;/span&gt;We have yet to get any real report data.&lt;span&gt;&amp;#160; &lt;/span&gt;So, this post will deal with that process and what we do with the report results once we get them.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;The first step in the process is, of course that of creating a REST URL that requests report data.&lt;span&gt;&amp;#160; &lt;/span&gt;The application takes care of all of this based on the selections made by the user for such things as time periods to cover, search criteria, limiting rows, how to deal with totals, and the selection of specific measures.&lt;span&gt;&amp;#160; &lt;/span&gt;There is a fair amount of work involved in making sure everything is valid, but the end result is a REST URL that looks something the one shown below.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;a class="jive-link-external-small" href="https://ws.webtrends.com/v1_1/ReportService/profiles/YcL4a5dufF6/reports/95df19b6d9f2/?totals=all&amp;amp;period=2009m01d16&amp;amp;format=html&amp;amp;suppress_error_codes=true"&gt;https://ws.webtrends.com/v1_1/ReportService/profiles/YcL4a5dufF6/reports/95df19b6d9f2/?totals=all&amp;amp;period=2009m01d16&amp;amp;format=html&amp;amp;suppress_error_codes=true&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;The major difference between this URL and those we have seen in the past is that there are multiple parameters specified which control what and how much data we get back.&lt;span&gt;&amp;#160; &lt;/span&gt;A second difference here is that we are also using a different data type for our results.&lt;span&gt;&amp;#160; &lt;/span&gt;In this case we have chosen the &amp;ldquo;html&amp;#8221; format rather than JSON.&lt;span&gt;&amp;#160; &lt;/span&gt;When getting report results for Excel the &amp;ldquo;html&amp;#8221; format makes it extremely easy to populate the result data into Excel.&lt;span&gt;&amp;#160; &lt;/span&gt;The result data is returned as a table definition which when pasted into a spreadsheet automatically places our data into rows and columns in a tight report fashion.&lt;span&gt;&amp;#160; &lt;/span&gt;In fact the result data from the REST URL above produces the results shown below.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&amp;lt;table border=1&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;th&amp;gt;Time&amp;lt;/th&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;th&amp;gt;Browsers&amp;lt;/th&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;th&amp;gt;Views&amp;lt;/th&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;th&amp;gt;Visits&amp;lt;/th&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;td&amp;gt;1/16/2009&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;td&amp;gt;&amp;#160; &amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;td&amp;gt;83752&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;td&amp;gt;8941&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;td&amp;gt;1/16/2009&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;td&amp;gt;Microsoft Internet Explorer&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;td&amp;gt;48488&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;td&amp;gt;5193&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;td&amp;gt;1/16/2009&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;td&amp;gt;Mozilla&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;td&amp;gt;13547&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;td&amp;gt;1445&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;td&amp;gt;1/16/2009&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;td&amp;gt;Netscape&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;td&amp;gt;5942&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;td&amp;gt;636&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&amp;lt;/table&amp;gt;&lt;br/&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;If you look closely at this result, you will see that we have a single table with a border (width of 1 pixel).&lt;span&gt;&amp;#160; &lt;/span&gt;The table is divided into several table rows.&lt;span&gt;&amp;#160; &lt;/span&gt;Each table row has a number of columns.&lt;span&gt;&amp;#160; &lt;/span&gt;These hold the dimension and measure data for the report.&lt;span&gt;&amp;#160; &lt;/span&gt;Also important to note are the first two rows in the table data.&lt;span&gt;&amp;#160; &lt;/span&gt;The first row holds the names of the report columns.&lt;span&gt;&amp;#160; &lt;/span&gt;In every report I have seen the first column has always been time.&lt;span&gt;&amp;#160; &lt;/span&gt;The second row holds the &amp;ldquo;total&amp;#8221; data.&lt;span&gt;&amp;#160; &lt;/span&gt;Even when a report has no totals this row of data will be present and will contain the date value.&lt;span&gt;&amp;#160; &lt;/span&gt;The remaining rows contain the report detail as specified in the REST URL request.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;It is these two top rows that may need some special handling.&lt;span&gt;&amp;#160; &lt;/span&gt;Suppose I have a series of queries that return report data for individual periods, say one week&amp;rsquo;s worth of data but one day at a time.&lt;span&gt;&amp;#160; &lt;/span&gt;What I really want to get to here is a single report that shows each result for each day, but I only want one set of header data and I don&amp;rsquo;t want any totals since I can create those myself.&lt;span&gt;&amp;#160; &lt;/span&gt;If I were to paste in the results from two successive days without making any changes to the results, I would get a spreadsheet that looks like the following.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="margin-left: 3.9pt; border-collapse: collapse;"&gt;&lt;tbody&gt;&lt;tr style="height: 14.5pt;"&gt;&lt;td style="border: 1pt solid black; padding: 0in 5.4pt; width: 64.5pt; height: 14.5pt;" valign="top" width="86"&gt;&lt;p align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;"&gt;&lt;strong style="color: black; font-size: 10pt; "&gt;Time&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 76.5pt; height: 14.5pt; border: 1pt 1pt 1pt medium solid solid solid none black black black -moz-use-text-color;" valign="top" width="102"&gt;&lt;p align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;"&gt;&lt;strong style="color: black; font-size: 10pt; "&gt;Browsers&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 58.5pt; height: 14.5pt; border: 1pt 1pt 1pt medium solid solid solid none black black black -moz-use-text-color;" valign="top" width="78"&gt;&lt;p align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;"&gt;&lt;strong style="color: black; font-size: 10pt; "&gt;Views&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 63pt; height: 14.5pt; border: 1pt 1pt 1pt medium solid solid solid none black black black -moz-use-text-color;" valign="top" width="84"&gt;&lt;p align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;"&gt;&lt;strong style="color: black; font-size: 10pt; "&gt;Visits&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 14.5pt;"&gt;&lt;td style="padding: 0in 5.4pt; width: 64.5pt; height: 14.5pt; border: medium 1pt 1pt none solid solid -moz-use-text-color black black;" valign="top" width="86"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;1/16/2009&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 76.5pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="102"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 58.5pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="78"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;83752&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 63pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="84"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;8941&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 37.7pt;"&gt;&lt;td style="padding: 0in 5.4pt; width: 64.5pt; height: 37.7pt; border: medium 1pt 1pt none solid solid -moz-use-text-color black black;" valign="top" width="86"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;1/16/2009&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 76.5pt; height: 37.7pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="102"&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;Microsoft Internet Explorer&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 58.5pt; height: 37.7pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="78"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;48488&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 63pt; height: 37.7pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="84"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;5193&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 14.5pt;"&gt;&lt;td style="padding: 0in 5.4pt; width: 64.5pt; height: 14.5pt; border: medium 1pt 1pt none solid solid -moz-use-text-color black black;" valign="top" width="86"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;1/16/2009&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 76.5pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="102"&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;Mozilla&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 58.5pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="78"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;13547&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 63pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="84"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;1445&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 14.5pt;"&gt;&lt;td style="padding: 0in 5.4pt; width: 64.5pt; height: 14.5pt; border: medium 1pt 1pt none solid solid -moz-use-text-color black black;" valign="top" width="86"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;1/16/2009&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 76.5pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="102"&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;Netscape&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 58.5pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="78"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;5942&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 63pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="84"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;636&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 14.5pt;"&gt;&lt;td style="padding: 0in 5.4pt; width: 64.5pt; height: 14.5pt; border: medium 1pt 1pt none solid solid -moz-use-text-color black black;" valign="top" width="86"&gt;&lt;p align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;"&gt;&lt;strong style="color: black; font-size: 10pt; "&gt;Time&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 76.5pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="102"&gt;&lt;p align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;"&gt;&lt;strong style="color: black; font-size: 10pt; "&gt;Browsers&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 58.5pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="78"&gt;&lt;p align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;"&gt;&lt;strong style="color: black; font-size: 10pt; "&gt;Views&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 63pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="84"&gt;&lt;p align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;"&gt;&lt;strong style="color: black; font-size: 10pt; "&gt;Visits&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 14.5pt;"&gt;&lt;td style="padding: 0in 5.4pt; width: 64.5pt; height: 14.5pt; border: medium 1pt 1pt none solid solid -moz-use-text-color black black;" valign="top" width="86"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;1/15/2009&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 76.5pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="102"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 58.5pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="78"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;93520&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 63pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="84"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;9992&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 37.7pt;"&gt;&lt;td style="padding: 0in 5.4pt; width: 64.5pt; height: 37.7pt; border: medium 1pt 1pt none solid solid -moz-use-text-color black black;" valign="top" width="86"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;1/15/2009&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 76.5pt; height: 37.7pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="102"&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;Microsoft Internet Explorer&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 58.5pt; height: 37.7pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="78"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;54057&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 63pt; height: 37.7pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="84"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;5821&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 14.5pt;"&gt;&lt;td style="padding: 0in 5.4pt; width: 64.5pt; height: 14.5pt; border: medium 1pt 1pt none solid solid -moz-use-text-color black black;" valign="top" width="86"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;1/15/2009&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 76.5pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="102"&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;Mozilla&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 58.5pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="78"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;15601&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 63pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="84"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;1666&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 14.5pt;"&gt;&lt;td style="padding: 0in 5.4pt; width: 64.5pt; height: 14.5pt; border: medium 1pt 1pt none solid solid -moz-use-text-color black black;" valign="top" width="86"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;1/15/2009&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 76.5pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="102"&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;Netscape&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 58.5pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="78"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;6120&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 63pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="84"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;635&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;Note that this table contains two sets of headers and two total columns.&lt;span&gt;&amp;#160; &lt;/span&gt;What we really want is a result that has only one header row and no totals.&lt;span&gt;&amp;#160; &lt;/span&gt;It should look like the following.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="margin-left: 3.9pt; border-collapse: collapse;"&gt;&lt;tbody&gt;&lt;tr style="height: 14.5pt;"&gt;&lt;td style="border: 1pt solid black; padding: 0in 5.4pt; width: 60pt; height: 14.5pt;" valign="top" width="80"&gt;&lt;p align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;"&gt;&lt;strong style="color: black; font-size: 10pt; "&gt;Time&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 81pt; height: 14.5pt; border: 1pt 1pt 1pt medium solid solid solid none black black black -moz-use-text-color;" valign="top" width="108"&gt;&lt;p align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;"&gt;&lt;strong style="color: black; font-size: 10pt; "&gt;Browsers&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 58.5pt; height: 14.5pt; border: 1pt 1pt 1pt medium solid solid solid none black black black -moz-use-text-color;" valign="top" width="78"&gt;&lt;p align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;"&gt;&lt;strong style="color: black; font-size: 10pt; "&gt;Views&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 63pt; height: 14.5pt; border: 1pt 1pt 1pt medium solid solid solid none black black black -moz-use-text-color;" valign="top" width="84"&gt;&lt;p align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;"&gt;&lt;strong style="color: black; font-size: 10pt; "&gt;Visits&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 37.7pt;"&gt;&lt;td style="padding: 0in 5.4pt; width: 60pt; height: 37.7pt; border: medium 1pt 1pt none solid solid -moz-use-text-color black black;" valign="top" width="80"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;1/16/2009&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 81pt; height: 37.7pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;Microsoft Internet Explorer&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 58.5pt; height: 37.7pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="78"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;48488&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 63pt; height: 37.7pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="84"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;5193&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 14.5pt;"&gt;&lt;td style="padding: 0in 5.4pt; width: 60pt; height: 14.5pt; border: medium 1pt 1pt none solid solid -moz-use-text-color black black;" valign="top" width="80"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;1/16/2009&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 81pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;Mozilla&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 58.5pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="78"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;13547&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 63pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="84"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;1445&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 14.5pt;"&gt;&lt;td style="padding: 0in 5.4pt; width: 60pt; height: 14.5pt; border: medium 1pt 1pt none solid solid -moz-use-text-color black black;" valign="top" width="80"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;1/16/2009&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 81pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;Netscape&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 58.5pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="78"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;5942&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 63pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="84"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;636&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 37.7pt;"&gt;&lt;td style="padding: 0in 5.4pt; width: 60pt; height: 37.7pt; border: medium 1pt 1pt none solid solid -moz-use-text-color black black;" valign="top" width="80"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;1/15/2009&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 81pt; height: 37.7pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;Microsoft Internet Explorer&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 58.5pt; height: 37.7pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="78"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;54057&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 63pt; height: 37.7pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="84"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;5821&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 14.5pt;"&gt;&lt;td style="padding: 0in 5.4pt; width: 60pt; height: 14.5pt; border: medium 1pt 1pt none solid solid -moz-use-text-color black black;" valign="top" width="80"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;1/15/2009&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 81pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;Mozilla&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 58.5pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="78"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;15601&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 63pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="84"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;1666&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 14.5pt;"&gt;&lt;td style="padding: 0in 5.4pt; width: 60pt; height: 14.5pt; border: medium 1pt 1pt none solid solid -moz-use-text-color black black;" valign="top" width="80"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;1/15/2009&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 81pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;Netscape&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 58.5pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="78"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;6120&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding: 0in 5.4pt; width: 63pt; height: 14.5pt; border: medium 1pt 1pt medium none solid solid none -moz-use-text-color black black -moz-use-text-color;" valign="top" width="84"&gt;&lt;p align="right" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: right; line-height: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;635&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;This gives me a table that I can work with better for creating pivot tables, charts and appropriate totals.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;So, how do we do this?&lt;span&gt;&amp;#160; &lt;/span&gt;Well, first of all, the application allows you to define that you want this data, headers or totals, stripped off before inserting into the spreadsheet of choice.&lt;span&gt;&amp;#160; &lt;/span&gt;Since we know exactly where these are in the result set, we really only need to identify which row of data to remove: headers are always in row one and totals are in row two.&lt;span&gt;&amp;#160; &lt;/span&gt;The code in the application that does this is shown below.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;' Check to see if we need to strip off the Date/Totals row&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;If UCase(m_strIgnoreTotalDate) = "Y" Then&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;m_intCheck = InStr(1, g_strResult, "&amp;lt;/tr&amp;gt;")&lt;span&gt;&amp;#160; &lt;/span&gt;' Find the first end of table row - that's the header row&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;If m_intCheck &amp;gt; 1 Then&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;m_intStart = m_intCheck + 1&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Start of date/total row&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;m_intEnd = InStr(m_intStart, g_strResult, "&amp;lt;/tr&amp;gt;", vbTextCompare) + 4&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' End of date/total row&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' rebuild the result without the date/total stuff&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResulta = Left(g_strResult, m_intStart + 3)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResultb = Right(g_strResult, Len(g_strResult) - m_intEnd)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResult = g_strResulta &amp;amp; g_strResultb&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;End If&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;End If&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Get our data and put it on the Clipboard&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Check to see if we need to strip off the header row&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;If UCase(m_strIgnoreHeader) = "Y" Then&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;m_intCheck = InStr(1, g_strResult, "&amp;lt;table border=1&amp;gt;")&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;If m_intCheck = 1 Then&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;m_intStart = InStr(1, g_strResult, "&amp;lt;tr&amp;gt;")&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Start of the header row&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;m_intEnd = InStr(1, g_strResult, "&amp;lt;/tr&amp;gt;", vbTextCompare) + 4&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' End of the header row&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Rebuild our result without that stuff&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResulta = Left(g_strResult, 16)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResultb = Right(g_strResult, Len(g_strResult) - m_intEnd)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResult = g_strResulta &amp;amp; g_strResultb&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;End If&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;End If&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;The right approach is to first look to see if we want to remove the &amp;ldquo;Total&amp;#8221; row and do that.&lt;span&gt;&amp;#160; &lt;/span&gt;The reason for this is that we know this data is in row two.&lt;span&gt;&amp;#160; &lt;/span&gt;If we were to delete the header row first, the total row would move to the first row and would complicate the logic.&lt;span&gt;&amp;#160; &lt;/span&gt;So, the easy way to do this once we have decided that removing it is the thing to do, we simply look for where that row starts and ends.&lt;span&gt;&amp;#160; &lt;/span&gt;The start position is simply the first character after the end of the first row and the end is the last position of the &amp;ldquo;&amp;lt;/tr&amp;gt;&amp;#8221; string.&lt;span&gt;&amp;#160; &lt;/span&gt;Once we calculate those two values we simply recreate our result to copy the data up to the start and after the end of that row.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;The same basic approach is taken for the header row.&lt;span&gt;&amp;#160; &lt;/span&gt;We know exactly where the start of that row is because we know the number of characters leading up to it.&lt;span&gt;&amp;#160; &lt;/span&gt;We then calculate the end in the same way we did for the totals row except that we are only looking for the end of this first row.&lt;span&gt;&amp;#160; &lt;/span&gt;Once we have these values calculated, we can again recreate the result set to include only the data prior to and after the first row of data.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;Once we have the result set that is needed for our spreadsheet the only real task left is to decide where to put it.&lt;span&gt;&amp;#160; &lt;/span&gt;By that I mean what worksheet and which cell.&lt;span&gt;&amp;#160; &lt;/span&gt;The cell we need is the top left cell.&lt;span&gt;&amp;#160; &lt;/span&gt;Then we paste our data in there and we are done.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;I hope these posts have provided useful information.&lt;span&gt;&amp;#160; &lt;/span&gt;Whether you choose to use this sample application or to write your own my goal here has been to provide some insight into how one can approach using the REST URLs with Excel and VBA.&lt;span&gt;&amp;#160; &lt;/span&gt;I will continue to work on this application with bug fixes (I am sure there are a few) and new functionality.&lt;span&gt;&amp;#160; &lt;/span&gt;Eventually I will add the trend reports and will support future versions of the API.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;As always, I welcome your comments.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;Michael Love&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;Senior Solutions Engineer&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:8e8417c3-e79f-4153-b4d7-c9355b977758] --&gt;</description>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">data_extraction</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">excel</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">dx_api</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">rest_api</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">rest</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">webtrends_web_services</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">api</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">sample</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">web_services</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">webtrends</category>
      <pubDate>Thu, 22 Oct 2009 13:48:50 GMT</pubDate>
      <author>michael.love@webtrends.com</author>
      <guid>http://developer.webtrends.com/community/dx/blog/2009/10/22/dissecting-the-sample-excelvba-application--part-4</guid>
      <dc:date>2009-10-22T13:48:50Z</dc:date>
      <clearspace:dateToText>4 weeks, 1 day ago</clearspace:dateToText>
    </item>
    <item>
      <title>Dissecting the Sample Excel/VBA Application - Part 3</title>
      <link>http://developer.webtrends.com/community/dx/blog/2009/10/21/dissecting-the-sample-excelvba-application--part-3</link>
      <description>&lt;!-- [DocumentBodyStart:4262e19e-c983-4ea8-b73b-ad1bf36a5a5b] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;The previous posts on this application have provided some insight on how to get general profile and report data.&lt;span&gt;&amp;#160; &lt;/span&gt;We have also parsed the results that were returned assuming that we used the JSON data format.&lt;span&gt;&amp;#160; &lt;/span&gt;So now we are just about ready to create a REST URL that will allow us to fetch some actual report data.&lt;span&gt;&amp;#160; &lt;/span&gt;But before we do there is one last task to be performed and that is getting a list of measures that are available for our desired report.&lt;span&gt;&amp;#160; &lt;/span&gt;We need to do that just in case we want to limit the measures return to specific measures rather than all.&lt;span&gt;&amp;#160; &lt;/span&gt;One other element we are interested in knowing is whether or not we can use the &amp;ldquo;search&amp;#8221; functionality to limit the results based on contents in the dimension data.&lt;span&gt;&amp;#160; &lt;/span&gt;Whether or not we can do that is determined by whether or not the report is multi-dimensional or hierarchical.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;The REST URL to make this request to get what is referred to as the report meta data is shown below.&lt;span&gt;&amp;#160; &lt;/span&gt;This URL clearly defines both the Profile and the Report desired via their ID values.&lt;span&gt;&amp;#160; &lt;/span&gt;The &amp;ldquo;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;info&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&amp;#8221; field defines this as a request for the report meta data.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;a class="jive-link-external-small" href="https://ws.webtrends.com/v1_1/ReportService/profiles/YcL4a5dufF6/reports/95df19b6d9f2/info/?format=json"&gt;https://ws.webtrends.com/v1_1/ReportService/profiles/YcL4a5dufF6/reports/95df19b6d9f2/info/?format=json&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;This request is made in the same way that previous requests are made and were discussed in my prior posts.&lt;span&gt;&amp;#160; &lt;/span&gt;The resulting data in JSON format will look something like the data below.&lt;span&gt;&amp;#160; &lt;/span&gt;Remember, however, that there are no spaces or other extraneous characters returned.&lt;span&gt;&amp;#160; &lt;/span&gt;These are shown here to make this easy to read.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"accountID" : 18079,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"profileID" : "YcL4a5dufF6",&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"ID" : "95df19b6d9f2",&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"name" : "Browsers",&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"language" : null,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"type" : "dimensional",&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"properties" : {&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"isHierarchy" : false,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"intervalsEnabled" : false,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"internalID" : "topbrowsers_v",&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"IsRealTimeCompatible" : true,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"ProfileCategory" : null&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;},&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"dimension" : {&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"ID" : "Desc",&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"name" : "Browsers",&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"type" : "data",&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"Range" : null,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"Properties" : null,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"SubDimension" : null&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;},&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"measures" : [&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"name" : "Views",&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"accumulationType" : null,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"ID" : "Hits-0",&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"columnID" : 0,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"measureFormatType" : "numeric",&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"AllowTotals" : true&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;},&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"name" : "Visits",&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"accumulationType" : null,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"ID" : "Users-0",&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"columnID" : 0,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"measureFormatType" : "numeric",&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"AllowTotals" : true&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;]&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;The entire result set is enclosed in curly brackets &amp;ndash; &amp;ldquo;{&lt;span&gt;&amp;#160; &lt;/span&gt;}&amp;#8221;.&lt;span&gt;&amp;#160; &lt;/span&gt;There are within this set of data three (3) main segments of data.&lt;span&gt;&amp;#160; &lt;/span&gt;The first segment is general report information.&lt;span&gt;&amp;#160; &lt;/span&gt;Here we have such information as the Profile ID, the Report ID, the Report Name, and other general properties.&lt;span&gt;&amp;#160; &lt;/span&gt;It is here that we find a couple of critical pieces of data. &lt;span&gt; &lt;/span&gt;These are both in the properties area: &lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&amp;ldquo;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;isHierarchy&amp;#8221;, &lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;and&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; "intervalsEnabled"&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;.&lt;span&gt;&amp;#160; &lt;/span&gt;The &lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&amp;ldquo;isHierarchy&amp;#8221;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; value tells us whether or not we can use the search functionality.&lt;span&gt;&amp;#160; &lt;/span&gt;A value of &amp;ldquo;false&amp;#8221; indicates this is a single dimension report and that we can do this.&lt;span&gt;&amp;#160; &lt;/span&gt;On the other hand, a value of &amp;ldquo;true&amp;#8221; indicates that the report contains more than a single dimension and that we cannot use the search functionality.&lt;span&gt;&amp;#160; &lt;/span&gt;The second property item that may be of interest to us is the &lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;"intervalsEnabled"&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; item.&lt;span&gt;&amp;#160; &lt;/span&gt;The value of this item tells whether or not trends data is available and we can use those time periods to retrieve data. Again, a value of &amp;ldquo;false&amp;#8221; means interval/trend data is not available and &amp;ldquo;true&amp;#8221; means that interval/trend data is available.&lt;span&gt;&amp;#160; &lt;/span&gt;This sample application has not implemented or enabled this feature, so for our discussion here the point is moot.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;The second segment of data in our result is a list of dimensions.&lt;span&gt;&amp;#160; &lt;/span&gt;In a single dimension report this list is obviously short and appears as shown above.&lt;span&gt;&amp;#160; &lt;/span&gt;In a multi-dimensional report the sub dimensions are listed as shown below.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"dimension" : {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"ID" : "contentgroup",&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"name" : "Content Group",&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"type" : "data",&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"Range" : null,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"Properties" : null,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"SubDimension" : {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"ID" : "xIfaV44n7l5",&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"name" : "Content Sub-Group",&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"type" : "data",&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;"Range" : null,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"Properties" : null,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;"SubDimension" : null&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;},&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;Note that each sub dimension is listed as a hierarchical item of the dimension above it.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;The key set of data that we want out of this result data is the list of measures.&amp;#160; The measures are all in a third segment bounded by square brackets &amp;ndash; &amp;ldquo;[&amp;#160; ]&amp;#8221;.&amp;#160; Each individual measure is defined within its own space bounded by curly brackets &amp;ndash; &amp;ldquo;{&amp;#160; }&amp;#8221;.&amp;#160; For each measure there are a number of definition items including, "name", "accumulationType", "ID","columnID", "measureFormatType", and "AllowTotals".&amp;#160; For purposes of our application we only need two of these values: &amp;ldquo;name&amp;#8221; and &amp;ldquo;ID&amp;#8221;.&amp;#160; The name filed is used for display to the user in the interface and the ID is used when we create the REST URL to request our data.&amp;#160; In the application we store this data in a custom data type.&amp;#160; This data type is shown below.&lt;span lang="EN" style="font-family: &amp;amp;quot;Calibri&amp;amp;quot;,&amp;amp;quot;sans-serif&amp;amp;quot;;"&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&lt;span lang="EN" style="font-family: &amp;amp;quot;Calibri&amp;amp;quot;,&amp;amp;quot;sans-serif&amp;amp;quot;;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;pre&gt;&lt;span lang="EN" style="font-family: &amp;amp;quot;Calibri&amp;amp;quot;,&amp;amp;quot;sans-serif&amp;amp;quot;;"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;Public Type MEASUREDATA&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;name As String&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;id As String&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;accumulationType As String&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;columnID As String&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;measureFormatType As String&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;allowTotals As String&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;End Type&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;span style="font-size: 8pt;"&gt;Public g_Measures() As MEASUREDATA&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: &amp;amp;quot;Calibri&amp;amp;quot;,&amp;amp;quot;sans-serif&amp;amp;quot;;"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;The function below is used to extract the data we need from the JSON result.&amp;#160; Once extracted the list of measures is available for the user to select. A check is also made to either enable or disable the use of the &amp;ldquo;search&amp;#8221; functionality based on this being a single or multi-dimensional report.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;Public Sub GetReportMeta()&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Get Report Meta so we can have list of measures&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Dim m_intWhere As Integer&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Dim m_strIsHier As String&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.lstMeasures.Clear&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Clear form we will display list on&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_intMeasureCnt = 0&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Initialize the profile count to 0&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Check to see if the user has selected the Profile Summary&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;If frmProfileList.lstReports.ListIndex = frmProfileList.lstReports.ListCount - 1 Then&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.optMultiple.Enabled = False&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.optSingle.Enabled = False&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.optSEPeriods.Value = True&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Exit Sub&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Exit this sub because there are no choices for measures&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Else&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.optMultiple.Enabled = True&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.optSingle.Enabled = True&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.optSEPeriods.Enabled = True&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;End If&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;' Set up URL for fetching Report Meta&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strURL = g_strBaseREST &amp;amp; g_strSelectedProfileID &amp;amp; g_strReportsREST &amp;amp; g_Reports(frmProfileList.lstReports.ListIndex).id &amp;amp; g_strReportsMetaREST&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Call function to execute REST URL&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;If Not RunREST(g_strURL, g_strUserName, g_strPassword) Then&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Exit Sub&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;End If&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Check to see if the report is hierarchical - no search on those&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;m_intWhere = InStr(1, g_strResult, "isHierarchy")&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Find start point for measures list&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;m_strIsHier = Mid(g_strResult, m_intWhere + 13, 4)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;If m_strIsHier = "true" Then&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.txtSearch.Enabled = False&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' disable text entry in search box&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Else&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.txtSearch.Enabled = True&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' enable text entry in search box&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;End If&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Display the JSON URL Result&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;m_intWhere = InStr(1, g_strResult, "[")&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Find start point for measures list&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResulta = Mid(g_strResult, m_intWhere + 1, Len(g_strResult) - (m_intWhere + 2))&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_blnMore = True&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Do While g_blnMore&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_intSplit = InStr(1, g_strResulta, "},")&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' See if there is more than one entry&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;If g_intSplit = 0 Then&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResultb = Mid(g_strResulta, 2, Len(g_strResulta) - 2)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Else&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResultb = Mid(g_strResulta, 2, g_intSplit - 2)&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;' Grab the first set of data&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;End If&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResultb = Replace(g_strResultb, """", "")&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Get rid of the extra " characters&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strArr = Split(g_strResultb, ",")&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Create an array with this set of data&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;ReDim Preserve g_Measures(g_intMeasureCnt)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Make room for new measure&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Measures(g_intMeasureCnt).name = Mid(g_strArr(0), 6)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Store the measure name&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.lstMeasures.AddItem g_Measures(g_intMeasureCnt).name&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Add name for selection from form&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Measures(g_intMeasureCnt).id = Mid(g_strArr(2), 4)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Store the Measure ID&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Measures(g_intMeasureCnt).accumulationType = Mid(g_strArr(1), 18) ' Store the Accumulation Type&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Measures(g_intMeasureCnt).allowTotals = Mid(g_strArr(5), 13) ' Store the Allow Totals value&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Measures(g_intMeasureCnt).columnID = Mid(g_strArr(3), 10) ' Store the Column ID&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Check to see if we are done parsing&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;If g_intSplit = 0 Then&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_blnMore = False&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' We're done&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;End If&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResulta = Right(g_strResulta, Len(g_strResulta) - g_intSplit - 1)&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;' Set up for next profile&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_intMeasureCnt = g_intMeasureCnt + 1&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Bump the profile count&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Loop&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Application.Cursor = xlNorthwestArrow&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Set the application cursor back to normal (arrow)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;End Sub&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;So, now we have all of our data available in the user interface for the user to select what data will be included in the requested report.&lt;span&gt;&amp;#160; &lt;/span&gt;The three keys areas of selection are the time periods, the search data (if available), and the selected measures.&lt;span&gt;&amp;#160; &lt;/span&gt;Other selections include limiting what rows to return and how to deal with report totals.&lt;span&gt;&amp;#160; &lt;/span&gt;I won&amp;rsquo;t go into all of the logic on these selections and the interactions, but there are certain checks that are made to ensure consistency and validity of the selected items.&lt;span&gt;&amp;#160; &lt;/span&gt;But once these selections are made the user can create the URL and then copy it to the worksheet for eventual execution.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;That&amp;rsquo;s all for this post.&lt;span&gt;&amp;#160; &lt;/span&gt;The next and last post on this application will deal with processing the results of the report data requests.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Michael Love&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Senior Solutions Engineer&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:4262e19e-c983-4ea8-b73b-ad1bf36a5a5b] --&gt;</description>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">dx_api</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">rest_api</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">json</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">rest</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">api</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">web_services</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">webtrends_web_services</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">data_extraction</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">excel</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">sample</category>
      <pubDate>Wed, 21 Oct 2009 14:16:37 GMT</pubDate>
      <author>michael.love@webtrends.com</author>
      <guid>http://developer.webtrends.com/community/dx/blog/2009/10/21/dissecting-the-sample-excelvba-application--part-3</guid>
      <dc:date>2009-10-21T14:16:37Z</dc:date>
      <clearspace:dateToText>1 month, 20 hours ago</clearspace:dateToText>
    </item>
    <item>
      <title>Dissecting the Sample Excel/VBA Application - Part 2</title>
      <link>http://developer.webtrends.com/community/dx/blog/2009/10/20/dissecting-the-sample-excelvba-application--part-2</link>
      <description>&lt;!-- [DocumentBodyStart:d1d9fba3-1efa-4162-b03e-724e18c75e9c] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;This second post on dissecting the Sample Application deals with the process of requesting two separate, but related, sets of report data: the List of Available Reports for a Profile and the List of Report Periods for which data may be available.&lt;span&gt;&amp;#160; &lt;/span&gt;I say &amp;ldquo;may be available&amp;#8221; because it is possible that a report may not have existed when the Profile initially began analyzing.&lt;span&gt;&amp;#160; &lt;/span&gt;A custom report may have been added some time after that initial set up process.&lt;span&gt;&amp;#160; &lt;/span&gt;In that case the report would not have any data until when it had been enabled for the profile and the report template(s) available to the user.&lt;span&gt;&amp;#160; &lt;/span&gt;This point really has nothing to do with the application.&lt;span&gt;&amp;#160; &lt;/span&gt;I provided this comment only as a point of report data clarification.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;The process in place within the application is that these two data requests will take place when the user clicks on a Profile Name in the combo list.&lt;span&gt;&amp;#160; &lt;/span&gt;The request for Report List is made first followed by the List of Periods.&lt;span&gt;&amp;#160; &lt;/span&gt;There is nothing that requires that one be done before the other; it&amp;rsquo;s just the sequence in which I chose to do them.&lt;span&gt;&amp;#160; &lt;/span&gt;The REST URL to request a Report List looks like the following:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;a class="jive-link-external-small" href="https://ws.webtrends.com/v1_1/ReportService/profiles/YcL4a5dufF6/reports/?format=json"&gt;https://ws.webtrends.com/v1_1/ReportService/profiles/YcL4a5dufF6/reports/?format=json&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;Note that again I use the JSON data format to keep down the amount of data returned.&lt;span&gt;&amp;#160; &lt;/span&gt;The process used to create this URL and send it is much like that used for the Profile List.&lt;span&gt;&amp;#160; &lt;/span&gt;The difference, of course, is in the format of the REST URL where we need to include the Profile ID and then add the fields to identify the request as one for the Report List.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;So, the data format that I get back looks very similar to the format used for the Profile List.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;[&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;{"accountID":18079,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"profileID":null,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"name":"Creatives",&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"ID":"WcTGeY1bNj5",&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"language":null,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"type":null,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"Category":"Marketing",&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"IsHierarchy":false,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"IntervalsEnabled":false,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"IsRealtimeCompatible":false,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"properties":null&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;},&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"accountID":18079,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"profileID":null,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"name":"Creative Types",&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"ID":"uZK6QjyBNj5",&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"language":null,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"type":null,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"Category":"Marketing",&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"IsHierarchy":false,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"IntervalsEnabled":false,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"IsRealtimeCompatible":false,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;"properties":null&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;]&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;The formatting here has been added only to make reading the data easier.&lt;span&gt;&amp;#160; &lt;/span&gt;The JSON format returns one long string bounded by square brackets &amp;ndash; &amp;ldquo;[&lt;span&gt;&amp;#160; &lt;/span&gt;]&amp;#8221;.&lt;span&gt;&amp;#160; &lt;/span&gt;Within these brackets each report is detailed within a set of curly brackets &amp;ndash; &amp;ldquo;{&lt;span&gt;&amp;#160; &lt;/span&gt;}&amp;#8221;.&lt;span&gt;&amp;#160; &lt;/span&gt;Within those brackets are the individual meta items that define the report in a general format.&lt;span&gt;&amp;#160; &lt;/span&gt;The two items that are really important to us here are the &amp;ldquo;name&amp;#8221; and the &amp;ldquo;ID&amp;#8221;.&lt;span&gt;&amp;#160; &lt;/span&gt;The application parses this data using the following code.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;' Display the JSON URL Result&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' We need to parse out the results to get the data we need&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.lstReports.Clear&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Clear form we will display list on&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_intReportCnt = 0&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Initialize the profile count to 0&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResulta = Mid(g_strResult, 2, Len(g_strResult) - 2)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Strip the [] characters from each end&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_blnMore = True&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Do While g_blnMore&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_intSplit = InStr(1, g_strResulta, "},")&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' See if there is more than one entry&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;If g_intSplit = 0 Then&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResultb = Mid(g_strResulta, 2, Len(g_strResulta) - 2)&lt;span&gt;&amp;#160; &lt;/span&gt;' Grab the enry when only one left&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Else&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResultb = Mid(g_strResulta, 2, g_intSplit - 2)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Grab the first set of data&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;End If&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResultb = Replace(g_strResultb, """", "")&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Get rid of the extra " characters&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strArr = Split(g_strResultb, ",")&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Create an array with this set of data&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;ReDim Preserve g_Reports(g_intReportCnt)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Reports(g_intReportCnt).id = Mid(g_strArr(3), 4)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Store the Report ID&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Reports(g_intReportCnt).name = Mid(g_strArr(2), 6)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Store the Report Name&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Reports(g_intReportCnt).accountid = Mid(g_strArr(0), 11)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Store the Account ID&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Reports(g_intReportCnt).profileid = Mid(g_strArr(1), 11)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Store the Profile ID&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Reports(g_intReportCnt).language = Mid(g_strArr(4), 10)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Store the Language&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Reports(g_intReportCnt).type = Mid(g_strArr(5), 6)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Store the Report Type&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Reports(g_intReportCnt).category = Mid(g_strArr(6), 10)&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Store the Report Category&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Reports(g_intReportCnt).ishierarchy = Mid(g_strArr(7), 13)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Store Hierarchy vlaue&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Reports(g_intReportCnt).intervalsenabled = Mid(g_strArr(8), 18)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Store Interval enablement&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Reports(g_intReportCnt).isrealtimecompatible = Mid(g_strArr(9), 22)&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;' Store Realtime&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Reports(g_intReportCnt).properties = Mid(g_strArr(10), 12)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Store Properties&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Check to see if we are done parsing&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;If g_intSplit = 0 Then&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_blnMore = False&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' We're done&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;End If&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResulta = Right(g_strResulta, Len(g_strResulta) - g_intSplit - 1)&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;' Set up for next report&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_intReportCnt = g_intReportCnt + 1&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Bump the report count&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Loop&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Sort the report list arrays&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;SortReports&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Load Report Names into form&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;For i = LBound(g_Reports) To UBound(g_Reports)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.lstReports.AddItem g_Reports(i).name&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Add name for selection from form&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Next&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;The parsing process here is almost identical to what was done for the List of Profiles, the exception being the actual fields of data that are extracted and stored.&lt;span&gt;&amp;#160; &lt;/span&gt;To store the data I have again set up a specific data type for the report data.&lt;span&gt;&amp;#160; &lt;/span&gt;It looks like the following:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;Public Type REPORTDATA&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;accountid As String&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;profileid As String&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;name As String&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;id As String&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;language As String&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;type As String&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;category As String&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;ishierarchy As String&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;intervalsenabled As String&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;isrealtimecompatible As String&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;properties As String&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;End Type&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;Public g_Reports() As REPORTDATA&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;While this application does not yet use this, the &amp;ldquo;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;intervalsenabled&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&amp;#8221; value is used to determine whether or not the trends option for report is valid.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;Prior to loading the report names into the combo list on the form the application will sort that list into alphabetical sequence.&lt;span&gt;&amp;#160; &lt;/span&gt;Unfortunately, the list returned from the request does not do that for you.&lt;span&gt;&amp;#160; &lt;/span&gt;Using the custom data type here makes that sorting process easier because all of the report information I kept together.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;The next step in the process here is to get the List of Periods that are available.&lt;span&gt;&amp;#160; &lt;/span&gt;This is yet another REST URL format for this set of data.&lt;span&gt;&amp;#160; &lt;/span&gt;This REST URL has the following format:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;a class="jive-link-external-small" href="https://ws.webtrends.com/v1_1/ReportService/profiles/YcL4a5dufF6/periods/?format=json"&gt;https://ws.webtrends.com/v1_1/ReportService/profiles/YcL4a5dufF6/periods/?format=json&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;This REST URL is almost identical to the Report List request with the one exception that it has the &amp;ldquo;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;periods&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&amp;#8221; data request defined.&lt;span&gt;&amp;#160; &lt;/span&gt;As before, we still use the JSON format for our data type.&lt;span&gt;&amp;#160; &lt;/span&gt;This request is submitted just like all of the others we have done.&lt;span&gt;&amp;#160; &lt;/span&gt;The format of the result data is shown in the following:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;{"Report":["2009m01d04","2009m01d05","2009m01d06","2009m01d07","2009m01d08","2009m01d09","2009m01d10","2009w02","2009m01d11","2009m01d12","2009m01d13","2009m01d14","2009m01d15","2009m01d16","2009m01d17","2009w03","2009m01","2009q01","2009"],"Realtime":[&amp;ldquo;2009m01d18&amp;#8221;]}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;This format is a bit different than what we have seen with Profiles and Reports.&lt;span&gt;&amp;#160; &lt;/span&gt;The outside delimiters in this case are the curly brackets &amp;ndash; &amp;ldquo;{&lt;span&gt;&amp;#160; &lt;/span&gt;}&amp;#8221; &amp;ndash; and the inside delimiters are the square brackets &amp;ndash; &amp;ldquo;[&lt;span&gt;&amp;#160; &lt;/span&gt;]&amp;#8221;.&lt;span&gt;&amp;#160; &lt;/span&gt;In parsing this data all we care about are the individual periods.&lt;span&gt;&amp;#160; &lt;/span&gt;The application, at this time also does not deal with the &amp;ldquo;Realtime&amp;#8221; or express data.&lt;span&gt;&amp;#160; &lt;/span&gt;That data will be ignored in this version of the application.&lt;span&gt;&amp;#160; &lt;/span&gt;So, all we need to parse are the comma-delimited values, without the quote marks that are contained inside the first set of square brackets.&lt;span&gt;&amp;#160; &lt;/span&gt;The code to do that looks like the following:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;' Parse out the URL Result - set into individual time periods&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;If InStr(1, g_strResult, "Realtime") Then&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResultb = Mid(g_strResult, 12, (InStr(1, g_strResult, "Realtime") - 15)) ' Need to account for profiles with Express Data&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Else&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResultb = Mid(g_strResult, 12, Len(g_strResult) - 29)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' No express data&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;End If&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResultb = Replace(g_strResultb, """", "")&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Get rid of the extra " characters&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strPeriods() = Split(g_strResultb, ",")&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Create an array with this set of data&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Load data onto Report Periods Form&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.lstPeriods.Clear&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Start with empty list&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;For i = 0 To UBound(g_strPeriods)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;ReDim Preserve g_strReportPeriod(i)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.lstPeriods.AddItem g_strPeriods(i)&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;' Save in the form&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strReportPeriod(frmProfileList.lstPeriods.ListCount - 1) = g_strPeriods(i)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Save in our array for use later&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Next&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;This is fairly straightforward code to do this.&lt;span&gt;&amp;#160; &lt;/span&gt;However, there are a few other items that we need to add to the list for the user to pick for time periods.&lt;span&gt;&amp;#160; &lt;/span&gt;These are the relative starting point of &amp;ldquo;current day&amp;#8221;, &amp;ldquo;current month&amp;#8221;, and &amp;ldquo;current year&amp;#8221;.&lt;span&gt;&amp;#160; &lt;/span&gt;So these are manually added to our pick list since they have no representation in the list of periods returned.&lt;span&gt;&amp;#160; &lt;/span&gt;The code to do that is as follow:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;' Add relative time periods at end of form and array&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;ReDim Preserve g_strReportPeriod(i + 3)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.lstPeriods.AddItem "Today"&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strReportPeriod(frmProfileList.lstPeriods.ListCount - 1) = "current_day"&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.lstPeriods.AddItem "This Month"&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strReportPeriod(frmProfileList.lstPeriods.ListCount - 1) = "current_month"&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.lstPeriods.AddItem "This Year"&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strReportPeriod(frmProfileList.lstPeriods.ListCount - 1) = "current_year"&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;So, that ends this portion of the blog post.&lt;span&gt;&amp;#160; &lt;/span&gt;In the next blog post we will be getting additional report meta information and dealing with creating a REST URL to fetch actual report data.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;So, until the next posting,&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Michael Love&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Senior Solutions Engineer&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:d1d9fba3-1efa-4162-b03e-724e18c75e9c] --&gt;</description>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">rest</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">webtrends_web_services</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">api</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">json</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">sample</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">web_services</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">data_extraction</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">dx_api</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">excel</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">rest_api</category>
      <pubDate>Tue, 20 Oct 2009 19:17:45 GMT</pubDate>
      <author>michael.love@webtrends.com</author>
      <guid>http://developer.webtrends.com/community/dx/blog/2009/10/20/dissecting-the-sample-excelvba-application--part-2</guid>
      <dc:date>2009-10-20T19:17:45Z</dc:date>
      <clearspace:dateToText>1 month, 1 day ago</clearspace:dateToText>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>Dissecting the Sample Excel/VBA Application</title>
      <link>http://developer.webtrends.com/community/dx/blog/2009/10/19/dissecting-the-sample-excelvba-application</link>
      <description>&lt;!-- [DocumentBodyStart:f12fc9fa-afe0-4d53-8087-afed258784f9] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt;Recently I posted a blog entry with a Sample Excel/VBA Application.&lt;span&gt;&amp;#160; &lt;/span&gt;The idea behind this application was to provide any developer who is interested a baseline set of code for using the REST API for extracting data from Webtrends Analytics.&lt;span&gt;&amp;#160; &lt;/span&gt;The latest version of that application is v4 and it supports the v1.1 REST URL API.&lt;span&gt;&amp;#160; &lt;/span&gt;This new version is attached to this blog.&lt;span&gt;&amp;#160; &lt;/span&gt;Please note that the attachment is a Microsoft Word document.&lt;span&gt;&amp;#160; &lt;/span&gt;The application which is and Excel spreadsheet with VBA driving the action is included in that document as an embedded file.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt;I have decided to follow up that posting with more detail on how that application works.&lt;span&gt;&amp;#160; &lt;/span&gt;This follow up work will come in a series of postings that sort of start at the beginning of the application and works its way through to the end.&lt;span&gt;&amp;#160; &lt;/span&gt;The focus will be on the process of building the REST URLs and then parsing the resultant data from each call.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt;The sample application assumes that there are no REST URLs to begin with and that the user of the application will need to create them interactively.&lt;span&gt;&amp;#160; &lt;/span&gt;This aspect of the application builds off the idea of the REST Generator application at &lt;a class="jive-link-external-small" href="http://generator.webtrends.com/"&gt;http://generator.webtrends.com&lt;/a&gt;.&lt;span&gt;&amp;#160; &lt;/span&gt;To make this work requires a series of steps and calls to Webtrends to fetch specific data.&lt;span&gt;&amp;#160; &lt;/span&gt;I am assuming for purposes of this discussion that the reader has a fair knowledge of VBA with Excel and I will, therefore, not go into detail on every line of code in this application.&lt;span&gt;&amp;#160; &lt;/span&gt;The code is documented on a line by line basis.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt;So, let&amp;rsquo;s start with the sequence in which the application gets its data and what is does with it.&lt;span&gt;&amp;#160; &lt;/span&gt;To dynamically, interactively, generate a REST URL that requests report data we need to do the following:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpFirst" style="text-indent: -0.25in;"&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt;&lt;span&gt;1.&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt;Get a list of the profiles available to us.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -0.25in;"&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt;&lt;span&gt;2.&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt;Get a list of the reports that exist in the desired profile and the time periods that might exist for the reports.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;"&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt;&lt;span&gt;3.&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt;Get the report data.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpLast" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt;There&amp;rsquo;s a bit more detail involved in these and I will cover that as I cover each of the mail points in the list above.&lt;span&gt;&amp;#160; &lt;/span&gt;This posting will cover just the process involved in requesting a list of profiles.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt;I will warn you now that I am a brute force programmer and you may have better ideas than I do about specific functions and how they work.&lt;span&gt;&amp;#160; &lt;/span&gt;That&amp;rsquo;s good and I welcome any feedback you have.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt;Let&amp;rsquo;s begin by looking at the general format for a valid REST URL.&lt;span&gt;&amp;#160; &lt;/span&gt;For more detail on this I refer you to the Webtrends developer site at &lt;a class="jive-link-external-small" href="http://product.webtrends.com/dxapi/api_description.html"&gt;http://product.webtrends.com/dxapi/api_description.html&lt;/a&gt;.&lt;span&gt;&amp;#160; &lt;/span&gt;The general REST URL has the following format:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-size: 8pt;"&gt;&lt;a class="jive-link-external-small" href="https://ws.webtrends.com/v1.3.1/ReportService.svc/profiles/faj38jaFH/reports/J893kIL34/?period=2009&amp;amp;format=xml"&gt;https://ws.webtrends.com/v1.3.1/ReportService.svc/profiles/faj38jaFH/reports/J893kIL34/?period=2009&amp;amp;format=xml&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt;where,&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;https: = protocol&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;ws.webtrends.com = site where data request is sent&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;v1.3.1 = API version number&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;ReportService.svc = web service called&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;Faj38jaFH = profile id&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;J389kIL34 = report id&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;period=2009 = report period&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;format=xml = result data format&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt; &lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt;The actual format of the REST URL you will use will depend heavily on what the request is targeted to return.&lt;span&gt;&amp;#160; &lt;/span&gt;For a list of profiles the REST URL will look like the following:&lt;/span&gt;&lt;/p&gt;&lt;p align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;kbd&gt;&lt;span style="line-height: 115%; font-size: 8pt;"&gt;&lt;a class="jive-link-external-small" href="https://ws.webtrends.com/v1_1/ReportService.svc/profiles/?format=xml"&gt;https://ws.webtrends.com/v1_1/ReportService.svc/profiles/?format=xml&lt;/a&gt;&lt;/span&gt;&lt;/kbd&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt;or,&lt;/span&gt;&lt;/p&gt;&lt;p align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;kbd&gt;&lt;span style="line-height: 115%; font-size: 8pt;"&gt;&lt;a class="jive-link-external-small" href="https://ws.webtrends.com/v1_1/ReportService.svc/profiles/?format=json"&gt;https://ws.webtrends.com/v1_1/ReportService.svc/profiles/?format=json&lt;/a&gt;&lt;/span&gt;&lt;/kbd&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt;The difference here is the format in which the result information is returned.&lt;span&gt;&amp;#160; &lt;/span&gt;In the sample application I have used JSON.&lt;span&gt;&amp;#160; &lt;/span&gt;So, this is the format I will reference in this post.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-size: 10pt;"&gt;Using VBA to request web data in this form is a simple process.&lt;span&gt;&amp;#160; &lt;/span&gt;In fact, in the sample application I have included a standard function to make this retrieval, no matter what data is being requested.&lt;span&gt;&amp;#160; &lt;/span&gt;This function looks like this:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;Private Function RunREST(url As String, ByRef username As String, ByRef password As String)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Function will execute a REST url along with the UserName and Password passed as parameters&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Application.Cursor = xlWait&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Set the Wait cursor while executing the REST Call&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Set up the object needed for the web service request&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Set g_objHttp = CreateObject("MSXML2.XMLHTTP")&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Open our connection and pass the user credentials&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_objHttp.Open "GET", url, False, username, password&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' False indicates the call is synchronous - wait for URL Result&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_objHttp.send&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Send the request&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResult = g_objHttp.responseText&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Get the URL Result&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Check to see if our credentials passed - display error when they don't&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;If g_strResult = "Must authenticate" Then&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Application.Cursor = xlNorthwestArrow&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Reset the application cursor to normal (arrow)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;MsgBox "Authentication Failed", vbCritical, "Authentication Error"&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;username = ""&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Reset User Name&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;password = ""&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Reset Password&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;RunREST = False&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Set return value for failure&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Exit Function&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Exit - we're done here&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;End If&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;RunREST = True&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Set return value for success&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;End Function&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;The key statements in this function really are those that do the actual call of the REST URL.&lt;span&gt;&amp;#160; &lt;/span&gt;They are:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;g_objHttp.Open "GET", url, False, username, password&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;g_objHttp.send&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;g_strResult = g_objHttp.responseText&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;The &lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;g_objHttp.Open &lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;statement creates an open connection for the HTTP request.&lt;span&gt;&amp;#160; &lt;/span&gt;Asscociated with that statement we pass the type of call, &amp;ldquo;GET&amp;#8221;, the actual URL to be used with the call, and the user name and password.&lt;span&gt;&amp;#160; &lt;/span&gt;The parameter shown as &amp;ldquo;False&amp;#8221; indicates how this call is to be handled by the application.&lt;span&gt;&amp;#160; &lt;/span&gt;The value &amp;ldquo;False&amp;#8221; indicates that it is a synchronous call, meaning that the application will wait for the response before continuing.&lt;span&gt;&amp;#160; &lt;/span&gt;Passing the user name and password prevents the user from being challenged when the call is made.&lt;span&gt;&amp;#160; &lt;/span&gt;The &lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;g_objHttp.send&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; statement does just what is implied &amp;ndash; it sends the URL request via the web.&lt;span&gt;&amp;#160; &lt;/span&gt;The last statement &amp;ndash; &lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;g_strResult = g_objHttp.responseText&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &amp;ndash; assigns whatever the result of the request is to our internal variable for further analysis.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;The remaining statements in this function simply check to determine whether or not the authentication credentials had been accepted or rejected.&lt;span&gt;&amp;#160; &lt;/span&gt;If either the user name or password were not valid, the result returned will simply state &amp;ldquo;Must authenticate&amp;#8221;. That&amp;rsquo;s what this code checks for and displays an appropriate error and returns &amp;#8216;False&amp;#8221; as the function value.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;Now that we have a result set it is time to do something with the data.&lt;span&gt;&amp;#160; &lt;/span&gt;Remember that the data is returned in JSON format.&lt;span&gt;&amp;#160; &lt;/span&gt;The JSON format for a list of profiles looks something like this:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;[{"ID":"YcL4a5dufF6","name":"...sample: Zedesco 2009","AccountID":18079},&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;{"ID":"CxoSsHxKlF6","name":"..Sample: ExactTarget 2009","AccountID":18079},&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;{"ID":"1ZnDMawXD16","name":".sample: Z-2005","AccountID":18079},&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;{"ID":"1To2KI7wD16","name":"Sample: ET-2005","AccountID":18079}]&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;The paragraph formatting has been added to make this more readable.&lt;span&gt;&amp;#160; &lt;/span&gt;The actual result is returned as one log string.&lt;span&gt;&amp;#160; &lt;/span&gt;The entire string is bounded by square brackets &amp;ndash; [].&lt;span&gt;&amp;#160; &lt;/span&gt;Each individual set of profile data is bounded by curly brackets &amp;ndash; {}.&lt;span&gt;&amp;#160; &lt;/span&gt;Eand each of these is separated by a single comma.&lt;span&gt;&amp;#160; &lt;/span&gt;Each set of profile data has three name/value pairs.&lt;span&gt;&amp;#160; &lt;/span&gt;The names are: &amp;ldquo;ID&amp;#8221;, &amp;ldquo;name&amp;#8221;, and &amp;ldquo;AccountID&amp;#8221;.&lt;span&gt;&amp;#160; &lt;/span&gt;Not that these are all surrounded by double quotes and also separated by commas.&lt;span&gt;&amp;#160; &lt;/span&gt;So parsing this data out should not be any serious challenge.&lt;span&gt;&amp;#160; &lt;/span&gt;Using my brute force coding style I accomplish this with this set of statements:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;' Display the JSON URL Result&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' We need to parse all of the results to get what we want&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.lstProfiles.Clear&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Clear form we will display list on&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_intProfileCnt = 0&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Initialize the profile count to 0&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResulta = Mid(g_strResult, 2, Len(g_strResult) - 2)&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;' Strip the [] characters from each end&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_blnMore = True&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Do While g_blnMore&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_intSplit = InStr(1, g_strResulta, "},")&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' See if there is more than one entry&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;If g_intSplit = 0 Then&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResultb = Mid(g_strResulta, 2, Len(g_strResulta) - 2)&lt;span&gt;&amp;#160; &lt;/span&gt;' Only one entry - grab it&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Else&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResultb = Mid(g_strResulta, 2, g_intSplit - 2)&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;' Grab the first set of data&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;End If&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResultb = Replace(g_strResultb, """", "")&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Get rid of the extra " characters&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strArr = Split(g_strResultb, ",")&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Create an array with this set of data&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;ReDim Preserve g_Profiles(g_intProfileCnt)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Profiles(g_intProfileCnt).id = Mid(g_strArr(0), 4)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Save the Profile ID&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Profiles(g_intProfileCnt).name = Mid(g_strArr(1), 6)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Save the Profile Name&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_Profiles(g_intProfileCnt).accountid = Mid(g_strArr(2), 11)&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Save the Profile Account ID&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Check to see if we are done parsing&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;If g_intSplit = 0 Then&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_blnMore = False&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' We're done&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;End If&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_strResulta = Right(g_strResulta, Len(g_strResulta) - g_intSplit - 1)&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;' Set up for next profile&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;g_intProfileCnt = g_intProfileCnt + 1&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Bump the profile count&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Loop&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Sort the resulting array into sequence&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;SortProfiles&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Now load the form with the Profile Names&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;For i = LBound(g_Profiles) To UBound(g_Profiles)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;frmProfileList.lstProfiles.AddItem g_Profiles(i).name&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;' Add name for selection from form&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Next&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;If you look for this code in the application, you will find it in the &amp;ldquo;GetProfiles&amp;#8221; subroutine.&lt;span&gt;&amp;#160; &lt;/span&gt;One of the methods I used to help store the profile data was to set up a specific data type for it.&lt;span&gt;&amp;#160; &lt;/span&gt;That data type, found in the &lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;Data_Module&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; module looks like this:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;Public Type PROFILEDATA&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;name As String&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;id As String&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;accountid As String&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;End Type&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 8pt;"&gt;Public g_Profiles() As PROFILEDATA&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;"&gt;Creating this data type makes it easy to keep all of the profile data for one profile together and then be able to sort the data into &amp;ldquo;name&amp;#8221; sequence.&lt;span&gt;&amp;#160; &lt;/span&gt;When we present the profile data to the end user we use the Profile Name.&lt;span&gt;&amp;#160; &lt;/span&gt;When we use the profile data to later request a list of reports we will need the corresponding Profile ID.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;The next blog post will cover creating a REST URL to retrieve a List of Reports and what do with that result.&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Michael Love&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Senior Solutions Engineer&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:f12fc9fa-afe0-4d53-8087-afed258784f9] --&gt;</description>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">json</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">dx</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">api</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">dx_api</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">how</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">httprequest</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">webtrends_web_services</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">data_extraction</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">sample</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">excel</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">web_services</category>
      <category domain="http://developer.webtrends.com/tags?containerType=14&amp;container=2001">rest_api</category>
      <pubDate>Mon, 19 Oct 2009 19:16:23 GMT</pubDate>
      <author>michael.love@webtrends.com</author>
      <guid>http://developer.webtrends.com/community/dx/blog/2009/10/19/dissecting-the-sample-excelvba-application</guid>
      <dc:date>2009-10-19T19:16:23Z</dc:date>
      <clearspace:dateToText>1 month, 2 days ago</clearspace:dateToText>
    </item>
    <item>
      <title>Yahoo! Widget Example</title>
      <link>http://developer.webtrends.com/thread/1349</link>
      <description>&lt;!-- [DocumentBodyStart:872f79f3-1fbb-4b03-bbf4-9e4104231ec4] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Here's an example of using some of our new web services and new designs in a Yahoo! Widget.&amp;#160; This is only beta, and with limited functionality, but it should work for you (after you change the preferences to point to one of your profiles).&amp;#160; Have fun.&amp;#160; Make it better and post updates!&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:872f79f3-1fbb-4b03-bbf4-9e4104231ec4] --&gt;</description>
      <pubDate>Wed, 14 Oct 2009 10:47:11 GMT</pubDate>
      <author>webtrends@webtrends-dev.sgaur.hosted.jivesoftware.com</author>
      <guid>http://developer.webtrends.com/thread/1349</guid>
      <dc:date>2009-10-14T10:47:11Z</dc:date>
      <clearspace:dateToText>1 month, 1 week ago</clearspace:dateToText>
    </item>
  </channel>
</rss>

