E ai galera, estou desenvolvendo uma pequena aplicação em java com o propósito de gerar folhas de frequência para o órgão publico onde trabalho . Tenho uma vasta experiência em programação na linguagem PHP mas ainda estou engatinhando no mundo Java, rs. Gostaria que me ajudassem no seguinte problema com que me deparei.
Tenho um modelo de relatório que representará a frequência com os campos para serem assinados pelo funcionário, até ai tudo bem, o problema é que, dependendo do dia da semana, esses campos apareceram ou não na frequência. Explicando melhor, nas data correspondente ao dias úteis da semana aparecerão os campos para informar a hora de entrada e saída e assinatura do funcionário, e nas datas correspondentes ao final de semana aparecerão apenas os nomes SÁBADO e DOMINGO.
Estou usando o NetBeans 7 e o iReport 4.5.1, com o Java 1.7
Já pesquisei muito sobre compilação em tempo real do arquivo *.jrxml, estudei o arquivo gerado pelo iReport, identifiquei os elementos que devo inserir e seus atributos. Segue trecho de código com a alteração no arquivo jrxml e a compilação do mesmo:
File xmlFile = new File("frequencias/modelo.jrxml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(xmlFile);
Element dE = doc.getDocumentElement();
NodeList detailist = dE.getElementsByTagName("detail");
Element detail = (Element) detailist.item(0);
NodeList bandlist = detail.getElementsByTagName("band");
Element band = (Element) bandlist.item(0);
Element linha = doc.createElement("line");
Element el = doc.createElement("reportElement");
linha.appendChild(el);
band.appendChild(linha);
el.setAttribute("width", "1");
el.setAttribute("height", "20");
el.setAttribute("x", "90");
el.setAttribute("y", "19");
linha.appendChild(el);
band.appendChild(linha);
Map parameters = new HashMap();
JasperDesign jasperDesign = JRXmlLoader.load("frequencias/modelo.jrxml");
JasperReport jp = JasperCompileManager.compileReport(jasperDesign);
Porem quando executo o programa, o seguinte erro é gerado:
[color=red]Grave: Parse Error at line 2 column 438: cvc-complex-type.3.2.2: O atributo ‘uuid’ não pode aparecer no elemento ‘jasperReport’.
org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 438; cvc-complex-type.3.2.2: O atributo ‘uuid’ não pode aparecer no elemento ‘jasperReport’.[/color]
Este erro ocorre no momento da recompilação do jrxml.
Até o momento minhas pesquisas não foram suficientes para resolver o problema, então ficaria muito grato se vocês me ajudassem.
Desde já agradeço a atenção.