Hi Thanks for your response - works a dream :)
thanks again Kaz On Jun 13, 9:15 am, Sylvain Cuaz <[email protected]> wrote: > Le 07/06/2011 21:14, Kaz a �crit : > > > > > Hi > > > I am a newbie to JOpenDocument and have a scenario where I need to use > > nested lists. > > I can create table rows using a list - this is fine as per the months > > example. > > > My problem is that one of the fields in the above loop needs to be a > > (sub)list - so nested loops > > > row1field1 row1field2 > > row1field3a > > row1field3b > > row1field3c > > --------------------------------------------------------- > > row2field1 row2field2 > > row2field3a > > row2field3b > > row2field3c > > --------------------------------------------------------- > > and so on > > > Firstly is this possible? > > and if so can someone please advise me on how this can be done? > > Sure, you just a have to a bullet point list inside a row with a > "foreach". I've attached a simple > example. > > HTH > Sylvain > > import java.io.File; > import java.util.ArrayList; > import java.util.Arrays; > import java.util.HashMap; > import java.util.List; > import java.util.Map; > > import org.jopendocument.dom.OOUtils; > import org.jopendocument.dom.template.EngineTemplate; > import org.jopendocument.dom.template.RhinoTemplate; > > public class NestedTemplate { > > public static void main(String[] args) { > try { > File templateFile = new File("template/nested.odt"); > // Load the template. > EngineTemplate template = new RhinoTemplate(templateFile); > > // Fill with sample values. > final List<Map<String, Object>> months = new > ArrayList<Map<String, Object>>(); > months.add(createMap("January", "31", "3")); > months.add(createMap("February", "29", "5", "7", "9")); > months.add(createMap("March", "31", "12", "14")); > template.setField("months", months); > > // Save and Open the document with OpenOffice.org ! > OOUtils.open(template.saveAs(new File("out.odt"))); > } catch (Exception e) { > e.printStackTrace(); > } > } > > private static Map<String, Object> createMap(String n, String field2, > String... field3) { > final Map<String, Object> res = new HashMap<String, Object>(); > res.put("name", n); > res.put("field2", field2); > res.put("field3", Arrays.asList(field3)); > return res; > } > > } > > > > nested.odt > 12KViewDownload
