• 0
مايكل دريس

مشكلة عدم ظهور التقرير بالكريستال ريبورت بعد رفع الموقع

سؤال

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

بعد تصميم مشروع قم بعمل اخر خطوة وهى اعداد التقارير وقمت بتصميم بعض التقارير واشتغلت تمام على جهازى الشخصى اما بعد رفع الموقع طلب منى لعرض التقرير ادخال بيانات للسيرفر

رقم الاى بى

اسم قاعدة البيانات

اسم المستخدم

كلمة المرور

انا رفعت هذة الصفحة فى الموفقات

الكود المستخدم لذلك


using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;


ReportDocument rpt = new ReportDocument();

    public void GetShoeReport(string t, string SQL, string n_file)
{
rpt.Load(Server.MapPath(n_file));
SqlConnection Conn = new SqlConnection(db());
Conn.Open();
SqlDataAdapter ad = new SqlDataAdapter(SQL, Conn);
DataSet da = new DataSet();
ad.Fill(da, t);
rpt.SetDataSource(da);
rpt.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.DefaultPaperOrientation;
CrystalReportViewer1.ReportSource = rpt;
Conn.Close();
ad.Dispose();
da.Dispose();
}


GetShoeReport("Tab_Emp", "Select * From Tab_Emp Where ID_Emp =521", @"rpt\testreport.rpt");


اتمنى اجد الحل بسرعة

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

post-60610-004074400 1320798318_thumb.jp

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

14 إجابة على هذا السؤال .

  • 0

اية ياجماعة هو السؤال معداش على حد قبل كدة ولا اية

اية المشكلة

اتمنى اجد الحل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

اخي حاول اولا ان تقوم بعمل مستخدم في قاعدة بياناتك في جهازك المحلي, ومن ثم شوف النتيجة وان شاء الله سوف تضبط .. ما عليك بعدها الا تغيير اسم الخادم والمستخدم وكلمة المرور وقاعدة البيانات

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

اولا مشكور على الرد

ثانيا

قاعدة البيانات على السيرفر وهو عبارة عن سيرفر موجود لدى انا لم ارفع الموقع على النت واستخدم ويندوز سيرفر 2003 وقاعدة بيانات سكوال سيرفر 2000 ومع اعدادات ال IIS فى الوندوز وبط الاى بى اللوكال بالاى بى الاستاتك من خلال الراوتر فالموقع شغال تمام بدون مشكلة على شبكة الانترنت

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

لعلمك هذة الرسالة كانت جتلى فى الويندوز ابليكاتشن واتحلت بكتابة بيانات السيرفر

اما فى الويب ابليكاتشن لم اتمكن من الحصول على حل الى الان

فاتمنى اجد حل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ..

Did you google it?

هل قمت بإضافة DataSet من الــ Server Explorer عن طرق سحب أحد الجداول..؟؟

المشكلة مطروحة هنا

و هنا رابط آخر ..

مبدئيا استخدم الكود .. ريثما تحل المشكلة ..


<CR:CrystalReportViewer Height="500px" ID="Viewer" runat="server" />

var connectionInfo = new ConnectionInfo();
connectionInfo.ServerName = "192.168.x.xxx";
connectionInfo.DatabaseName = "xxxx";
connectionInfo.Password = "xxxx";
connectionInfo.UserID = "xxxx";
connectionInfo.Type = ConnectionInfoType.SQL;
connectionInfo.IntegratedSecurity = false;

for (int i = 0; i < Viewer.LogOnInfo.Count; i++)
{
Viewer.LogOnInfo[i].ConnectionInfo = connectionInfo;
}

تم تعديل بواسطه houssam11350_11350
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخى العزيز سبق استخدام الكود ولم يفلح

انا لم استخدم الداتا سيت بالسحب والافلات انا استخدم البرمجة بالكود ولم استخدم الادوات

انا اعمل على فيجوال استوديو 2005 لغة سى شارب مع قواعد البيانات سكوال سيرفر 2000

انا ارفقت مثال لكى يتم التعديل علية

المثال يعمل على جهازى اما من خلال الشبكة فهو لا يعمل يعطينى الرسالة السابقة

المثال فى الموفقات ومرفق صورة بها التقرير شغال على جهازى فقط

ومرفق ايضا قاعدة البيانات من سكوال سيرفر 2000

post-60610-051473100 1320921244_thumb.jp

Test.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

اخي هل قمت بتضبيط اعدادات الـ Remote Access في السيكول سيرفر؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

كيف يمكننى من بتضبيط اعدادات الـ Remote Access في السيكول سيرفر

ملحوظة

هذا التقرير يقرأ من جدولين فبهذا تظهر المشكلة

اما اذا قرأ من جدول واحد يعمل بدون مشكلة

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

اما اذا استخدمت جدول واحد فقط بالتقرير يعمل بدون مشكلة

فما الحل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ...

التقرير فيه جدولين .. و أنت تملئ الــ DataSet .. بجدول واحد ....

و الكود الصحيح هو ...


public partial class _Default : System.Web.UI.Page
{
string strConnect = @"Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=Test;Data Source=HOSAMPC\sqlexpress";
ReportDocument rpt = new ReportDocument();
protected void Page_Load(object sender, EventArgs e)
{
GetShoeReport("Tab_Emp", "Select * From Tab_Emp Order By Emp_ID", "Report1.rpt");
Response.Write("GGGGGGGGGG");
}
public void GetShoeReport(string t, string SQL, string n_file)
{
rpt.Load(Server.MapPath(@"rpt\" + n_file));
SqlConnection Conn = new SqlConnection(strConnect);
Conn.Open();
SqlDataAdapter ad = new SqlDataAdapter(SQL, Conn);
DataSet ds = new DataSet();
ad.Fill(ds, t);
ad = new SqlDataAdapter("SELECT * FROM Tab_Emp_Account", Conn);
ad.Fill(ds, "Tab_Emp_Account");

rpt.SetDataSource(ds);
rpt.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.DefaultPaperOrientation;
CrystalReportViewer1.ReportSource = rpt;
Conn.Close();
Response.Write("count=" + ds.Tables.Count + "<br>");
//ad.Dispose();
//da.Dispose();
}
}

بهذه الطريقة أصبح داخل الــ DataSet جدولين ..

تم تعديل بواسطه houssam11350_11350
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

تمام المشكلة اتحلت

ولكن انا اريد افهم فكرة الكود بحيث ممكن التقرير يحتوى على جداول اكثر

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ..

نحن عند تصميم التقرير اضفنا له جدولين من قاعدة بيانات ...

لعرض التقرير يجب أن نمرر الجدولين للتقرير ...و بما انه عندنا أكثر من جدول يتم وضعهم في DataSet التي تعتبر تجمّع لعدة جداول DataTable (مع علاقات أيضا Relations) و تصبح هذه الــ DataSet هي الــ DataSource للتقرير .. و الــ DetSet هنا هي نفسها التي لو أخذنا من قائمة File ثم New ثم DetSet التي يظهر شكلها على الــ Designer بالشكل :

datatable.jpg

و لكن في مثالنا ستكون الــ dataSet في الــ Memory .. و لفهمها تخيل أنها محجوزة بهذا الشكل ...

و بالعودة لشرح الكود :

  1. إنشاء DataSet فارغة (خالية من أي جداول) و يتم بالكود التالي :
    DataSet ds = new DataSet();

  2. إنشاء الجدول الأول في الـ DataSet و يتم بالكود
    ad.Fill(ds, t);

  3. إنشاء الجدول الثاني في الــ DataSet و يتم بالكود
    ad.Fill(ds, "Tab_Emp_Account");

    و هذا يحافظ على الجدول الأول ...لأننا لم نستخدم new مرة أخرى

  4. نمرر الــ DataSet للتقرير كمصدر بيانات و بداخلها الجدولين ... (ممكن إضافة أكثر من جدول) .. بالكود
    rpt.SetDataSource(ds);

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جزاك الله خيرا على الشرح وتوضيح الفكرة

سؤال اخر لزيادة المعلومات لا اكثر

ما الفرق بين اضافة DataSet

و الــ DetSet هنا هي نفسها التي لو أخذنا من قائمة File ثم New ثم DetSet

و اضافة DataSet من خلال الكود

DataSet ds = new DataSet();

ما الفرق بشكل العام وما هو الافضل فى الاستخدام

علما اننى لا اعتمد على الادوات وافضل الاعتماد الكلى على كتابة الاكواد فما هو الافضل فى ذلك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ..

لو أخذنا قائمة File ثم New ثم File (نفس الشئ لو ضغطنا على البروجكت باليمين ثم Add New Item) ثم DataSet و كتبنا اسمها DataSet1 ثم داخل الــ DataSet1 نقرة يمينية ثم Add ثم DataTable ثم على هذا الجدول ياليمين Add ثم Column ثم عملنا جدول آخر بنفس الطريقة .. فإن الفيجوال استديو سيولد تلقائيا صف Class اسمه DataSet1 و هو مشتق من الصف DataSet كما في الكود :

public partial class DataSet1 : global::System.Data.DataSet

و لو عملنا Object من هذه الــ DataSet1 سنجد أنه يقوم بإنشائه و هو تحوي مباشرة الجدولين (دون بيانات في الأسطر طبعا) اللذين تم إنشاؤهما في الــ Designer ... أي أن الكود :

DataSet1 dataSet1 = new DataSet1();
Response.Write(dataSet1.Tables.Count);

سيعطي 2 أي هناك جدولين داخل الــ Object من نوع DataSet1 ..أما الكود :

DataSet dataSet = new DataSet();
Response.Write(dataSet.Tables.Count);

فيعطي 0 (زيرو) أي لا يوجد جداول في الــ Object من نوع DataSet ... و يمكن ملئ كلا النوعين بجداول من قاعدة البيانات عن طريق الــ DataAdapter كما عملنا في المثال السابق ...

ما الفرق بشكل العام وما هو الافضل فى الاستخدام

إذا الفرق أن الــ dataSet تكون فارغة عند الإنشاء أما الــ DataSet1 فيكون فيه الجداول التي تم تصميمها على الــ Designer عند الإنشاء ..

لكل واحدة استخدام .. فالــ DataSet يتم ملؤها بجداول من قاعدة البيانات كما قلنا أما الــ DataSet1 .. فغالبا يتم وضعها كمصدر لبيانات التقرير عندما لا تكون البيانات المطلوب طباعتها موجودة في قاعدة البيانات بالشكل المطلوب مثلا نريد طباعة اسم المستخدم و وقت تسجيل الدخول للنظام على التقرير فهذة البيانات غير متوفرة في قاعدة البيانات لأننا لا نعرف من قاعدة البيانات المستخدم الحالي في نظام يسمح يتسجيل دخول أكثر من مستخدم من أكثر من جهاز كما في الــ WebSite ..(نحن نأخذ مثال) ..فلذلك نقوم بتصميم DataSet على الــ Designer و فيها جدول اسمه فرضا UserInfo و فيه حقلين UserName و LoiginTime و نضعه كمصدر بيانات للتقرير و نسحب الحقول على التقرير ثم لتمرير البيانات له نستخدم كود كمايلي :


DataSet1 dataSet1 = new DataSet1();
DataRow row = dataSet1.Tables["UserInfo"].NewRow();
row["UserName"] = Session["UserName"];
row["LoginTime"] = Session["LoginTime"];
dataSet1.Tables["UserInfo"].Rows.Add(row);
rpt.SetDataSource(dataSet1);

فيتعامل التقرير معها كما لو أنها تم جلبها فن قاعدة البيانات (هي مصدر بيانات بالنسبة للتقرير و داخلها DataTable سواء تم ملئ الــ DataTable من قاعدة البيانات أو بشكل يديوي .. لا فرق بالنسبة للتقرير)

ملاحظة :

كان يمكن تمرير الــ UserName الــ LoginTime كبارمترات للتقرير و لكن هذا مثال للتوضيح ..

تم تعديل بواسطه houssam11350_11350
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

اخواني الاعزاء ارجوكم ساعدونا......

لقد ارهقتني نفس منذ ثلاثة اسابيع وقد قمت بالبحث في المواقع العربية والاجنبية ولم اجد حل , وقمت بتطبيق احد الحلول بتغيير مواصفات الديبك للفيجوال من NET Framework 4. Client الى .NET Framework 4.

ولم تنجح في عرض التقرير

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .