الانتقال إلى المحتوى

Call Jasper Report From Adf


mohd_sayed_mohd

Recommended Posts

السلام عليكم ورحمة الله وبركاته
هل يمكن عمل مثال بسيط لاستدعاء تقرير Jasper Report باستخدام ADF مع تمرير Parameter
وجزاكم الله خيرا

رابط هذا التعليق
شارك

اكتب الكود التالي مع تبديل النص الأحمر بما يتناسب مع الكود الذي تكتبه

Map parameters = new HashMap();
parameters.put("param name", "param value");

ExternalContext ectx = FacesContext.getCurrentInstance().getExternalContext();
HttpServletResponse response = (HttpServletResponse) ectx.getResponse();
ServletOutputStream out = response.getOutputStream();
response.setHeader("Cache-Control", "max-age=0");
response.setContentType("application/pdf");
ServletContext context = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
InputStream input = context.getResourceAsStream("repPath");
JasperDesign design = JRXmlLoader.load(input);
JasperReport report = JasperCompileManager.compileReport(design);
report.setWhenNoDataType(report.WHEN_NO_DATA_TYPE_ALL_SECTIONS_NO_DETAIL);
Connection conn = getConnection();
JasperPrint print = JasperFillManager.fillReport(report, param, conn);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
JasperExportManager.exportReportToPdfStream(print, byteArrayOutputStream);
out.write(byteArrayOutputStream.toByteArray());
out.flush();
out.close();
FacesContext.getCurrentInstance().responseComplete();

رابط هذا التعليق
شارك


اكتب الكود التالي مع تبديل النص الأحمر بما يتناسب مع الكود الذي تكتبه

Map parameters = new HashMap();
parameters.put("param name", "param value");

ExternalContext ectx = FacesContext.getCurrentInstance().getExternalContext();
HttpServletResponse response = (HttpServletResponse) ectx.getResponse();
ServletOutputStream out = response.getOutputStream();
response.setHeader("Cache-Control", "max-age=0");
response.setContentType("application/pdf");
ServletContext context = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
InputStream input = context.getResourceAsStream("repPath");
JasperDesign design = JRXmlLoader.load(input);
JasperReport report = JasperCompileManager.compileReport(design);
report.setWhenNoDataType(report.WHEN_NO_DATA_TYPE_ALL_SECTIONS_NO_DETAIL);
Connection conn = getConnection();
JasperPrint print = JasperFillManager.fillReport(report, param, conn);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
JasperExportManager.exportReportToPdfStream(print, byteArrayOutputStream);
out.write(byteArrayOutputStream.toByteArray());
out.flush();
out.close();
FacesContext.getCurrentInstance().responseComplete();


السلام عليكم ورحمة الله وبركاته
أولا جزاكم الله خيرا على سركة ردك
ثانيا قمت باضافة أمر لطباعة تقرير مثال وقبل أن أستبدل ما هو مكتوب باللون الأحمر ظهر لي أخطاء في الترجمة ربما يكون مطلوب عمل
import أو أي شئ قبل كتابة هذا الكود
وهذه هي الأسطر التي ظهر فيها أخطاء ترجمة

Map parameters = new HashMap();
parameters.put("param name", "param value");

JasperDesign design = JRXmlLoader.load(input);
JasperReport report = JasperCompileManager.compileReport(design);
report.setWhenNoDataType(report.WHEN_NO_DATA_TYPE_ALL_SECTIONS_NO_DETAIL);
Connection conn = getConnection();
JasperPrint print = JasperFillManager.fillReport(report, param, conn);
JasperExportManager.exportReportToPdfStream(print, byteArrayOutputStream);
رابط هذا التعليق
شارك

السلام عليكم
بعد محاولات كثيرة للتخلص من أخطاء الترجمة فقط حتى أبدأ في التجربة تم اختصار الأخطاء في السطرين

Map parameters = new HashMap();

JasperPrint print = JasperFillManager.fillReport(report, parameters, conn);

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته
عملت Import للعديد من مكتبات ال Jasper وكتبت الكود التالي

public String call_jasper_report1_action() throws IOException, JRException, NamingException, SQLException,
ClassNotFoundException {
//Map parameters = new Map();
//Map parameters = new HashMap();
//parameters.put("param name", "param value");
ExternalContext ectx = FacesContext.getCurrentInstance().getExternalContext();
HttpServletResponse response = (HttpServletResponse) ectx.getResponse();
ServletOutputStream out = response.getOutputStream();
response.setHeader("Cache-Control", "max-age=0");
response.setContentType("application/pdf");
ServletContext context = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
InputStream input = context.getResourceAsStream("C:/myireport/report1.jrxml");
JasperDesign design = JRXmlLoader.load(input);
JasperReport report = JasperCompileManager.compileReport(design);
report.setWhenNoDataType(report.WHEN_NO_DATA_TYPE_ALL_SECTIONS_NO_DETAIL);

InitialContext initialContext = new InitialContext();
//DataSource ds = (DataSource)initialContext.lookup("acc_conn"); // get from your application module configuration
DataSource ds = (DataSource)initialContext.lookup("java:comp/env/jdbc/myaccounts"); // get from your application module configuration
//DataSource ds = (DataSource)initialContext.lookup("java:comp/env/jdbc/acc_conn"); // get from your application module configuration
Connection conn = (Connection)ds.getConnection();
//Connection conn = getConnection2();

// Connection conn = getConnection();
//JasperPrint print = JasperFillManager.fillReport(report, parameters, conn);

JasperPrint print = JasperFillManager.fillReport(report, null, conn);

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
JasperExportManager.exportReportToPdfStream(print, byteArrayOutputStream);
out.write(byteArrayOutputStream.toByteArray());
out.flush();
out.close();
FacesContext.getCurrentInstance().responseComplete();

return null;
}
لكن بالنسبة لل Parameters عملت لها ايقاف علشان السطر التالي فيه Error
Map parameters = new HashMap();

وعند التشغيل يظهر الخطأ التالي
<pre>javax.faces.el.EvaluationException: net.sf.jasperreports.engine.JRException: org.xml.sax.SAXParseException: : XML-20220: (خطأ فادح) InputSource غير صالح. at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:51) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:787) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1252) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:965) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:346) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:204) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:121) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468) at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199) at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111) at java.security.AccessController.doPrivileged(Native Method) at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313) at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413) at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94) at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161) at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)Caused by: net.sf.jasperreports.engine.JRException: org.xml.sax.SAXParseException: : XML-20220: (خطأ فادح) InputSource غير صالح. at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:247) at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:230) at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:218) at acc3.view.backing.Frmmain_menu1.call_jasper_report1_action(Frmmain_menu1.java:435) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.el.parser.AstValue.invoke(Unknown Source) at com.sun.el.MethodExpressionImpl.invoke(Unknown Source) at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:46) ... 44 moreCaused by: org.xml.sax.SAXParseException: : XML-20220: (خطأ فادح) InputSource غير صالح. at oracle.xml.parser.v2.XMLError.flushErrorHandler(XMLError.java:422) at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:287) at oracle.xml.parser.v2.XMLReader.pushXMLReader(XMLReader.java:266) at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:222) at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:173) at org.apache.commons.digester.Digester.parse(Digester.java:1745) at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:243) ... 54 more</pre>
</

وبصراحة مش عارف إيه السبب

رابط هذا التعليق
شارك

الخطأ هنا
InputStream input = context.getResourceAsStream("C:/myireport/report1.jrxml");
يجب أن يكون التقرير موجود تحت public_html ويتم كتابة المسار نسبة إلى public_html. أي أنه إذا وضعت الملف report1.jrxml في public_html فاكتب
InputStream input = context.getResourceAsStream("/report1.jrxml");

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته
جزاكم الله خيرا
الحمد لله تم تشغيل التقرير ولكن باقي خطأ بسيط وهو عند كتابة السطر التالي
Map parameters = new HashMap();
يظهر خطأ به وعند اختيار المساعدة التي يكون مكتوب فيها Cast to java.util.Map يتحول السطر إلى

Map parameters = (Map)new HashMap();

ولا يوجد به خطأ في الترجمة ولكن عند تشغيل التقرير يظهر الخطأ التالي
<pre>javax.faces.el.EvaluationException: java.lang.ClassCastException: com.oracle.vmm.client.provider.ovm22.ws.sps.HashMap cannot be cast to java.util.Map</pre>

رابط هذا التعليق
شارك

السلام عليكم
لكن في حالة إضافة السطر التالي

report.setWhenNoDataType(report.WHEN_NO_DATA_TYPE_ALL_SECTIONS_NO_DETAIL);

يظهر الخطأ التالي
<pre>javax.faces.el.EvaluationException: java.lang.NoSuchMethodError: net.sf.jasperreports.engine.JasperReport.setWhenNoDataType(B)V at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:51)</pre>

رابط هذا التعليق
شارك

  • بعد 3 أسابيع...
  • بعد 3 شهور...

السلام عليكم ورحمة الله وبركاته

الاخوة الاعزاء يظهر مع هذا ال error
فما الحل
Error 500--Internal Server Error


javax.faces.el.EvaluationException: javax.naming.NameNotFoundException: While trying to look up comp/env/jdbc/HrDS in /app/webapp/HrApplication4-ViewController-context-root/6278983.; remaining name 'comp/env/jdbc/HrDS'
at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:51)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:787)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1252)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:965)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:346)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:204)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:121)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused by: javax.naming.NameNotFoundException: While trying to look up comp/env/jdbc/HrDS in /app/webapp/HrApplication4-ViewController-context-root/6278983.; remaining name 'comp/env/jdbc/HrDS'
at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)
at weblogic.jndi.internal.ApplicationNamingNode.lookup(ApplicationNamingNode.java:144)
at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:411)
at weblogic.jndi.factories.java.ReadOnlyContextWrapper.lookup(ReadOnlyContextWrapper.java:45)
at weblogic.jndi.internal.AbstractURLContext.lookup(AbstractURLContext.java:130)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at hr.view.country.callJasperReport1(country.java:248)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.el.parser.AstValue.invoke(Unknown Source)
at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:46)
... 44 more

رابط هذا التعليق
شارك

  • بعد 6 سنة...
  • بعد 2 أسابيع...

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية