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

crystalreport 10 + vb6 + sqlserver200 كيف نقوم بفتح تقرير مع توفير معلومات الدخول في بيئة الفيجوال بيسيك

مغلق
بدأه خطـــاب في 5 أغسطس 2007 · 2 رد · 3,653 مشاهدة · في قسم التقارير
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

تابعت الدروس الرائعة في هذا المنتدى لدورة الكريستال ريبورت

كما تابعت فيها طريقة ربط تقرير مصمم في بيئة الـ (IDE) وذلك في الدرس الخامس على الرابط التالي

وواجهتني مشكلة عند ربط تقارير الكريستال ريبورت الاصدار العاشر من قاعدة بيانات سكيول سيرفر 2000

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

ولذلك عند تنفيذ الامر التالي

reportviewr1.viewreport

تظهر رسالة الخطأ التالية رقم 2800

Logon failed.

Details: 28000:[Microsoft][ODBC SQL Server Driver][sql Server]Login failed for user 'sa'.

حيث ان المستخدم user1 هو اخر مستخدم قام بفتح التقرير المحدد في بيئة الـ (IDE)

ولذلك حاولت استخدام الخاصية (loginserver) فيكون عندي الكود المعدل حسب ماهو مشروح في الدرس الخامس كما يلي

m_app.LogOnServer "p2ssql.dll", sqlservername, dbname, user2, pass2

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

أو

m_app.LogOnServer "pdsodbc.dll", odbcservername, dbname, user2, pass2

اذا تم الاتصال بقاعدة البيانات بواسطة موفر الخدمة odbc

الكودان السابقان فعلا نجحا في عمل الاتصال بدليل انه لم تظهر رسالة خطأ وفي حالة اني كتبت اسم مستخدم آخر او بيانات اتصال غير صحيحة فستظهر رسالة خطأ

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

reportviewr1.viewreport

حيث تظهر نفس رسالة الخطأ بنفس اسم المستخدم لاخر مستخدم قام بالدخول الى ملف التقرير في بيئة الـ (ide)

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

ارجوا الايفادة وبارك الله فيكم

#2

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

الحمد لله رب العالمين تم التوصل الى الحل المناسب

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

أولا قم بتصميم التقرير المناسب بواسطة برنامج الكريستال ريبورت الاصدار رقم 10 وطبعا من المفترض ان يكون مصدر البيانات هو احد الجداول او الفيوز في قاعدة بيانات سكيول سيرفر وتاكد بان التقرير يعمل بدون مشاكل واحفظ هذا التقرير وليكن باسم report1.rpt

ثانيا افتح مشروع جديد في الفيجوال باسيك الاصدار ويفضل الاصدار السادس

وكل ما نحتاجه هو نافذة واحدة فقط form1

ولا تنسى ان تحفظ المشروع في نفس الدليل المحفوظ عليه التقرير او العكس

ثالثا سنقوم باضافة المكتبات اللازمة لتشغيل الكريستال ريبورت

من القائمة بروجكت اختر ريفرنس واضف المكتبة التالية

crystal report activex designer design and run time library 10.0

ثم من القائمة بروجكت اختر كومبوننت واضف المكتبة التالية

crystal activex viewer library 10.0

ستظهر اداة جديدة في قائمة الادوات هي الاداة report viewer

رابعا : اضف الاداة اعلاه الى الفورم وليكن اسمها crviewer1

والان في كود التحميل للفورم كل ما عليك هو لصق الكود التالي

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

Private Sub Form_Load()

Dim m_application As New CRAXDDRT.Application
Dim m_report As New CRAXDDRT.Report

Dim connectstring1 As String
Dim service1 As String
Dim server1 As String
Dim dbname1 As String
Dim user1 As String
Dim pass1 As String
Dim reportfile1 As String

' very important
' you must inter correct connection settings
reportfile1 = App.Path & "\report1.rpt"  ' the name of pre_designed crystal report which exists in the same path of your application
user1 = "user name"		  ' must have a valied login to your database in sql server
pass1 = "user password"			' the user password
service1 = "sql service name"		 ' you can get the service name from sql server service manager
server1 = "sql server name"   ' you can get the server name from sql server service manager
dbname1 = "database name"  ' the name of your database project in sql server 2000

' this is my connecting string  to the database
' it differ according to sql server 2000 settings
connectstring1 = connectstring1 & "Driver=" & service1 & ";"
connectstring1 = connectstring1 & "Server=" & server1 & ";"
connectstring1 = connectstring1 & "Database=" & dbname1 & ";"
connectstring1 = connectstring1 & "Uid=" & user1 & ";"
connectstring1 = connectstring1 & "Pwd=" & pass1 & ";"

Set m_report = m_application.OpenReport(reportfile1)
m_report.Database.Tables(1).ConnectBufferString = connectstring1

' set the viewr final properties
crviewer1.Top = 0
crviewer1.Left = 0
crviewer1.Height = Me.Height
crviewer1.Width = Me.Width
crviewer1.Zoom 1
crviewer1.ReportSource = m_report
crviewer1.Refresh
crviewer1.ViewReport


End Sub

وعند تشغيل المشروع سيتم تحميل التقرير مباشرة

طبعا انا اختصرت الموضوع فقط حتى تصل الفكرة العامة

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

Dim m_application As New CRAXDDRT.Application

Dim m_report As New CRAXDDRT.Report

الى التعريف التالية

Dim m_application As New CRAXDRT.Application

Dim m_report As New CRAXDRT.Report

والتوفيق من الله عز وجل اولا واخيرا فبفضله هيئ لنا هذا المنتدى الرائع بمشرفيه واعضاءه

وبارك الله فيكم جميعا

تم تعديل هذه المشاركة بواسطة خطـــاب في 5 أغسطس 2007 في 15:39

#3

الاخ خطــــــــــــــــــاب المعذرة على التدخل المتأخر

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

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

ومعذرة لم أرى الموضوع إلا اليوم فقلت صعب يترك بدون رد ولو جبر خاطر

158.gif

هناك فرق بين أن تكبر بالعمر

، و أن تكبر بالعقل
فالأولى ، إجباري
، والثانية اختياري .."
 
 

164684_514411088579476_442405016_n.jpg

هذا الموضوع مغلق.

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

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

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

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

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