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

تنفيذ امر طباعة برمجيا في الويب

بدأه activeman في 5 مارس 2009 · 6 رد · 1,209 مشاهدة · في تصميم وبرمجة التقارير
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عندي صفحة نت ASPX عليها تقرير كريستال ريبورت

أنا أزلت شرط الطباعة منه واريد وضع زر بسيط button لينفذ أمر الطباعة الموجود بالكريستال

لقد استخدمت : report.PrintToPrinters(1,false,0,0) لكن لم ينفع ويطلع ان الطابعة غير معرفة مما استنتجت انه يستخدم طابعة السيرفر وليس الكلاينت

أرجو الافادة وشكرا

#2

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

يا جماعة والله في مواضيع كثير ما بنشوف حد بيجاوب عليها ويتم إهمالها او تجاهلها

وهذا موضوع ما في اي رد عليه رغم مرور 4 أيام عليه

السلام ختام

#3

ارجو الرد يا اهل العلم

#4

غريب والله ما في رد لحد الان على سؤالي ؟؟ :resentful:

#5

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

والله حرام لا احد يعرف يجاوب السؤال هذا يخبرني ان المستوى ضعيف

؟

#6

السلام عليكم يا ايها المبرمجون

هل من حل للموضوع طول كثير

#7

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

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

بقاعدة بيانات sql server 2005

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

على العموم هذا الكود يعمل معي بدون مشاكل

/// <summary>
	///Override the CrystalReportButton_Click and call DisplayReportAsPDF_CrystalReportButton function
	/// </summary>
	public  void CrystalReportButton_Click(object sender, System.EventArgs e)	
	{
		CrystalDecisions.CrystalReports.Engine.ReportDocument crReportDocument = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
		string fileName= @"..\Reports\EsalEstlam.rpt";
		try
		{
			if (fileName.Substring(1).StartsWith(@":\"))
				crReportDocument.Load(fileName);
			else
				crReportDocument.Load(this.Page.MapPath(fileName));
		}
		catch (Exception ex)
		{	
			string errMsg = ex.Message.Replace("\n", "").Replace("\r", "");
			errMsg += " Please make sure the dlls for Crystal Report are compatible with the Crystal Report file.";
			BaseClasses.Utils.MiscUtils.RegisterJScriptAlert(this, "BUTTON_CLICK_MESSAGE", errMsg);
		}

		try
		{
			//************If you see a "Missing Parameter Value" error message or if your Crystal Report file requires paarameters,
			//************please uncomment this section & specify appropriate values. 
			////Set parameter
			//CrystalDecisions.Shared.ParameterDiscreteValue paramValue = new CrystalDecisions.Shared.ParameterDiscreteValue();
			//paramValue.Value = "ALFKI";
			//crReportDocument.SetParameterValue("CurrentCustID", paramValue);
			//**********************************************

			//************If you see a 'Logon Failed' error message or if your database requires authentication,
			//************please uncomment this section & specify appropriate values. 

			////define and locate required objects for db login
			//CrystalDecisions.CrystalReports.Engine.Database db = crReportDocument.Database;
			//CrystalDecisions.CrystalReports.Engine.Tables tables = db.Tables;
			//CrystalDecisions.Shared.TableLogOnInfo tableLoginInfo = new CrystalDecisions.Shared.TableLogOnInfo();

			////define connection information
			//CrystalDecisions.Shared.ConnectionInfo dbConnInfo = new CrystalDecisions.Shared.ConnectionInfo();
			//dbConnInfo.UserID = "username";
			//dbConnInfo.Password = "pwd";
			//dbConnInfo.ServerName = "DBName";

			////apply connection information to each table
			//foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
			//{
			//	tableLoginInfo = table.LogOnInfo;
			//	tableLoginInfo.ConnectionInfo = dbConnInfo;
			//	table.ApplyLogOnInfo(tableLoginInfo);
			//}
			//**********************************************


		}
		catch (Exception ex)
		{
			string errMsg = ex.Message.Replace("\n", "").Replace("\r", "");
			BaseClasses.Utils.MiscUtils.RegisterJScriptAlert(this, "BUTTON_CLICK_MESSAGE", errMsg);
			errMsg += " If this is a deployment machine, make sure network service has permissions to read and write to the windows\\temp folder.";
		}
		DisplayReportAsPDF_CrystalReportButton(crReportDocument);
	}



	/// <summary>
	/// This function creates an instance of the Crystal Report in PDF format and displays it
	/// </summary>
	private void DisplayReportAsPDF_CrystalReportButton(CrystalDecisions.CrystalReports.Engine.ReportDocument reportObject)
	{
		try
		{
			// Export as a stream
			System.IO.Stream stream = reportObject.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
			byte[] content = new byte[stream.Length];
			stream.Read(content, 0, content.Length);

			//output as an attachment
			BaseClasses.Utils.NetUtils.WriteResponseBinaryAttachment(this.Page.Response, "report.pdf", content, 0, true);
		}
		catch (Exception ex)
		{
			string errMsg = ex.Message.Replace("\n", "").Replace("\r", "");
			errMsg += " Please modify the button click function in your code-behind.";
			BaseClasses.Utils.MiscUtils.RegisterJScriptAlert(this, "BUTTON_CLICK_MESSAGE", errMsg);
		}
	}

تم تعديل هذه المشاركة بواسطة hossam_fadel في 18 مارس 2009 في 06:16

من قال سبحان الله وبحمده غرثت له نخلة بالجنة

mr.hossamf@gmail.com

إضغط هنا لزيارة موقع دائرة المعارف القرآ نية

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