Jump to content
We've recently updated our Privacy Statement, available here ×

asanga

Members
  • Posts

    8
  • Joined

  • Last visited

asanga's Achievements

Rookie

Rookie (2/14)

  • First Post Rare
  • Conversation Starter Rare
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

0

Reputation

  1. well what I did was totally based on jasper parameters, print when condition of the bands and JSP sessions, and this may be a lengthy and complex way to implement this functionality but I couldn't find any other way and little hard to explain :(. well I've included an label("+") and it is a HTML link to the .JSP page which exports the .jasper file and display it in HTML format (which means that this link refers to the .JSP files which export the .jasper file of the current .jrxml file being designed) AccountName (group1) ProjectName (group 2) + LanguageName (group3) -----(hidden raw(s))---------- + LanguageName (group3) -----(hidden raw(s))---------- ProjectName (group 2) + LanguageName (group3) -----(hidden raw(s))---------- - LanguageName (group3) --C#------- --Java----- --PHP------ Above shown is the format of my report in brief. By default the row(s) which should come under the Language Name are being hidden they will be visible only when the (+) sign is clicked. Print when condition has been applied to the hidden set of band in my case it is the details band. print when condition of the details band has to determine which + sign user has clicked as there are many records in the report So it does this by the group values which are unique (im my case it uses languageName and projectname together which are being sent via the HTML link (+) to JSP page which exports the report) Print when condition new Boolean (!$F{latest_matrices3_ProjectName}.equals( "-" ) && $P{param_set}.indexOf($F{latest_matrices3_ProjectName}+" "+$F{latest_matrices3_LanguageName}.toString()+" "+"n")>-1) HyperLink Reference being sent when (+) clicked "report_new_test.jsp?proj_name="+$F{latest_matrices3_ProjectName}+"&lang_name="+URLEncoder.encode($F{latest_matrices3_LanguageName},"UTF-8") at the JSP file it keeps these set of variables in a session created previously in a JSP page which directs user to this perticular JSP which hosts the Jasper report. This is what happens in the JSP file <% Map parameters = new HashMap(); //recive the query string parameters being sent //projectName, LanguageName, and parameter set String prj=request.getParameter("proj_name"); String lng=request.getParameter("lang_name"); String param_set=(String)session.getAttribute("param_set"); //Name of the Jasper report to be filled and exported String filename = "ERA_5.jasper"; String reporttype ="html"; //get the Database connection created in the test.jsp via the session Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn =(Connection)session.getAttribute("con"); System.out.println("Connection Established"); //Path which consist of the jasper reports String path = application.getRealPath("/jaspers"); //processing the param_set which keep the status of each project and language pare related to a perticular Account int start=-1; start=param_set.indexOf(prj+" "+lng); //if currently selected projects language has not been selected within this session before add it to the param_set //ProjectName, Language_Name, expantion status(y/n) is being added if(start<0) { param_set=param_set+" "+prj+" "+lng+" "+"n"+" "; parameters.put("tree",new Boolean("true")); } //if currently selected project language pare exist already in the param_set variable (which implies that they have //been selected before) there expantion status will be checked and alterd to the opposite value from thw current value //tree parameter is being set as it is used in the printwhen condition of +/- labels in the report else { String subVal=param_set.substring(start,start+(prj+" "+lng+" ").length()+1); String subarr[]=subVal.split(" "); if(subarr[2].equals("y")) { param_set=param_set.replaceAll(prj+" "+lng+" "+"y",prj+" "+lng+" "+"n"); parameters.put("tree",new Boolean("true")); } else { param_set=param_set.replaceAll(prj+" "+lng+" "+"n",prj+" "+lng+" "+"y"); parameters.put("tree",new Boolean("false")); } } //add the parameter values to report parameters.put("tree_proj_name",prj); parameters.put("tree_lang_name",lng); parameters.put("param_set",param_set); //report is being filled JasperPrint jasperPrint = JasperFillManager.fillReport(path+"/"+filename,parameters, conn); System.out.println("Report Created..."); //OutputStream ouputStream = response.getOutputStream(); //set the values included in the param_set variable to a session which preserves the status to next page on next click session.setAttribute("param_set",param_set); JRExporter exporter = null; OutputStream ouputStream = response.getOutputStream(); //set the reports export parameters if( "html".equalsIgnoreCase(reporttype) ) { exporter = new JRHtmlExporter(); request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint); PrintWriter printWriter = new PrintWriter(response.getOutputStream()); exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream); exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"image?image="); } try { exporter.exportReport(); } catch (JRException e) { throw new ServletException(e); } %> forgive me this may confuse you but I have no way of explaining this much more simpler:( :( :(
  2. well what I did was totally based on jasper parameters, print when condition of the bands and JSP sessions, and this may be a lengthy and complex way to implement this functionality but I couldn't find any other way and little hard to explain :(. well I've included an label("+") and it is a HTML link to the .JSP page which exports the .jasper file and display it in HTML format (which means that this link refers to the .JSP files which export the .jasper file of the current .jrxml file being designed) AccountName (group1) ProjectName (group 2) + LanguageName (group3) -----(hidden raw(s))---------- + LanguageName (group3) -----(hidden raw(s))---------- ProjectName (group 2) + LanguageName (group3) -----(hidden raw(s))---------- - LanguageName (group3) --C#------- --Java----- --PHP------ Above shown is the format of my report in brief. By default the row(s) which should come under the Language Name are being hidden they will be visible only when the (+) sign is clicked. Print when condition has been applied to the hidden set of band in my case it is the details band. print when condition of the details band has to determine which + sign user has clicked as there are many records in the report So it does this by the group values which are unique (im my case it uses languageName and projectname together which are being sent via the HTML link (+) to JSP page which exports the report) Print when condition new Boolean (!$F{latest_matrices3_ProjectName}.equals( "-" ) && $P{param_set}.indexOf($F{latest_matrices3_ProjectName}+" "+$F{latest_matrices3_LanguageName}.toString()+" "+"n")>-1) HyperLink Reference being sent when (+) clicked "report_new_test.jsp?proj_name="+$F{latest_matrices3_ProjectName}+"&lang_name="+URLEncoder.encode($F{latest_matrices3_LanguageName},"UTF-8") at the JSP file it keeps these set of variables in a session created previously in a JSP page which directs user to this perticular JSP which hosts the Jasper report. This is what happens in the JSP file <% Map parameters = new HashMap(); //recive the query string parameters being sent //projectName, LanguageName, and parameter set String prj=request.getParameter("proj_name"); String lng=request.getParameter("lang_name"); String param_set=(String)session.getAttribute("param_set"); //Name of the Jasper report to be filled and exported String filename = "ERA_5.jasper"; String reporttype ="html"; //get the Database connection created in the test.jsp via the session Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn =(Connection)session.getAttribute("con"); System.out.println("Connection Established"); //Path which consist of the jasper reports String path = application.getRealPath("/jaspers"); //processing the param_set which keep the status of each project and language pare related to a perticular Account int start=-1; start=param_set.indexOf(prj+" "+lng); //if currently selected projects language has not been selected within this session before add it to the param_set //ProjectName, Language_Name, expantion status(y/n) is being added if(start<0) { param_set=param_set+" "+prj+" "+lng+" "+"n"+" "; parameters.put("tree",new Boolean("true")); } //if currently selected project language pare exist already in the param_set variable (which implies that they have //been selected before) there expantion status will be checked and alterd to the opposite value from thw current value //tree parameter is being set as it is used in the printwhen condition of +/- labels in the report else { String subVal=param_set.substring(start,start+(prj+" "+lng+" ").length()+1); String subarr[]=subVal.split(" "); if(subarr[2].equals("y")) { param_set=param_set.replaceAll(prj+" "+lng+" "+"y",prj+" "+lng+" "+"n"); parameters.put("tree",new Boolean("true")); } else { param_set=param_set.replaceAll(prj+" "+lng+" "+"n",prj+" "+lng+" "+"y"); parameters.put("tree",new Boolean("false")); } } //add the parameter values to report parameters.put("tree_proj_name",prj); parameters.put("tree_lang_name",lng); parameters.put("param_set",param_set); //report is being filled JasperPrint jasperPrint = JasperFillManager.fillReport(path+"/"+filename,parameters, conn); System.out.println("Report Created..."); //OutputStream ouputStream = response.getOutputStream(); //set the values included in the param_set variable to a session which preserves the status to next page on next click session.setAttribute("param_set",param_set); JRExporter exporter = null; OutputStream ouputStream = response.getOutputStream(); //set the reports export parameters if( "html".equalsIgnoreCase(reporttype) ) { exporter = new JRHtmlExporter(); request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint); PrintWriter printWriter = new PrintWriter(response.getOutputStream()); exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream); exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"image?image="); } try { exporter.exportReport(); } catch (JRException e) { throw new ServletException(e); } %> forgive me this may confuse you but I have no way of explaining this much more simpler:( :( :(
  3. Found my own solution B) Any way thanks for keeping my post in your forum ;)
  4. Found my own way of doing this B) Any way thanks for keeping my post in your forum ;) Post edited by: asanga, at: 2007/11/27 10:32
  5. Hi did you guys find any answer, please let me know
  6. Hi did you guys find any answer, please let me know
  7. asanga

    Tree View

    Please... anybody who knows how to implement the tree view in jasper reports
  8. Hi, I'm looking for a way to add the expand / collapse functionality to my jasper reports which shows and hides the contents of set of rows when a particular image /button clicked (eg:- when "+" image is clicked it shows all the records hidden beneath it) SugarCRM sample report in jasper server 2.0.1 implements such a feature, but it doesn't explain how to implement such a report. So please tell me how to implement this feature in jasper reports. Post edited by: asanga, at: 2007/10/18 11:42 Post edited by: asanga, at: 2007/11/12 03:21
×
×
  • Create New...