iReport Ultimate Guide - Nimsoft Library

iReport Ultimate Guide - Nimsoft Library iReport Ultimate Guide - Nimsoft Library

13.07.2015 Views

iReport Ultimate GuideCode Example 11-3Example XML file, continuedPeacockMargaretTo select only the people contained in the categories (that is, all the people in the address book), use the following expression:/addressbook/category/personFour nodes will be returned. These are shown in Table 11-1.Code Example 11-4DavolioNancyFullerAndrewLeverlingPeacockMargaretIf you want to select the people appearing in the favorites node, the expression to use is/addressbook/favorites/personTwo nodes will be returned nodes.Node set with expression /addressbook/category/personHere is another expression. It is a bit more complex, but it shows all the power of the Xpath language. The idea is to select theperson nodes belonging to the work category. The expression to use is the following:/addressbook/category[@name = "work"]/personThe expression will return only one node, that with an ID equal to 4, as shown here.PeacockMargaret188

Data Sources and Query ExecutersAfter you have created an expression for the selection of a node set, you can proceed to the creation of an XML data source.Open the window for creating a new data source and select XML File data source from the list of connection types to bring upthe dialog box shown in Figure 11-18.Figure 11-18 Configuring an XML data sourceThe only mandatory information to specify is the XML file name. Optionally, you can provide a set of nodes, using a predefinedstatic XPath expression. Alternatively, the XPath expression can be set directly inside the report.I always suggest that you use a report-defined XPath expression. The advantage of this solution is the ability to use parametersinside the XPath expression, which acts like a real query on the supplied XML data. Optionally, you can specify Java patternsto convert dates and numbers from plain strings to more appropriate Java objects (like Date and Double). For the samepurpose, you can define a specific locale and time zone to use when parsing the XML stream.11.6.4 Registration of the Fields for an XML Data SourceIn the case of an XML data source, the definition of a field in the report needs a particular expression inserted as a fielddescription in addition to the type and the name. As the data source aims always to be one node of the selected node set, theexpressions are relative to the current node.To select the value of an attribute of the current node, use the following syntax:@For example, to define a field that must point to the id attribute of a person (attribute id of the node person), it is sufficient tocreate a new field, name it as you want, and set the description to@idSimilarly, it is possible to get to the child nodes of the current node. For example, if you want to refer to the lastname node,child of person, use the following syntax:lastname189

Data Sources and Query ExecutersAfter you have created an expression for the selection of a node set, you can proceed to the creation of an XML data source.Open the window for creating a new data source and select XML File data source from the list of connection types to bring upthe dialog box shown in Figure 11-18.Figure 11-18 Configuring an XML data sourceThe only mandatory information to specify is the XML file name. Optionally, you can provide a set of nodes, using a predefinedstatic XPath expression. Alternatively, the XPath expression can be set directly inside the report.I always suggest that you use a report-defined XPath expression. The advantage of this solution is the ability to use parametersinside the XPath expression, which acts like a real query on the supplied XML data. Optionally, you can specify Java patternsto convert dates and numbers from plain strings to more appropriate Java objects (like Date and Double). For the samepurpose, you can define a specific locale and time zone to use when parsing the XML stream.11.6.4 Registration of the Fields for an XML Data SourceIn the case of an XML data source, the definition of a field in the report needs a particular expression inserted as a fielddescription in addition to the type and the name. As the data source aims always to be one node of the selected node set, theexpressions are relative to the current node.To select the value of an attribute of the current node, use the following syntax:@For example, to define a field that must point to the id attribute of a person (attribute id of the node person), it is sufficient tocreate a new field, name it as you want, and set the description to@idSimilarly, it is possible to get to the child nodes of the current node. For example, if you want to refer to the lastname node,child of person, use the following syntax:lastname189

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!