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

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

مغلق
بدأه server_programmer في 24 أبريل 2006 · 8 رد · 1,402 مشاهدة · في تصميم وبرمجة التقارير
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

معلش سؤالي اليوم سريع

لكن أرجوا ان يكون واضح

السؤال ببساطة

هة في ال

Master Detailes Report

في الكريستال ريبورت عندي تقريرين

الأول Master

و الثاني Detailes

مرتبطين مع بعض

كلا التقريرين يقرأن البيانات من

DataSet

من جدولين مختلفين فيها

و طريقة العرض للتقرير هي كالتالي

يتم تعبئة جداول ال DataSet

ال Master Table

و ال Detailes Table

ثم من خلال الكود التالي يتم فتح التقرير

'1: filling the Master Table
            Database1.Master_Table.Clear()

With Master_Adapter.SelectCommand
     .Parameters("@Record_No").Value = Record_No.Text.Trim
End With

Master_Adapter.Fill(Database1, "Master_Table")


'2: filling the detailes table 
Database1.Detailes_Table.Clear()

With Detailes_Adapter.SelectCommand
        .Parameters("@DocumentID").Value = Record_No.Text.Trim
End With

Detailes_Adapter.Fill(Database1, "Detailes_Table")

Catch ex As Exception
MsgBox(ex.Message)
End Try


Dim R As New Report_Master

R.SetDataSource(Database1)

Var_FrmReports = New FrmReports

        With Var_FrmReports
            .CrystalReportViewer1.ReportSource = R
            .CrystalReportViewer1.RefreshReport()
        End With


Var_FrmReports.Show()

طبعا التقرير مكون من تقريرين

كلا تم تصميمة على حدة

طيب وين المشكلة

هي مو مشكلة كبيرة بس شي ممل شوي

لما أضيف SubReport على ال Master_Report

أثناء العرض

لما أحط المؤشر حق الماوس على أحد حقول ال Sub Form

يتغير شكل المؤشر لرسم اليد

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

يطلب فيها أسم السيرفر و المستخدم و الكلام الفاضي هذا

كيف ممكن الغي الحكاية دي لو عندكم فكرة ؟

و شكرا لكم :)

أخوكم ذو المشاكل العجيبة

Server_Programmer

تم تعديل هذه المشاركة بواسطة server_programmer في 24 أبريل 2006 في 15:12

وفوق كل ذي علم عليم

http://www.leaderstechnology.com

-------------------------------

#2

قمت بنقل الموضوع إلى هذا القسم الأنسب له

اقتباس
و لما أضغط دبل كليك على الحقل الموجود في التقرير الفرعي يفتح لي نافذة

يطلب فيها أسم السيرفر و المستخدم و الكلام الفاضي هذا

كيف ممكن الغي الحكاية دي لو عندكم فكرة ؟

أستعمل Crystal reports For Visual Studio.Net 2005

تظهر هذه النافذة عند عرض تقرير محتوي على Chart أو تقرير فرعي، لكن استطعت "إسكاتها" بهذا السطر:

b.SetDatabaseLogon("sql_user", "sql_password", "(local)", "db_name")

حيث b هو object من التقرير، وتمرر له اسم مستخدم في قاعدة البيانات وكلمة السر واسم سيرفر قاعدة البيانات واسم قاعدة البيانات، ويوضع قبل السطر:

b.SetDataSource(ds)

فكر بطريقة أخرى

#3

أخي walmhomer

أشكرك على ردك الكريم

أنا أريد أن أجعل التقرير الفرعي يقرأ من ال Dataset و ليس من ال Database الموجوده على MS SQL Server

و لكن هل لنا بمثال لهذة العملية

لعلة يفيد

و شكرا

وفوق كل ذي علم عليم

http://www.leaderstechnology.com

-------------------------------

#4
اقتباس
أنا أريد أن أجعل التقرير الفرعي يقرأ من ال Dataset و ليس من ال Database الموجوده على MS SQL Server

أرى أنه أنسب لو جعلتهم يقرؤون من نفس الdataset وقمت بتكوين حقل رابط بين التقرير الأساسي والتقرير الفرعي، وذلك من change subreport links في القائمة اليمنى للتقرير الفرعي.

فكر بطريقة أخرى

#5
walmhomer كتب:
قمت بنقل الموضوع إلى هذا القسم الأنسب له

أستعمل Crystal reports For Visual Studio.Net 2005

تظهر هذه النافذة عند عرض تقرير محتوي على Chart أو تقرير فرعي، لكن استطعت "إسكاتها" بهذا السطر:

b.SetDatabaseLogon("sql_user", "sql_password", "(local)", "db_name")

حيث b هو object من التقرير، وتمرر له اسم مستخدم في قاعدة البيانات وكلمة السر واسم سيرفر قاعدة البيانات واسم قاعدة البيانات، ويوضع قبل السطر:

b.SetDataSource(ds)

عند نقل البرنامج لجهاز آخر تظهر رسالة الدخول، ولكن يمكن تجاوزها بدل السطر

b.SetDatabaseLogon("sql_user", "sql_password", "(local)", "db_name")

بهذه الطريقة:

1- أضف التالي في بداية الكود:

Imports CrystalDecisions.Shared
Imports CrystalDecisions.CrystalReports.Engine

2- في حدث استدعاء التقرير أضف هذا الكود الذي يقوم بتمرير معلومات الدخول LoginInfo الخاصة بالتقرير الأساسي لكل الكائنات الفرعية، سواء كانت subreport أو chart أو غيره:

 Dim myTable As Table
Dim myLoginInfo As TableLogOnInfo

For Each myTable In objReport.Database.Tables
	myLoginInfo = myTable.LogOnInfo
	myLoginInfo.ConnectionInfo.DatabaseName = DBClass.DBName
	myLoginInfo.ConnectionInfo.ServerName = DBClass.ServerName
	myLoginInfo.ConnectionInfo.UserID = DBClass.UserName
	myLoginInfo.ConnectionInfo.Password = DBClass.Password

	myTable.ApplyLogOnInfo(myLoginInfo)
Next

حيث أن المتغيرات DBName و ServerName و UserName و Password هي shared variables في DBClass وهو الdata tier class

فكر بطريقة أخرى

#6

أشكرك جدا أخي الحبيب

والله يعطيك العافية

وفوق كل ذي علم عليم

http://www.leaderstechnology.com

-------------------------------

#7

السلام عليكم

عند انشاء تقرير يعرض Master&Details

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

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

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#8

مشكووووووووور

وفوق كل ذي علم عليم

http://www.leaderstechnology.com

-------------------------------

#9

يمكن استبدال هذين السطرين

  myLoginInfo.ConnectionInfo.UserID = DBClass.UserName
	myLoginInfo.ConnectionInfo.Password = DBClass.Password

بالسطر

myLoginInfo.ConnectionInfo.IntegratedSecurity = True

فقط باستعمال Windows authentication بدلا من SQL Server authentication

فكر بطريقة أخرى

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

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