PDA

View Full Version : فرستادن مقدار به کریستال ریپورت بدون استفاده از جدول(Table)



baran_mehr
سه شنبه 26 شهریور 1387, 19:31 عصر
سلام داداشی ها و ابجی های گلم.:قلب:
کسی میدونه چطور باید به کریستال ریپورت پارامتر فرستاد؟
یعنی چطور بدون استفاده از جدول و وصل کردن اون به کریستال ریپورت ،بتونیم به اون مقدارهای خودمون رو بدیم؟

mostafaaa
سه شنبه 26 شهریور 1387, 19:50 عصر
یه راهش اینه که توی کریستال رپورت ابتدا یه TextObject به گزارشت اضافه کنی و از توی فرمت به این شکل بهش مقدار بدی.

Dim MyText As CrystalDecisions.CrystalReports.Engine.TextObject
MyText = MyReport.Section1.ReportObjects("MyText")
MyText.Text = TextBox1.Text

baran_mehr
سه شنبه 26 شهریور 1387, 20:22 عصر
mostafaaa جان اگه ممکن هست کمی توضیح هم بده.چون من اصلا از TextObject چیزی نمیدونم.

mostafaaa
سه شنبه 26 شهریور 1387, 20:54 عصر
خوب درواقع TextObjectیه چیزی تو مایه های TextBox هستش و یه سری پروپرتی های مشابه با تکست باکس هم داره. شما با روش بالا درواقع محتویات یه تکست باکس توی فرمتون رو توی یه تکست باکس توی ریپورتتون میریزید.

mostafaaa
سه شنبه 26 شهریور 1387, 21:12 عصر
یه راه دیگه هم اینه که ابتدا یه پارامتر توی کریستال رپورت تعریف کنی و بعد از توی فرم بهش مقدار بدی .
به مثال توجه کن:

Dim Par As CrystalDecisions.CrystalReports.Engine.ParameterFi eldDefinition = _
CrystalReport11.DataDefinition.ParameterFields("MyPar")
Dim CurrentValue As CrystalDecisions.Shared.ParameterValues = Par.CurrentValues
Dim NewValue As CrystalDecisions.Shared.ParameterDiscreteValue
NewValue = New CrystalDecisions.Shared.ParameterDiscreteValue
NewValue.Value = "YourTextHere"
CurrentValue.Add(NewValue)
Par.ApplyCurrentValues(CurrentValue)

kablayi
چهارشنبه 27 شهریور 1387, 00:28 صبح
سلام آبجی ...
از این روش هم میتونی استفاده کنی ... منم تا چند روز پیش دنبال راه حل همین مشکل بودم ...
اول یه پارامتر رو روی صفحه گزارش میزاری (با نام دلخواهمثلا ParamName) ... بعد از کد زیر برای مقدار دهی استفاده میکنی ...


Dim rptdoc As New CrystalDecisions.CrystalReports.Engine.ReportDocum ent
strpath = Application.StartupPath & "\report.rpt"
rptdoc.Load(strpath)
rptdoc.SetParameterValue("ParamName", "برنامه نویس")
CrystalReportViewer1.ReportSource = rptdoc


البته جای عبارت "برنامه نویس" میتونید از مقدار یه تکست باکس و یا لیبل هم استفاده کنید ...

baran_mehr
چهارشنبه 27 شهریور 1387, 12:41 عصر
دستت درد نکنه داداشی(اما از کجا میدونی من دخترم که میگی ابجی)
kablayi جان میتونی یه برنامه اینجا بزاری(لطف میکنی)
ممنون.

mc_laren
چهارشنبه 27 شهریور 1387, 17:42 عصر
اگه دوستان لطف کنند و نحوه ی فرستادن عکس به گزارش رو توضیح بدن
ممنون میشم.

kablayi
پنج شنبه 28 شهریور 1387, 06:58 صبح
دستت درد نکنه داداشی(اما از کجا میدونی من دخترم که میگی ابجی)
kablayi جان میتونی یه برنامه اینجا بزاری(لطف میکنی)
ممنون.
سلام ...
از روی آواتارتون گفتم شاید آبجی باشین ... البته فرقی نمیکنه ... آبجی یا داداش ... دوست دارم منو داداش خودت بدونی ... هر کمکی خواستی تا اونجا که بتونم کمکت میکنم ...

اینم یه نمونه برنامه که به دیتابیس وصل میشه ... اطلاعات رو دریافت میکنه ... و با فیلتری که خود کاربر تعیین میکنه گزارش میگیره ... البته از اینکه کامل نیست شرمنده چون وقت زیادی نداشتم که برات بنویسم ...
ولی تقریبا تمام مشکلات رو در گزارش گیری حل میکنه ...

موفق باشید ...

baran_mehr
پنج شنبه 28 شهریور 1387, 12:57 عصر
دستت درد نکنه kablayi جون(:بوس:داداش نازم:بوس:)
داداشی نمیدونم چرا برنامه ای که گذاشتی اجرا نمیشه و پیغام میده ، من عکس پیغام خطا رو اینجا گذاشتم اگه سختت نیست یه نگاهی بکن ببین میتونی متوجه بشی این خطا برای چیه؟؟
یه سوال دیگه:حالا اگه ما مثلا 500 تا مقدار داشتیم که میخواستیم به صورت پارامتری بفرستیم باید چه کار کنیم(که به ترتیب زیر هم باشن):تشویق:

kablayi
پنج شنبه 28 شهریور 1387, 21:50 عصر
سلام ...
از چه ورژنی از VS استفاده میکنید ...؟؟؟
من با 2008 نوشتم ... ممکنه مشکل از این باشه ...

kablayi
پنج شنبه 28 شهریور 1387, 21:58 عصر
شما یه پروژه جدید باز کنید و همه فرمها + فایل گزارش(report.rpt) و دیتابیس رو به اون اضافه کنید بعد اونو اجرا کنید ...

baran_mehr
پنج شنبه 28 شهریور 1387, 22:30 عصر
نه داداشی من از 2005 استفاده میکنم.
اگه فرمها رو جدا به برنامم اضافه کنم درست میشه

kablayi
شنبه 30 شهریور 1387, 05:34 صبح
سلام آبجی ...
چی شد مشکل حل شد ...
اگه نشد بگید تا کدها رو مستقیم براتون بزارم ...

baran_mehr
یک شنبه 31 شهریور 1387, 22:37 عصر
داداشی من یه پروژه جدید باز کردم و فرمها رو اونجا کپی کردم .
به این خط برنامه گیر میده:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
filter.ShowDialog()
End Sub

kablayi
دوشنبه 01 مهر 1387, 04:24 صبح
داداشی من یه پروژه جدید باز کردم و فرمها رو اونجا کپی کردم .
به این خط برنامه گیر میده:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
filter.ShowDialog()
End Sub

سلام آبجی ...
توی فرمهایی که add کردین فرم filter هم Add شده؟
اگر همه فایلها رو add کنید (بجز folderها) درست کار میکنه ...
چه موقع این ارور رو میده ...؟؟
برنامه اجرا میشه ...؟؟

شما بایستی سه تا فرم توی پنجره sulotion explorer داشته باشین ...

baran_mehr
دوشنبه 01 مهر 1387, 13:43 عصر
داداشی فرمها رو اضافه کردم و سه تا فرم رو هم دارم اما الان کلا به فیل(allchattels.vb)گیر میده که توش پر از خطاست و این Imports ها رو پیدا نمیکنه:

Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.ReportSource
Imports CrystalDecisions.Shared
و فکر کنم به خاطر همینا توابع موجود در فایل بالا رو اجرا نمکنه و خطا میگیره

kablayi
سه شنبه 02 مهر 1387, 04:15 صبح
سلام ...
طبق این تصویر import های لازم رو Add کن ...
روی references راست کلیک کن .add ref رو انتخاب کن و گزینه های مورد نظر رو اضافه کنید ...
http://barnamenevis.org/forum/attachment.php?attachmentid=23621&stc=1&d=1222085772
ایشالا دیگه مشکل کامل حل میشه ...

baran_mehr
سه شنبه 02 مهر 1387, 17:11 عصر
سلام شرمنده داداشی خیلی اذیتت کردم.
اما من همه این فایلها رو به رفرنس اضافه کردم بغیر از دو تا که نداشت. شاید این دو تا برای 2008 باشه اسمش اینه :

CrystalDecisions.CrystalReports.InfoStore
CrystalDecisions.EnterPrise.Framework
که فکر کنم به خاطر این دوتا رفرنس این دوتا تابع هم کار نمیکنه:

Public Overrides Property FullResourceName() As String
Public Overrides Property NewGenerator() As Boolean

kablayi
چهارشنبه 03 مهر 1387, 00:42 صبح
سلام آبجی...
نه بابا اذیت چیه ... خوشحال میشم ...
میگم حالا که اینطوره فکر کنم بطونی یه کپی از برنامه رو خودتون درست کنید ...
یه پروپه جدید باز کنید و طبق فرمهای توی این برنامه شما هم شروع به ساختن برنامه کنید ... کدها رو هم که دارین ...
هر جا که مشکل داشتین بگین کمکتون کنم ...
این برنامه یه مثال بسیار خوب برای گرفتن گزارشات در برنامه می باشد ...
موفق باشید ...

owraman
جمعه 18 بهمن 1387, 16:25 عصر
یه راهش اینه که توی کریستال رپورت ابتدا یه TextObject به گزارشت اضافه کنی و از توی فرمت به این شکل بهش مقدار بدی.

Dim MyText As CrystalDecisions.CrystalReports.Engine.TextObject
MyText = MyReport.Section1.ReportObjects("MyText")
MyText.Text = TextBox1.Text
اینو هر کاری کردم چیزی در رپورت نشان داده نمی شد لطفاً بیشتر ارهنمایی بفرمائید