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

مشكلة ال Dataset مع عرض التقرير بشرط معين

مغلق
بدأه أبو حنان في 17 أغسطس 2007 · 1 رد · 877 مشاهدة · في تصميم وبرمجة التقارير
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

أقوم الآن ببرمجة برنامج مبيعات ومشتريات ومخازن من خلال فيجوال بيسك دوت نت وهو مرتكز على قواعد بيانات SQL Server2000ووصلت لتصميم التقارير ومن ثم عرضها ولكن واجهتني مشكلة وهي كالأتي :

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

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

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

   

Option Explicit On
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.OleDb
Imports Microsoft.VisualBasic
Imports System.IO
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared

وفي حدث التحميل كتبت الكود التالي ، مع ملاحظة أن نص الاتصال بقواعد البيانات موجود في مديول خاص

   
Try
			If GSQLConnection.State = ConnectionState.Open Then

 GSQLCmd.CommandText = "SELECT* FROM Categories,CategoryPricesNormal,CategoryPricesSeasonal WHERE Categories.CategoryCode=" & CategoryCode & "AND CategoryPricesNormal.CategoryCode=" & CategoryCode & "AND CategoryPricesSeasonal.CategoryCode=" & CategoryCode

GSQLCmd.CommandType = CommandType.Text


				Dim strReportName As String
				GDS.Clear()
				GDA = New SqlClient.SqlDataAdapter(GSQLCmd.CommandText, GSQLConnection)

				GDA.Fill(GDS, "Categories,CategoryPricesNormal,CategoryPricesSeasonal")


				strReportName = "Category"


				Dim strReportPath As String = Application.StartupPath & "\Reports\" & strReportName & ".rpt"


				If Not IO.File.Exists(strReportPath) Then

					Throw (New Exception("Unable to locate report file:" & vbCrLf & strReportPath))

				End If


Dim rptDocument As New CrystalDecisions.CrystalReports.Engine.ReportDocument


				rptDocument.Load(strReportPath)

				rptDocument.SetDataSource(GDS.Tables(0, 2))

				rptViewer.ShowGroupTreeButton = False

				rptViewer.ReportSource = rptDocument
				rptViewer.Zoom(85%)

			End If
		Catch Ex As Exception
			MsgBox(Ex.Message)
		End Try

ففكرت بأن استبدل الـ DataSet بالـ DataReader ولكن للأسف لم افلح في ذلك

فما هو الحل جزاكم الله خيراً

مختار أحمد

موقع الويب : http://www.luxorsystems.com

منتدياتنا :http://www.luxorsystems.com/forum/index.php

للمراسلة

luxorsystems@hotmail.com

للاتصال التليفوني

00201228085123

#2

عزيزي أنت تعمل على الـ DataSet وليس الـ DataSource فهذا فيه فرق يحفظك الله.

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

 Dim rpt2 As New Report2
		rpt2.SummaryInfo.ReportTitle = "الفريق العربي للبرمجة"
		rpt2.SetDataSource(ds)
		rpt2.RecordSelectionFormula = "{emp.EmpNo}=" & cboxID.Text
		CRV.ReportSource = rpt2

هنالك أكثر من طريقة لتحديد الممرر. شاهد المرفق. بالتوفيق إن شاء الله.

CrystalReportFormulaFieldParam.rar

في المثال يتضح المقال

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

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