الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

بدأه ensert.net2000 في 9 نوفمبر 2011 · 14 رد · 3,071 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

رقم الاى بى

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

اسم المستخدم

كلمة المرور

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

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

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

المرفقات
7.JPG

حقيقة الانسان تاجر الحياة لماذا ؟

السعادة لها ثمن يحددها الانسان

الفرحة لها ثمن يحددها الانسان

الحزن لة ثمن يحدده الانسان

يا انسان ( يابنى ادم )

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

قول ورايا ( لا اله الا الله :: محمد رسول الله ) انت اكلت روحك كمل انت بئة ( شربها ولبسها .......)

#2

ما فى حل الان

حقيقة الانسان تاجر الحياة لماذا ؟

السعادة لها ثمن يحددها الانسان

الفرحة لها ثمن يحددها الانسان

الحزن لة ثمن يحدده الانسان

يا انسان ( يابنى ادم )

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

قول ورايا ( لا اله الا الله :: محمد رسول الله ) انت اكلت روحك كمل انت بئة ( شربها ولبسها .......)

#3

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

اية المشكلة

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

حقيقة الانسان تاجر الحياة لماذا ؟

السعادة لها ثمن يحددها الانسان

الفرحة لها ثمن يحددها الانسان

الحزن لة ثمن يحدده الانسان

يا انسان ( يابنى ادم )

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

قول ورايا ( لا اله الا الله :: محمد رسول الله ) انت اكلت روحك كمل انت بئة ( شربها ولبسها .......)

#4

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

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

.:: Wish to become better and better ::.

#5

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

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

ثانيا

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

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

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

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

فاتمنى اجد حل

حقيقة الانسان تاجر الحياة لماذا ؟

السعادة لها ثمن يحددها الانسان

الفرحة لها ثمن يحددها الانسان

الحزن لة ثمن يحدده الانسان

يا انسان ( يابنى ادم )

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

قول ورايا ( لا اله الا الله :: محمد رسول الله ) انت اكلت روحك كمل انت بئة ( شربها ولبسها .......)

#6

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

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.ConnectionInfo = connectionInfo;
}

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 10 نوفمبر 2011 في 11:01

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#7

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

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

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

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

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

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

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

post-60610-051473100 1320921244_thumb.jp

Test.rar

المرفقات
1.JPG

حقيقة الانسان تاجر الحياة لماذا ؟

السعادة لها ثمن يحددها الانسان

الفرحة لها ثمن يحددها الانسان

الحزن لة ثمن يحدده الانسان

يا انسان ( يابنى ادم )

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

قول ورايا ( لا اله الا الله :: محمد رسول الله ) انت اكلت روحك كمل انت بئة ( شربها ولبسها .......)

#8

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

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

.:: Wish to become better and better ::.

#9

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

ملحوظة

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

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

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

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

فما الحل

حقيقة الانسان تاجر الحياة لماذا ؟

السعادة لها ثمن يحددها الانسان

الفرحة لها ثمن يحددها الانسان

الحزن لة ثمن يحدده الانسان

يا انسان ( يابنى ادم )

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

قول ورايا ( لا اله الا الله :: محمد رسول الله ) انت اكلت روحك كمل انت بئة ( شربها ولبسها .......)

#10

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

التقرير فيه جدولين .. و أنت تملئ الــ 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 في 10 نوفمبر 2011 في 16:13

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#11

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

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

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

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

حقيقة الانسان تاجر الحياة لماذا ؟

السعادة لها ثمن يحددها الانسان

الفرحة لها ثمن يحددها الانسان

الحزن لة ثمن يحدده الانسان

يا انسان ( يابنى ادم )

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

قول ورايا ( لا اله الا الله :: محمد رسول الله ) انت اكلت روحك كمل انت بئة ( شربها ولبسها .......)

#12

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

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

لعرض التقرير يجب أن نمرر الجدولين للتقرير ...و بما انه عندنا أكثر من جدول يتم وضعهم في 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

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#13

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

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

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

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

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

DataSet ds = new DataSet();

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

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

حقيقة الانسان تاجر الحياة لماذا ؟

السعادة لها ثمن يحددها الانسان

الفرحة لها ثمن يحددها الانسان

الحزن لة ثمن يحدده الانسان

يا انسان ( يابنى ادم )

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

قول ورايا ( لا اله الا الله :: محمد رسول الله ) انت اكلت روحك كمل انت بئة ( شربها ولبسها .......)

#14

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

لو أخذنا قائمة 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 في 11 نوفمبر 2011 في 12:06

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#15

السلام عليكم

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

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

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

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

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…