<reports>
Attributes:
templatePath - the relative file path to the Excel template to be used as the basis for generating data. If this is blank, no template is used.
traverseAssemblies -- if true, the data generation will traverse into assemblies generating date not only for the assembly itself but for contained subassemblies and parts (this is exhaustive and there's no way to specify how many levels down to go at this point).
generateXml -- if true, the report output will be generated as an XML document as opposed to an Excel spreadsheet.
generateCsv -- if true, the report output will be generated as a comma-separated values (CSV) document as opposed to an Excel spreadsheet.
useTabSeparator -- When used with generateCsv, the columns will be separated by tabs rather than commas.
outputDir -- full path to the directory the output will be saved in, this will be used if the directory exists and the user doesn't change the directory through the file chooser.
outputName -- save name of the file, this will be used if the user doesn't modify it in the file chooser.
promptSave -- defaults to true; if false, no dialogs are displayed after selecting the report to generate. outputDir must be specified if this is set to false. Since the file chooser usually handles overwriting but is now suppressed, files sharing names will be saved as duplicates (foo(1).xls, foo(2).xls, etc.). WARNING: as part of suppressing the "Would you like to view the report?" dialog, error dialogs are also suppressed, so the user needs to be aware of any reports that don't generate.
fileExtension -- specify .xls, .xlsx, or .xlsm for Excel reports, this will be forced. templatePath extensions will always take precedence over this property.
appendDateToOutput -- if true, concatenate a date timestamp onto the end of the file before the extension.
dateFormat -- customize formatting for the date timestamp, such as "yyyy-MM-dd_hh-mm-ss"
Notes about generateCsv: If both generateXml and generateCsv are set to true, XML takes precedence.
If you set the generateCsv to true, a .csv file will be generated for each <CostModelWatchPoints> element. The name of the file will have the sheetName appended to the name that you give to the file in the UI. The contents of the summary tab will end up in a file that just contains the root filename.
For example, if you select "myPartCostTracking.csv" as the filename, then myPartCostTracking.csv will contain the summary tab, while myPartCostTracking_sheetName.csv will contain the data that would have gone into sheetName had this been Excel output.
Both CSV and XML output is streamed to disk so unlike Excel does not build any in-memory structures before writing the data to disk.