PDA

View Full Version : ایجاد فیلتر در Crystal Report



mgmreza
جمعه 12 بهمن 1386, 02:20 صبح
سلام
چگونه میتوان در ویژوال بیسیک و در گزارشگیری برنامه که با Crystal Report ساخته شده است فیلترهایی ایجاد کرد به گونه ای که فقط رکوردهای خاصی نمایش داده شود و یا تمامی اسم هایی که مشابه کلمه ali بودند نمایش داده شود.
با تشکر

sokote_bi_payan
جمعه 12 بهمن 1386, 17:31 عصر
به نام خدا

با سلام

شما می تونید یه شی بسازید از نوع رکوردست بعد با استفاده از اون فیلتر کنید و دیتاسورس و ست کنید

موفق باشید

یا علی

حسین علوی
شنبه 13 بهمن 1386, 21:25 عصر
به قسمت Report--Edit selection formula---Record برو و فرمول فیلتر رو اونجا بنویس.

mgmreza
شنبه 20 بهمن 1386, 14:50 عصر
به قسمت Report--Edit selection formula---Record برو و فرمول فیلتر رو اونجا بنویس.

خیلی ممنون از جوابتان به این سوال.
اما من میخواهم که خود کاربر در زمان اجرای برنامه بتواند فیلتر مورد نظر را انتخاب کند ؟
اگر در این زمینه راهنمایی بفرمایید ممنون میشوم.

vbhamed
شنبه 20 بهمن 1386, 20:54 عصر
سلام
از این راه



Dim x As New CRAXDRT.Application
Dim y As CRAXDRT.Report

Set y = x.OpenReport("C:\test.rpt")

With y
.DiscardSavedData
.RecordSelectionFormula = "City = 'Tehran'"
.PrintOutEx False
End With

mgmreza
شنبه 20 بهمن 1386, 21:37 عصر
سلام
من هر چقدر سعی کردم نتوانستم از کدی که آقای vbhamed فرستادند استفاده کنم.
اگر زحمتی نیست برنامه نمونه ای را در این بخش قرار دهید.
با تشکر

vbhamed
یک شنبه 21 بهمن 1386, 01:02 صبح
سلام
اینم نمونه :

mgmreza
یک شنبه 21 بهمن 1386, 13:15 عصر
سلام
:

از برنامه ای که ارسال کرده اید ممنون هستم اما یک سوال داشتم.
برنامه CrystalReport که شما از آن استفاده میکنید نسخه چند است ؟ چون من وقتی که برنامه شما را اجرا میکنم پیغام عدم پشتیبانی را میدهد و یا پیغام can not find project or library را میدهد. در ضمن من از CrystalReport نسخه 4.6 استفاده میکنم . اگر امکان دارد نسخه مربوط به گزارش ساز خود را معرفی نمایید تا آن را تهیه نمایم.
با تشکر

mgmreza
یک شنبه 21 بهمن 1386, 15:07 عصر
از برنامه ای که ارسال کرده اید ممنون هستم اما یک سوال داشتم.
برنامه CrystalReport که شما از آن استفاده میکنید نسخه چند است ؟ چون من وقتی که برنامه شما را اجرا میکنم پیغام عدم پشتیبانی را میدهد و یا پیغام can not find project or library را میدهد. در ضمن من از CrystalReport نسخه 4.6 استفاده میکنم . اگر امکان دارد نسخه مربوط به گزارش ساز خود را معرفی نمایید تا آن را تهیه نمایم.
با تشکر

سلام
اگر کسی به این سوال جواب دهد ممنون میشوم.

حسین علوی
یک شنبه 21 بهمن 1386, 15:57 عصر
دوست عزیز میشه برنامه تو کاملتر بفرستی

vbhamed
دوشنبه 22 بهمن 1386, 01:23 صبح
سلام
ورژن 4.6 که خیلی قدیمیه، الان ورژن 12 اومده
اما مثالی که من فرستادم با ورژن 9 هست

mgmreza
سه شنبه 23 بهمن 1386, 18:25 عصر
سلام
ورژن 4.6 که خیلی قدیمیه، الان ورژن 12 اومده
اما مثالی که من فرستادم با ورژن 9 هست

سلام
آیا برنامه ای که فرستادید را نیمتوان برای CrystalReport نسخه 4.6 استفاده کرد ؟ چون من که امتحان کردم فقط پیغام خطا میداد. در ضمن من باید فردا برنامه را به استادم تحویل دهم و فقط در مورد فیلتر کردن در گزارشگیری مشکل دارم.
چرا مثلا از کد زیر که استفاده میکنم برنامه جواب نیمیدهد
CrystalReport1.ReportFileName = App.Path + "\inpu.rpt"
CrystalReport1.Destination = crptToWindow
CrystalReport1.DataFiles(1) = App.Path + "\darokhane.mdb"
CrystalReport1.SelectionFormula = "namem = 'ali'"
'or
CrystalReport1.Formulas(2) = "namem = 'ali'"
CrystalReport1.Action = 0
با تشکر

vbhamed
چهارشنبه 24 بهمن 1386, 01:56 صبح
سلام
شما باید تو دستورتون نام جدول و آکولادها رو هم بیارید، البته من فرض کردم نام جدول Table1 باشه، مثال :


CrystalReport1.SelectionFormula = "{Table1.namem} = 'ali'"

mgmreza
چهارشنبه 24 بهمن 1386, 02:35 صبح
سلام
شما باید تو دستورتون نام جدول و آکولادها رو هم بیارید، البته من فرض کردم نام جدول Table1 باشه، مثال :


CrystalReport1.SelectionFormula = "{Table1.namem} = 'ali'"

سلام
در دستور فوق چگونه میتوان به جای کلمه ali ، کاربر بتواند خودش یک نام دلخواه وارد نماید. مثلا به جای کلمه ali از text1.text استفاده کنیم. اگر دستور آن را بنویسید ممنون میشوم.
با تشکر

vbhamed
چهارشنبه 24 بهمن 1386, 10:34 صبح
سلام


CrystalReport1.SelectionFormula = "{Table1.namem} = '" & Text1.text & "'"

مبین رنجبر
چهارشنبه 24 بهمن 1386, 16:07 عصر
منم توی این بین یه سوال بپرسم ؟ .. حالا چطوری میتونیم توی کرستال ریپورت دستورات SQL را وارد کنیم ؟ ( منظورم دستورات کامل SQL هست نه استفاده از شرط های متد SelectionFormula )

Babak.Hassanpour
چهارشنبه 24 بهمن 1386, 20:57 عصر
منم لنگ استفاده از اس کیو ال تو کریستالم .کسی راهشو میدونه؟

vbhamed
پنج شنبه 25 بهمن 1386, 01:12 صبح
خدمت lsass.CRC3 عزیز و بقیه دوستان

برای کریستال ریپورت معمولا دستورات Sql ای که باید استفاده بشه همون دستور Select هست و Delete, Update, Insert و ... کاربردی ندارن
همانطور هم که می دونید ساختار کلی دستور Select به شکل زیر است


Select * From Table Where Condition
Select و * یا نام فیلدها که مشخصه و ثابت، پس فقط می مونه شرطها که با همون SelectionFormula قابل انجام است

مرتب سازی را هم که خود کریستال با RecordSortFields پشتیبانی می کند
پس دیگه چیزی نمی مونه که بخواهیم مستقیما دستور Sql بزاریم


اما اگر چیزی دیگه بود بازم کاری نداره از یک شگرد ساده
کریستال ریپورت رو به یک Query در بانک اطلاعاتی متصل کنید و سپس از داخل برنامه هر دستور Sql ای خواستین داخل Query بنویسین، فقط یادتون باشه نتیجه Query باید فیلدهای مورد نیاز کریستال رو برگردونه

مبین رنجبر
پنج شنبه 25 بهمن 1386, 14:31 عصر
اما اگر چیزی دیگه بود بازم کاری نداره از یک شگرد ساده
کریستال ریپورت رو به یک Query در بانک اطلاعاتی متصل کنید و سپس از داخل برنامه هر دستور Sql ای خواستین داخل Query بنویسین، فقط یادتون باشه نتیجه Query باید فیلدهای مورد نیاز کریستال رو برگردونه

vbhamed جان میشه که مثالی بزنی .. متوجه نشدم ..... در ضمن شرط های SelectionFormoula یه کم ناقصه برای همین میخوام از دستورات SQL استفاده کنم ..