الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Call Jasper Report From Adf

Featured Replies

بتاريخ:

السلام عليكم ورحمة الله وبركاته
هل يمكن عمل مثال بسيط لاستدعاء تقرير 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);
بتاريخ:
  • كاتب الموضوع

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

post-1622-0-05723600-1313978555_thumb.jpg

بتاريخ:
  • كاتب الموضوع

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

Map parameters = new HashMap();

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

بتاريخ:

لا بد من إضافة مكتبات Jasper وعمل import مثله مثل أي كود جافا عادي

بتاريخ:
  • كاتب الموضوع

السلام عليكم ورحمة الله وبركاته
عملت 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>

بتاريخ:
  • كاتب الموضوع

السلام عليكم
الخطأ الأخير تم حله والحمد لله بعد عمل Import

import java.util.HashMap;

بتاريخ:
  • كاتب الموضوع

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

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>

بتاريخ:

هذا السطر يعتمد على رقم إصدار مكتبة Jasper التي تستخدمها وهو عموماً غير مؤثر في تشغيل التقرير ويمكنك حذفه

بتاريخ:
  • كاتب الموضوع

جزاكم الله خيرا

بتاريخ:

السلام عليكم
نرجوا من الأخ mohd_sayed_mohd
عمل مثال لكيفية إستدعاء التقرير Jasper من ADF
وياريت يكون بالصور
جزاك الله خيراً
وكل عام وأنتم بخير

  • بعد 3 أسابيع...
بتاريخ:

السلام عليكم
ياليت مثال بالصور على ربط التقرير مع ADF
مع التحيه

  • بعد 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 سنة...
بتاريخ:

السلام عليكم 

استاذ 

samirtarek

هل تم حل المشكلة برجاء الشرح حيث انها نفس مشكلتى 

  • بعد 2 أسابيع...
بتاريخ:

اطلع على فيديوهات جاسبر على قناتنا

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

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

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

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

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

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.