Windward Engine API Reference
net.windward.api.csharp Namespace
See Also  Inheritance Hierarchy Send comments on this topic.

Glossary Item Box

This is a wrapper around the WindwardReports assembly. It's primary purpose is to provide a CLS compliant API to Windward Reports that provides the API in a manner that is consistent with the .NET world.

Classes

 ClassDescription
ClassAdoDataSourceImpl This supplies a data source to Windward Reports using ADO.NET. The DataSourceProvider class is built on the concept of xml nodes. For this class, a node is a DbDataReader returned by a ADO call to DbCommand.ExecuteReader().
An xml file always has the concept of the current node. This is not the case with a sql database - there is no current DbDataReader. A DbDataReader is only generated by the wr:query and the wr:foreach tags. Therefore, all other tags only make sense if they use the var attribute from a query or foreach to identify the DbDataReader they are to be applied to. A tag not identifying a DbDataReader will throw an exception.
A query or foreach tag can reference a var from another query or foreach tag using ${var.item}.. An XPath query can describe a node as well as an element. In this class a query defines a DbDataReader and is only an element.
Also, with xml you can use xpath in each tag performing complex logic in determining what text to return. It is very different for sql. The foreach or query can have complex logic. But the other tags can only return an element from a result set that the foreach/query earlier returned or do a single select.
When using a var (<wr:forEach var="result"/>) that identifies a result set, you can use the following in a tag:
  • ${result[1]} - is column element [1] in the row presently on (1-based)
  • ${result[2][1]} - is column element [1] in the row + 2 presently on (0-based)
  • ${result.NAME} - is the column element named NAME in the row presently on
  • ${result[2].NAME} - is the column element named NAME in the row + 2 presently on
  • ${result.columnNames[1]} - is the name of column 1 (1-based)
The use of result[N] where N is a row number is limited to values of 0...N where N is step-1. result[1] is treated as column 1 of the row presently on, it is only result[0][1] and result[0].NAME that can hit rows other than the row presently on. This functionality requires a result set that can move to previous as well as next. If the ADO driver you use cannot handle a call to previous, you cannot use this functionality.
An <if select= ... > will return true if the passed in select returns a DbDataReader with one or more rows. An <if select="select count (*) from customers" notEmpty="true"> will perform two steps. The first step is it will return false if there are no results returned. If results are returned it assumes the select is a count and will do a return DbDataReader.getInt(1) > 0;. This does not look at the select statement, it is the notEmpty="true" that puts it in this mode.
ClassDataSetImpl  
ClassDataSourceImplBase Base class for all the datasource implementations.
ClassHtmlBitmap Holds the contents of a bitmap in a html report. Depending on how the images were created this may have the bitmap data. It always has the bitmap filename.
ClassImportMetrics Imported document(s) pulled in from a template.
ClassJsonDataSourceImpl  
ClassODataDataSourceImpl Implements the interface to accessing an OData datasource.
ClassPodUpdate Wrapper for the J# UdtUpdate class.
ClassReport This class is the base class that takes a template stream and 0...N DataSoureces (xml and/or ado) and merges them to create a report stream. The way to use this is to construct an object that extends this class, set any options, then call the process methods.
ClassReport.BatchReport The result of running a batch report.
ClassReport.CleanDatasource Pass in the datasources to clean.
ClassReport.DrillDownInfo This is not part of the public interface. This provides the properties for the drilldown tag.
ClassReportCsv This class is the main program that takes a template stream and a datasource and merges them to create a CSV report stream. This output format only reads tables in the template. All other parts of the template are ignored. The way to use this is to construct a ReportCsv object, set any options, then call process. The calling method must close all streams after calling process. process will flush the output (report) stream before returning.
ClassReportDocx This class is the main program that takes a template stream and a datasource and merges them to create a DOCX report stream. The way to use this is to construct a ReportDocx object, set any options, then call process. The calling method must close all streams after calling process. process will flush the output (report) stream before returning.
ClassReportHtml This class is the main program that takes a template stream and a datasource and merges them to create a html report stream. The way to use this is to construct a ReportHtml object, set any options, then call process. The calling method must close all streams after calling process. process will flush the output (report) stream before returning.
ClassReportImage This class is the main program that takes a template stream and a datasource and merges them to create a Image report stream. The way to use this is to construct a ReportImage object, set any options, then call process. The calling method must close all streams after calling process. process will flush the output (report) stream before returning.
ClassReportOpenXml This is a base class for all of the OpenXML template types.
ClassReportPdf This class is the main program that takes a template stream and a datasource and merges them to create a pdf report stream. The way to use this is to construct a ReportPdf object, set any options, then call process. The calling method must close all streams after calling process. process will flush the output (report) stream before returning. If you wish to sign a pdf file using a Verisign certificate, please go to http://itextpdf.sourceforge.net/howtosign.html
ClassReportPostScript This class is the main program that takes a template stream and a datasource and merges them to create a PostScript report stream. The way to use this is to construct a ReportPostScript object, set any options, then call process. The calling method must close all streams after calling process. process will flush the output (report) stream before returning.
ClassReportPptx This class is the main program that takes a word, excel, or powerpoint template stream and a datasource and merges them to create a PPTX report stream. The way to use this is to construct a ReportPptx object, set any options, then call process. The calling method must close all streams after calling process. process will flush the output (report) stream before returning.
ClassReportPrinter Process object for a printer report. Contains properties for controlling the process and configuring various settings.
ClassReportRtf This class is the main program that takes a template stream and a datasource and merges them to create a rtf report stream. The way to use this is to construct a ReportRtf object, set any options, then call process. The calling method must close all streams after calling process. process will flush the output (report) stream before returning.
ClassReportText This class is the main program that takes a template stream and a datasource and merges them to create a text report stream. The way to use this is to construct a ReportText object, set any options, then call process. The calling method must close all streams after calling process. process will flush the output (report) stream before returning.
ClassReportXlsx This class is the main program that takes a template stream and a datasource and merges them to create a XLSX report stream. The way to use this is to construct a ReportXlsx object, set any options, then call process. The calling method must close all streams after calling process. process will flush the output (report) stream before returning.
ClassSaxonDataSourceImpl  
ClassSFDataSourceImpl Implements the interface to accessing an SFData datasource.
ClassTemplateMetrics Information about a template.
ClassTemplateMetrics.DataSourceProfile  
ClassTemplateMetrics.DataSourceProfile.DataSetProfile  
ClassTemplateVariable A var in a template that must be defined before running it.
ClassTemplateVariableValue A value in the TemplateVar. Used for default and allowed values. Also used for the value of a parameter.
ClassXmlDataSourceImpl This supplies a data source to Windward Reports using XPathDatasource.
To reference a data element from a <wr:forEach ... var="item" > or <wr:query ... var="item" > tag inside another tag, use the following construct: '${item}/xpath' where xpath is an xpath reference from the node defined by item and the reference will return a single element.
When inside a forEach where step='N' where N > 1, you can also use ${item[1]}/xpath ... ${item[N-1]}/xpath to reference data for the N rows in each step. ${item[0]}/xpath is legal but redundent. You can also use <wr:if test='$item[1]}'> which will return true if the row[1] exists. Keep in mind that [1], [2], ... is not an absolute count but an offset from the base row presently on in the loop. And you cannot index past the set of rows that are the row presently on and the rows that will be skipped by step.

Enumerations

 EnumerationDescription
EnumerationHtmlBitmap.FORMAT The format of the bitmap.
EnumerationImportMetrics.IMPORT_TYPE The import type. These numbers match ImportInfo.java!
EnumerationJsonDataSourceImpl.MODE To define what the string passed in to the constructor is.
EnumerationReport.CHARSET The charset used in the output where a charset is required.
EnumerationReport.CleanDatasource.DATASOURCE_TYPE What type the datasource is. The int values must match ProcessReport.CleanDatasource.TYPE_*.
EnumerationReport.COPY_METADATA Get/set if the Windward metadata will be copied to the generated report. These values match the const ints in the java engine.
EnumerationReport.DATA_MODE The settings for the DataMode. 0 means none. These map to ProcessReportApi.DATA_MODE_* so keep the values matched.
EnumerationReport.ERROR_HANDLING The settings for the TrackErrors property. These map to ProcessReportApi.ERROR_HANDLING_ values.
EnumerationReport.HYPHENATION Get/set if hyphenation is on in the engine. These values match the const ints in the java engine.
EnumerationReport.RENDER_EXTENT The values for the property RenderExtent. Explicit values must match ProcessReportAPI.RENDER_EXTENT_*.
EnumerationReport.REPORT_TYPE The format of the final report output.
EnumerationReport.TAG_STYLE How unprocessed tags are written out. These match ProcessReport.TAG_STYLE_*
EnumerationReport.TEMPLATE_TYPE Set the type of the template. If this is not set it will be auto-determined by reading the template file. These match ProcessReport.TEMPLATE_TYPE_*
EnumerationReportHtml.BROWSER Specifies the browser to build the html for.
EnumerationReportHtml.CSS Specifies how the css information is attached to the html file.
EnumerationReportImage.FORMAT Specify the file format for generated report.
EnumerationReportPdf.ALLOW The PDF file permissions. The default is to allow everything.
EnumerationReportPdf.COMP How to compress the pdf file. The default is FAST.
EnumerationReportPdf.FONT Set how fonts are to be used in the pdf file. The defaule it EMBED.
EnumerationTemplateVariable.CAL_OFFSET What offset from the date run to set the calendar value to. These have set integer values that are identical in ScheduleVarItem and in .aspx pages - do not change them.
EnumerationTemplateVariable.VAR_TYPE What type of variable this data is
EnumerationTemplateVariableValue.VALUE_REFERENCE What the value is referencing.

See Also

© 2019 All Rights Reserved.